A fix is available
APAR status
Closed as program error.
Error description
Some APIs in the math library are showing incorrect values. For example lrint() API returns wrong value.
Local fix
Use a copy of 6.1 version of libm.a instead.
Problem summary
**************************************************************** * USERS AFFECTED: * Systems running the 7100-00 Technology Level with * bos.adt.prof below the 7.1.0.20 level and/or bos.adt.libm * below the 7.1.0.17 level. **************************************************************** * PROBLEM DESCRIPTION: * This APAR addresses inaccuracies/invalid results returned by * some of the functions in the AIX math library in early AIX 7.1 * levels that do not have this APAR installed. It also addresses * a linker error that may be seen when using the sqrt() * function. * * Inaccuracies may be seen in math functions such as pow(), * exp() and assorted trigonometric functions. The symptoms range * from valid but slightly different values in the least * significant digits, to significant inaccuracies, depending on * the function and the arguments it is called with. * * Examples of the data discrepancies for known impacted APIs * includes small errors in acos, asin, and atan (but still * under 1 ulp), and larger errors in cosh, exp, expm1, pow, * sinh, up to 500 ulps. The trigonometric functions cos, cosf, * sin, sinf, tan, tanf can be accurate for small-magnitude * arguments but can have complete loss of significance for very * large magnitude arguments. The most serious impact to users of * the problem library is likely to occur with applications * calling the double-precision trigonometric functions with * large arguments (>16), or the single-precision trigonometric * functions with very large arguments (>2ª18). * * Invalid results can be seen with llrint(), llrintl() and * lrint() functions in 64 bit mode. The issue is caused by an * internal max value check using an invalid literal value, * resulting in a return value of -1, and errno set to 33. The * issue was fixed, and correct max value literals are now used. * * Linker error of the form .ld: 0711-768 WARNING: Object * /usr/lib/libm.a sqrt_raise_xcp.o , section 1, function * .strcmp: The branch at address 0x40 is not followed by a * recognized no-op or TOC-reload instruction. may be seen when * using the sqrt() function. The issue was resolved and the * __sqrt_raise_xcp now contains the necessary no-op instruction. * * For any programs using libm.a functions that were linked on * AIX 7.1, it is recommended that this APAR be installed and * the program relinked. The program must be relinked since * libm.a is a static library. * * The inaccuracy in certain floating-point calculations is a * result of a change that had been made in the initial releases * of the XL C/C++ for AIX, V11.1 and XL Fortran for AIX, V13.1 * compilers. Affected versions are XLC/C++ V11.1.0.0 through * V11.1.0.4 and XLF V13.1.0.0 through V13.1.0.4. Code generated * for floating point calculations of the form ' a - b * c ' * utilizes fmul and fsub instructions with these versions, * instead of the fnmsub instruction used in other compiler * versions. The rounding difference between these two * instruction sequences can lead to small differences in the * computed result. The issue was corrected in * XLC V11.1.0.5 (IZ96351), XLC/C++ V11.1.0.5 (IZ96352), and * XLF V13.1.0.5 (IZ96353). If using the affected compiler * versions noted above, it is also recommended to move to the * latest PTF release of the compiler. **************************************************************** * RECOMMENDATION: * Install APAR IV23305. ****************************************************************
Problem conclusion
Makefile changes to pick new compiler for libm
Temporary fix
********* * HIPER * *********
Comments
7100-00 - use AIX APAR IV23305
APAR Information
APAR number
IV23305
Reported component name
AIX V7.1
Reported component ID
5765H4000
Reported release
710
Status
CLOSED PER
PE
NoPE
HIPER
YesHIPER
Submitted date
2012-06-19
Closed date
2012-06-22
Last modified date
2013-04-09
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
U857205
Fix information
Fixed component name
AIX V7.1
Fixed component ID
5765H4000
Applicable component levels
R710 PSY U857205
UP12/12/11 I 1000
[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSMV87","label":"AIX 6.1 Enterprise Edition"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"710","Edition":"","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}},{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSMVAX","label":"AIX Express Edition"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"710","Edition":"","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG11R","label":"AIX 7.1 HIPERS, APARs and Fixes"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"710","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
09 April 2013