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

Reply via email to