This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
__deregister_frame_info_bases, and shared libgcc_s -> broken glibc
- To: gcc-bugs at gcc dot gnu dot org
- Subject: __deregister_frame_info_bases, and shared libgcc_s -> broken glibc
- From: Andreas Jaeger <aj at suse dot de>
- Date: 24 May 2001 18:22:43 +0200
- Cc: Richard Henderson <rth at redhat dot com>
With current gcc 3.0 and 3.1 from CVS (checked out this morning)
running the glibc test suite fails:
gromit:/cvs/libc/iconvdata:[139]$ gdb /builds/glibc/gcc-3.0/iconvdata/bug-iconv2
GNU gdb 5.0
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
(gdb) r
This used to crash
0
works now
Program received signal SIGSEGV, Segmentation fault.
_dl_lookup_versioned_symbol (
undef_name=0x40151d6a "__deregister_frame_info_bases",
undef_map=0x805e2c8, ref=0xbffff550, symbol_scope=0x805e40c,
version=0x805e590, reloc_type=7, explicit=0) at do-lookup.h:52
52 map = list[i];
(gdb) bt
#0 _dl_lookup_versioned_symbol (
undef_name=0x40151d6a "__deregister_frame_info_bases",
undef_map=0x805e2c8, ref=0xbffff550, symbol_scope=0x805e40c,
version=0x805e590, reloc_type=7, explicit=0) at do-lookup.h:52
#1 0x4000bcd2 in fixup (l=0x805e2c8, reloc_offset=0) at dl-runtime.c:89
#2 0x4000beb0 in _dl_runtime_resolve () at dl-runtime.c:203
#3 0x40159535 in _fini () from /opt/gcc-3.1-devel/lib/libgcc_s.so.0
#4 0x4000c882 in _dl_fini () at dl-fini.c:169
#5 0x4004961b in exit (status=0) at exit.c:54
#6 0x400355fc in __libc_start_main (main=0x80485f0 <main>, argc=1,
ubp_av=0xbffff6bc, init=0x80483f8 <_init>, fini=0x80487e0 <_fini>,
rtld_fini=0x4000c620 <_dl_fini>, stack_end=0xbffff6ac)
at ../sysdeps/generic/libc-start.c:129
The rather interesting thing is that we do not link libc.so.6 against
libgcc_s. This happened with earlier releases.
gromit:/builds/glibc/gcc-3.0:[0]$ ldd iconvdata/bug-iconv2
libc.so.6 => /usr/src/test/glibc-2.2/lib/libc.so.6 (0x40019000)
/usr/src/test/glibc-2.2/lib/ld-linux.so.2 => /usr/src/test/glibc-2.2/lib/ld-linux.so.2 (0x40000000)
gromit:/builds/glibc/gcc-3.0:[0]$ ldd libc.so.6
/usr/src/test/glibc-2.2/lib/ld-linux.so.2 => /usr/src/test/glibc-2.2/lib/ld-linux.so.2 (0x40000000)
$ /opt/gcc-3.0/bin/gcc -v
Reading specs from /opt/gcc-3.0/lib/gcc-lib/i686-pc-linux-gnu/3.0/specs
Configured with: /cvs/gcc-3_0-branch/configure --prefix=/opt/gcc-3.0 --enable-shared --enable-threads=posix --with-gnu-as --with-gnu-ld --disable-nls --with-system-zlib --enable-languages=c,objc,c++,f77,java
Thread model: posix
gcc version 3.0 20010524 (prerelease)
Any ideas what might be broken? Anything I can do to investigate?
Andreas
--
Andreas Jaeger
SuSE Labs aj@suse.de
private aj@arthur.inka.de
http://www.suse.de/~aj