LI76208: ASSERT WITH TLS AND INLINE ASSEMBLY
Fixes are available
Closed as program error.
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.
Separate ASM and TLS into different source files.
PROBLEM DESCRIPTION: The compiler is asserting when processing inline assembly statements. USERS AFFECTED: Users with code that mixes inline assembly with thread local storage.
The condition causing the assert was corrected, and support for mixed inline ASM and TLS was added.
Reported component name
XL C/C++ RHEL52
Reported component ID
Last modified date
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fixed component name
XL C/C++ RHEL52
Fixed component ID
Applicable component levels
More support for:
Software version: A.1
Reference #: LI76208
Modified date: 10 June 2011