--- Begin Message ---
Package: libc6-dev
Version: 2.5-5
Severity: important
When linking my project I get following error message since upgrade
from libc6-dev_2.5-4 to libc6-dev_2.5-5:
g++ -fPIC -g tntnet-config --libs -Wl,--whole-archive -shared -o
libvdr-live.so live.o thread.o tntconfig.o setup.o i18n.o timers.o
tools.o recordings.o tasks.o status.o epg_events.o epgsearch.o grab.o
/usr/lib/libssl.so httpd/libhttpd.a pages/libpages.a css/libcss.a
images/libimages.a javascript/libjavascript.a
/usr/lib/libc_nonshared.a(elf-init.oS): In function __libc_csu_init':
(.text+0x2b): undefined reference to __init_array_end'
/usr/lib/libc_nonshared.a(elf-init.oS): In function __libc_csu_init':
(.text+0x34): undefined reference to __init_array_start'
/usr/bin/ld: libvdr-live.so: hidden symbol __init_array_end' isn't
defined
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: ld returned 1 exit status
-- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Kernel: Linux 2.6.17-686-air-1 (PREEMPT)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages libc6-dev depends on:
ii libc6 2.5-5 GNU C Library: Shared libraries
ii linux-kernel-headers 2.6.18-7 Linux Kernel Headers for developme
Versions of packages libc6-dev recommends:
ii gcc [c-compiler] 4:4.1.2-2 The GNU C compiler
ii gcc-3.4 [c-compiler] 3.4.6-5 The GNU C compiler
ii gcc-4.1 [c-compiler] 4.1.2-5 The GNU C compiler
-- no debconf information
--- End Message ---
--- Begin Message ---
Dieter Hametner a écrit :
> Hello Aurelien
>
> Am Samstag, 5. Mai 2007 schrieb Aurelien Jarno:
>> [...]
>>>>>> When linking my project I get following error message since upgrade
>>>>> from libc6-dev_2.5-4 to libc6-dev_2.5-5:
>> [...]
>>>>> g++ -fPIC -g tntnet-config --libs -Wl,--whole-archive -shared -o
>> The bug is most probably due to -Wl,--whole-archive.
>>
>> Quoting ld.1:
>>
>> Two notes when using this option from gcc: First, gcc doesn’t
>> know about this option, so you have to use
>> -Wl,-whole-archive. Second, don’t forget to use -Wl,-no-whole-archive
>> after your list of archives, because gcc will add its own list of
>> archives to your link and you may not want this flag to affect those
>> as well.
>>
>> I guess there is a missing -Wl,-no-whole-archive at the end of the g++
>> command. Could you please try?
>
> Wow! I wouldn't have looked at this. I added -Wl,-no-whole-archive at the end
> of the archives list passed to the linker:
>
> g++ -fPIC -g `tntnet-config --libs` -shared -o libvdr-live.so live.o thread.o
> tntconfig.o setup.o i18n.o timers.o tools.o recordings.o tasks.o status.o
> epg_events.o epgsearch.o grab.o -Wl,--whole-archive pages/libpages.a
> css/libcss.a images/libimages.a
> javascript/libjavascript.a -Wl,--no-whole-archive httpd/libhttpd.a -lssl
>
> Thanks this fixes the linking problem.
>
> But it does not explain why the problem appeared after the upgrade. It should
> have been wrong on my side even before the update.
>
Yes it has been wrong before the upgrade, and the bug has been triggered
by a few more hidden symbols in libc_nonshared.a that have appeared in
this version (to the DT_GNU_HASH support).
I am closing this bug.
--
.''`. Aurelien Jarno | GPG: 1024D/F1BCDB73
: :' : Debian developer | Electrical Engineer
`. `' aurel32@debian.org | aurelien@aurel32.net
`- people.debian.org/~aurel32 | www.aurel32.net
--- End Message ---