On Sun, Nov 25, 2012 at 02:02:05PM -0500, David Edelsohn wrote:
> I have been working to enable native thread-local storage on AIX. One
> problem I encountered is the AIX assembler has difficulty with the
> anchor symbol for TLS CSECTs.  While the section anchors machinery
> uses a separate pool for TLS entries, should section anchor blocks be
> used for TLS symbols at all?
> 
> powerpc-linux uses GOT annotations directly and never places TLS
> symbols in the TOC at all. Section anchors seem to be avoided by TLS
> code already.  The appended patch rejects TLS symbols for object
> blocks in general. I could add a target hook, but I wanted to propose
> this policy in general before pursing a target-specific hook.
> 
> Thanks, David
> 
>         * varasm.c: (use_blocks_for_decl_p): Do not place thread-local symbols
>         refs in object blocks.
> 
> Index: varasm.c
> ===================================================================
> --- varasm.c    (revision 193785)
> +++ varasm.c    (working copy)
> @@ -1108,6 +1108,10 @@
>    if (DECL_INITIAL (decl) == decl)
>      return false;
> 
> +  /* Do not place thread-local symbols refs in the object blocks.  */
> +  if (DECL_TLS_MODEL (decl) != 0)
> +    return false;

Do you want to handle TLS_MODEL_EMULATED that way?  If not, the test
should be DECL_THREAD_LOCAL_P (decl) (I believe you want that),
if yes, perhaps DECL_TLS_MODEL (decl) != TLS_MODEL_NONE.

        Jakub

Reply via email to