[glibc] Fix hurd bootstrap after 4c6f92daead

Adhemerval Zanella via Glibc-cvs <[email protected]> Wed, 20 May 2026 18:18:19 +0000 (GMT)
Newsgroups gmane.comp.lib.glibc.cvs
Message-ID <[email protected]>
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=209ad6ff9da8ffaac891c610b31a5b8dabe97e36

commit 209ad6ff9da8ffaac891c610b31a5b8dabe97e36
Author: Adhemerval Zanella <[email protected]>
Date:   Wed May 20 08:47:25 2026 -0300

    Fix hurd bootstrap after 4c6f92daead
    
    Hurd bootstrap with build-many-glibc.py fails for i686-gnu since
    4c6f92daead7aa989ae1b7c67760f81a3550f044:
    
    In file included from zic.c:16:
    private.h:849:1: error: static declaration of ‘mempcpy’ follows non-static declaration
      849 | mempcpy(void *restrict s1, void const *restrict s2, size_t n)
          | ^~~~~~~
    In file included from ../include/string.h:60,
                     from private.h:222:
    ../string/string.h:432:14: note: previous declaration of ‘mempcpy’ with type [...]
      432 | extern void *mempcpy (void *__restrict __dest,
          |              ^~~~~~~
    
    The libc-symbols.h already defined some HAVE_*, but timezone files are
    built with -D_ISOMAC.  Remove its usage and only define _ and N_
    macros if not already defined.
    
    Checked on x86_64-linux-gnu and with a build-many-glibcs.py build for
    i686-gnu.
    Reviewed-by: H.J. Lu <[email protected]>
    Reviewed-by: Paul Eggert <[email protected]>

Diff:
---
 include/libc-symbols.h |  1 +
 timezone/Makefile      |  2 +-
 timezone/private.h     | 16 ++++++++++------
 3 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/include/libc-symbols.h b/include/libc-symbols.h
index 67edb4965e..6a9f6403ab 100644
--- a/include/libc-symbols.h
+++ b/include/libc-symbols.h
@@ -113,6 +113,7 @@
 #define HAVE_LIBINTL_H	1
 #define HAVE_WCTYPE_H	1
 #define HAVE_ISWCTYPE	1
+#define HAVE_MEMPCPY	1
 #define ENABLE_NLS	1
 
 /* The symbols in all the user (non-_) macros are C symbols.  */
diff --git a/timezone/Makefile b/timezone/Makefile
index 426061737a..ce9abe6cb2 100644
--- a/timezone/Makefile
+++ b/timezone/Makefile
@@ -67,7 +67,7 @@ tz-cflags = -DTZDIR='"$(zonedir)"' \
 	    -DTZDEFAULT='"$(localtime-file)"' \
 	    -DTZDEFRULES='"$(posixrules-file)"' \
 	    -DTM_GMTOFF=tm_gmtoff -DTM_ZONE=tm_zone \
-	    -DHAVE_GETTEXT -DUSE_LTZ=0 -D_ISOMAC -DTZ_DOMAIN='"libc"' \
+	    -DHAVE_GETTEXT -DUSE_LTZ=0 -DTZ_DOMAIN='"libc"' \
 	    -include $(common-objpfx)config.h $(config-cflags-wno-maybe-uninitialized)
 
 CFLAGS-zdump.c += $(tz-cflags)
diff --git a/timezone/private.h b/timezone/private.h
index ee191b4ec3..1e6db08cb3 100644
--- a/timezone/private.h
+++ b/timezone/private.h
@@ -1071,12 +1071,16 @@ time_t timeoff(struct tm *, long);
 ** The default is to use gettext if available, and use MSGID otherwise.
 */
 
-#if HAVE_GETTEXT
-# define _(msgid) gettext(msgid)
-#else /* !HAVE_GETTEXT */
-# define _(msgid) (msgid)
-#endif /* !HAVE_GETTEXT */
-#define N_(msgid) (msgid)
+#ifndef _
+# if HAVE_GETTEXT
+#  define _(msgid) gettext(msgid)
+# else
+#  define _(msgid) (msgid)
+# endif
+#endif
+#ifndef N_
+# define N_(msgid) (msgid)
+#endif
 
 #if !defined TZ_DOMAIN && defined HAVE_GETTEXT
 # define TZ_DOMAIN "tz"