IBM Support

LI76208: ASSERT 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 source that contains both inline assembly (ASM)
    and thread local storage (TLS), the compiler outputs an internal
    assert and exits:
    
    -----------------------
    The assert subroutine failed: drx.points_at_dr() ||
    drx.toc_direct() || drx.is_proc(), file
    /build/tobey/r34_com/tobey.r34-prod-opt/aix/tobey/source/as_powe
    rasm.cpp, line 1190
    -----------------------
    
    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

  • Separate ASM and TLS into different source files.
    

Problem summary

  • PROBLEM DESCRIPTION:
    The compiler is asserting when processing inline assembly
    statements.
    
    USERS AFFECTED:
    Users with code that mixes inline assembly with thread local
    storage.
    

Problem conclusion

  • The condition causing the assert was corrected, and support for
    mixed inline ASM and TLS was added.
    

Temporary fix

Comments

APAR Information

  • APAR number

    LI76208

  • 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:

    IZ97395

  • 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

  • RA10 PSY

       UP



Document information

More support for: XL C/C++

Software version: A.1

Reference #: LI76208

Modified date: 10 June 2011