[uClibc] ld-uClibc-0.9.26.so segfaults in arm/dl-startup.h PERFORM_BOOTSTRAP_RELOC()

David Poole daveml at mbuf.com
Thu May 6 23:23:05 UTC 2004


>                 SEND_STDERR("R_ARM_PC24 9\n"); // davep 5-may-04
>                 SEND_ADDRESS_STDERR(reloc_addr,1);
>                 SEND_STDERR("R_ARM_PC24 10\n"); // davep 5-may-04
>                 SEND_ADDRESS_STDERR(symbol_addr,1);
>                 *reloc_addr = symbol_addr;  <---------assuming dies 
> here (next debugging message not seen)
>                 SEND_STDERR("R_ARM_PC24 break\n"); // davep 5-may-04
>                 SEND_ADDRESS_STDERR(reloc_addr,1);

Could someone correct me if any of this is wrong.

*reloc_addr is 0xebfffffe
reloc_addr is 0x40000e88
symbol_addr is 0xeb00006c

arm-linux-gdb  ld-uClibc-0.9.26.so
...
gdb> info file
	[snip]
         0x00000e70 - 0x00007404 is .text
	[snip]
...
gdb> disassemble 0xe88
0x00000e88 <_dl_linux_resolve+24>:      bl      0xe88 
<_dl_linux_resolve+24>

Is PERFORM_BOOTSTRAP_RELOC() trying to poke 0x0xeb00006c into 
dl_linux_resolve to modify the branch instruction?

Could this be segfaulting because the text segment isn't writable?

-- 
David Poole <dpoole at mobl.com>
Mobility Electronics, Idaho   http://www.mobl.com
960 Broadway Avenue, Suite 300
Boise, ID  83706
208-395-1300 x241




More information about the uClibc mailing list