On Fri, Apr 11, 2008 at 09:45:00AM +0100, Pedro de Oliveira wrote:
> Hello,
>  
> Can anyone explain me why it is impossible to upgrade /devel/glib2/ via
> ports without complettly removing it first?

because the installed libraries get found before the newly built
libraries; library path search order issue.  blame libtool.  I gave
them a patch.  they "cleaned it up" to the point that it no longer
did what it was supposed to.

> If you make a normal "make update" it fails during compilation, but if you
> pkg_del the current version, and try to build it, it compiles.
> 
> ...snip...
> /usr/local/bin/libtool  --tag=CC   --mode=link cc  -O2 -pipe -Wall
> -L/usr/local/lib -o gtester gtester.o libglib-2.0.la -lintl -liconv
> cc -O2 -pipe -Wall -o .libs/gtester gtester.o  -L/usr/local/lib -L./.libs
> -lglib-2.0 -lpcre -lintl -liconv -Wl,-rpath,/usr/local/lib
> /usr/local/lib/libglib-2.0.so.1400.3: warning: vsprintf() is often misused,
> please use vsnprintf()
> /usr/local/lib/libglib-2.0.so.1400.3: warning: strcpy() is almost always
> misused, please use strlcpy()
> /usr/local/lib/libglib-2.0.so.1400.3: warning: strcat() is almost always
> misused, please use strlcat()
> gtester.o(.text+0x56c): In function `child_report_cb':
> : undefined reference to `g_test_log_buffer_push'
> gtester.o(.text+0x574): In function `child_report_cb':
> : undefined reference to `g_test_log_buffer_pop'
> gtester.o(.text+0x592): In function `child_report_cb':
> : undefined reference to `g_test_log_msg_free'
> gtester.o(.text+0x8f1): In function `launch_test_binary':
> : undefined reference to `g_test_log_buffer_new'
> gtester.o(.text+0x9fe): In function `launch_test_binary':
> : undefined reference to `g_test_log_buffer_free'
> gtester.o(.text+0x14ff): In function `fixture_setup':
> : undefined reference to `g_assertion_message_cmpnum'
> gtester.o(.text+0x152e): In function `fixture_test':
> : undefined reference to `g_test_message'
> gtester.o(.text+0x153a): In function `fixture_test':
> : undefined reference to `g_test_bug_base'
> gtester.o(.text+0x1546): In function `fixture_test':
> : undefined reference to `g_test_bug'
> gtester.o(.text+0x1552): In function `fixture_test':
> : undefined reference to `g_test_bug_base'
> gtester.o(.text+0x15b1): In function `fixture_test':
> : undefined reference to `g_assertion_message_cmpnum'
> gtester.o(.text+0x1626): In function `fixture_teardown':
> : undefined reference to `g_assertion_message_cmpnum'
> gtester.o(.text+0x1645): In function `main_selftest':
> : undefined reference to `g_test_init'
> gtester.o(.text+0x1664): In function `main_selftest':
> : undefined reference to `g_test_add_vtable'
> gtester.o(.text+0x166c): In function `main_selftest':
> : undefined reference to `g_test_run'
> gtester.o(.text+0x1565): In function `fixture_test':
> : undefined reference to `g_test_bug'
> collect2: ld returned 1 exit status
> gmake[4]: *** [gtester] Error 1
> ...snip...
> 
> My problem is that to remove glib2, I also have to remove all the packages
> that depend on it.

you have to rebuild/reinstall anything using glib2 eventually anyway, or
else all your programs will keep using the old glib2 libraries.

> So, can anyone tell me why does this happen?

this has also been discussed in the archives ... several times.

> Thanks
> 

-- 
[EMAIL PROTECTED]
SDF Public Access UNIX System - http://sdf.lonestar.org

Reply via email to