]> Savannah Git Hosting - gnulib.git/commitdiff
strerrorname_np: Work around glibc bug on HPPA systems.
authorBruno Haible <bruno@clisp.org>
Tue, 21 Nov 2023 15:18:44 +0000 (16:18 +0100)
committerBruno Haible <bruno@clisp.org>
Fri, 24 Nov 2023 07:30:54 +0000 (08:30 +0100)
* m4/strerrorname_np.m4 (gl_FUNC_STRERRORNAME_NP): Test also
strerrorname_np (ENOSYM).
* lib/strerrorname_np.c (strerrorname_np): Update comments.
* tests/test-strerrorname_np.c (main): Likewise.
* doc/glibc-functions/strerrorname_np.texi: Mention that glibc 2.37
still needs a workaround.

ChangeLog
doc/glibc-functions/strerrorname_np.texi
lib/strerrorname_np.c
m4/strerrorname_np.m4
tests/test-strerrorname_np.c

index 3836b0dab28bfcd51b496ebdd5e766433c4b00d1..07ea51bd44432ec296251ae8dbec059949b7c6d0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2023-11-21  Bruno Haible  <bruno@clisp.org>
+
+       strerrorname_np: Work around glibc bug on HPPA systems.
+       * m4/strerrorname_np.m4 (gl_FUNC_STRERRORNAME_NP): Test also
+       strerrorname_np (ENOSYM).
+       * lib/strerrorname_np.c (strerrorname_np): Update comments.
+       * tests/test-strerrorname_np.c (main): Likewise.
+       * doc/glibc-functions/strerrorname_np.texi: Mention that glibc 2.37
+       still needs a workaround.
+
 2023-11-17  Bruno Haible  <bruno@clisp.org>
 
        realloc-gnu: Fix wrong configure test result with optimizing ibm-clang.
index b9c6252b154133a192b1827e3d9e96d5b148da61..b8928cc21cea99d79448238620b8923df2aca91a 100644 (file)
@@ -21,7 +21,8 @@ glibc 2.31, macOS 11.1, FreeBSD 13.0, NetBSD 9.0, OpenBSD 6.7, Minix 3.1.8, AIX
 This function returns wrong values on some platforms:
 @c https://sourceware.org/bugzilla/show_bug.cgi?id=26555
 @c https://sourceware.org/bugzilla/show_bug.cgi?id=29545
-glibc 2.36.
+@c https://sourceware.org/bugzilla/show_bug.cgi?id=31080
+glibc 2.37.
 @end itemize
 
 Portability problems not fixed by Gnulib:
index 4445a88ac6f219a47f50980a8feb88942f2c8184..23c0902b3b27901e7d16dada16fb9ffa6ceb3f0f 100644 (file)
@@ -1123,7 +1123,7 @@ strerrorname_np (int errnum)
     #if defined ENOSHARE
     case ENOSHARE:        return "ENOSHARE";
     #endif
-    /* HP-UX, OSF/1 */
+    /* Linux, HP-UX, OSF/1 */
     #if defined ENOSYM
     case ENOSYM:          return "ENOSYM";
     #endif
@@ -1247,7 +1247,7 @@ strerrorname_np (int errnum)
     #if defined EREMOTEIO
     case EREMOTEIO:       return "EREMOTEIO";
     #endif
-    /* HP-UX */
+    /* Linux, HP-UX */
     #if defined EREMOTERELEASE
     case EREMOTERELEASE:  return "EREMOTERELEASE";
     #endif
index cb160e102d1ced31b307adc97e0a475122692841..830a3e365f057e6ca85cc76ad3700af5a268bb51 100644 (file)
@@ -1,4 +1,4 @@
-# strerrorname_np.m4 serial 3
+# strerrorname_np.m4 serial 3.1
 dnl Copyright (C) 2020-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -18,6 +18,9 @@ AC_DEFUN([gl_FUNC_STRERRORNAME_NP],
     dnl In glibc 2.36, strerrorname_np returns NULL for EDEADLOCK on powerpc and
     dnl sparc platforms.
     dnl See <https://sourceware.org/bugzilla/show_bug.cgi?id=29545>.
+    dnl In glibc 2.37, strerrorname_np returns NULL for ENOSYM and
+    dnl EREMOTERELEASE on hppa platforms.
+    dnl See <https://sourceware.org/bugzilla/show_bug.cgi?id=31080>.
     AC_CACHE_CHECK([whether strerrorname_np works],
       [gl_cv_func_strerrorname_np_works],
       [AC_RUN_IFELSE(
@@ -30,6 +33,9 @@ AC_DEFUN([gl_FUNC_STRERRORNAME_NP],
                 #ifdef EDEADLOCK
                 || strerrorname_np (EDEADLOCK) == NULL
                 #endif
+                #ifdef ENOSYM
+                || strerrorname_np (ENOSYM) == NULL
+                #endif
                 ;
             ]])],
          [gl_cv_func_strerrorname_np_works=yes],
index 5bd0f3ab55e7f032db9633262369bd2ad9c36e99..4c149c0e96fea233e6e7ade58f2fa13fb59263be 100644 (file)
@@ -1125,7 +1125,7 @@ main (void)
   #if defined ENOSHARE
   ASSERT (strcmp (strerrorname_np (ENOSHARE), "ENOSHARE") == 0);
   #endif
-  /* HP-UX, OSF/1 */
+  /* Linux, HP-UX, OSF/1 */
   #if defined ENOSYM
   ASSERT (strcmp (strerrorname_np (ENOSYM), "ENOSYM") == 0);
   #endif
@@ -1249,7 +1249,7 @@ main (void)
   #if defined EREMOTEIO
   ASSERT (strcmp (strerrorname_np (EREMOTEIO), "EREMOTEIO") == 0);
   #endif
-  /* HP-UX */
+  /* Linux, HP-UX */
   #if defined EREMOTERELEASE
   ASSERT (strcmp (strerrorname_np (EREMOTERELEASE), "EREMOTERELEASE") == 0);
   #endif