> 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' \