> On Wed, Jan 28, 2015 at 08:56:22PM +0100, Jan Hubicka wrote: > > -const char * const tls_model_names[]={"none", "tls-emulated", "tls-real", > > - "tls-global-dynamic", "tls-local-dynamic", > > - "tls-initial-exec", "tls-local-exec"}; > > +const char * const tls_model_names[]={"none", "emulated", > > + "global-dynamic", "local-dynamic", > > + "initial-exec", "local-exec"}; > > I just made the same mistake in a binutils commit message. The proper > term is general-dynamic, not global-dynamic. See Drepper's TLS paper, > section 4. http://www.akkadia.org/drepper/tls.pdf
Hmm, this seems to disagree with our attribute: @item -ftls-model=@var{model} @opindex ftls-model Alter the thread-local storage model to be used (@pxref{Thread-Local}). The @var{model} argument should be one of @code{global-dynamic}, @code{local-dynamic}, @code{initial-exec} or @code{local-exec}. Note that the choice is subject to optimization: the compiler may use a more efficient model for symbols not visible outside of the translation unit, or if @option{-fpic} is not given on the command line. The default without @option{-fpic} is @code{initial-exec}; with @option{-fpic} the default is @code{global-dynamic}. If it is indeed a mistake, I guess we can just support both names. Honza