LI77111: WRONG .MACHINE TAG WITH OPTIMIZATION ENABLED
Fixes are available
November 2012 Update for XL C/C++ for Blue Gene/Q, V12.1
February 2013 Update for XL C/C++ for Blue Gene/Q, V12.1
May 2013 Update for XL C/C++ for Blue Gene/Q, V12.1
XL C/C++ for Blue Gene/Q Fix Pack 5 (August 2013 Update) for 12.1
XL C/C++ for Blue Gene/Q Fix Pack 8 (May 2014 Update) for 12.1
XL C/C++ for Blue Gene/Q Fix Pack 9 (August 2014 Update) for 12.1
XL C/C++ for Blue Gene/Q Fix Pack 11 (February 2015 Update) for 12.1
XL C/C++ for Blue Gene/Q Fix Pack 12 (May 2015 Update) for 12.1
XL C/C++ for Blue Gene/Q Fix Pack 13 (August 2015 Update) for 12.1
XL C/C++ for Blue Gene/Q Fix Pack 14 (May 2016 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 BG
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 BG
Fixed component ID
Applicable component levels
RC10 PSN IV19669