This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Fix tls model dumping
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: Jan Hubicka <hubicka at ucw dot cz>, gcc-patches at gcc dot gnu dot org
- Date: Thu, 29 Jan 2015 06:07:16 +0100
- Subject: Re: Fix tls model dumping
- Authentication-results: sourceware.org; auth=none
- References: <20150128195622 dot GB12782 at kam dot mff dot cuni dot cz> <20150129033516 dot GF12931 at bubble dot grove dot modra dot org>
> 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