IBM Support

LI76185: ERROR WITH TLS AND INLINE ASSEMBLY

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • When compiling code that includes thread local storage (TLS) and
    inline assembly statements, the compiler is encountering an
    internal error.
    
    ----------------------------
    Assembler:
    tls.s: line 76: Too few arguments
    1500-067:(S) asm statement generates errors in assembler output.
    ----------------------------
    
    OR
    
    ----------------------------
    Assembler:
    tls.s: line 103: 1252-023 The symbol T.9.foo is not defined.
    tls.s: line 103: 1252-099 The specified displacement is not
    valid.
            The instruction displacement must be
            relocatable, absolute, or external.
    ----------------------------
    
    OR
    
    ----------------------------
    Assembler:
    tls.s: line 106: 1252-023 The symbol x is not defined.
    tls.s: line 106: 1252-040 The specified expression is not valid.
            Make sure that all symbols are defined.
            Check the rules on symbols used in an arithmetic
            expression concerning relocation.
    ----------------------------
    
    This is due to the AIX assembler not supporting thread local
    storage in the past.  Support for TLS was added to the
    assembler via the following AIX APARs:
    
    APAR_aix_53Q = IZ81338 5.3 TL9
    APAR_aix_53S = IZ81339 5.3 TL10
    APAR_aix_53V = IZ81340 5.3 TL11
    APAR_aix_53X = IZ81341 5.3 TL12
    APAR_aix_61D = IZ81343 6.1 TL2
    APAR_aix_61F = IZ81344 6.1 TL3
    APAR_aix_61H = IZ81346 6.1 TL4
    APAR_aix_61J = IZ81347 6.1 TL5
    APAR_aix_61L = IZ69955 6.1 TL6
    (AIX 7.1 base-level OS already contains the feature)
    
    One of these AIX APARs is required in conjunction with this
    compiler APAR to add support for mixed TLS/inline ASM code.
    

Local fix

  • Split thread local storage and inline assembly into separate
    compilation units (i.e. separate source files)
    

Problem summary

  • PROBLEM DESCRIPTION:
    Thread local storage was not supported in assembler source
    files.
    
    USERS AFFECTED:
    Customers using the V9.0 and V10.1 compilers wishing to use
    thread local storage within the same compilation unit as inline
    assembler statements.
    

Problem conclusion

  • Thread local storage support in assembler source was added to
    the AIX assembler, and the compiler was updated to support this
    functionality.
    

Temporary fix

Comments

APAR Information

  • APAR number

    LI76185

  • Reported component name

    XL C/C++ RHEL52

  • Reported component ID

    5724U8310

  • Reported release

    A10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2011-06-10

  • Closed date

    2011-06-10

  • Last modified date

    2011-06-10

  • APAR is sysrouted FROM one or more of the following:

    IZ91054

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    XL C/C++ RHEL52

  • Fixed component ID

    5724U8310

Applicable component levels



Document information

More support for: XL C/C++

Software version: A.1

Reference #: LI76185

Modified date: 10 June 2011