bug-gnulib
[Top][All Lists]
Advanced

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

Re: monetary module build error with older glibc versions


From: Bruno Haible
Subject: Re: monetary module build error with older glibc versions
Date: Mon, 27 Nov 2017 00:27:47 +0100
User-agent: KMail/5.1.3 (Linux/4.4.0-98-generic; KDE/5.18.0; x86_64; ; )

Tom G. Christensen wrote:
> The monetary module is causing a build error on older glibc platforms 
> (e.g. CentOS 5):
> 
> depbase=`echo strfmon_l.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
>          gcc -std=gnu99 -DHAVE_CONFIG_H -DEXEEXT=\"\" -DEXEEXT=\"\" 
> -DNO_XMALLOC -DEXEEXT=\"\" -I. -I..  -DGNULIB_STRICT_CHECKING=1 
> -fvisibility=hidden -g -
> O2 -MT strfmon_l.o -MD -MP -MF $depbase.Tpo -c -o strfmon_l.o 
> strfmon_l.c &&\
>          mv -f $depbase.Tpo $depbase.Po
> In file included from strfmon_l.c:20:
> ./monetary.h:530: error: expected declaration specifiers or '...' before 
> 'locale_t'
> ./monetary.h:530: error: format string argument not a string type
> ./monetary.h:530: error: nonnull argument with out-of-range operand 
> number (argument 1, operand 4)
> strfmon_l.c:32: error: conflicting types for 'rpl_strfmon_l'
> ./monetary.h:530: error: previous declaration of 'rpl_strfmon_l' was here
> make[4]: *** [strfmon_l.o] Error 1
> 
> 
> The issue seems to be that in older glibc versions locale_t is defined 
> in <locale.h> instead of <xlocale.h> (which gets pulled in via 
> <monetary.h>).

Thanks for the report. Fixed as follows:


2017-11-26  Bruno Haible  <address@hidden>

        strfmon_l: Fix compilation error with glibc 2.25.
        Reported by Tom G. Christensen <address@hidden>
        in <https://lists.gnu.org/r/bug-gnulib/2017-11/msg00051.html>.
        * lib/monetary.in.h: Include also <locale.h>.

diff --git a/lib/monetary.in.h b/lib/monetary.in.h
index 52966c4..945f1ae 100644
--- a/lib/monetary.in.h
+++ b/lib/monetary.in.h
@@ -29,9 +29,13 @@
 #ifndef address@hidden@_MONETARY_H
 #define address@hidden@_MONETARY_H
 
-#if @GNULIB_STRFMON_L@ && @HAVE_XLOCALE_H@
+#if @GNULIB_STRFMON_L@
+# if @HAVE_XLOCALE_H@
 /* Get locale_t on Mac OS X 10.12.  */
-# include <xlocale.h>
+#  include <xlocale.h>
+# endif
+/* Get locale_t on glibc 2.25.  */
+# include <locale.h>
 #endif
 
 /* Like in <stdio.h>.  */




reply via email to

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