bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: c-strtod.c and AIX 7


From: Bruno Haible
Subject: Re: c-strtod.c and AIX 7
Date: Thu, 18 Nov 2010 22:36:47 +0100
User-agent: KMail/1.9.9

Hello Albert,

>   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
> ...
> 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.

strtod_l and strtold_l are POSIX functions, which are supposed to be defined
by the system.

Here's a proposed fix:


2010-11-18  Bruno Haible  <address@hidden>

        c-strtold: Avoid link error on AIX 7.
        * lib/c-strtod.c: Test also HAVE_STRTOD_L or HAVE_STRTOLD_L.
        * m4/c-strtod.m4 (gl_C_STRTOD): Test whether strtod_l exists.
        (gl_C_STRTOLD): Test whether strtold_l exists.
        Reported by Albert Chin <address@hidden>.

--- lib/c-strtod.c.orig Thu Nov 18 22:32:07 2010
+++ lib/c-strtod.c      Thu Nov 18 22:30:42 2010
@@ -43,7 +43,7 @@
 # define STRTOD strtod
 #endif
 
-#ifdef LC_ALL_MASK
+#if defined LC_ALL_MASK && (LONG ? HAVE_STRTOLD_L : HAVE_STRTOD_L)
 
 /* Cache for the C locale object.
    Marked volatile so that different threads see the same value
@@ -67,7 +67,7 @@
 {
   DOUBLE r;
 
-#ifdef LC_ALL_MASK
+#if defined LC_ALL_MASK && (LONG ? HAVE_STRTOLD_L : HAVE_STRTOD_L)
 
   locale_t locale = c_locale ();
   if (!locale)
--- m4/c-strtod.m4.orig Thu Nov 18 22:32:07 2010
+++ m4/c-strtod.m4      Thu Nov 18 22:31:49 2010
@@ -1,4 +1,4 @@
-# c-strtod.m4 serial 11
+# c-strtod.m4 serial 12
 
 # Copyright (C) 2004-2006, 2009-2010 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
@@ -39,6 +39,7 @@
 
   dnl Prerequisites of lib/c-strtod.c.
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  AC_CHECK_FUNCS([strtod_l])
 
   AC_REQUIRE([AC_C_INLINE])
   :
@@ -51,6 +52,7 @@
   dnl Prerequisites of lib/c-strtold.c.
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
   AC_REQUIRE([gl_C99_STRTOLD])
+  AC_CHECK_FUNCS([strtold_l])
 
   AC_REQUIRE([AC_C_INLINE])
   :



reply via email to

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