Revised versions of MIPS TLS ABI specification

Mark Mitchell mark at codesourcery.com
Thu Oct 28 19:47:52 UTC 2004


I've attached a revised version of the specification.

As you will see from the revision history at the top, the only changes 
I've made are the incorrect uses of "$(3)" found by Nigel.

I've also added an Open Issues section, where I've attempted to record 
the issues raised thus far.  My priority (well, MontaVista's priority) 
is to get the basics nailed down so that we can start implementing them 
ASAP.  That means that I would prefer to get consensus about the basics 
of the specification, even if there are some bits that we want to add in 
the future.

I would like to get the GD/LD bits specified first, so we can start 
implementing; then we can come back and LE/IE.  Thus, I think the 
following issues are all things that we can decide later, given that at 
the moment we're talking only about General Dynamic and Local Dynamic. 

1. Add |-mxgot| support.

We want to do this, for sure, but it does not affect General Dynamic, 
and it is clear that this can be added to Local Dynamic without 
impacting the currently specified functionality.

2. The code sequences given for the Local Dynamic Model limit the size 
of the TLS data area to 2GB.

If we decide we want to do this, we can again do it in a way that is 
forward compatible with the current specification.

3. Should we use Model I or Model II from Drepper's paper?

This issue does not arise for Global/Local Dynamic.

4. Does __tls_get_addr need a special calling convention?

This issue does not matter until we start doing linker optimizations.  
Until that time, the compiler can be conservative, and assume this is an 
ordinary call.

The following issue does need resolution:

1. Should we extend the 32K Local Dynamic Model to 64K by using a biased 
offset?

Daniel and I thought this would be more trouble than it's worth; Thiemo 
thinks otherwise.  Are there any other opinions?

Once this issue is resolved, what is the next step?  Would people like 
us to publish the draft on our web site?  Or should it go on 
mips-linux.com?  We intend to start doing patches to implement this 
stuff, but it will be more acceptable to the GCC/Binutils/GLIBC 
maintainers if there is a specification that we can reference.

-- 
Mark Mitchell
CodeSourcery, LLC
(916) 791-8304
mark at codesourcery.com

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: MIPSTLSABI.txt
URL: <http://sourcerytools.com/pipermail/mips-tls/attachments/20041028/0ac5a0e2/attachment.txt>


More information about the mips-tls mailing list