This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: alpha bits
- To: Benjamin Kosnik <bkoz at redhat dot com>
- Subject: Re: alpha bits
- From: Richard Henderson <rth at redhat dot com>
- Date: Wed, 15 Nov 2000 11:02:52 -0800
- Cc: binutils at sourceware dot cygnus dot com
- References: <200011151815.eAFIFdO01203@fillmore.constant.com>
On Wed, Nov 15, 2000 at 10:15:39AM -0800, Benjamin Kosnik wrote:
> As Michael correctly guessed, this place is in the function performing
> the relocations (_dl_relocate_object). I cannot say more. ld.so
> should have all relocation types implemented and so all which is left
> are incorrect relocations. Now you might want to ask rth.
0x8ed0c in _dl_relocate_object () at ../sysdeps/alpha/dl-machine.h:519
519 memcpy (&reloc_addr_val, reloc_addr_1, 8);
(gdb) ppc
0x8ed0c <_dl_relocate_object+1740>: ldbu t2,0(s0)
(gdb) p/a $s0
$1 = 0x200006a7a1e
00000200004b2000-0000020000618000 r-xp 0000000000000000 08:06 583087 /fidel/ity/bkoz/bld-alpha-gcc-3/alphaev6-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.3.0.0
0000020000618000-0000020000712000 ---p 0000000000166000 08:06 583087 /fidel/ity/bkoz/bld-alpha-gcc-3/alphaev6-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.3.0.0
0000020000712000-0000020000748000 rwxp 0000000000160000 08:06 583087 /fidel/ity/bkoz/bld-alpha-gcc-3/alphaev6-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.3.0.0
So the segfault is because we're relocating into effectively
unmapped memory. Subtract the base address 200004b2000 from
the fault address 200006a7a1e and we find ...
Relocation section '.rela.debug_info' at offset 0x7bdb8 contains 690 entries:
Offset Info Type Symbol's Value Symbol's Name Addend
001f5a1e 166200000002 R_ALPHA_REFQUAD 0000000000267520 _Q23stdt23__mal
It's a linker bug -- there should be no (mapped) dynamic
relocations against unmapped sections.
r~