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