coreutils-8.7 fails to build on AIX 7.1: $ ./configure ... $ gmake V=1 gmake all-am gmake[1]: Entering directory `/opt/build/china/coreutils-8.7/src' xlc -O2 -qro -qroconst -qmaxmem=-1 -qarch=ppc -o printf printf.o libver.a ../lib/libcoreutils.a ../lib/libcoreutils.a ld: 0711-317 ERROR: Undefined symbol: .strtold_l ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information. gmake[1]: *** [printf] Error 8 gmake[1]: Leaving directory `/opt/build/china/coreutils-8.7/src' gmake: *** [all] Error 2
Looking at gnulib sources, lib/c-strtod.c has: #if LONG # define C_STRTOD c_strtold # define DOUBLE long double # define STRTOD_L strtold_l #else # define C_STRTOD c_strtod # define DOUBLE double # define STRTOD_L strtod_l #endif ... DOUBLE C_STRTOD (char const *nptr, char **endptr) { DOUBLE r; #ifdef LC_ALL_MASK locale_t locale = c_locale (); if (!locale) { if (endptr) *endptr = (char *) nptr; return 0; /* errno is set here */ } r = STRTOD_L (nptr, endptr, locale); #else ... If LC_ALL_MASK is defined, we have: r = strtod_l (nptr, endptr, locale); or: r = strtold_l (nptr, endptr, locale); Where is strtod_l/strtold_l defined? I can't find it in any source file. -- albert chin (ch...@thewrittenword.com)