]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
string: Add strerrorname_np and strerrordesc_np
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Mon, 18 May 2020 20:41:25 +0000 (17:41 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Tue, 7 Jul 2020 18:02:57 +0000 (15:02 -0300)
The strerrorname_np returns error number name (e.g. "EINVAL" for EINVAL)
while strerrordesc_np returns string describing error number (e.g
"Invalid argument" for EINVAL).  Different than strerror,
strerrordesc_np does not attempt to translate the return description,
both functions return NULL for an invalid error number.

They should be used instead of sys_errlist and sys_nerr, both are
thread and async-signal safe.  These functions are GNU extensions.

Checked on x86-64-linux-gnu, i686-linux-gnu, powerpc64le-linux-gnu,
and s390x-linux-gnu.

Tested-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
42 files changed:
NEWS
include/stdio.h
manual/errno.texi
stdio-common/errlist.c
stdio-common/test-strerr.c [new file with mode: 0644]
string/Makefile
string/Versions
string/strerrordesc_np.c [new file with mode: 0644]
string/strerrorname_np.c [new file with mode: 0644]
string/string.h
sysdeps/mach/hurd/i386/libc.abilist
sysdeps/mach/hurd/test-err_np.c [new file with mode: 0644]
sysdeps/unix/sysv/linux/aarch64/libc.abilist
sysdeps/unix/sysv/linux/alpha/libc.abilist
sysdeps/unix/sysv/linux/arm/be/libc.abilist
sysdeps/unix/sysv/linux/arm/le/libc.abilist
sysdeps/unix/sysv/linux/csky/libc.abilist
sysdeps/unix/sysv/linux/hppa/libc.abilist
sysdeps/unix/sysv/linux/i386/libc.abilist
sysdeps/unix/sysv/linux/ia64/libc.abilist
sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
sysdeps/unix/sysv/linux/nios2/libc.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
sysdeps/unix/sysv/linux/sh/be/libc.abilist
sysdeps/unix/sysv/linux/sh/le/libc.abilist
sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist

diff --git a/NEWS b/NEWS
index d673531dc5d9a0903bbc5c6a61225bab21bf5b94..03e82d8adca29016fd4aaae86240e3a43150124f 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -57,6 +57,16 @@ Major new features:
   They should be used instead of sys_siglist or sys_sigabbrev and they
   are both thread and async-signal safe.  These functions are GNU extensions.
 
+* The functions strerrorname_np and strerrordesc_np have been added.  The
+  strerroname_np returns error number name (e.g. "EINVAL" for EINVAL) while
+  strerrordesc_np returns string describing error number
+  (e.g "Invalid argument" for EINVAL).  Different than strerror,
+  strerrordesc_np does not attempt to translate the return description, both
+  functions return NULL for an invalid error number.
+
+  They should be used instead of sys_errlist and sys_nerr, both are
+  thread and async-signal safe.  These functions are GNU extensions.
+
 Deprecated and removed features, and other changes affecting compatibility:
 
 * The deprecated <sys/sysctl.h> header and the sysctl function have been
index 9e3bf6fe42c1e392552b5e52d57044ca93527312..bc67d020d4664864016f0cda647b3c6415259944 100644 (file)
@@ -187,6 +187,7 @@ libc_hidden_proto (__libc_readline_unlocked);
 
 extern const char *const _sys_errlist_internal[] attribute_hidden;
 extern const char *__get_errlist (int) attribute_hidden;
+extern const char *__get_errname (int) attribute_hidden;
 
 libc_hidden_ldbl_proto (__asprintf)
 
index 8cb4ce8b489dbbc6b3decef023cb3cafa471a32b..18343392200598c8cff48a3f4b98fd86f88af335 100644 (file)
@@ -1207,6 +1207,29 @@ to @code{errno}.
 The function @code{perror} is declared in @file{stdio.h}.
 @end deftypefun
 
+@deftypefun void strerrorname_np (int @var{errnum})
+@standards{GNU, string.h}
+@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
+This function returns the name describing the error @var{errnum} or
+@code{NULL} if there is no known constant with this value (e.g "EINVAL"
+for @code{EINVAL}).
+
+@pindex string.h
+This function is a GNU extension, declared in the header file @file{string.h}.
+@end deftypefun
+
+@deftypefun void strerrordesc_np (int @var{errnum})
+@standards{GNU, string.h}
+@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
+This function returns the message describing the error @var{errnum} or
+@code{NULL} if there is no known constant with this value (e.g "Invalid
+argument" for @code{EINVAL}).  Different than @code{strerror} the returned
+description is not translated.
+
+@pindex string.h
+This function is a GNU extension, declared in the header file @file{string.h}.
+@end deftypefun
+
 @code{strerror} and @code{perror} produce the exact same message for any
 given error code; the precise text varies from system to system.  With
 @theglibc{}, the messages are fairly short; there are no multi-line
index df52356066d0a2445f4b3057eed7313727ede20d..d15f13a22a91cc326d53417da75f27a0f1c5739a 100644 (file)
@@ -35,4 +35,37 @@ __get_errlist (int errnum)
   return NULL;
 }
 
+static const union sys_errname_t
+{
+  struct
+  {
+#define MSGSTRFIELD1(line) str##line
+#define MSGSTRFIELD(line)  MSGSTRFIELD1(line)
+#define _S(n, str)         char MSGSTRFIELD(__LINE__)[sizeof(str)];
+#include <errlist.h>
+#undef _S
+  };
+  char str[0];
+} _sys_errname = { {
+#define _S(n, s) s,
+#include <errlist.h>
+#undef _S
+} };
+
+static const unsigned short _sys_errnameidx[] =
+{
+#define _S(n, s) [n] = offsetof(union sys_errname_t, MSGSTRFIELD(__LINE__)),
+#include <errlist.h>
+#undef _S
+};
+
+const char *
+__get_errname (int errnum)
+{
+  if (errnum < 0 || errnum >= array_length (_sys_errnameidx)
+      || (errnum > 0 && _sys_errnameidx[errnum] == 0))
+    return NULL;
+  return _sys_errname.str + _sys_errnameidx[errnum];
+}
+
 #include <errlist-compat.c>
diff --git a/stdio-common/test-strerr.c b/stdio-common/test-strerr.c
new file mode 100644 (file)
index 0000000..fded208
--- /dev/null
@@ -0,0 +1,65 @@
+/* Test strerrorname_np and strerrordesc_np.
+   Copyright (C) 2020 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#include <string.h>
+#include <errno.h>
+#include <array_length.h>
+
+#include <support/support.h>
+#include <support/check.h>
+
+#define N_(name)      name
+
+static const char *const errlist[] =
+  {
+/* This file is auto-generated from errlist.def.  */
+#include <errlist.h>
+  };
+
+#define MSGSTR_T errname_t
+#define MSGSTR   errname
+#define MSGIDX   errnameidx
+#include <errlist-name.h>
+#undef MSGSTR
+#undef MSGIDX
+
+static int
+do_test (void)
+{
+  TEST_VERIFY (strerrordesc_np (-1) == NULL);
+  TEST_VERIFY (strerrordesc_np (array_length (errlist)) == NULL);
+  for (size_t i = 0; i < array_length (errlist); i++)
+    {
+      if (errlist[i] == NULL)
+        continue;
+      TEST_COMPARE_STRING (strerrordesc_np (i), errlist[i]);
+    }
+
+  TEST_VERIFY (strerrorname_np (-1) == NULL);
+  TEST_VERIFY (strerrorname_np (array_length (errlist)) == NULL);
+  for (size_t i = 0; i < array_length (errlist); i++)
+    {
+      if (errlist[i] == NULL)
+        continue;
+      TEST_COMPARE_STRING (strerrorname_np (i), errname.str + errnameidx[i]);
+    }
+
+  return 0;
+}
+
+#include <support/test-driver.c>
index 8fe7e17fe20f04bdaf9ba7755297f812b7cf0a12..f8d3104e16f88cb185bf5c530d08fd53a0c0b42d 100644 (file)
@@ -45,7 +45,8 @@ routines      := strcat strchr strcmp strcoll strcpy strcspn          \
                   envz basename                                        \
                   strcoll_l strxfrm_l string-inlines memrchr           \
                   xpg-strerror strerror_l explicit_bzero               \
