LI76990: WRONG .MACHINE TAG WITH OPTIMIZATION ENABLED
Fixes are available
September 2012 Update for XL C/C++ for Linux, V12.1
April 2013 Update for XL C/C++ for Linux, V12.1
XL C/C++ for Linux Fix Pack 8 (October 2015 Update) for 12.1
December 2012 Update for XL C/C++ for Linux, V12.1
XL C/C++ for Linux Fix Pack 4 (October 2013 Update) for 12.1
XL C/C++ for Linux Fix Pack 5 (December 2013 Update) for 12.1
XL C/C++ for Linux Fix Pack 6 (February 2014 Update) for 12.1
XL C/C++ for Linux Fix Pack 7 (May 2014 Update) for 12.1
Closed as program error.
When compiling an application with the -qarch=pwr7 compile option, and enabling optimization level -O2 or -O3, the generated .machine pseudo-op incorrectly reads 'pwr6' instead of 'pwr7'.
Optimization levels -O0, -O4 and -O5 output the correct .machine tag.
PROBLEM DESCRIPTION: The .machine tag generated in an output object file depends on the highest processor architecture level instruction generated by the compiler, not necessarily the -qarch setting. For example, it is possible that compiling with -qarch=pwr7 may only generate POWER6-level instructions, which would cause a .machine tag of 'pwr6' to be output. An issue exists where an inline ASM or mc_func block could contain a higher level instruction than generated by the compiler, resulting in an incorrect .machine tag. USERS AFFECTED: Applications that depend on the .machine tag in an object file. Users of -qarch.
The compiler was modified to force the .machine tag to match the -qarch setting if an inline ASM or mc_func block is detected.
Reported component name
XL C/C++ FOR LI
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++ FOR LI
Fixed component ID
Applicable component levels
RC10 PSN IV19669