> 2025-02-22  Bruno Haible  <br...@clisp.org>
> 
>       * lib/getlocalename_l.c: Most code moved to
>       lib/getlocalename_l-unsafe.c.

After this change, I get a compilation error on OpenBSD (and presumably
also AIX):

cc -DHAVE_CONFIG_H -DNO_XMALLOC -I. -I../../lib -I..  -I. -I../../lib -I.. 
-I../..  -DIN_LIBUNISTRING -DDEPENDS_ON_LIBICONV=1  -I/usr/local/include -Wall  
-g -O2 -c ../../lib/getlocalename_l-unsafe.c
../../lib/getlocalename_l-unsafe.c:122:4: error: "newlocale, duplocale, 
freelocale not being replaced as expected!"
#  error "newlocale, duplocale, freelocale not being replaced as expected!"
   ^

This patch fixes it.


2025-02-24  Bruno Haible  <br...@clisp.org>

        getlocalename_l-unsafe: Fix compilation error on OpenBSD, AIX.
        * modules/getlocalename_l-unsafe (configure.ac): Add module indicator.
        * m4/locale_h.m4 (gl_LOCALE_H_REQUIRE_DEFAULTS): Initialize
        GNULIB_GETLOCALENAME_L_UNSAFE.
        * modules/locale-h (Makefile.am): Substitute
        GNULIB_GETLOCALENAME_L_UNSAFE.
        * lib/locale.in.h (newlocale, duplocale, freelocale): Test the module
        indicator of 'getlocalename_l-unsafe', not the module indicator of
        'getlocalename_l'.

diff --git a/lib/locale.in.h b/lib/locale.in.h
index 2b10a6b95d..5eead0a360 100644
--- a/lib/locale.in.h
+++ b/lib/locale.in.h
@@ -300,7 +300,7 @@ _GL_WARN_ON_USE (setlocale, "setlocale works differently on 
native Windows - "
 # include "setlocale_null.h"
 #endif
 
-#if @GNULIB_NEWLOCALE@ || (@GNULIB_GETLOCALENAME_L@ && 
@LOCALENAME_ENHANCE_LOCALE_FUNCS@ && @HAVE_NEWLOCALE@)
+#if @GNULIB_NEWLOCALE@ || (@GNULIB_GETLOCALENAME_L_UNSAFE@ && 
@LOCALENAME_ENHANCE_LOCALE_FUNCS@ && @HAVE_NEWLOCALE@)
 # if @REPLACE_NEWLOCALE@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef newlocale
@@ -331,7 +331,7 @@ _GL_WARN_ON_USE (newlocale, "newlocale is not portable");
 # endif
 #endif
 
-#if @GNULIB_DUPLOCALE@ || (@GNULIB_GETLOCALENAME_L@ && 
@LOCALENAME_ENHANCE_LOCALE_FUNCS@ && @HAVE_DUPLOCALE@)
+#if @GNULIB_DUPLOCALE@ || (@GNULIB_GETLOCALENAME_L_UNSAFE@ && 
@LOCALENAME_ENHANCE_LOCALE_FUNCS@ && @HAVE_DUPLOCALE@)
 # if @REPLACE_DUPLOCALE@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef duplocale
@@ -357,7 +357,7 @@ _GL_WARN_ON_USE (duplocale, "duplocale is unportable and 
buggy on some glibc sys
 # endif
 #endif
 
-#if @GNULIB_FREELOCALE@ || (@GNULIB_GETLOCALENAME_L@ && 
@LOCALENAME_ENHANCE_LOCALE_FUNCS@ && @HAVE_FREELOCALE@)
+#if @GNULIB_FREELOCALE@ || (@GNULIB_GETLOCALENAME_L_UNSAFE@ && 
@LOCALENAME_ENHANCE_LOCALE_FUNCS@ && @HAVE_FREELOCALE@)
 # if @REPLACE_FREELOCALE@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef freelocale
diff --git a/m4/locale_h.m4 b/m4/locale_h.m4
index 0b6b6f182d..058dc7924b 100644
--- a/m4/locale_h.m4
+++ b/m4/locale_h.m4
@@ -1,5 +1,5 @@
 # locale_h.m4
-# serial 35
+# serial 36
 dnl Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -180,6 +180,7 @@ AC_DEFUN([gl_LOCALE_H_REQUIRE_DEFAULTS]
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUPLOCALE])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREELOCALE])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOCALENAME_L])
+    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOCALENAME_L_UNSAFE])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOCALENAME_UNSAFE])
   ])
   m4_require(GL_MODULE_INDICATOR_PREFIX[_LOCALE_H_MODULE_INDICATOR_DEFAULTS])
diff --git a/modules/getlocalename_l-unsafe b/modules/getlocalename_l-unsafe
index 5a37d46b85..b3873d7b02 100644
--- a/modules/getlocalename_l-unsafe
+++ b/modules/getlocalename_l-unsafe
@@ -24,6 +24,7 @@ free-posix
 configure.ac:
 gl_FUNC_GETLOCALENAME_L_UNSAFE
 gl_PREREQ_GETLOCALENAME_L_UNSAFE
+gl_LOCALE_MODULE_INDICATOR([getlocalename_l-unsafe])
 
 Makefile.am:
 if !GL_COND_OBJ_GETLOCALENAME_L_UNSAFE_LIMITED
diff --git a/modules/locale-h b/modules/locale-h
index 42eb9b5fbc..00910fde2a 100644
--- a/modules/locale-h
+++ b/modules/locale-h
@@ -42,6 +42,7 @@ locale.h: locale.in.h $(top_builddir)/config.status 
$(CXXDEFS_H) $(ARG_NONNULL_H
              -e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \
              -e 's/@''GNULIB_FREELOCALE''@/$(GNULIB_FREELOCALE)/g' \
              -e 's/@''GNULIB_GETLOCALENAME_L''@/$(GNULIB_GETLOCALENAME_L)/g' \
+             -e 
's/@''GNULIB_GETLOCALENAME_L_UNSAFE''@/$(GNULIB_GETLOCALENAME_L_UNSAFE)/g' \
              -e 
's/@''GNULIB_LOCALENAME_UNSAFE''@/$(GNULIB_LOCALENAME_UNSAFE)/g' \
              -e 's|@''HAVE_NEWLOCALE''@|$(HAVE_NEWLOCALE)|g' \
              -e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \




Reply via email to