On Mon, Nov 24, 2008 at 03:27:55PM +0100, Joel Porquet wrote: > >> And the related reloc symbols are: > >> 5ffe14b0 00000026 R_MIPS_TLS_DTPMOD > >> 5ffe14b8 00000026 R_MIPS_TLS_DTPMOD > > Still, is R_MIPS_TLS_DTPMOD a correct symbol ? > In the document you wrote about NPTL for mips > (http://www.linux-mips.org/wiki/NPTL), there's no such relocation > symbol: just R_MIPS_TLS_DTPMOD32 and R_MIPS_TLS_DTPMOD64.
There's only DTPMOD32 and DTPMOD64 relocations defined in binutils. I'm not sure why it's printing that - maybe it's just truncated? Try -W. > Indeed, the GOT seems to be already filled with the right offset, you > were right. However the values are just a bit weird: > > 5ffe14b0: 00000000 nop > 5ffe14b4: ffff8004 sdc3 $31,-32764(ra) > 5ffe14b8: 00000000 nop > 5ffe14bc: ffff8000 sdc3 $31,-32768(ra) > > We can see that the offsets are prefixed by ffff8. Why is that? The offsets are biased; that's -32768, the lowest 16-bit signed offset. The bias is used to expand the addressable range of the thread pointer. Glad I could help! -- Daniel Jacobowitz CodeSourcery