[BUG] ld segfault in binutils-2.13.90.0.20 when compiling

Nicholas Wourms dragon@gentoo.org
Fri Mar 28 19:42:00 GMT 2003
Thiemo Seufer wrote:
 > Andreas Schwab wrote:
 >
 >>Eric Christopher <echristo@redhat.com> writes:
 >>
 >>|> On Thu, 2003-03-27 at 10:02, Andreas Schwab wrote:
 >>|> > Thiemo Seufer <ica2_ts@csv.ica.uni-stuttgart.de> writes:
 >>|> >
 >>|> > |> I haven't seen this with CVS HEAD of everything, 
but probably it just
 >>|> > |> dies too early in the glibc build:
 >>|> > |>
 >>|> > |> vfprintf.c: In function _IO_vfprintf':
 >>|> > |> vfprintf.c:1919: internal compiler error: in 
loc_descriptor_from_tree, at
 >>|> > |> dwarf2out.c:8932
 >>|> >
 >>|> > See 
<http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=9905&database=gcc>.
 >>|> >
 >>|>
 >>|> Aaah. I see. Ick.
 >>
 >>I'm using this as a workaround:
 >
 >
 > Thanks. With it the glibc build continues until:
 >
 > collect2: ld terminated with signal 11 [Segmentation 
fault], core dumped
 > make[2]: *** 
[/usr/home/ica2_ts/devel/build-libc/elf/librtld.map] Error 1
 > make[1]: *** [elf/subdir_lib] Error 2
 > make: *** [all] Error 2
 >
 > I guess that's the same as the origially reported problem.
 >

Yes it is!  This is some more information which gdb yields
when I run ld directly...

This is what I ran through gdb:
-------------------------------

mips-unknown-linux-gnu-ld --eh-frame-hdr -EB -dynamic-linker
/lib/ld.so.1 -o
/usr/local/src/glibc-stage1/elf/librtld.map.o -r
-L/usr/mips-unknown-linux-gnu/lib/gcc-lib/mips-unknown-linux-gnu/3.2.3 

-L/usr/mips-unknown-linux-gnu/lib/gcc-lib/mips-unknown-linux-gnu/3.2.3/../../../../mips-unknown-linux-gnu/lib 

--start-group
/usr/local/src/glibc-stage1/elf/dl-allobjs.os
/usr/local/src/glibc-stage1/libc_pic.a -lgcc --end-group
-Map /usr/local/src/glibc-stage1/elf/librtld.mapT

GDB Results (using -gdwarf2 -g3 for binutils build):
----------------------------------------------------

(gdb) run
<<<SNIP duplicate info>>>
Program received signal SIGSEGV, Segmentation fault.
0x40025578 in bfd_hash_lookup (table=0x50, string=0x400b5d09
".got", create=0, copy=0) at ../../binutils/bfd/hash.c:383
383       index = hash % table->size;

(gdb) bt
#0  0x40025578 in bfd_hash_lookup (table=0x50,
string=0x400b5d09 ".got", create=0, copy=0) at
../../binutils/bfd/hash.c:383
#1  0x40022b04 in bfd_get_section_by_name (abfd=0x0,
name=0x400b5d09 ".got") at ../../binutils/bfd/section.c:795
#2  0x4003d68d in mips_elf_got_section (abfd=0x0,
maybe_excluded=0) at ../../binutils/bfd/elfxx-mips.c:1679
#3  0x4004a776 in _bfd_mips_elf_hide_symbol (info=0x80a1ea0,
entry=0x80c06f8, force_local=1) at
../../binutils/bfd/elfxx-mips.c:7719
#4  0x40054c6c in elf_link_add_object_symbols
(abfd=0x80bb448, info=0x80a1ea0) at elflink.h:2123
#5  0x40051ae2 in elf_link_add_archive_symbols
(abfd=0x80b36b8, info=0x80a1ea0) at elflink.h:408
#6  0x400513cd in bfd_elf32_bfd_link_add_symbols
(abfd=0x80b36b8, info=0x80a1ea0) at elflink.h:97
#7  0x08052e95 in load_symbols (entry=0x80a216c,
place=0xbfffe0f8) at ../../binutils/ld/ldlang.c:1646
#8  0x08053740 in open_input_bfds (s=0x80a216c, force=1) at
../../binutils/ld/ldlang.c:2050
#9  0x080536ac in open_input_bfds (s=0x80a2108, force=0) at
../../binutils/ld/ldlang.c:2022
#10 0x08057505 in lang_process () at
../../binutils/ld/ldlang.c:4291
#11 0x0805a719 in main (argc=17, argv=0xbfffe214) at
../../binutils/ld/ldmain.c:467
#12 0x4102f635 in __libc_start_main () from /lib/libc.so.6

(gdb) info locals
s = (const unsigned char *) 0x400b5d0e ""
hash = 56996018
c = 0
hashp = (struct bfd_hash_entry *) 0x40025e7d
len = 4
index = 14




More information about the Binutils mailing list