http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49833
--- Comment #1 from H.J. Lu <hjl.tools at gmail dot com> 2011-07-25 13:59:10 UTC --- X32 dynamic linker is miscompiled: Program received signal SIGSEGV, Segmentation fault. 0x00114821 in elf_machine_rela_relative (reloc_addr_arg=<optimized out>, l_addr=1114112, reloc=<optimized out>) at ../sysdeps/x86_64/dl-machine.h:483 483 *reloc_addr = l_addr + reloc->r_addend; (gdb) disass 0x00114808, 0x0011482c Dump of assembler code from 0x114808 to 0x11482c: 0x00114808 <_dl_start+968>: lea (%rsi,%rdx,1),%edx 0x0011480b <_dl_start+971>: mov -0xc(%rdx),%edx 0x0011480e <_dl_start+974>: add %r13d,%edx 0x00114811 <_dl_start+977>: cmpb $0x8,0x4(%rax) 0x00114815 <_dl_start+981>: jne 0x114901 <_dl_start+1217> 0x0011481b <_dl_start+987>: mov 0x8(%rax),%ecx 0x0011481e <_dl_start+990>: add %r13d,%ecx => 0x00114821 <_dl_start+993>: mov %ecx,(%rdx) 0x00114823 <_dl_start+995>: lea 0xc(%rax),%edx 0x00114826 <_dl_start+998>: cmp %edx,%ebx 0x00114828 <_dl_start+1000>: mov %edx,%eax 0x0011482a <_dl_start+1002>: ja 0x114808 <_dl_start+968> End of assembler dump. (gdb) p/x $rdx $1 = 0x111724 (gdb) Working one: The program being debugged has been started already. Start it from the beginning? (y or n) y Starting program: /export/build/gnu/glibc-x32/build-x86_64-linux/sunrpc/rpcgen Breakpoint 1, elf_machine_rela_relative (reloc_addr_arg=<optimized out>, l_addr=1114112, reloc=<optimized out>) at ../sysdeps/x86_64/dl-machine.h:483 483 *reloc_addr = l_addr + reloc->r_addend; (gdb) disass 0x00114768, 0x00114789 Dump of assembler code from 0x114768 to 0x114789: 0x00114768 <_dl_start+968>: add %esi,%edx 0x0011476a <_dl_start+970>: mov -0xc(%rdx),%edx 0x0011476d <_dl_start+973>: add %r13d,%edx 0x00114770 <_dl_start+976>: cmpb $0x8,0x4(%rax) 0x00114774 <_dl_start+980>: jne 0x114859 <_dl_start+1209> => 0x0011477a <_dl_start+986>: mov 0x8(%rax),%ecx 0x0011477d <_dl_start+989>: add %r13d,%ecx 0x00114780 <_dl_start+992>: mov %ecx,(%rdx) 0x00114782 <_dl_start+994>: lea 0xc(%rax),%edx 0x00114785 <_dl_start+997>: cmp %edx,%ebx 0x00114787 <_dl_start+999>: mov %edx,%eax End of assembler dump. (gdb) p/x $rdx $3 = 0x32ed40 (gdb)