bug-gnulib
[Top][All Lists]
Advanced

[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)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]