[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
c-strtod.c and AIX 7
From: |
Albert Chin |
Subject: |
c-strtod.c and AIX 7 |
Date: |
Thu, 18 Nov 2010 14:14:34 -0600 |
User-agent: |
Mutt/1.5.20 (2009-08-17) |
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 (address@hidden)
- c-strtod.c and AIX 7,
Albert Chin <=