From patchwork Tue Jun 9 13:21:21 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adhemerval Zanella X-Patchwork-Id: 1305945 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org (client-ip=8.43.85.97; helo=sourceware.org; envelope-from=libc-alpha-bounces@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=sourceware.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha256 header.s=default header.b=crELShIc; dkim-atps=neutral Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49h9kS4dVtz9sRK for ; Tue, 9 Jun 2020 23:21:36 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 6DAE7388A80E; Tue, 9 Jun 2020 13:21:34 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6DAE7388A80E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1591708894; bh=/VP8Cwm90YVG4KzCzrTVMwj8FoJ/0hajBn4OKwJ5Cgg=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=crELShIcVeksMp4GucFcGTx8nLN6PYH9UxEnEuKJa8QUbQxJcrAaSGXIufj1JpGFI sqP3W+Iwb3+owvUigLFLKWB+y6n35SWGiTZmUqjKrm0sUl6tgLKOQ0KEHcljdUoa4d xyHXU6d21XedRseeK1bRVLwYNg3h/FqMHMkh+NYc= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-qt1-x82d.google.com (mail-qt1-x82d.google.com [IPv6:2607:f8b0:4864:20::82d]) by sourceware.org (Postfix) with ESMTPS id 9C9433840C14 for ; Tue, 9 Jun 2020 13:21:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 9C9433840C14 Received: by mail-qt1-x82d.google.com with SMTP id u17so17544991qtq.1 for ; Tue, 09 Jun 2020 06:21:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=/VP8Cwm90YVG4KzCzrTVMwj8FoJ/0hajBn4OKwJ5Cgg=; b=GF5+d6Mnc8y1JCmrk5PRcmsZbxer2+SWLCXfHFLtvjobaREjriQERZWnRDK38H/xKd NaPo4IvGQdTZQl5vdSe8ozWGNTzYLMwmCKYHfkZRGpkh1dyziyftnCvUjNmJ35hPDOWu Hh5bCrcp5zdvtTwdMUKCPFUPDY6X4E+vOYqG9xF6E/ymf0UcAMZPHJ5c0vEEbTbwEuu/ 5W3EmTZuY9N6D235m/h1BMS89RdekIEYCiyry4BkVKGgbIUcq3n3cNF0aa0Udx8SIrLY IZhfMf9u/5zM9WknGsAFyeQl+FuQcRj+u5n+M3sNAjqDCmQKaeHwS1orCCtvQGMGlI+i dpKg== X-Gm-Message-State: AOAM532j7XnNBAerFxjBZ92BlA0L6q0tbd9A1Ri8y6JknBDJkgLNH3ko DB7bEM0pkDLEOqYxJJx44k3OmaDhCsw= X-Google-Smtp-Source: ABdhPJwGFxvXIGC8ANw9XhdmbP8X9Y9d3AH+5bCw8cXj7sK/wiRzzcmhTikdluhrolFgJsl32Mo6RQ== X-Received: by 2002:aed:3169:: with SMTP id 96mr27527186qtg.211.1591708885381; Tue, 09 Jun 2020 06:21:25 -0700 (PDT) Received: from localhost.localdomain ([177.194.48.209]) by smtp.googlemail.com with ESMTPSA id g13sm9302173qki.95.2020.06.09.06.21.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Jun 2020 06:21:24 -0700 (PDT) To: libc-alpha@sourceware.org Subject: [PATCH v4] string: Add strerrorname and strerrordesc Date: Tue, 9 Jun 2020 10:21:21 -0300 Message-Id: <20200609132121.3496277-1-adhemerval.zanella@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200603183444.587742-13-adhemerval.zanella@linaro.org> References: <20200603183444.587742-13-adhemerval.zanella@linaro.org> MIME-Version: 1.0 X-Spam-Status: No, score=-14.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, 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-Patchwork-Original-From: Adhemerval Zanella via Libc-alpha From: Adhemerval Zanella Reply-To: Adhemerval Zanella Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" This updated version adjusts the strerrorname internal list creation due the updated sys_errlist patch [1]. It uses the generic errlist.h list instead of the script to create both _sys_errname and _sys_errnameidx. [1] https://sourceware.org/pipermail/libc-alpha/2020-June/114921.html --- The strerrorname returns error number name (i.g. "EINVAL" for EINVAL) while strerrordesc returns string describing error number (i.g "Invalid argument" for EINVAL). Different than strerror, strerrordesc does not attempt to translate the return description and 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. Checked on x86-64-linux-gnu, i686-linux-gnu, powerpc64le-linux-gnu, and s390x-linux-gnu. --- NEWS | 10 +++ include/stdio.h | 1 + manual/errno.texi | 23 +++++++ stdio-common/errlist.c | 33 ++++++++++ stdio-common/test-strerr.c | 65 +++++++++++++++++++ string/Makefile | 2 +- string/Versions | 1 + string/strerrordesc.c | 26 ++++++++ string/strerrorname.c | 25 +++++++ string/string.h | 5 ++ 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, 256 insertions(+), 1 deletion(-) create mode 100644 stdio-common/test-strerr.c create mode 100644 string/strerrordesc.c create mode 100644 string/strerrorname.c create mode 100644 sysdeps/mach/hurd/test-err_np.c diff --git a/NEWS b/NEWS index f504772eb6..888727581b 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 and strerrordesc have been added. The + strerroname returns error number name (i.g. "EINVAL" for EINVAL) while + strerrordesc returns string describing error number (i.g "Invalid argument" + for EINVAL). Different than strerror, strerrordesc does not attempt to + translate the return description and 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..dfc4001af0 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 (int @var{errnum}) +@standards{GNU, string.h} +@safety{@prelim{}@mtsafe{@mtssigintr{}}@assafe{}@acsafe{}} +This function returns the name describing the error @var{errnum} or +@code{NULL} if there is no known E* constant with this value (i.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 errdesc_np (int @var{errnum}) +@standards{GNU, string.h} +@safety{@prelim{}@mtsafe{@mtssigintr{}}@assafe{}@acsafe{}} +This function returns the message describing the error @var{errnum} or +@code{NULL} if there is no known E* constant with this value (i.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 022770e244..11a7a505f5 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..baa8d8e6d4 --- /dev/null +++ b/stdio-common/test-strerr.c @@ -0,0 +1,65 @@ +/* Test strerrorname and strerrordesc. + 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 (-1) == NULL); + TEST_VERIFY (strerrordesc (array_length (errlist)) == NULL); + for (size_t i = 0; i < array_length (errlist); i++) + { + if (errlist[i] == NULL) + continue; + TEST_COMPARE_STRING (strerrordesc (i), errlist[i]); + } + + TEST_VERIFY (strerrorname (-1) == NULL); + TEST_VERIFY (strerrorname (array_length (errlist)) == NULL); + for (size_t i = 0; i < array_length (errlist); i++) + { + if (errlist[i] == NULL) + continue; + TEST_COMPARE_STRING (strerrorname (i), errname.str + errnameidx[i]); + } + + return 0; +} + +#include diff --git a/string/Makefile b/string/Makefile index e5075521b7..fd06409197 100644 --- a/string/Makefile +++ b/string/Makefile @@ -45,7 +45,7 @@ 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 strerrordesc 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..7727fca001 100644 --- a/string/Versions +++ b/string/Versions @@ -87,5 +87,6 @@ libc { } GLIBC_2.32 { sigdescr_np; sigabbrev_np; + strerrordesc; strerrorname; } } diff --git a/string/strerrordesc.c b/string/strerrordesc.c new file mode 100644 index 0000000000..f59448f2d1 --- /dev/null +++ b/string/strerrordesc.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 (int errnum) +{ + return __get_errlist (errnum); +} +weak_alias (__strerrordesc, strerrordesc) diff --git a/string/strerrorname.c b/string/strerrorname.c new file mode 100644 index 0000000000..889ea0d245 --- /dev/null +++ b/string/strerrorname.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 (int errnum) +{ + return __get_errname (errnum); +} diff --git a/string/string.h b/string/string.h index c01a78495a..191b8449a5 100644 --- a/string/string.h +++ b/string/string.h @@ -428,6 +428,11 @@ 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 +extern const char *strerrordesc (int __err) __THROW; +extern const char *strerrorname (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 ff8ad98d03..193ceba987 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 GLIBC_2.32 mach_print F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_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..f0529706ee 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 F +GLIBC_2.32 strerrorname F diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 8e15a58eaf..ac892eceda 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 F +GLIBC_2.32 strerrorname 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..af574dfb9d 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 F +GLIBC_2.32 strerrorname 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..bb0e8bf312 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 F +GLIBC_2.32 strerrorname 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..8a612ece3e 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 F +GLIBC_2.32 strerrorname F diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 053cda00a4..ccb61a322a 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 F +GLIBC_2.32 strerrorname 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..bc5329d7b9 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 F +GLIBC_2.32 strerrorname 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..8f8cbfa80b 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 F +GLIBC_2.32 strerrorname 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..802e16ac7d 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 F +GLIBC_2.32 strerrorname 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..62bfa336b8 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 F +GLIBC_2.32 strerrorname 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..680c7b0c77 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 F +GLIBC_2.32 strerrorname F diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist index 099d51e893..e102493f6c 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 F +GLIBC_2.32 strerrorname 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..28588017fa 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 F +GLIBC_2.32 strerrorname 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..64c99116c0 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 F +GLIBC_2.32 strerrorname 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..7e197736d8 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 F +GLIBC_2.32 strerrorname 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..e1964effc6 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 F +GLIBC_2.32 strerrorname 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..f647f86c09 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 F +GLIBC_2.32 strerrorname 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..8998f3e0ab 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 F +GLIBC_2.32 strerrorname 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..a96c6d1ce2 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 F +GLIBC_2.32 strerrorname 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..f9f0a9dd93 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 F +GLIBC_2.32 strerrorname 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..921098b1f3 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 F +GLIBC_2.32 strerrorname F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist index ff5b64c1dd..1e65005b9f 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 F +GLIBC_2.32 strerrorname 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..b31811135b 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 F +GLIBC_2.32 strerrorname 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..c30fc0ef71 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 F +GLIBC_2.32 strerrorname 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..9cbe4a650a 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 F +GLIBC_2.32 strerrorname 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..c00327a607 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 F +GLIBC_2.32 strerrorname 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..a990eee8f8 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 F +GLIBC_2.32 strerrorname 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..e988546b20 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 F +GLIBC_2.32 strerrorname 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..fa10e68d3a 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 F +GLIBC_2.32 strerrorname 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..29119996ae 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 F +GLIBC_2.32 strerrorname F