On Thu, Jan 29, 2015 at 04:13:38PM +1030, Alan Modra wrote: > On Thu, Jan 29, 2015 at 06:07:16AM +0100, Jan Hubicka wrote: > > > 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}. > > Huh, it must have been Drepper that made the mistake. :-)
Even the tls.pdf mentions sometimes Global Dynamic and sometimes General Dynamic. But the Global Dynamic is in additions made by me apparently. Anyway, I think it is too late to change this now on the GCC side, we it is part of options and attributes. Jakub