IBM Support

LI76264: INVALID ASM/TLS SUPPORT MESSAGE

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When compiling a source file that contains both inline assembly
    (ASM) and thread local storage, the compiler is outputting the
    following error message:
    
    
    1500-076: (S) The system/specified assembler version does not
    support the required feature thread local storage.
    Compilation with inline assembler statements cannot continue.
    
    
    This is caused by the AIX assembler previously not supporting
    thread local storage, and the compiler's dependence on the
    assembler when compiling source containing inline assembly.
    
    Support for TLS was added to the AIX 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.
    
    If an updated assembler is not used, users may encounter
    assembler errors similar to:
    
    
    Assembler:
    test.s: line 89: 1252-005 The storage class is not valid.
            Specify a supported storage class for the csect name.
    test.s: line 97: 1252-142 Syntax error.
      1500-067: (S) asm statement generates errors in
        assembler output.
    

Local fix

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

Problem summary

  • PROBLEM DESCRIPTION:
    This issue is caused by having a complex inline ASM statement
    that can not be interpreted by the compiler.  The compiler then
    uses the system assembler, and ends the compilation as soon as
    a TLS variable is encountered with:
    
    1500-076: (S) The system/specified assembler version does not
    support the required feature thread local storage.
    Compilation with inline assembler statements cannot continue.
    
    An incomplete assembly file is generated, *.s, after this error
    is thrown.  The last ASM statement in the *.s file may be a lwz
    for the TLS variable.
    
    USERS AFFECTED:
    Users mixing complex inline ASM statements with thread local
    storage variables in the same source file.
    

Problem conclusion

  • The system assembler was updated to support thread local
    storage, and the compiler was modified to support the new
    assembler syntax.  The error message was removed, and mixing
    inline ASM with TLS variables is now supported.
    

Temporary fix

Comments

APAR Information

  • APAR number

    LI76264

  • Reported component name

    XL C/C++ FOR LI

  • Reported component ID

    5724X1400

  • Reported release

    B10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2011-07-12

  • Closed date

    2011-07-12

  • Last modified date

    2011-07-12

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

    IZ97563

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

Fix information

  • Fixed component name

    XL C/C++ FOR LI

  • Fixed component ID

    5724X1400

Applicable component levels

  • RB10 PSY

       UP

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSXVZZ","label":"XL C\/C++ for Linux"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"B10","Line of Business":{"code":"LOB57","label":"Power"}}]

Document Information

Modified date:
16 October 2021