> 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.
One thing we can do is to add alias and accept both names... Honza > > Jakub