-                  sigdescr_np sigabbrev_np
+                  sigdescr_np sigabbrev_np strerrorname_np             \
+                  strerrordesc_np
 
 strop-tests    := memchr memcmp memcpy memmove mempcpy memset memccpy  \
                   stpcpy stpncpy strcat strchr strcmp strcpy strcspn   \
index 6f8dd2d372d82aef70e2e4e7f7550400d18922c6..298ecd401aa49fd5ec580d537aeaaf689b69c5f8 100644 (file)
@@ -87,5 +87,6 @@ libc {
   }
   GLIBC_2.32 {
     sigdescr_np; sigabbrev_np;
+    strerrordesc_np; strerrorname_np;
   }
 }
diff --git a/string/strerrordesc_np.c b/string/strerrordesc_np.c
new file mode 100644 (file)
index 0000000..cdaf3a7
--- /dev/null
@@ -0,0 +1,26 @@
+/* Return string describing error number.
+   Copyright (C) 2020 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#include <stdio.h>
+
+const char *
+__strerrordesc_np (int errnum)
+{
+  return __get_errlist (errnum);
+}
+weak_alias (__strerrordesc_np, strerrordesc_np)
diff --git a/string/strerrorname_np.c b/string/strerrorname_np.c
new file mode 100644 (file)
index 0000000..bc337d2
--- /dev/null
@@ -0,0 +1,25 @@
+/* Return string describing errno name.
+   Copyright (C) 2020 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#include <stdio.h>
+
+const char *
+strerrorname_np (int errnum)
+{
+  return __get_errname (errnum);
+}
index 0119d7f45d3c847611738a35c11988c766bc9993..b0be00c0f703ae7014fa7c424bfa8767edc500ca 100644 (file)
@@ -428,6 +428,13 @@ extern int __xpg_strerror_r (int __errnum, char *__buf, size_t __buflen)
 extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
      __THROW __nonnull ((2)) __wur  __attr_access ((__write_only__, 2, 3));
 # endif
+
+# ifdef __USE_GNU
+/* Return a string describing the meaning of tthe error in ERR.  */
+extern const char *strerrordesc_np (int __err) __THROW;
+/* Return a string with the error name in ERR.  */
+extern const char *strerrorname_np (int __err) __THROW;
+# endif
 #endif
 
 #ifdef __USE_XOPEN2K8
