On Wed, 12 Nov 2003 19:27:45 -0800 "David S. Miller" <davem@redhat.com> wrote:
> ./hello: error while loading shared libraries: /lib64/libc.so.6: unexpected > reloc type 0x08 ... > Actually, it seems that a R_SPARC_WDISP22 case needs to be added to > the switch statement in GLIBC's: > > sysdeps/sparc/sparc64/dl-machine.h:elf_machine_rela() Hold on, I might be wrong here. WDISP22 dynamic relocations should never show up in libc. Looking at the bogus WDISP22 relocation in libc.so.6 we find this: 0xc89e8 <vfork>: mov %o7, %o1 0xc89ec <vfork+4>: sethi %hi(0x192c00), %o0 0xc89f0 <vfork+8>: call 0xc89e0 <fork+128> 0xc89f4 <vfork+12>: add %o0, 0x270, %o0 ! 0x192e70 0xc89f8 <vfork+16>: sethi %hi(0), %o2 0xc89fc <vfork+20>: mov %o1, %o7 0xc8a00 <vfork+24>: or %o2, 0xb8, %o2 0xc8a04 <vfork+28>: ldx [ %o0 + %o2 ], %o2 0xc8a08 <vfork+32>: ldx [ %o2 ], %o0 0xc8a0c <vfork+36>: cmp %o0, 0 0xc8a10 <vfork+40>: bne 0xc8a10 <vfork+40> ^^^^^^^ R_SPARC_WDISP22 relocation 0xc8a14 <vfork+44>: mov 0x42, %g1 0xc8a18 <vfork+48>: ta 0x6d 0xc8a1c <vfork+52>: bcs,pn %xcc, 0xc8a30 <vfork+72> 0xc8a20 <vfork+56>: nop 0xc8a24 <vfork+60>: dec %o1 0xc8a28 <vfork+64>: retl 0xc8a2c <vfork+68>: and %o0, %o1, %o0 I'm not looking at the debian glibc sparc sources to see where this bogus relocation is coming from. It's probably a binutils bug, but I've done enough jumping to conclusions this evening :)