From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qk1-x72a.google.com (mail-qk1-x72a.google.com [IPv6:2607:f8b0:4864:20::72a]) by sourceware.org (Postfix) with ESMTPS id 6E2B8395BC36 for ; Tue, 1 Jun 2021 19:36:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 6E2B8395BC36 Received: by mail-qk1-x72a.google.com with SMTP id u30so2026788qke.7 for ; Tue, 01 Jun 2021 12:36:47 -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:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=nl9Cwc61b4510liOjbDn2u0GGyCzb/ghh6pWtUS/4t4=; b=XBujZIKbEuHxovM7pidNJJ1v6+D8tVsgD3AjLk6ob4yi/bhHRA7YHw5LIDAIPBWZsi Gu+KEklea+uxQMC8B2ze7a8TMGkghOtwVu2+1bXPY/2naslj4AFqa2z/bh0aM27mtpPv wM16cbnJbWI9cR7//6BGwgB8/XOSv+sG158svYyzUvVCFJSZTZxCOKI5VSkwpKPjHigK 7mDsL/42OGcaSsLQVrWVAthAkgFAtREf8j4a31inxjfyTuGwFHqZ7b3Bw6NyQ6iO9xxL 4eL2pBLFreR4SHTk/H/9RO5qBxj3QV7Maqx0TjYjoJIX0lCT+5EaOeUdLL0547p7u3r9 e+iw== X-Gm-Message-State: AOAM532dMCupak/TIAprxPE7ksjNbYG/WWc91A5x1N3VEhTFVnLCAtiM nJSpF/gdtB0ZB3YjqVL9GOQxWupVo6SPxg== X-Google-Smtp-Source: ABdhPJxn3L+YDNQMH4uyoVrVsRAr/siv1QDxmqZIZCswNFJ0vL+JgHzTfL0mMZvPXTyoOwFwxhXdIQ== X-Received: by 2002:a05:620a:2486:: with SMTP id i6mr23678194qkn.207.1622576206658; Tue, 01 Jun 2021 12:36:46 -0700 (PDT) Received: from [192.168.1.4] ([177.194.59.218]) by smtp.gmail.com with ESMTPSA id v18sm11835536qkv.34.2021.06.01.12.36.45 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 01 Jun 2021 12:36:46 -0700 (PDT) Subject: Re: [PATCH 05/16] dlfcn: Move dlerror into libc To: Florian Weimer , libc-alpha@sourceware.org References: From: Adhemerval Zanella Message-ID: <96ac3dd8-8422-6128-51b3-2996c2e2d52b@linaro.org> Date: Tue, 1 Jun 2021 16:36:43 -0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, NICE_REPLY_A, 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-List-Received-Date: Tue, 01 Jun 2021 19:36:51 -0000 On 31/05/2021 11:11, Florian Weimer via Libc-alpha wrote: > The symbol was moved using scripts/move-symbol-to-libc.py. > > There is a minor functionality enhancement: dlerror now sets > errno if it was set as part of the exception. (This is the result > of using %m in asprintf, to avoid the strerror PLT call.) The > previous errno value upon function return was unpredictable. > Documenting this as a feature is premature; we need to make sure > that the error codes are meaningful when they are set by the dynamic > loader. LGTM, thanks. Reviewed-by: Adhemerval Zanella > --- > dlfcn/Makefile | 6 ++- > dlfcn/Versions | 13 ++++-- > dlfcn/dlerror.c | 43 ++++++++----------- > dlfcn/sdlerror.c | 1 - > include/dlfcn.h | 8 ++-- > sysdeps/mach/hurd/i386/libc.abilist | 2 + > sysdeps/mach/hurd/i386/libdl.abilist | 1 - > sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/aarch64/libdl.abilist | 1 - > sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 + > sysdeps/unix/sysv/linux/alpha/libdl.abilist | 1 - > sysdeps/unix/sysv/linux/arc/libc.abilist | 2 + > sysdeps/unix/sysv/linux/arc/libdl.abilist | 1 - > sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 + > sysdeps/unix/sysv/linux/arm/be/libdl.abilist | 1 - > sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 + > sysdeps/unix/sysv/linux/arm/le/libdl.abilist | 1 - > sysdeps/unix/sysv/linux/csky/libc.abilist | 2 + > sysdeps/unix/sysv/linux/csky/libdl.abilist | 1 - > sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 + > sysdeps/unix/sysv/linux/hppa/libdl.abilist | 1 - > sysdeps/unix/sysv/linux/i386/libc.abilist | 2 + > sysdeps/unix/sysv/linux/i386/libdl.abilist | 1 - > sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/ia64/libdl.abilist | 1 - > .../sysv/linux/m68k/coldfire/libc.abilist | 2 + > .../sysv/linux/m68k/coldfire/libdl.abilist | 1 - > .../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 + > .../unix/sysv/linux/m68k/m680x0/libdl.abilist | 1 - > .../sysv/linux/microblaze/be/libc.abilist | 2 + > .../sysv/linux/microblaze/be/libdl.abilist | 1 - > .../sysv/linux/microblaze/le/libc.abilist | 2 + > .../sysv/linux/microblaze/le/libdl.abilist | 1 - > .../sysv/linux/mips/mips32/fpu/libc.abilist | 2 + > .../unix/sysv/linux/mips/mips32/libdl.abilist | 1 - > .../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 + > .../unix/sysv/linux/mips/mips64/libdl.abilist | 1 - > .../sysv/linux/mips/mips64/n32/libc.abilist | 2 + > .../sysv/linux/mips/mips64/n64/libc.abilist | 2 + > sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 + > sysdeps/unix/sysv/linux/nios2/libdl.abilist | 1 - > .../linux/powerpc/powerpc32/fpu/libc.abilist | 2 + > .../linux/powerpc/powerpc32/libdl.abilist | 1 - > .../powerpc/powerpc32/nofpu/libc.abilist | 2 + > .../linux/powerpc/powerpc64/be/libc.abilist | 2 + > .../linux/powerpc/powerpc64/be/libdl.abilist | 1 - > .../linux/powerpc/powerpc64/le/libc.abilist | 2 + > .../linux/powerpc/powerpc64/le/libdl.abilist | 1 - > .../unix/sysv/linux/riscv/rv32/libc.abilist | 2 + > .../unix/sysv/linux/riscv/rv32/libdl.abilist | 1 - > .../unix/sysv/linux/riscv/rv64/libc.abilist | 2 + > .../unix/sysv/linux/riscv/rv64/libdl.abilist | 1 - > .../unix/sysv/linux/s390/s390-32/libc.abilist | 2 + > .../sysv/linux/s390/s390-32/libdl.abilist | 1 - > .../unix/sysv/linux/s390/s390-64/libc.abilist | 2 + > .../sysv/linux/s390/s390-64/libdl.abilist | 1 - > sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 + > sysdeps/unix/sysv/linux/sh/be/libdl.abilist | 1 - > sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 + > sysdeps/unix/sysv/linux/sh/le/libdl.abilist | 1 - > .../sysv/linux/sparc/sparc32/libc.abilist | 2 + > .../sysv/linux/sparc/sparc32/libdl.abilist | 1 - > .../sysv/linux/sparc/sparc64/libc.abilist | 2 + > .../sysv/linux/sparc/sparc64/libdl.abilist | 1 - > .../unix/sysv/linux/x86_64/64/libc.abilist | 2 + > .../unix/sysv/linux/x86_64/64/libdl.abilist | 1 - > .../unix/sysv/linux/x86_64/x32/libc.abilist | 2 + > .../unix/sysv/linux/x86_64/x32/libdl.abilist | 1 - > 68 files changed, 101 insertions(+), 66 deletions(-) > delete mode 100644 dlfcn/sdlerror.c > > diff --git a/dlfcn/Makefile b/dlfcn/Makefile > index 994a3afee6..b194762d3e 100644 > --- a/dlfcn/Makefile > +++ b/dlfcn/Makefile > @@ -21,11 +21,13 @@ include ../Makeconfig > > headers := bits/dlfcn.h dlfcn.h > extra-libs := libdl > -libdl-routines := dlopen dlclose dlsym dlvsym dlerror dladdr dladdr1 dlinfo \ > +libdl-routines := dlopen dlclose dlsym dlvsym dladdr dladdr1 dlinfo \ > dlmopen dlfcn > routines := $(patsubst %,s%,$(filter-out dlfcn,$(libdl-routines))) > elide-routines.os := $(routines) > -routines += libc_dlerror_result > +routines += \ > + dlerror \ > + libc_dlerror_result \ > > extra-libs-others := libdl > Ok. > diff --git a/dlfcn/Versions b/dlfcn/Versions > index f07cb929aa..e7a6081d60 100644 > --- a/dlfcn/Versions > +++ b/dlfcn/Versions > @@ -1,11 +1,19 @@ > libc { > + GLIBC_2.0 { > + dlerror; > + } > + GLIBC_2.34 { > + dlerror; > + } > GLIBC_PRIVATE { > __libc_dlerror_result; > + _dlerror_run; > + _dlfcn_hook; > } > } > libdl { > GLIBC_2.0 { > - dladdr; dlclose; dlerror; dlopen; dlsym; > + dladdr; dlclose; dlopen; dlsym; > } Maybe add one per line? > GLIBC_2.1 { > dlopen; dlvsym; > @@ -16,7 +24,4 @@ libdl { > GLIBC_2.3.4 { > dlmopen; > } > - GLIBC_PRIVATE { > - _dlfcn_hook; > - } > } Ok. > diff --git a/dlfcn/dlerror.c b/dlfcn/dlerror.c > index 7db70a26d0..3df8602f4d 100644 > --- a/dlfcn/dlerror.c > +++ b/dlfcn/dlerror.c > @@ -28,16 +28,6 @@ > #include > #include > > -#if !defined SHARED && IS_IN (libdl) > - > -char * > -dlerror (void) > -{ > - return __dlerror (); > -} > - > -#else > - > char * > __dlerror (void) > { > @@ -86,11 +76,15 @@ __dlerror (void) > result->objname[0] == '\0' ? "" : ": ", > _(result->errstring)); > else > - n = __asprintf (&buf, "%s%s%s: %s", > - result->objname, > - result->objname[0] == '\0' ? "" : ": ", > - _(result->errstring), > - strerror (result->errcode)); > + { > + __set_errno (result->errcode); > + n = __asprintf (&buf, "%s%s%s: %m", > + result->objname, > + result->objname[0] == '\0' ? "" : ": ", > + _(result->errstring)); > + /* Set errno again in case asprintf clobbered it. */ > + __set_errno (result->errcode); > + } > > /* Mark the error as delivered. */ > result->returned = true; Ok. > @@ -108,9 +102,11 @@ __dlerror (void) > existing string as a fallback. */ > return result->errstring; > } > -# ifdef SHARED > -strong_alias (__dlerror, dlerror) > -# endif > +versioned_symbol (libc, __dlerror, dlerror, GLIBC_2_34); > + > +#if OTHER_SHLIB_COMPAT (libdl, GLIBC_2_0, GLIBC_2_34) > +compat_symbol (libdl, __dlerror, dlerror, GLIBC_2_0); > +#endif > > int > _dlerror_run (void (*operate) (void *), void *args) Ok. > @@ -200,13 +196,13 @@ _dlerror_run (void (*operate) (void *), void *args) > return 1; > } > } > +libc_hidden_def (_dlerror_run) > > -# ifdef SHARED > - > +#ifdef SHARED > struct dlfcn_hook *_dlfcn_hook __attribute__((nocommon)); > -libdl_hidden_data_def (_dlfcn_hook) > +libc_hidden_data_def (_dlfcn_hook) > > -# else > +#else /* !SHARED */ > > static struct dlfcn_hook _dlfcn_hooks = > { > @@ -230,5 +226,4 @@ __libc_register_dlfcn_hook (struct link_map *map) > if (hook != NULL) > *hook = &_dlfcn_hooks; > } > -# endif > -#endif > +#endif /* !SHARED */ Ok. > diff --git a/dlfcn/sdlerror.c b/dlfcn/sdlerror.c > deleted file mode 100644 > index f1226a48c5..0000000000 > --- a/dlfcn/sdlerror.c > +++ /dev/null > @@ -1 +0,0 @@ > -#include "dlerror.c" Ok. > diff --git a/include/dlfcn.h b/include/dlfcn.h > index a8d48bdada..a92b2aefb8 100644 > --- a/include/dlfcn.h > +++ b/include/dlfcn.h > @@ -96,8 +96,8 @@ extern void *_dl_vsym (void *handle, const char *name, const char *version, > _dl_catch_error. Returns zero for success, nonzero for failure; and > arranges for `dlerror' to return the error details. > ARGS is passed as argument to OPERATE. */ > -extern int _dlerror_run (void (*operate) (void *), void *args) > - attribute_hidden; > +extern int _dlerror_run (void (*operate) (void *), void *args); > +libc_hidden_proto (_dlerror_run) > > #ifdef SHARED > # define DL_CALLER_DECL /* Nothing */ > @@ -124,7 +124,7 @@ struct dlfcn_hook > }; > > extern struct dlfcn_hook *_dlfcn_hook; > -libdl_hidden_proto (_dlfcn_hook) > +libc_hidden_proto (_dlfcn_hook) > > extern void *__dlopen (const char *file, int mode DL_CALLER_DECL) > attribute_hidden; Ok. > @@ -137,8 +137,6 @@ extern void *__dlsym (void *handle, const char *name DL_CALLER_DECL) > extern void *__dlvsym (void *handle, const char *name, const char *version > DL_CALLER_DECL) > attribute_hidden; > -extern char *__dlerror (void) > - attribute_hidden; > extern int __dladdr (const void *address, Dl_info *info) > attribute_hidden; > extern int __dladdr1 (const void *address, Dl_info *info, Ok. > diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist > index 49aa809366..4c62bf215f 100644 > --- a/sysdeps/mach/hurd/i386/libc.abilist > +++ b/sysdeps/mach/hurd/i386/libc.abilist > @@ -741,6 +741,7 @@ GLIBC_2.2.6 dirfd F > GLIBC_2.2.6 dirname F > GLIBC_2.2.6 div F > GLIBC_2.2.6 dl_iterate_phdr F > +GLIBC_2.2.6 dlerror F > GLIBC_2.2.6 dngettext F > GLIBC_2.2.6 dprintf F > GLIBC_2.2.6 drand48 F > @@ -2207,6 +2208,7 @@ GLIBC_2.33 stat64 F > GLIBC_2.34 __isnanf128 F > GLIBC_2.34 __libc_start_main F > GLIBC_2.34 _hurd_libc_proc_init F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 timespec_getres F > GLIBC_2.4 __confstr_chk F > diff --git a/sysdeps/mach/hurd/i386/libdl.abilist b/sysdeps/mach/hurd/i386/libdl.abilist > index 27d133bb7b..1073ce7845 100644 > --- a/sysdeps/mach/hurd/i386/libdl.abilist > +++ b/sysdeps/mach/hurd/i386/libdl.abilist > @@ -1,6 +1,5 @@ > GLIBC_2.2.6 dladdr F > GLIBC_2.2.6 dlclose F > -GLIBC_2.2.6 dlerror F > GLIBC_2.2.6 dlopen F > GLIBC_2.2.6 dlsym F > GLIBC_2.2.6 dlvsym F > diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist > index d22c7da7ef..cf1e160614 100644 > --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist > +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist > @@ -718,6 +718,7 @@ GLIBC_2.17 dirfd F > GLIBC_2.17 dirname F > GLIBC_2.17 div F > GLIBC_2.17 dl_iterate_phdr F > +GLIBC_2.17 dlerror F > GLIBC_2.17 dngettext F > GLIBC_2.17 dprintf F > GLIBC_2.17 drand48 F > @@ -2342,6 +2343,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist > index 36340d5dd8..cb92fbf091 100644 > --- a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist > @@ -1,7 +1,6 @@ > GLIBC_2.17 dladdr F > GLIBC_2.17 dladdr1 F > GLIBC_2.17 dlclose F > -GLIBC_2.17 dlerror F > GLIBC_2.17 dlinfo F > GLIBC_2.17 dlmopen F > GLIBC_2.17 dlopen F > diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist > index cefff3bf36..9b303bfeea 100644 > --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist > +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist > @@ -409,6 +409,7 @@ GLIBC_2.0 difftime F > GLIBC_2.0 dirfd F > GLIBC_2.0 dirname F > GLIBC_2.0 div F > +GLIBC_2.0 dlerror F > GLIBC_2.0 dprintf F > GLIBC_2.0 drand48 F > GLIBC_2.0 drand48_r F > @@ -2434,6 +2435,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/alpha/libdl.abilist b/sysdeps/unix/sysv/linux/alpha/libdl.abilist > index 7826fde951..62dfb3059d 100644 > --- a/sysdeps/unix/sysv/linux/alpha/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/alpha/libdl.abilist > @@ -1,6 +1,5 @@ > GLIBC_2.0 dladdr F > GLIBC_2.0 dlclose F > -GLIBC_2.0 dlerror F > GLIBC_2.0 dlopen F > GLIBC_2.0 dlsym F > GLIBC_2.1 dlopen F > diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist > index 91a90f8ca4..804e109621 100644 > --- a/sysdeps/unix/sysv/linux/arc/libc.abilist > +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist > @@ -663,6 +663,7 @@ GLIBC_2.32 dirfd F > GLIBC_2.32 dirname F > GLIBC_2.32 div F > GLIBC_2.32 dl_iterate_phdr F > +GLIBC_2.32 dlerror F > GLIBC_2.32 dngettext F > GLIBC_2.32 dprintf F > GLIBC_2.32 drand48 F > @@ -2101,6 +2102,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/arc/libdl.abilist b/sysdeps/unix/sysv/linux/arc/libdl.abilist > index bf20b0c404..3f7f805044 100644 > --- a/sysdeps/unix/sysv/linux/arc/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/arc/libdl.abilist > @@ -1,7 +1,6 @@ > GLIBC_2.32 dladdr F > GLIBC_2.32 dladdr1 F > GLIBC_2.32 dlclose F > -GLIBC_2.32 dlerror F > GLIBC_2.32 dlinfo F > GLIBC_2.32 dlmopen F > GLIBC_2.32 dlopen F > diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist > index 120288d766..1c766b317d 100644 > --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist > +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist > @@ -207,6 +207,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > @@ -1017,6 +1018,7 @@ GLIBC_2.4 dirfd F > GLIBC_2.4 dirname F > GLIBC_2.4 div F > GLIBC_2.4 dl_iterate_phdr F > +GLIBC_2.4 dlerror F > GLIBC_2.4 dngettext F > GLIBC_2.4 dprintf F > GLIBC_2.4 drand48 F > diff --git a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist > index 40132b1374..1951f0a9af 100644 > --- a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist > @@ -1,7 +1,6 @@ > GLIBC_2.4 dladdr F > GLIBC_2.4 dladdr1 F > GLIBC_2.4 dlclose F > -GLIBC_2.4 dlerror F > GLIBC_2.4 dlinfo F > GLIBC_2.4 dlmopen F > GLIBC_2.4 dlopen F > diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist > index be987da77e..6e5898f5a0 100644 > --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist > +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist > @@ -204,6 +204,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > @@ -1014,6 +1015,7 @@ GLIBC_2.4 dirfd F > GLIBC_2.4 dirname F > GLIBC_2.4 div F > GLIBC_2.4 dl_iterate_phdr F > +GLIBC_2.4 dlerror F > GLIBC_2.4 dngettext F > GLIBC_2.4 dprintf F > GLIBC_2.4 drand48 F > diff --git a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist > index 40132b1374..1951f0a9af 100644 > --- a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist > @@ -1,7 +1,6 @@ > GLIBC_2.4 dladdr F > GLIBC_2.4 dladdr1 F > GLIBC_2.4 dlclose F > -GLIBC_2.4 dlerror F > GLIBC_2.4 dlinfo F > GLIBC_2.4 dlmopen F > GLIBC_2.4 dlopen F > diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist > index adb4e15cb8..cd740fb61e 100644 > --- a/sysdeps/unix/sysv/linux/csky/libc.abilist > +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist > @@ -699,6 +699,7 @@ GLIBC_2.29 dirfd F > GLIBC_2.29 dirname F > GLIBC_2.29 div F > GLIBC_2.29 dl_iterate_phdr F > +GLIBC_2.29 dlerror F > GLIBC_2.29 dngettext F > GLIBC_2.29 dprintf F > GLIBC_2.29 drand48 F > @@ -2285,6 +2286,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/csky/libdl.abilist b/sysdeps/unix/sysv/linux/csky/libdl.abilist > index 8fcb609ddc..7477354fa8 100644 > --- a/sysdeps/unix/sysv/linux/csky/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/csky/libdl.abilist > @@ -1,7 +1,6 @@ > GLIBC_2.29 dladdr F > GLIBC_2.29 dladdr1 F > GLIBC_2.29 dlclose F > -GLIBC_2.29 dlerror F > GLIBC_2.29 dlinfo F > GLIBC_2.29 dlmopen F > GLIBC_2.29 dlopen F > diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist > index bd022276e8..79ef2450fb 100644 > --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist > +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist > @@ -1,3 +1,4 @@ > +GLIBC_2.0 dlerror F > GLIBC_2.10 __cxa_at_quick_exit F > GLIBC_2.10 __posix_getopt F > GLIBC_2.10 accept4 F > @@ -2238,6 +2239,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/hppa/libdl.abilist b/sysdeps/unix/sysv/linux/hppa/libdl.abilist > index 7826fde951..62dfb3059d 100644 > --- a/sysdeps/unix/sysv/linux/hppa/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/hppa/libdl.abilist > @@ -1,6 +1,5 @@ > GLIBC_2.0 dladdr F > GLIBC_2.0 dlclose F > -GLIBC_2.0 dlerror F > GLIBC_2.0 dlopen F > GLIBC_2.0 dlsym F > GLIBC_2.1 dlopen F > diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist > index 9e37e1cb38..a5c5cb5868 100644 > --- a/sysdeps/unix/sysv/linux/i386/libc.abilist > +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist > @@ -395,6 +395,7 @@ GLIBC_2.0 difftime F > GLIBC_2.0 dirfd F > GLIBC_2.0 dirname F > GLIBC_2.0 div F > +GLIBC_2.0 dlerror F > GLIBC_2.0 dprintf F > GLIBC_2.0 drand48 F > GLIBC_2.0 drand48_r F > @@ -2422,6 +2423,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/i386/libdl.abilist b/sysdeps/unix/sysv/linux/i386/libdl.abilist > index 7826fde951..62dfb3059d 100644 > --- a/sysdeps/unix/sysv/linux/i386/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/i386/libdl.abilist > @@ -1,6 +1,5 @@ > GLIBC_2.0 dladdr F > GLIBC_2.0 dlclose F > -GLIBC_2.0 dlerror F > GLIBC_2.0 dlopen F > GLIBC_2.0 dlsym F > GLIBC_2.1 dlopen F > diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist > index b8089b0b0c..9d1e50984f 100644 > --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist > +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist > @@ -1,3 +1,4 @@ > +GLIBC_2.0 dlerror F > GLIBC_2.10 __cxa_at_quick_exit F > GLIBC_2.10 __posix_getopt F > GLIBC_2.10 accept4 F > @@ -2274,6 +2275,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/ia64/libdl.abilist b/sysdeps/unix/sysv/linux/ia64/libdl.abilist > index 7826fde951..62dfb3059d 100644 > --- a/sysdeps/unix/sysv/linux/ia64/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/ia64/libdl.abilist > @@ -1,6 +1,5 @@ > GLIBC_2.0 dladdr F > GLIBC_2.0 dlclose F > -GLIBC_2.0 dlerror F > GLIBC_2.0 dlopen F > GLIBC_2.0 dlsym F > GLIBC_2.1 dlopen F > diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist > index 093854ad85..8cc0f0402f 100644 > --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist > +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist > @@ -208,6 +208,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > @@ -1006,6 +1007,7 @@ GLIBC_2.4 dirfd F > GLIBC_2.4 dirname F > GLIBC_2.4 div F > GLIBC_2.4 dl_iterate_phdr F > +GLIBC_2.4 dlerror F > GLIBC_2.4 dngettext F > GLIBC_2.4 dprintf F > GLIBC_2.4 drand48 F > diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist > index 40132b1374..1951f0a9af 100644 > --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist > @@ -1,7 +1,6 @@ > GLIBC_2.4 dladdr F > GLIBC_2.4 dladdr1 F > GLIBC_2.4 dlclose F > -GLIBC_2.4 dlerror F > GLIBC_2.4 dlinfo F > GLIBC_2.4 dlmopen F > GLIBC_2.4 dlopen F > diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist > index 87554f1468..9df60dda8a 100644 > --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist > +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist > @@ -396,6 +396,7 @@ GLIBC_2.0 difftime F > GLIBC_2.0 dirfd F > GLIBC_2.0 dirname F > GLIBC_2.0 div F > +GLIBC_2.0 dlerror F > GLIBC_2.0 dprintf F > GLIBC_2.0 drand48 F > GLIBC_2.0 drand48_r F > @@ -2365,6 +2366,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist > index 7826fde951..62dfb3059d 100644 > --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist > @@ -1,6 +1,5 @@ > GLIBC_2.0 dladdr F > GLIBC_2.0 dlclose F > -GLIBC_2.0 dlerror F > GLIBC_2.0 dlopen F > GLIBC_2.0 dlsym F > GLIBC_2.1 dlopen F > diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist > index e9340671c5..a10b65e1c9 100644 > --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist > +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist > @@ -720,6 +720,7 @@ GLIBC_2.18 dirfd F > GLIBC_2.18 dirname F > GLIBC_2.18 div F > GLIBC_2.18 dl_iterate_phdr F > +GLIBC_2.18 dlerror F > GLIBC_2.18 dngettext F > GLIBC_2.18 dprintf F > GLIBC_2.18 drand48 F > @@ -2336,6 +2337,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist > index 46b5716dbe..1bb6077e6f 100644 > --- a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist > @@ -1,7 +1,6 @@ > GLIBC_2.18 dladdr F > GLIBC_2.18 dladdr1 F > GLIBC_2.18 dlclose F > -GLIBC_2.18 dlerror F > GLIBC_2.18 dlinfo F > GLIBC_2.18 dlmopen F > GLIBC_2.18 dlopen F > diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist > index 6ddc0e90cf..aa80f6db28 100644 > --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist > +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist > @@ -720,6 +720,7 @@ GLIBC_2.18 dirfd F > GLIBC_2.18 dirname F > GLIBC_2.18 div F > GLIBC_2.18 dl_iterate_phdr F > +GLIBC_2.18 dlerror F > GLIBC_2.18 dngettext F > GLIBC_2.18 dprintf F > GLIBC_2.18 drand48 F > @@ -2333,6 +2334,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist > index 46b5716dbe..1bb6077e6f 100644 > --- a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist > @@ -1,7 +1,6 @@ > GLIBC_2.18 dladdr F > GLIBC_2.18 dladdr1 F > GLIBC_2.18 dlclose F > -GLIBC_2.18 dlerror F > GLIBC_2.18 dlinfo F > GLIBC_2.18 dlmopen F > GLIBC_2.18 dlopen F > diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist > index 8582c9c371..969e1febcf 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist > +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist > @@ -394,6 +394,7 @@ GLIBC_2.0 difftime F > GLIBC_2.0 dirfd F > GLIBC_2.0 dirname F > GLIBC_2.0 div F > +GLIBC_2.0 dlerror F > GLIBC_2.0 dprintf F > GLIBC_2.0 drand48 F > GLIBC_2.0 drand48_r F > @@ -2330,6 +2331,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist > index 6d377d93a4..3b3e0c7d60 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist > @@ -1,6 +1,5 @@ > GLIBC_2.0 dladdr F > GLIBC_2.0 dlclose F > -GLIBC_2.0 dlerror F > GLIBC_2.0 dlopen F > GLIBC_2.0 dlsym F > GLIBC_2.2 dlopen F > diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist > index b0849bec98..82813866d0 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist > +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist > @@ -394,6 +394,7 @@ GLIBC_2.0 difftime F > GLIBC_2.0 dirfd F > GLIBC_2.0 dirname F > GLIBC_2.0 div F > +GLIBC_2.0 dlerror F > GLIBC_2.0 dprintf F > GLIBC_2.0 drand48 F > GLIBC_2.0 drand48_r F > @@ -2328,6 +2329,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist > index 6d377d93a4..3b3e0c7d60 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist > @@ -1,6 +1,5 @@ > GLIBC_2.0 dladdr F > GLIBC_2.0 dlclose F > -GLIBC_2.0 dlerror F > GLIBC_2.0 dlopen F > GLIBC_2.0 dlsym F > GLIBC_2.2 dlopen F > diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist > index 386660a5a1..6f9d2b0842 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist > +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist > @@ -394,6 +394,7 @@ GLIBC_2.0 difftime F > GLIBC_2.0 dirfd F > GLIBC_2.0 dirname F > GLIBC_2.0 div F > +GLIBC_2.0 dlerror F > GLIBC_2.0 dprintf F > GLIBC_2.0 drand48 F > GLIBC_2.0 drand48_r F > @@ -2336,6 +2337,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist > index 4d05128f21..c75f9a8535 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist > +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist > @@ -392,6 +392,7 @@ GLIBC_2.0 difftime F > GLIBC_2.0 dirfd F > GLIBC_2.0 dirname F > GLIBC_2.0 div F > +GLIBC_2.0 dlerror F > GLIBC_2.0 dprintf F > GLIBC_2.0 drand48 F > GLIBC_2.0 drand48_r F > @@ -2330,6 +2331,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist > index bd305f440f..7c13372bed 100644 > --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist > +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist > @@ -763,6 +763,7 @@ GLIBC_2.21 dirfd F > GLIBC_2.21 dirname F > GLIBC_2.21 div F > GLIBC_2.21 dl_iterate_phdr F > +GLIBC_2.21 dlerror F > GLIBC_2.21 dngettext F > GLIBC_2.21 dprintf F > GLIBC_2.21 drand48 F > @@ -2375,6 +2376,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/nios2/libdl.abilist b/sysdeps/unix/sysv/linux/nios2/libdl.abilist > index 79573c93dc..f47d113867 100644 > --- a/sysdeps/unix/sysv/linux/nios2/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/nios2/libdl.abilist > @@ -1,7 +1,6 @@ > GLIBC_2.21 dladdr F > GLIBC_2.21 dladdr1 F > GLIBC_2.21 dlclose F > -GLIBC_2.21 dlerror F > GLIBC_2.21 dlinfo F > GLIBC_2.21 dlmopen F > GLIBC_2.21 dlopen F > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist > index c2665624aa..a974a27468 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist > @@ -405,6 +405,7 @@ GLIBC_2.0 difftime F > GLIBC_2.0 dirfd F > GLIBC_2.0 dirname F > GLIBC_2.0 div F > +GLIBC_2.0 dlerror F > GLIBC_2.0 dprintf F > GLIBC_2.0 drand48 F > GLIBC_2.0 drand48_r F > @@ -2392,6 +2393,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist > index 7826fde951..62dfb3059d 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist > @@ -1,6 +1,5 @@ > GLIBC_2.0 dladdr F > GLIBC_2.0 dlclose F > -GLIBC_2.0 dlerror F > GLIBC_2.0 dlopen F > GLIBC_2.0 dlsym F > GLIBC_2.1 dlopen F > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist > index 13ef6ef39e..ea3daaf85f 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist > @@ -405,6 +405,7 @@ GLIBC_2.0 difftime F > GLIBC_2.0 dirfd F > GLIBC_2.0 dirname F > GLIBC_2.0 div F > +GLIBC_2.0 dlerror F > GLIBC_2.0 dprintf F > GLIBC_2.0 drand48 F > GLIBC_2.0 drand48_r F > @@ -2425,6 +2426,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist > index b21072e313..1204e120c7 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist > @@ -758,6 +758,7 @@ GLIBC_2.3 dirfd F > GLIBC_2.3 dirname F > GLIBC_2.3 div F > GLIBC_2.3 dl_iterate_phdr F > +GLIBC_2.3 dlerror F > GLIBC_2.3 dngettext F > GLIBC_2.3 dprintf F > GLIBC_2.3 drand48 F > @@ -2239,6 +2240,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist > index 5b472f45aa..fdda336bd2 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist > @@ -1,6 +1,5 @@ > GLIBC_2.3 dladdr F > GLIBC_2.3 dlclose F > -GLIBC_2.3 dlerror F > GLIBC_2.3 dlopen F > GLIBC_2.3 dlsym F > GLIBC_2.3 dlvsym F > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist > index 62af65536c..58359362ad 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist > @@ -806,6 +806,7 @@ GLIBC_2.17 dirfd F > GLIBC_2.17 dirname F > GLIBC_2.17 div F > GLIBC_2.17 dl_iterate_phdr F > +GLIBC_2.17 dlerror F > GLIBC_2.17 dngettext F > GLIBC_2.17 dprintf F > GLIBC_2.17 drand48 F > @@ -2538,6 +2539,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist > index 36340d5dd8..cb92fbf091 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist > @@ -1,7 +1,6 @@ > GLIBC_2.17 dladdr F > GLIBC_2.17 dladdr1 F > GLIBC_2.17 dlclose F > -GLIBC_2.17 dlerror F > GLIBC_2.17 dlinfo F > GLIBC_2.17 dlmopen F > GLIBC_2.17 dlopen F > diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist > index a63aec3379..2717605ce0 100644 > --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist > +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist > @@ -656,6 +656,7 @@ GLIBC_2.33 dirfd F > GLIBC_2.33 dirname F > GLIBC_2.33 div F > GLIBC_2.33 dl_iterate_phdr F > +GLIBC_2.33 dlerror F > GLIBC_2.33 dngettext F > GLIBC_2.33 dprintf F > GLIBC_2.33 drand48 F > @@ -2103,6 +2104,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist > index ac5d2d0e9e..8bb5ee8f56 100644 > --- a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist > @@ -1,7 +1,6 @@ > GLIBC_2.33 dladdr F > GLIBC_2.33 dladdr1 F > GLIBC_2.33 dlclose F > -GLIBC_2.33 dlerror F > GLIBC_2.33 dlinfo F > GLIBC_2.33 dlmopen F > GLIBC_2.33 dlopen F > diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist > index b52efaf5ee..6d5cfc1003 100644 > --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist > +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist > @@ -697,6 +697,7 @@ GLIBC_2.27 dirfd F > GLIBC_2.27 dirname F > GLIBC_2.27 div F > GLIBC_2.27 dl_iterate_phdr F > +GLIBC_2.27 dlerror F > GLIBC_2.27 dngettext F > GLIBC_2.27 dprintf F > GLIBC_2.27 drand48 F > @@ -2303,6 +2304,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist > index 16adcae553..044092c8ba 100644 > --- a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist > @@ -1,7 +1,6 @@ > GLIBC_2.27 dladdr F > GLIBC_2.27 dladdr1 F > GLIBC_2.27 dlclose F > -GLIBC_2.27 dlerror F > GLIBC_2.27 dlinfo F > GLIBC_2.27 dlmopen F > GLIBC_2.27 dlopen F > diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist > index b699dedcc1..5050039c86 100644 > --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist > +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist > @@ -395,6 +395,7 @@ GLIBC_2.0 difftime F > GLIBC_2.0 dirfd F > GLIBC_2.0 dirname F > GLIBC_2.0 div F > +GLIBC_2.0 dlerror F > GLIBC_2.0 dprintf F > GLIBC_2.0 drand48 F > GLIBC_2.0 drand48_r F > @@ -2390,6 +2391,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist > index 7826fde951..62dfb3059d 100644 > --- a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist > @@ -1,6 +1,5 @@ > GLIBC_2.0 dladdr F > GLIBC_2.0 dlclose F > -GLIBC_2.0 dlerror F > GLIBC_2.0 dlopen F > GLIBC_2.0 dlsym F > GLIBC_2.1 dlopen F > diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist > index 94209858b1..4baccfe878 100644 > --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist > +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist > @@ -695,6 +695,7 @@ GLIBC_2.2 difftime F > GLIBC_2.2 dirfd F > GLIBC_2.2 dirname F > GLIBC_2.2 div F > +GLIBC_2.2 dlerror F > GLIBC_2.2 dngettext F > GLIBC_2.2 dprintf F > GLIBC_2.2 drand48 F > @@ -2276,6 +2277,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist > index 8110e39ce4..88c2b76660 100644 > --- a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist > @@ -1,6 +1,5 @@ > GLIBC_2.2 dladdr F > GLIBC_2.2 dlclose F > -GLIBC_2.2 dlerror F > GLIBC_2.2 dlopen F > GLIBC_2.2 dlsym F > GLIBC_2.2 dlvsym F > diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist > index 0fab90e1e3..a0b0006997 100644 > --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist > +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist > @@ -2,6 +2,7 @@ GCC_3.0 _Unwind_Find_FDE F > GCC_3.0 __deregister_frame_info_bases F > GCC_3.0 __register_frame_info_bases F > GCC_3.0 __register_frame_info_table_bases F > +GLIBC_2.0 dlerror F > GLIBC_2.10 __cxa_at_quick_exit F > GLIBC_2.10 __posix_getopt F > GLIBC_2.10 accept4 F > @@ -2245,6 +2246,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist > index 7826fde951..62dfb3059d 100644 > --- a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist > @@ -1,6 +1,5 @@ > GLIBC_2.0 dladdr F > GLIBC_2.0 dlclose F > -GLIBC_2.0 dlerror F > GLIBC_2.0 dlopen F > GLIBC_2.0 dlsym F > GLIBC_2.1 dlopen F > diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist > index 2f3a64b580..12f05ed141 100644 > --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist > +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist > @@ -2,6 +2,7 @@ GCC_3.0 _Unwind_Find_FDE F > GCC_3.0 __deregister_frame_info_bases F > GCC_3.0 __register_frame_info_bases F > GCC_3.0 __register_frame_info_table_bases F > +GLIBC_2.0 dlerror F > GLIBC_2.10 __cxa_at_quick_exit F > GLIBC_2.10 __posix_getopt F > GLIBC_2.10 accept4 F > @@ -2242,6 +2243,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist > index 7826fde951..62dfb3059d 100644 > --- a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist > @@ -1,6 +1,5 @@ > GLIBC_2.0 dladdr F > GLIBC_2.0 dlclose F > -GLIBC_2.0 dlerror F > GLIBC_2.0 dlopen F > GLIBC_2.0 dlsym F > GLIBC_2.1 dlopen F > diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist > index e6fe453f50..2a19e65697 100644 > --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist > +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist > @@ -397,6 +397,7 @@ GLIBC_2.0 difftime F > GLIBC_2.0 dirfd F > GLIBC_2.0 dirname F > GLIBC_2.0 div F > +GLIBC_2.0 dlerror F > GLIBC_2.0 dprintf F > GLIBC_2.0 drand48 F > GLIBC_2.0 drand48_r F > @@ -2383,6 +2384,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist > index 7826fde951..62dfb3059d 100644 > --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist > @@ -1,6 +1,5 @@ > GLIBC_2.0 dladdr F > GLIBC_2.0 dlclose F > -GLIBC_2.0 dlerror F > GLIBC_2.0 dlopen F > GLIBC_2.0 dlsym F > GLIBC_2.1 dlopen F > diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist > index 4327cf5eb3..99bf107f54 100644 > --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist > +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist > @@ -2,6 +2,7 @@ GCC_3.0 _Unwind_Find_FDE F > GCC_3.0 __deregister_frame_info_bases F > GCC_3.0 __register_frame_info_bases F > GCC_3.0 __register_frame_info_table_bases F > +GLIBC_2.0 dlerror F > GLIBC_2.10 __cxa_at_quick_exit F > GLIBC_2.10 __posix_getopt F > GLIBC_2.10 accept4 F > @@ -2295,6 +2296,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist > index 7826fde951..62dfb3059d 100644 > --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist > @@ -1,6 +1,5 @@ > GLIBC_2.0 dladdr F > GLIBC_2.0 dlclose F > -GLIBC_2.0 dlerror F > GLIBC_2.0 dlopen F > GLIBC_2.0 dlsym F > GLIBC_2.1 dlopen F > diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist > index 318a6d50f9..ec26f0c30a 100644 > --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist > +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist > @@ -685,6 +685,7 @@ GLIBC_2.2.5 dirfd F > GLIBC_2.2.5 dirname F > GLIBC_2.2.5 div F > GLIBC_2.2.5 dl_iterate_phdr F > +GLIBC_2.2.5 dlerror F > GLIBC_2.2.5 dngettext F > GLIBC_2.2.5 dprintf F > GLIBC_2.2.5 drand48 F > @@ -2254,6 +2255,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist > index c5cd25d424..0d933bc3d6 100644 > --- a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist > @@ -1,6 +1,5 @@ > GLIBC_2.2.5 dladdr F > GLIBC_2.2.5 dlclose F > -GLIBC_2.2.5 dlerror F > GLIBC_2.2.5 dlopen F > GLIBC_2.2.5 dlsym F > GLIBC_2.2.5 dlvsym F > diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist > index 0bcf898d4d..a74f962b63 100644 > --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist > +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist > @@ -722,6 +722,7 @@ GLIBC_2.16 dirfd F > GLIBC_2.16 dirname F > GLIBC_2.16 div F > GLIBC_2.16 dl_iterate_phdr F > +GLIBC_2.16 dlerror F > GLIBC_2.16 dngettext F > GLIBC_2.16 dprintf F > GLIBC_2.16 drand48 F > @@ -2357,6 +2358,7 @@ GLIBC_2.34 cnd_init F > GLIBC_2.34 cnd_signal F > GLIBC_2.34 cnd_timedwait F > GLIBC_2.34 cnd_wait F > +GLIBC_2.34 dlerror F > GLIBC_2.34 execveat F > GLIBC_2.34 mtx_destroy F > GLIBC_2.34 mtx_init F > diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist > index c947cd4375..0360ee41e6 100644 > --- a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist > +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist > @@ -1,7 +1,6 @@ > GLIBC_2.16 dladdr F > GLIBC_2.16 dladdr1 F > GLIBC_2.16 dlclose F > -GLIBC_2.16 dlerror F > GLIBC_2.16 dlinfo F > GLIBC_2.16 dlmopen F > GLIBC_2.16 dlopen F > Ok.