From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by sourceware.org (Postfix) with ESMTP id 71CD33858D35 for ; Mon, 6 Jul 2020 15:07:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 71CD33858D35 Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-5-8LKamYH6OoOlZRVg_m0DNA-1; Mon, 06 Jul 2020 11:07:21 -0400 X-MC-Unique: 8LKamYH6OoOlZRVg_m0DNA-1 Received: by mail-qt1-f200.google.com with SMTP id r25so28506621qtj.11 for ; Mon, 06 Jul 2020 08:07:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=1yVvfeLcSPigvKYNzKWIyAniSbEhkA5X34b8xSp/roA=; b=APXoV3cER5sZx3sw48gaHQrPQFAXUur1V5g7NsqAiJFGTX0uog0gAdJZDnxVel4NWz yACzdgf5rFgWaGEB34/G2SgAKoEGG5jTwWC5YcceHClvKogF0diPd65gTwBppvpxRSdY Jf2UrklQCKXD9SSGW/bMAdiZGYfc1qzdx2T0L69aD3+6pHaXxYbWUSWCRlXASEhnz6hZ cowKzThb+qKvC+KSTcEsCaGh3l/ZED+uH+Yh7FAYZ+35HSyS96d3c0UTqW40E61YM0WG Ys2DiEwFUODPmEScuPs6nWrBfC69MtBpxahJ26VvbeyKGtlgi5AGTEXztd6CewrD/MKJ RRdw== X-Gm-Message-State: AOAM531Fj2Prc/g5ubFZyPSELDGnSItDBHZ07FuYkOi68zu5P8n929/x vXErOszN0pvdBzcU6IpJpbuVS3voL1t+uS7TYXhMR3ZG8gIHUhKxXxeksgIfbKXpYj6Nh4KIEGA 2Kbr4gGkzc63fH4vQGUBK X-Received: by 2002:ac8:4d44:: with SMTP id x4mr50713634qtv.34.1594048039090; Mon, 06 Jul 2020 08:07:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxMRPYLb7ASts9pHd9xy30O1AVNhRw7JHQJe+kBOrD/ceTaz5lo1AhShNtA/g7ttGut2Bzf0Q== X-Received: by 2002:ac8:4d44:: with SMTP id x4mr50713555qtv.34.1594048038199; Mon, 06 Jul 2020 08:07:18 -0700 (PDT) Received: from [192.168.1.4] (198-84-170-103.cpe.teksavvy.com. [198.84.170.103]) by smtp.gmail.com with ESMTPSA id h52sm23561485qtb.88.2020.07.06.08.07.17 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 06 Jul 2020 08:07:17 -0700 (PDT) Subject: Re: [PATCH v6] string: Add strerrorname_np and strerrordesc_np To: Adhemerval Zanella , libc-alpha@sourceware.org References: <409d375e-0496-ad73-e46e-d1b026340e02@redhat.com> <20200706135743.1265504-1-adhemerval.zanella@linaro.org> From: Carlos O'Donell Organization: Red Hat Message-ID: Date: Mon, 6 Jul 2020 11:07:16 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <20200706135743.1265504-1-adhemerval.zanella@linaro.org> Content-Language: en-US X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jul 2020 15:07:29 -0000 On 7/6/20 9:57 AM, Adhemerval Zanella wrote: > The strerrorname_np returns error number name (i.g. "EINVAL" for EINVAL) > while strerrordesc_np returns string describing error number (i.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. OK for master if you fix the hurd symbol names in the abi list. Reviewed-by: Carlos O'Donell > Tested-by: Carlos O'Donell > --- > NEWS | 10 +++ > include/stdio.h | 1 + > manual/errno.texi | 23 +++++++ > stdio-common/errlist.c | 33 ++++++++++ > stdio-common/test-strerr.c | 65 +++++++++++++++++++ > string/Makefile | 3 +- > string/Versions | 1 + > string/strerrordesc_np.c | 26 ++++++++ > string/strerrorname_np.c | 25 +++++++ > string/string.h | 7 ++ > sysdeps/mach/hurd/i386/libc.abilist | 2 + > sysdeps/mach/hurd/test-err_np.c | 4 ++ > sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 + > sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 + > sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 + > sysdeps/unix/sysv/linux/csky/libc.abilist | 2 + > sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 + > sysdeps/unix/sysv/linux/i386/libc.abilist | 2 + > sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 + > .../sysv/linux/m68k/coldfire/libc.abilist | 2 + > .../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 + > .../sysv/linux/microblaze/be/libc.abilist | 2 + > .../sysv/linux/microblaze/le/libc.abilist | 2 + > .../sysv/linux/mips/mips32/fpu/libc.abilist | 2 + > .../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 + > .../sysv/linux/mips/mips64/n32/libc.abilist | 2 + > .../sysv/linux/mips/mips64/n64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 + > .../linux/powerpc/powerpc32/fpu/libc.abilist | 2 + > .../powerpc/powerpc32/nofpu/libc.abilist | 2 + > .../linux/powerpc/powerpc64/be/libc.abilist | 2 + > .../linux/powerpc/powerpc64/le/libc.abilist | 2 + > .../unix/sysv/linux/riscv/rv64/libc.abilist | 2 + > .../unix/sysv/linux/s390/s390-32/libc.abilist | 2 + > .../unix/sysv/linux/s390/s390-64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 + > sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 + > .../sysv/linux/sparc/sparc32/libc.abilist | 2 + > .../sysv/linux/sparc/sparc64/libc.abilist | 2 + > .../unix/sysv/linux/x86_64/64/libc.abilist | 2 + > .../unix/sysv/linux/x86_64/x32/libc.abilist | 2 + > 42 files changed, 259 insertions(+), 1 deletion(-) > create mode 100644 stdio-common/test-strerr.c > create mode 100644 string/strerrordesc_np.c > create mode 100644 string/strerrorname_np.c > create mode 100644 sysdeps/mach/hurd/test-err_np.c > > diff --git a/NEWS b/NEWS > index ee91175567..b63b022267 100644 > --- a/NEWS > +++ b/NEWS > @@ -41,6 +41,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 and both are > + thread and async-signal safe. These functions are GNU extensions. > + > Deprecated and removed features, and other changes affecting compatibility: > > * The deprecated header and the sysctl function have been > diff --git a/include/stdio.h b/include/stdio.h > index 9e3bf6fe42..bc67d020d4 100644 > --- a/include/stdio.h > +++ b/include/stdio.h > @@ -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) > > diff --git a/manual/errno.texi b/manual/errno.texi > index 8cb4ce8b48..1834339220 100644 > --- a/manual/errno.texi > +++ b/manual/errno.texi > @@ -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 > diff --git a/stdio-common/errlist.c b/stdio-common/errlist.c > index df52356066..d15f13a22a 100644 > --- a/stdio-common/errlist.c > +++ b/stdio-common/errlist.c > @@ -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 > +#undef _S > + }; > + char str[0]; > +} _sys_errname = { { > +#define _S(n, s) s, > +#include > +#undef _S > +} }; > + > +static const unsigned short _sys_errnameidx[] = > +{ > +#define _S(n, s) [n] = offsetof(union sys_errname_t, MSGSTRFIELD(__LINE__)), > +#include > +#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 > diff --git a/stdio-common/test-strerr.c b/stdio-common/test-strerr.c > new file mode 100644 > index 0000000000..fded208118 > --- /dev/null > +++ b/stdio-common/test-strerr.c > @@ -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 > + . */ > + > +#include > +#include > +#include > + > +#include > +#include > + > +#define N_(name) name > + > +static const char *const errlist[] = > + { > +/* This file is auto-generated from errlist.def. */ > +#include > + }; > + > +#define MSGSTR_T errname_t > +#define MSGSTR errname > +#define MSGIDX errnameidx > +#include > +#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 > diff --git a/string/Makefile b/string/Makefile > index 8fe7e17fe2..f8d3104e16 100644 > --- a/string/Makefile > +++ b/string/Makefile > @@ -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 \ > diff --git a/string/Versions b/string/Versions > index 6f8dd2d372..298ecd401a 100644 > --- a/string/Versions > +++ b/string/Versions > @@ -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 > index 0000000000..cdaf3a7f44 > --- /dev/null > +++ b/string/strerrordesc_np.c > @@ -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 > + . */ > + > +#include > + > +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 > index 0000000000..bc337d20c2 > --- /dev/null > +++ b/string/strerrorname_np.c > @@ -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 > + . */ > + > +#include > + > +const char * > +strerrorname_np (int errnum) > +{ > + return __get_errname (errnum); > +} > diff --git a/string/string.h b/string/string.h > index 0119d7f45d..b0be00c0f7 100644 > --- a/string/string.h > +++ b/string/string.h > @@ -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 > diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist > index 6e52e9b74a..de41e535ef 100644 > --- a/sysdeps/mach/hurd/i386/libc.abilist > +++ b/sysdeps/mach/hurd/i386/libc.abilist > @@ -2181,6 +2181,8 @@ GLIBC_2.3.4 setsourcefilter F > GLIBC_2.3.4 xdr_quad_t F > GLIBC_2.3.4 xdr_u_quad_t F > GLIBC_2.30 twalk_r F > +GLIBC_2.32 errdescr_np F > +GLIBC_2.32 errname_np F As Andreas noted this is wrong. > GLIBC_2.32 mach_print F > GLIBC_2.32 mremap F > GLIBC_2.32 sigabbrev_np F > diff --git a/sysdeps/mach/hurd/test-err_np.c b/sysdeps/mach/hurd/test-err_np.c > new file mode 100644 > index 0000000000..3127141128 > --- /dev/null > +++ b/sysdeps/mach/hurd/test-err_np.c > @@ -0,0 +1,4 @@ > +#include > + > +#define ERR_MAP(value) err_get_code (value) > +#include > diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist > index bb6045d8a6..c7d8ab90c3 100644 > --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist > +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist > @@ -2157,3 +2157,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 > diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist > index 8e15a58eaf..e93eee7931 100644 > --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist > +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist > @@ -2239,6 +2239,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 > diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist > index ce82b840e8..02e75d655a 100644 > --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist > +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist > @@ -141,6 +141,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 > diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist > index c7a436cd42..ad30a662b9 100644 > --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist > +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist > @@ -138,6 +138,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 > diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist > index 7f51d47b2f..e5174594a1 100644 > --- a/sysdeps/unix/sysv/linux/csky/libc.abilist > +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist > @@ -2101,3 +2101,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 > diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist > index 053cda00a4..8e00ff5e5d 100644 > --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist > +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist > @@ -2060,6 +2060,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 > diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist > index f18de50f9e..c84fb17c81 100644 > --- a/sysdeps/unix/sysv/linux/i386/libc.abilist > +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist > @@ -2226,6 +2226,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 > diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist > index a1966cac5a..70dc72391e 100644 > --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist > +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist > @@ -2092,6 +2092,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 > diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist > index 8f44bc9231..c96f6c98b0 100644 > --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist > +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist > @@ -142,6 +142,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 > diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist > index 088f2fa0f2..e880fc83bf 100644 > --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist > +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist > @@ -2172,6 +2172,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 > diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist > index 34c1c4fdca..dce473c4b1 100644 > --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist > +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist > @@ -2152,3 +2152,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 > diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist > index 099d51e893..b367f119cb 100644 > --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist > +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist > @@ -2149,3 +2149,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 > diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist > index ea86646c3b..9480b7ebf9 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist > +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist > index 9adac43e36..c007d170de 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist > +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist > @@ -2141,6 +2141,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 > diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist > index c42c093cfb..ee7655936d 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist > +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist > @@ -2149,6 +2149,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 > diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist > index 605e60a35e..b50be3f570 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist > +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist > index 7a57babca5..7c4127baee 100644 > --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist > +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist > @@ -2190,3 +2190,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 > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist > index c3745c3733..ac528d2611 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist > index 719512e999..d5279024c8 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist > @@ -2232,6 +2232,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 > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist > index 3f79daa39c..ee312901f6 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist > @@ -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 _IO_fprintf F > GLIBC_2.4 _IO_printf F > GLIBC_2.4 _IO_sprintf F > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist > index af1a2ae8a6..400b8f4e8b 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist > @@ -2352,3 +2352,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 > diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist > index ff5b64c1dd..03e477bc75 100644 > --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist > +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist > @@ -2119,3 +2119,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 > diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist > index 576caca63c..a82ce6bfea 100644 > --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist > +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist > @@ -2197,6 +2197,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 > diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist > index 7201b10288..1b4c4a79b9 100644 > --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist > +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist > @@ -2098,6 +2098,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 > diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist > index 4f954ac7ee..8e5cd9f9b8 100644 > --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist > +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist > @@ -2067,6 +2067,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 > diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist > index 9db9ba5cc0..ccff98f7ff 100644 > --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist > +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist > @@ -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 __confstr_chk F > GLIBC_2.4 __fgets_chk F > GLIBC_2.4 __fgets_unlocked_chk F > diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist > index ecb54db317..9e4b84970b 100644 > --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist > +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist > @@ -2188,6 +2188,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 > diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist > index 74bd6efed8..99b0e1b48b 100644 > --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist > +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist > @@ -2115,6 +2115,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 > diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist > index 50e45a43e8..1fc276173f 100644 > --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist > +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist > @@ -2073,6 +2073,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 > diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist > index 59b26b097d..f81123e6b4 100644 > --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist > +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist > @@ -2170,3 +2170,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 > -- Cheers, Carlos.