--- Begin Message ---
- To: debian-boot@lists.debian.org
- Subject: mklibs doesn't manage to include symbol atexit
- From: Raphael Hertzog <eng@eipm.ch>
- Date: 12 Dec 2002 16:43:27 +0100
- Message-id: <1039707807.1178.30.camel@localhost>
[ Please put me in cc in your answer so that I have a copy at work too,
thanks ]
Hello,
i'm using mklibs at work here and I have a problem with it. One of the
binaries that I use (lilo-mtd) requires the symbol "atexit" and mklibs
doesn't manage to include it in the libc6 generated from the -pic
version.
$ objdump -T tmp/empty/tree/sbin/lilo-mtd | grep atexit
08048edc DF *UND* 0000003e atexit
This symbol is provided by the standard libc6 :
$ objdump -T /lib/libc.so.6 | grep atexit
0010cc54 l d __libc_atexit 00000000
00028e30 g DF .text 00000034 (GLIBC_2.0) atexit
00028c74 g DF .text 00000045 GLIBC_2.1.3 __cxa_atexit
But mklibs doesn't manage to create the reduced library of libc6 with
the PIC version... it gets into an endless loop, and it repeats this
message :
Still need: atexit
417 symbols, 1 unresolved
[ and follows a new try to create a reduced version ]
The atexit function does exist in the PIC version, it's called
old_atexit.os :
$ ar t /usr/lib/libc_pic.a | grep atexit
cxa_atexit.os
old_atexit.os
So, do you have any idea why it doesn't get included ? And it's not even
mklibs fault because atexit is correctly requested but gcc/ld doesn't
include it in the generated libc :
$ gcc -nostdlib -nostartfiles -shared -Wl,-soname=libc.so.6 -uatexit
/usr/lib/libc_pic.a -o libc.so
$ objdump -T libc.so
libc.so: file format elf32-i386
objdump: libc.so: Invalid operation
$ readelf -s -W libc.so
$
(if you try the same with another symbol than atexit, it works)
Cheers,
--
Raphaël Hertzog - EIPM SA
--
To UNSUBSCRIBE, email to debian-boot-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
--- End Message ---