Fixes are available
September 2010 PTF for XL C/C++ for AIX, V11.1
September 2010 Runtime for XL C/C++ for AIX, V11.1
October 2010 Runtime for XL C/C++ for AIX, V11.1
January 2011 PTF for XL C/C++ for AIX, V11.1
January 2011 Runtime for XL C/C++ for AIX, V11.1
May 2011 PTF for XL C/C++ for AIX, V11.1
July 2011 IBM XL C++ Runtime for AIX, V11.1
August 2011 PTF for XL C/C++ for AIX, V11.1
November 2011 PTF for XL C/C++ for AIX, V11.1
November 2011 IBM XL C++ Runtime for AIX, V11.1
January 2012 PTF for XL C/C++ for AIX, V11.1
April 2012 PTF for XL C/C++ for AIX, V11.1
July 2012 PTF for XL C/C++ for AIX, V11.1
October 2012 PTF for XL C/C++ for AIX, V11.1
February 2013 PTF for XL C/C++ for AIX, V11.1
XL C/C++ for AIX Fix Pack 14 (May 2013 PTF) for 11.1
XL C/C++ for AIX Fix Pack 15 (August 2013 PTF) for 11.1
XL C/C++ for AIX Fix Pack 16 (November 2013 PTF) for 11.1
XL C/C++ for AIX Fix Pack 17 (February 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 18 (May 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 19 (August 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 20 (November 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 21 (April 2015 PTF) for 11.1
XL C/C++ for AIX Fix Pack 22 (September 2015 PTF) for 11.1
XL C/C++ for AIX Fix Pack 23 (March 2016 PTF) for 11.1
XL C/C++ for AIX Fix Pack 24 (September 2016 PTF) for 11.1
APAR status
Closed as program error.
Error description
a) Customer creates a *.C file that uses an inline function defined (and exported from) libC.a(ansi_64.o) b) Customer links with xlC_r -qmkshrobj. The weak function definition in the *.o file causes the symbol to be added to the export list for the output shared object. c) A definition for the symbol is found in libC.a(ansi_64.imp). This definition is not marked as weak, so it takes precedence over other definitions. The symbol in the resulting object is marked as ImpExp, imported from libC.a(ansi_64.o). d) at some point, customer library is used to link another shared object, also with *.o files needing the same inline function symbol. Now the 2nd library has ImpExp, imported from customer_lib1.so. e) library 1 is rebuilt using library2 as input (because of circular dependencies, this is required). Now, library 1 has an impexp from library 2. Library 2 has an impexp from library1. At run time, symbol resolution fails.
Local fix
n/a
Problem summary
PROBLEM DESCRIPTION: Need to mark weak symbols as weak and mark ansi_32.o and ansi_64.o load-only in libC, also mark new with placement as weak. USERS AFFECTED: Symbols may be unresolved at link time with runtime linking.
Problem conclusion
Marked weak symbols as weak. Marked ansi_32.o and ansi_64.o load-only. Marked placement new as weak.
Temporary fix
Comments
APAR Information
APAR number
IZ68461
Reported component name
XL C++ AIX
Reported component ID
5724U8100
Reported release
B10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2010-01-20
Closed date
2010-09-24
Last modified date
2010-09-24
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
XL C++ RUNTIME
Fixed component ID
5724X1301
Applicable component levels
RB10 PSY
UP
Document Information
Modified date:
24 September 2010