index 881b68978893040c6d113b9d727830f42fb68940..5f6154d5186658a09aeca7da243df2e51465cc5c 100644 (file)
@@ -2186,6 +2186,8 @@ GLIBC_2.32 mach_print F
 GLIBC_2.32 mremap F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
 GLIBC_2.32 thrd_current F
 GLIBC_2.32 thrd_equal F
 GLIBC_2.32 thrd_sleep F
diff --git a/sysdeps/mach/hurd/test-err_np.c b/sysdeps/mach/hurd/test-err_np.c
new file mode 100644 (file)
index 0000000..3127141
--- /dev/null
@@ -0,0 +1,4 @@
+#include <mach/error.h>
+
+#define ERR_MAP(value) err_get_code (value)
+#include <stdio-common/test-err_np.c>
index 0158b8ae02fce4b2a6ce25044dddb35c8bcb3be0..008a6c8e52bb43f5de984fd76466cac05e61cb3a 100644 (file)
@@ -2159,3 +2159,5 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
index 86ebaa643dea9f74a8bff182f2eb5df860beb2d8..2cfc5733edcd862ed044259c65823f32d568d3db 100644 (file)
@@ -2241,6 +2241,8 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
index d93ef6ba13768a33a785ec6f1c115207dd697fe7..0e1677b5a06f6ad09e7658a50a1724b1b96d10ee 100644 (file)
@@ -143,6 +143,8 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
 GLIBC_2.4 _Exit F
 GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
 GLIBC_2.4 _IO_2_1_stdin_ D 0xa0
index b78291a88b46226ecd024d97c678c987f109a2c0..e544ed75a40a7ede7ac5fb5c5b3fabbc5ab1badc 100644 (file)
@@ -140,6 +140,8 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
 GLIBC_2.4 _Exit F
 GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
 GLIBC_2.4 _IO_2_1_stdin_ D 0xa0
index 0305dfe243eb82977f8beb2c10898032c37e884c..6bb8042657d82485b4599b6644cf7d0ed055c0ad 100644 (file)
@@ -2103,3 +2103,5 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
index 0ffa0fbceb43caa9659a384b18bdcdb5eb067c0d..e0f8f29c40703ec0f918bc562fb63e983bb1f2b3 100644 (file)
@@ -2062,6 +2062,8 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
index 91a1ad63f1d57dde486a6e2e71de72601f1f23ca..155dd51e0de3f8c2a3c8029448c775a28c30c59e 100644 (file)
@@ -2228,6 +2228,8 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
index e94fc37acb26a7fa8dbacb722754f6f58ca52ee7..8cc12aa326c61cbf4c002fb48a11d81056cbd11f 100644 (file)
@@ -2094,6 +2094,8 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
index 9565a76b1b13e259ebd2536230342cedc7ffeae8..e02a61591c03c0b9799bdf6bcc8bebdf7fae9b5e 100644 (file)
@@ -144,6 +144,8 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
 GLIBC_2.4 _Exit F
 GLIBC_2.4 _IO_2_1_stderr_ D 0x98
 GLIBC_2.4 _IO_2_1_stdin_ D 0x98
