http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47032
Tobias Burnus <burnus at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |burnus at gcc dot gnu.org --- Comment #12 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-02-12 15:04:48 UTC --- (In reply to comment #11) > While this is absolutely true, the major problem here is that gcc should not > have switched to 128bit long double at all with AIX 6.1 (bug#46481). Cf. http://gcc.gnu.org/ml/gcc/2011-02/msg00109.html and http://gcc.gnu.org/ml/gcc/2011-02/msg00159.html * * * For the libgfortran side: Seems as if one should add a "#include <math.h>"-based link test (cf. comment 8 and 10). libgfortran currently only uses the functions if available (configure check). The effect, if the are not, is the following: (In reply to comment #0) > ld: 0711-317 ERROR: Undefined symbol: .__copysignl128 > ld: 0711-317 ERROR: Undefined symbol: .__nextafterl128 Used by Fortran's NEAREST intrinsic (if available; no fall back if not) - thus, it will fail if a user calls this function but should otherwise be OK. > ld: 0711-317 ERROR: Undefined symbol: .__scalbnl128 Used for the intrinsics RRSPACING, SPACING and SET_EXPONENT. > ld: 0711-317 ERROR: Undefined symbol: .__truncl128 Used for Fortran's ERFC_SCALED intrinsic. > ld: 0711-317 ERROR: Undefined symbol: .__cabsl128 > ld: 0711-317 ERROR: Undefined symbol: .__cargl128 gfortran offers a replacement function in intrinsics/c99_functions.c, if configure believes that those are not available. I think most codes/users do not need either of NEAREST, ERFC_SCALED, RRSPACING, SPACING and SET_EXPONENT. (I do not know whether other math functions are effected, whose calls are directly generated via the front end.)