bug-gnulib
[Top][All Lists]
Advanced

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

Re: IBM z/OS compatibility issues - per-thread locale functions


From: Bruno Haible
Subject: Re: IBM z/OS compatibility issues - per-thread locale functions
Date: Fri, 13 Dec 2019 11:32:04 +0100
User-agent: KMail/5.1.3 (Linux/4.4.0-166-generic; KDE/5.18.0; x86_64; ; )

Daniel Richard G. wrote:
> I can now get past the library build, but then get errors compiling
> test-duplocale.c and test-locale.c. The former fails at line 26:
> 
>     SIGNATURE_CHECK (duplocale, locale_t, (locale_t));
> 
> The latter fails at line 49:
> 
>     locale_t b = LC_GLOBAL_LOCALE;
> 
> These tests probably don't make sense without the locale_t type.

This should fix it. Thanks for the feedback.


2019-12-13  Bruno Haible  <address@hidden>

        locale, duplocale, localename: Fix errors if locale_t does not exist.
        Reported by Daniel Richard G. in
        <https://lists.gnu.org/archive/html/bug-gnulib/2019-12/msg00078.html>.
        * lib/locale.in.h (HAVE_WORKING_NEWLOCALE, HAVE_WORKING_DUPLOCALE): New
        macros.
        * tests/test-locale.c: Test HAVE_WORKING_NEWLOCALE instead of
        HAVE_NEWLOCALE.
        * tests/test-localename.c: Likewise.
        * tests/test-duplocale.c: Test HAVE_WORKING_DUPLOCALE instead of
        HAVE_DUPLOCALE.
        * tests/test-locale-c++.cc: Likewise.

diff --git a/lib/locale.in.h b/lib/locale.in.h
index 77b8b3b..c0915a5 100644
--- a/lib/locale.in.h
+++ b/lib/locale.in.h
@@ -227,6 +227,9 @@ _GL_CXXALIAS_SYS (newlocale, locale_t,
 # if @HAVE_NEWLOCALE@
 _GL_CXXALIASWARN (newlocale);
 # endif
+# ifndef HAVE_WORKING_NEWLOCALE
+#  define HAVE_WORKING_NEWLOCALE 1
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef newlocale
 # if HAVE_RAW_DECL_NEWLOCALE
@@ -251,6 +254,9 @@ _GL_CXXALIAS_SYS (duplocale, locale_t, (locale_t locale));
 # if @HAVE_DUPLOCALE@
 _GL_CXXALIASWARN (duplocale);
 # endif
+# ifndef HAVE_WORKING_DUPLOCALE
+#  define HAVE_WORKING_DUPLOCALE 1
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef duplocale
 # if HAVE_RAW_DECL_DUPLOCALE
diff --git a/tests/test-duplocale.c b/tests/test-duplocale.c
index 3313c83..a0f699e 100644
--- a/tests/test-duplocale.c
+++ b/tests/test-duplocale.c
@@ -20,7 +20,7 @@
 
 #include <locale.h>
 
-#if HAVE_DUPLOCALE
+#if HAVE_WORKING_DUPLOCALE
 
 #include "signature.h"
 SIGNATURE_CHECK (duplocale, locale_t, (locale_t));
diff --git a/tests/test-locale-c++.cc b/tests/test-locale-c++.cc
index ae24705..84abe9d 100644
--- a/tests/test-locale-c++.cc
+++ b/tests/test-locale-c++.cc
@@ -36,7 +36,7 @@ SIGNATURE_CHECK (GNULIB_NAMESPACE::setlocale, char *, (int, 
const char *));
 SIGNATURE_CHECK (GNULIB_NAMESPACE::newlocale, locale_t, (int, const char *, 
locale_t));
 #endif
 
-#if GNULIB_TEST_DUPLOCALE && HAVE_DUPLOCALE
+#if GNULIB_TEST_DUPLOCALE && HAVE_WORKING_DUPLOCALE
 SIGNATURE_CHECK (GNULIB_NAMESPACE::duplocale, locale_t, (locale_t));
 #endif
 
diff --git a/tests/test-locale.c b/tests/test-locale.c
index 91deeed..80ca924 100644
--- a/tests/test-locale.c
+++ b/tests/test-locale.c
@@ -44,7 +44,7 @@ verify (sizeof NULL == sizeof (void *));
 int
 main ()
 {
-#if HAVE_NEWLOCALE
+#if HAVE_WORKING_NEWLOCALE
   /* Check that the locale_t type and the LC_GLOBAL_LOCALE macro are defined.  
*/
   locale_t b = LC_GLOBAL_LOCALE;
   (void) b;
diff --git a/tests/test-localename.c b/tests/test-localename.c
index 77699d9..5a52748 100644
--- a/tests/test-localename.c
+++ b/tests/test-localename.c
@@ -26,7 +26,7 @@
 
 #include "macros.h"
 
-#if HAVE_NEWLOCALE && HAVE_WORKING_USELOCALE && !HAVE_FAKE_LOCALES
+#if HAVE_WORKING_NEWLOCALE && HAVE_WORKING_USELOCALE && !HAVE_FAKE_LOCALES
 # define HAVE_GOOD_USELOCALE 1
 #endif
 




reply via email to

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