Subject: pkgsrc2007Q2 glibmm vs. libsigc++2
To: None <pkgsrc-users@netbsd.org>
From: Martin S. Weber <Ephaeton@gmx.net>
List: pkgsrc-users
Date: 09/12/2007 17:06:23
Hoi.

I'm amidst updating one of my machines, now running 4.0rc1.
After the update I decided to also update pkgsrc, switched
to 2007Q2. pkg_chk helped me in deinstalling and reinstalling,
but I kept stumbling over this error:

===> Building for glibmm-2.12.7
/usr/pkg/bin/gmake  all-recursive
 ....................
Making all in markup
gmake[3]: Entering directory `/stuff/netbsd/pkgsrc/devel/glibmm/work/glibmm-2.12.7/examples/markup'
/bin/sh ../../libtool --tag=CXX --mode=link c++  -O2 -march=pentiumpro -mfpmath=sse -msse2 -I/usr/pkg/include -I/usr/include -march=pentiumpro -mfpmath=sse -msse2 -Wall -Wno-long-long  -L/usr/pkg/lib -
Wl,-R/usr/pkg/lib -L/usr/lib -Wl,-R/usr/lib -o parser  parser.o  ../../glib/glibmm/libglibmm-2.4.la -Wl,-R/usr/pkg/lib -Wl,--export-dynamic -L/usr/pkg/lib -lsigc-2.0 -lgobject-2.0 -lgmodule-2.0 -lglib-
2.0 -lintl  
c++ -O2 -march=pentiumpro -mfpmath=sse -msse2 -I/stuff/netbsd/pkgsrc/devel/glibmm/work/.buildlink/include -march=pentiumpro -mfpmath=sse -msse2 -Wall -Wno-long-long -Wl,-R/usr/pkg/lib -o .libs/parser p
arser.o -Wl,--export-dynamic  -L/stuff/netbsd/pkgsrc/devel/glibmm/work/.buildlink/lib ../../glib/glibmm/.libs/libglibmm-2.4.so /stuff/netbsd/pkgsrc/devel/glibmm/work/.buildlink/lib/libsigc-2.0.so /stuf
f/netbsd/pkgsrc/devel/glibmm/work/.buildlink/lib/libgobject-2.0.so /stuff/netbsd/pkgsrc/devel/glibmm/work/.buildlink/lib/libgmodule-2.0.so /stuff/netbsd/pkgsrc/devel/glibmm/work/.buildlink/lib/libglib-
2.0.so -lintl -Wl,--rpath -Wl,/usr/pkg/lib -Wl,--rpath -Wl,/stuff/netbsd/pkgsrc/devel/glibmm/work/.buildlink/lib

    vvvvvvvvvvvvv
ld: warning: libstdc++.so.5, needed by /stuff/netbsd/pkgsrc/devel/glibmm/work/.buildlink/lib/libsigc-2.0.so, may conflict with libstdc++.so.6
    ^^^^^^^^^^^^^

../../glib/glibmm/.libs/libglibmm-2.4.so: undefined reference to `sigc::internal::signal_impl::insert(std::_List_iterator<sigc::slot_base>, sigc::slot_base const&)'
../../glib/glibmm/.libs/libglibmm-2.4.so: undefined reference to `sigc::internal::signal_impl::erase(std::_List_iterator<sigc::slot_base>)'
gmake[3]: *** [parser] Error 1
gmake[3]: Leaving directory `/stuff/netbsd/pkgsrc/devel/glibmm/work/glibmm-2.12.7/examples/markup'
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory `/stuff/netbsd/pkgsrc/devel/glibmm/work/glibmm-2.12.7/examples'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/stuff/netbsd/pkgsrc/devel/glibmm/work/glibmm-2.12.7'
gmake: *** [all] Error 2
*** Error code 2

Check out the highlighted line.

The libsigc++2 I had had the following traits:

Build information:
BUILD_DATE=2006-06-08 20:36:31 +0200
...
CC_VERSION=gcc-3.3.3
...
PROVIDES=/usr/pkg/lib/libsigc-2.0.so.0
REQUIRES=/usr/lib/libgcc_s.so.1
REQUIRES=/usr/lib/libm.so.0
REQUIRES=/usr/lib/libm387.so.0
REQUIRES=/usr/lib/libstdc++.so.5

Rebuilding libsigc++ helped. It now correctly REQUIRES:

...
REQUIRES=/usr/lib/libstdc++.so.6
...

over which glibmm et al no longer stumble.

Somehow though this (noticing libsigc++ is outdated) should happen 
automatically, shouldn't it??

Regards,

-Martin