index 9391092151d822af0d855e6bc31064fda3043880..8e90d9744a05e9156f562d0d74e42cb55686491a 100644 (file)
@@ -2174,6 +2174,8 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
index 37f1f58b7f319cddceb64ccfb5b76cfe333ec732..76e402cbf534f8196e60a1d7ad910ff4187cf977 100644 (file)
@@ -2154,3 +2154,5 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
index 8a3508d64e62f6122771376802c8a1f29e240fd8..8528547aa2b0e3c80736664f2d2de00ad282ecd5 100644 (file)
@@ -2151,3 +2151,5 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
index 7fce235f4488f8baf22e0c3be81134e07976fdc1..2b838c0c8e5a59db935093485927dbe5590905ba 100644 (file)
@@ -2145,6 +2145,8 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
index e31fff7fd2e60e4b629afe0cbbf2c43ee7a5ad66..9cde04785c7980cc979494eff6dd6241a220705e 100644 (file)
@@ -2143,6 +2143,8 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
index 43959894399f859ce1e19c53c4a5623956eb8681..be180e71cfdb50b27460e752dc6f2f654ed4667d 100644 (file)
@@ -2151,6 +2151,8 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
index 3ed5b951187510649347bef6bce71dcd62ebee62..8569cfb6cbd749397ae61581d9bf9810205817ce 100644 (file)
@@ -2145,6 +2145,8 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
index e940ebcf7fcbdb0fbc4570c803c9fd549886acf4..bce6c79b9b4ec18e95ee1b1c7ead7adf8c59f46b 100644 (file)
@@ -2192,3 +2192,5 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
index 34a84b4eb91462e77459b06063b6d67274f26263..1d0158a08e140a4359f737f8089a2947b5ab2df4 100644 (file)
@@ -2201,6 +2201,8 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
index 2caf08d819c0082a609a4fa862692cd73bfe45ef..f65772cf8abbf3eb0dd6f830861be87652cbf7cd 100644 (file)
@@ -2234,6 +2234,8 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
index efa4cef913a4bbd99c39645ad5dbab54b28752fb..cfe526b916eab8bb25d684eb6c540b79f1cbccbf 100644 (file)
@@ -2064,6 +2064,8 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
index 80bc0369cb257562e224f47c28ddaa77a31bad13..cbe0cf3d7ebab6e20fe5f9a900ed487a7776de14 100644 (file)
@@ -2354,3 +2354,5 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
index 665fa4293f656b9438fb6c38a8885c9957e79c9a..b361308505e78edeb11f1fc30b6fde16b3c9957e 100644 (file)
@@ -2121,3 +2121,5 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
index 979908d1bca60f1e0428f0ce526a7b87a9280cee..37e313a1b014f488ba382f4baf74c47c0242cd57 100644 (file)
@@ -2199,6 +2199,8 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
index 891c4928ce3118a3afb2c71e8082f75d8e1416b8..5ff64d8a0a413b5be06bae51c67a6e6b3b1ac1cb 100644 (file)
@@ -2100,6 +2100,8 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
index ea3f9158211960ba0013cca04dded0ac6a8ff310..7e65b3e317789d9273c39e849f656d4ca95ae048 100644 (file)
@@ -2069,6 +2069,8 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
index c6a9643a4915017d9a198991a6413ea65bf7a2d9..6a3eeed9213152b48d22e423ae9add6110f8c571 100644 (file)
@@ -2066,6 +2066,8 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
index 7bb54cc2bdd87fdfed26be6746f85a5ebff5e03e..196f7f2543ec7de2d60613206a264c32f6dbd0b1 100644 (file)
@@ -2190,6 +2190,8 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
index bcf36910ab861842aae22b4552dae58576d3eb50..2ca03d70621bdb6325fa9802fe52c812d4d2a290 100644 (file)
@@ -2117,6 +2117,8 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
index a077414c66df53aa81ada49e242f00940f7ec957..86a481be42052aa7c9b84f1398a5c0b308f7928c 100644 (file)
@@ -2075,6 +2075,8 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
index e2b881542c7adb55599c134cf54678c099c6fd1c..056de03ae391b865766e6656c969854493a751d3 100644 (file)
@@ -2172,3 +2172,5 @@ GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 sigabbrev_np F
 GLIBC_2.32 sigdescr_np F
+GLIBC_2.32 strerrordesc_np F
+GLIBC_2.32 strerrorname_np F