* [PATCH v2 01/16] stdio-common: Remove _IO_vfwscanf
2021-05-31 14:10 [PATCH v3 00/16] Move libdl into libc Florian Weimer
@ 2021-05-31 14:11 ` Florian Weimer
2021-05-31 19:42 ` Adhemerval Zanella
2021-05-31 14:11 ` [PATCH 02/16] Add missing symbols to Version files Florian Weimer
` (14 subsequent siblings)
15 siblings, 1 reply; 39+ messages in thread
From: Florian Weimer @ 2021-05-31 14:11 UTC (permalink / raw)
To: libc-alpha
The symbol has never been exported, so no compatibility symbol is
needed. Removing this file prevents ld from creation an exported
symbol in case GLIBC_2_0 expands to a symbol version which
does not have a local: *; directive in the symbol version map file.
---
libio/libio.h | 2 --
stdio-common/Makefile | 2 +-
stdio-common/iovfwscanf.c | 38 ---------------------
sysdeps/ieee754/ldbl-128ibm-compat/Makefile | 1 -
4 files changed, 1 insertion(+), 42 deletions(-)
delete mode 100644 stdio-common/iovfwscanf.c
diff --git a/libio/libio.h b/libio/libio.h
index 511b39457f..98d526dec7 100644
--- a/libio/libio.h
+++ b/libio/libio.h
@@ -254,8 +254,6 @@ weak_extern (_IO_stdin_used);
__result = _IO_fwide (__fp, __result); \
__result; })
-extern int _IO_vfwscanf (FILE * __restrict, const wchar_t * __restrict,
- __gnuc_va_list, int *__restrict);
extern __ssize_t _IO_wpadn (FILE *, wint_t, __ssize_t);
extern void _IO_free_wbackup_area (FILE *) __THROW;
diff --git a/stdio-common/Makefile b/stdio-common/Makefile
index b2458ba4a6..f87796a8ce 100644
--- a/stdio-common/Makefile
+++ b/stdio-common/Makefile
@@ -40,7 +40,7 @@ routines := \
isoc99_scanf isoc99_vscanf isoc99_fscanf isoc99_vfscanf isoc99_sscanf \
isoc99_vsscanf \
psiginfo gentempfd \
- vfscanf-internal vfwscanf-internal iovfscanf iovfwscanf \
+ vfscanf-internal vfwscanf-internal iovfscanf \
vfprintf-internal vfwprintf-internal
aux := errlist siglist printf-parsemb printf-parsewc fxprintf
diff --git a/stdio-common/iovfwscanf.c b/stdio-common/iovfwscanf.c
deleted file mode 100644
index 56b6b3b0d5..0000000000
--- a/stdio-common/iovfwscanf.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Implementation and symbols for _IO_vfwscanf.
- Copyright (C) 1991-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <libioP.h>
-#include <shlib-compat.h>
-
-/* This function is provided for ports older than GLIBC 2.29 because
- external callers could theoretically exist. Newer ports do not need,
- since it is not part of the API. */
-#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_29)
-
-int
-attribute_compat_text_section
-__IO_vfwscanf (FILE *fp, const wchar_t *format, va_list ap, int *errp)
-{
- int rv = __vfwscanf_internal (fp, format, ap, 0);
- if (__glibc_unlikely (errp != 0))
- *errp = (rv == -1);
- return rv;
-}
-compat_symbol (libc, __IO_vfwscanf, _IO_vfwscanf, GLIBC_2_0);
-
-#endif
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile
index 7b42746c34..67d476383a 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile
@@ -325,7 +325,6 @@ ldbl-ibm128-files := $(objpfx)test-%-ibm128^ \
$(objpfx)iovsscanf^ \
$(objpfx)iovswscanf^ \
$(objpfx)iovfscanf^ \
- $(objpfx)iovfwscanf^ \
$(objpfx)mpn2ldbl^ \
$(objpfx)ldbl2mpn^ \
$(objpfx)strtold_nan^ \
--
2.31.1
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH v2 01/16] stdio-common: Remove _IO_vfwscanf
2021-05-31 14:11 ` [PATCH v2 01/16] stdio-common: Remove _IO_vfwscanf Florian Weimer
@ 2021-05-31 19:42 ` Adhemerval Zanella
0 siblings, 0 replies; 39+ messages in thread
From: Adhemerval Zanella @ 2021-05-31 19:42 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 31/05/2021 11:11, Florian Weimer via Libc-alpha wrote:
> The symbol has never been exported, so no compatibility symbol is
> needed. Removing this file prevents ld from creation an exported
> symbol in case GLIBC_2_0 expands to a symbol version which
> does not have a local: *; directive in the symbol version map file.
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> libio/libio.h | 2 --
> stdio-common/Makefile | 2 +-
> stdio-common/iovfwscanf.c | 38 ---------------------
> sysdeps/ieee754/ldbl-128ibm-compat/Makefile | 1 -
> 4 files changed, 1 insertion(+), 42 deletions(-)
> delete mode 100644 stdio-common/iovfwscanf.c
>
> diff --git a/libio/libio.h b/libio/libio.h
> index 511b39457f..98d526dec7 100644
> --- a/libio/libio.h
> +++ b/libio/libio.h
> @@ -254,8 +254,6 @@ weak_extern (_IO_stdin_used);
> __result = _IO_fwide (__fp, __result); \
> __result; })
>
> -extern int _IO_vfwscanf (FILE * __restrict, const wchar_t * __restrict,
> - __gnuc_va_list, int *__restrict);
> extern __ssize_t _IO_wpadn (FILE *, wint_t, __ssize_t);
> extern void _IO_free_wbackup_area (FILE *) __THROW;
>
Ok.
> diff --git a/stdio-common/Makefile b/stdio-common/Makefile
> index b2458ba4a6..f87796a8ce 100644
> --- a/stdio-common/Makefile
> +++ b/stdio-common/Makefile
> @@ -40,7 +40,7 @@ routines := \
> isoc99_scanf isoc99_vscanf isoc99_fscanf isoc99_vfscanf isoc99_sscanf \
> isoc99_vsscanf \
> psiginfo gentempfd \
> - vfscanf-internal vfwscanf-internal iovfscanf iovfwscanf \
> + vfscanf-internal vfwscanf-internal iovfscanf \
> vfprintf-internal vfwprintf-internal
>
> aux := errlist siglist printf-parsemb printf-parsewc fxprintf
Ok.
> diff --git a/stdio-common/iovfwscanf.c b/stdio-common/iovfwscanf.c
> deleted file mode 100644
> index 56b6b3b0d5..0000000000
> --- a/stdio-common/iovfwscanf.c
> +++ /dev/null
> @@ -1,38 +0,0 @@
> -/* Implementation and symbols for _IO_vfwscanf.
> - Copyright (C) 1991-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> -
> - The GNU C Library is free software; you can redistribute it and/or
> - modify it under the terms of the GNU Lesser General Public
> - License as published by the Free Software Foundation; either
> - version 2.1 of the License, or (at your option) any later version.
> -
> - The GNU C Library is distributed in the hope that it will be useful,
> - but WITHOUT ANY WARRANTY; without even the implied warranty of
> - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> - Lesser General Public License for more details.
> -
> - You should have received a copy of the GNU Lesser General Public
> - License along with the GNU C Library; if not, see
> - <https://www.gnu.org/licenses/>. */
> -
> -#include <libioP.h>
> -#include <shlib-compat.h>
> -
> -/* This function is provided for ports older than GLIBC 2.29 because
> - external callers could theoretically exist. Newer ports do not need,
> - since it is not part of the API. */
> -#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_29)
> -
> -int
> -attribute_compat_text_section
> -__IO_vfwscanf (FILE *fp, const wchar_t *format, va_list ap, int *errp)
> -{
> - int rv = __vfwscanf_internal (fp, format, ap, 0);
> - if (__glibc_unlikely (errp != 0))
> - *errp = (rv == -1);
> - return rv;
> -}
> -compat_symbol (libc, __IO_vfwscanf, _IO_vfwscanf, GLIBC_2_0);
> -
> -#endif
Ok.
> diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile
> index 7b42746c34..67d476383a 100644
> --- a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile
> +++ b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile
> @@ -325,7 +325,6 @@ ldbl-ibm128-files := $(objpfx)test-%-ibm128^ \
> $(objpfx)iovsscanf^ \
> $(objpfx)iovswscanf^ \
> $(objpfx)iovfscanf^ \
> - $(objpfx)iovfwscanf^ \
> $(objpfx)mpn2ldbl^ \
> $(objpfx)ldbl2mpn^ \
> $(objpfx)strtold_nan^ \
>
Ok.
^ permalink raw reply [flat|nested] 39+ messages in thread
* [PATCH 02/16] Add missing symbols to Version files
2021-05-31 14:10 [PATCH v3 00/16] Move libdl into libc Florian Weimer
2021-05-31 14:11 ` [PATCH v2 01/16] stdio-common: Remove _IO_vfwscanf Florian Weimer
@ 2021-05-31 14:11 ` Florian Weimer
2021-06-01 19:12 ` Adhemerval Zanella
2021-05-31 14:11 ` [PATCH 03/16] scripts/versions.awk: Add local: * to all version nodes Florian Weimer
` (13 subsequent siblings)
15 siblings, 1 reply; 39+ messages in thread
From: Florian Weimer @ 2021-05-31 14:11 UTC (permalink / raw)
To: libc-alpha
Some symbols have explicit versioned_symbol or compat_symbol markers
in the sources, but no corresponding entry in the Versions files.
This presently works because the local: * directive is only applied
to the base version.
---
inet/Versions | 2 +-
io/Versions | 1 +
libio/Versions | 2 ++
nptl/Versions | 8 ++++++++
posix/Versions | 4 ++++
sysdeps/mach/hurd/i386/Versions | 3 +++
sysdeps/unix/sysv/linux/Versions | 12 ++++++++++++
sysdeps/unix/sysv/linux/alpha/Versions | 10 ++++------
sysdeps/unix/sysv/linux/i386/Versions | 4 ----
sysdeps/unix/sysv/linux/ia64/Versions | 10 ++++------
sysdeps/unix/sysv/linux/mips/Versions | 4 ++++
sysdeps/unix/sysv/linux/powerpc/Versions | 4 ++++
sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions | 8 +-------
sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions | 7 +------
sysdeps/unix/sysv/linux/s390/s390-32/Versions | 3 ---
sysdeps/unix/sysv/linux/sh/Versions | 3 ---
sysdeps/unix/sysv/linux/sparc/Versions | 11 ++++-------
sysdeps/unix/sysv/linux/sparc/sparc32/Versions | 3 ---
18 files changed, 53 insertions(+), 46 deletions(-)
diff --git a/inet/Versions b/inet/Versions
index 9b3661e046..c0a2ad202d 100644
--- a/inet/Versions
+++ b/inet/Versions
@@ -53,7 +53,7 @@ libc {
getaliasbyname_r; getaliasent_r; gethostbyaddr_r; gethostbyname2_r;
gethostbyname_r; gethostent_r; getnetbyaddr_r; getnetbyname_r;
getnetent_r; getnetgrent_r; getprotobyname_r; getprotobynumber_r;
- getprotoent_r; getservbyname_r;
+ getprotoent_r; getservbyname_r; getservbyport_r; getservent_r;
}
GLIBC_2.2 {
# i*
diff --git a/io/Versions b/io/Versions
index 49c4d2d40a..88caf76bbc 100644
--- a/io/Versions
+++ b/io/Versions
@@ -129,6 +129,7 @@ libc {
copy_file_range;
}
GLIBC_2.28 {
+ fcntl;
fcntl64;
statx;
}
diff --git a/libio/Versions b/libio/Versions
index 6f1ab96100..01fc065577 100644
--- a/libio/Versions
+++ b/libio/Versions
@@ -92,6 +92,8 @@ libc {
# Changed getline function in libio.
_IO_getline_info;
+ _IO_fgetpos64; _IO_fsetpos64;
+
# f*
fgetpos64; fopen64; freopen64; fseeko; fseeko64; fsetpos64; ftello;
ftello64; fopen; fclose; fdopen; fread_unlocked; fwrite_unlocked;
diff --git a/nptl/Versions b/nptl/Versions
index af62a47cca..b8b82991fd 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -175,6 +175,7 @@ libc {
GLIBC_2.3.4 {
pthread_attr_getaffinity_np;
pthread_attr_setaffinity_np;
+ pthread_getaffinity_np;
pthread_setaffinity_np;
pthread_setschedprio;
}
@@ -258,6 +259,7 @@ libc {
__pthread_register_cancel_defer;
__pthread_unregister_cancel;
__pthread_unregister_cancel_restore;
+ __pthread_unwind_next;
call_once;
cnd_broadcast;
cnd_destroy;
@@ -294,6 +296,7 @@ libc {
pthread_condattr_getpshared;
pthread_condattr_setclock;
pthread_condattr_setpshared;
+ pthread_create;
pthread_detach;
pthread_getattr_default_np;
pthread_getconcurrency;
@@ -308,9 +311,12 @@ libc {
pthread_mutex_consistent;
pthread_mutex_getprioceiling;
pthread_mutex_setprioceiling;
+ pthread_mutex_timedlock;
+ pthread_mutex_trylock;
pthread_mutexattr_destroy;
pthread_mutexattr_getprioceiling;
pthread_mutexattr_getprotocol;
+ pthread_mutexattr_getpshared;
pthread_mutexattr_getrobust;
pthread_mutexattr_gettype;
pthread_mutexattr_init;
@@ -323,6 +329,7 @@ libc {
pthread_rwlock_clockrdlock;
pthread_rwlock_clockwrlock;
pthread_rwlock_destroy;
+ pthread_rwlock_init;
pthread_rwlock_rdlock;
pthread_rwlock_timedrdlock;
pthread_rwlock_timedwrlock;
@@ -336,6 +343,7 @@ libc {
pthread_rwlockattr_init;
pthread_rwlockattr_setkind_np;
pthread_rwlockattr_setpshared;
+ pthread_setaffinity_np;
pthread_setattr_default_np;
pthread_setconcurrency;
pthread_setname_np;
diff --git a/posix/Versions b/posix/Versions
index b77e251e00..5983144d01 100644
--- a/posix/Versions
+++ b/posix/Versions
@@ -138,6 +138,10 @@ libc {
GLIBC_2.11 {
execvpe;
}
+ GLIBC_2.15 {
+ posix_spawn;
+ posix_spawnp;
+ }
GLIBC_2.27 {
glob; glob64;
}
diff --git a/sysdeps/mach/hurd/i386/Versions b/sysdeps/mach/hurd/i386/Versions
index 67e6d94204..69572f46f5 100644
--- a/sysdeps/mach/hurd/i386/Versions
+++ b/sysdeps/mach/hurd/i386/Versions
@@ -7,4 +7,7 @@ libc {
GLIBC_2.2.6 {
ioperm;
}
+ GLIBC_2.3.3 {
+ posix_fadvise64; posix_fallocate64;
+ }
}
diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
index 220bb2dffe..47f5d198ba 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -86,6 +86,16 @@ libc {
# ipc ctl interface change.
semctl; shmctl; msgctl;
+
+ # Old symbol versions from libpthread.
+ __pread64;
+ __pwrite64;
+ lseek64;
+ open64;
+ pread;
+ pread64;
+ pwrite;
+ pwrite64;
}
GLIBC_2.2.1 {
# p*
@@ -103,6 +113,8 @@ libc {
}
GLIBC_2.3.3 {
gnu_dev_major; gnu_dev_minor; gnu_dev_makedev;
+ _sys_siglist; sys_siglist; sys_sigabbrev;
+ posix_fadvise64; posix_fallocate64;
}
GLIBC_2.3.4 {
sched_getaffinity; sched_setaffinity;
diff --git a/sysdeps/unix/sysv/linux/alpha/Versions b/sysdeps/unix/sysv/linux/alpha/Versions
index b90d5f2e5a..b157e2694a 100644
--- a/sysdeps/unix/sysv/linux/alpha/Versions
+++ b/sysdeps/unix/sysv/linux/alpha/Versions
@@ -64,6 +64,10 @@ libc {
GLIBC_2.3 {
_sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
}
+ GLIBC_2.3.3 {
+ # Changed PTHREAD_STACK_MIN.
+ pthread_attr_setstack; pthread_attr_setstacksize;
+ }
GLIBC_2.4 {
_sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
}
@@ -85,12 +89,6 @@ ld {
__libc_alpha_cache_shape;
}
}
-libpthread {
- GLIBC_2.3.3 {
- # Changed PTHREAD_STACK_MIN.
- pthread_attr_setstack; pthread_attr_setstacksize;
- }
-}
librt {
GLIBC_2.3 {
# AIO functions.
diff --git a/sysdeps/unix/sysv/linux/i386/Versions b/sysdeps/unix/sysv/linux/i386/Versions
index b59ace48da..1335e6551b 100644
--- a/sysdeps/unix/sysv/linux/i386/Versions
+++ b/sysdeps/unix/sysv/linux/i386/Versions
@@ -33,10 +33,6 @@ libc {
# v*
versionsort64;
}
- GLIBC_2.3.3 {
- # p*
- posix_fadvise64; posix_fallocate64;
- }
GLIBC_2.3.4 {
# v*
vm86;
diff --git a/sysdeps/unix/sysv/linux/ia64/Versions b/sysdeps/unix/sysv/linux/ia64/Versions
index 214e6f9f1a..f6994151aa 100644
--- a/sysdeps/unix/sysv/linux/ia64/Versions
+++ b/sysdeps/unix/sysv/linux/ia64/Versions
@@ -14,6 +14,10 @@ libc {
# w*
wordexp;
}
+ GLIBC_2.3.3 {
+ # Changed PTHREAD_STACK_MIN.
+ pthread_attr_setstack; pthread_attr_setstacksize;
+ }
GLIBC_2.2.6 {
getunwind;
}
@@ -21,12 +25,6 @@ libc {
recvmsg; sendmsg;
}
}
-libpthread {
- GLIBC_2.3.3 {
- # Changed PTHREAD_STACK_MIN.
- pthread_attr_setstack; pthread_attr_setstacksize;
- }
-}
librt {
GLIBC_2.3.3 {
# Changed timer_t.
diff --git a/sysdeps/unix/sysv/linux/mips/Versions b/sysdeps/unix/sysv/linux/mips/Versions
index aeaac41744..9c6f909e0d 100644
--- a/sysdeps/unix/sysv/linux/mips/Versions
+++ b/sysdeps/unix/sysv/linux/mips/Versions
@@ -21,6 +21,10 @@ libc {
# _*
_test_and_set;
}
+ GLIBC_2.3.3 {
+ # Changed PTHREAD_STACK_MIN.
+ pthread_attr_setstack; pthread_attr_setstacksize;
+ }
GLIBC_2.11 {
fallocate64;
}
diff --git a/sysdeps/unix/sysv/linux/powerpc/Versions b/sysdeps/unix/sysv/linux/powerpc/Versions
index 416272b718..6778adf5c7 100644
--- a/sysdeps/unix/sysv/linux/powerpc/Versions
+++ b/sysdeps/unix/sysv/linux/powerpc/Versions
@@ -1,4 +1,8 @@
libc {
+ GLIBC_2.6 {
+ # Changed PTHREAD_STACK_MIN.
+ pthread_attr_setstack; pthread_attr_setstacksize;
+ }
GLIBC_PRIVATE {
__vdso_get_tbfreq;
__vdso_clock_gettime;
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions b/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions
index ee505efb9e..0e6c8692b0 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions
@@ -21,10 +21,10 @@ libc {
scandir64;
}
GLIBC_2.3.3 {
- posix_fadvise64; posix_fallocate64;
setcontext; getcontext; swapcontext; makecontext;
}
GLIBC_2.3.4 {
+ longjmp; siglongjmp;
setcontext; getcontext; swapcontext; makecontext;
}
GLIBC_2.11 {
@@ -34,9 +34,3 @@ libc {
__ppc_get_timebase_freq;
}
}
-
-libpthread {
- GLIBC_2.3.4 {
- longjmp; siglongjmp;
- }
-}
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
index 7a166f2400..13717b2c5e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
@@ -18,6 +18,7 @@ libc {
getcontext;
setcontext;
swapcontext;
+ longjmp; siglongjmp;
}
GLIBC_2.17 {
__ppc_get_timebase_freq;
@@ -31,9 +32,3 @@ librt {
timer_settime;
}
}
-
-libpthread {
- GLIBC_2.3.4 {
- longjmp; siglongjmp;
- }
-}
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/Versions b/sysdeps/unix/sysv/linux/s390/s390-32/Versions
index 99193982a7..cc03e70015 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/Versions
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/Versions
@@ -26,9 +26,6 @@ libc {
# v*
versionsort64;
}
- GLIBC_2.3.3 {
- posix_fadvise64; posix_fallocate64;
- }
GLIBC_2.9 {
getutent;
getutid;
diff --git a/sysdeps/unix/sysv/linux/sh/Versions b/sysdeps/unix/sysv/linux/sh/Versions
index e0938c4165..19ba1d8d91 100644
--- a/sysdeps/unix/sysv/linux/sh/Versions
+++ b/sysdeps/unix/sysv/linux/sh/Versions
@@ -21,9 +21,6 @@ libc {
# v*
versionsort64;
}
- GLIBC_2.3.3 {
- posix_fadvise64; posix_fallocate64;
- }
GLIBC_2.11 {
fallocate64;
}
diff --git a/sysdeps/unix/sysv/linux/sparc/Versions b/sysdeps/unix/sysv/linux/sparc/Versions
index 61e57fae99..c4ec7ab537 100644
--- a/sysdeps/unix/sysv/linux/sparc/Versions
+++ b/sysdeps/unix/sysv/linux/sparc/Versions
@@ -8,6 +8,10 @@ libc {
GLIBC_2.3 {
_sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
}
+ GLIBC_2.3.3 {
+ # Changed PTHREAD_STACK_MIN.
+ pthread_attr_setstack; pthread_attr_setstacksize;
+ }
GLIBC_2.4 {
_sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
}
@@ -25,13 +29,6 @@ libc {
}
}
-libpthread {
- GLIBC_2.3.3 {
- # Changed PTHREAD_STACK_MIN.
- pthread_attr_setstack; pthread_attr_setstacksize;
- }
-}
-
librt {
GLIBC_2.3 {
# AIO functions.
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/Versions b/sysdeps/unix/sysv/linux/sparc/sparc32/Versions
index c9a5b3e9d5..d928a65346 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/Versions
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/Versions
@@ -17,9 +17,6 @@ libc {
# s*
scandir64;
}
- GLIBC_2.3.3 {
- posix_fadvise64; posix_fallocate64;
- }
GLIBC_2.11 {
fallocate64;
}
--
2.31.1
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH 02/16] Add missing symbols to Version files
2021-05-31 14:11 ` [PATCH 02/16] Add missing symbols to Version files Florian Weimer
@ 2021-06-01 19:12 ` Adhemerval Zanella
0 siblings, 0 replies; 39+ messages in thread
From: Adhemerval Zanella @ 2021-06-01 19:12 UTC (permalink / raw)
To: libc-alpha, Florian Weimer
On 31/05/2021 11:11, Florian Weimer via Libc-alpha wrote:
> Some symbols have explicit versioned_symbol or compat_symbol markers
> in the sources, but no corresponding entry in the Versions files.
> This presently works because the local: * directive is only applied
> to the base version.
LGTM, although I would add one entry per line (so future patch diff
would be easier to read).
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> inet/Versions | 2 +-
> io/Versions | 1 +
> libio/Versions | 2 ++
> nptl/Versions | 8 ++++++++
> posix/Versions | 4 ++++
> sysdeps/mach/hurd/i386/Versions | 3 +++
> sysdeps/unix/sysv/linux/Versions | 12 ++++++++++++
> sysdeps/unix/sysv/linux/alpha/Versions | 10 ++++------
> sysdeps/unix/sysv/linux/i386/Versions | 4 ----
> sysdeps/unix/sysv/linux/ia64/Versions | 10 ++++------
> sysdeps/unix/sysv/linux/mips/Versions | 4 ++++
> sysdeps/unix/sysv/linux/powerpc/Versions | 4 ++++
> sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions | 8 +-------
> sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions | 7 +------
> sysdeps/unix/sysv/linux/s390/s390-32/Versions | 3 ---
> sysdeps/unix/sysv/linux/sh/Versions | 3 ---
> sysdeps/unix/sysv/linux/sparc/Versions | 11 ++++-------
> sysdeps/unix/sysv/linux/sparc/sparc32/Versions | 3 ---
> 18 files changed, 53 insertions(+), 46 deletions(-)
>
> diff --git a/inet/Versions b/inet/Versions
> index 9b3661e046..c0a2ad202d 100644
> --- a/inet/Versions
> +++ b/inet/Versions
> @@ -53,7 +53,7 @@ libc {
> getaliasbyname_r; getaliasent_r; gethostbyaddr_r; gethostbyname2_r;
> gethostbyname_r; gethostent_r; getnetbyaddr_r; getnetbyname_r;
> getnetent_r; getnetgrent_r; getprotobyname_r; getprotobynumber_r;
> - getprotoent_r; getservbyname_r;
> + getprotoent_r; getservbyname_r; getservbyport_r; getservent_r;
> }
> GLIBC_2.2 {
> # i*
> diff --git a/io/Versions b/io/Versions
> index 49c4d2d40a..88caf76bbc 100644
> --- a/io/Versions
> +++ b/io/Versions
> @@ -129,6 +129,7 @@ libc {
> copy_file_range;
> }
> GLIBC_2.28 {
> + fcntl;
> fcntl64;
> statx;
> }
> diff --git a/libio/Versions b/libio/Versions
> index 6f1ab96100..01fc065577 100644
> --- a/libio/Versions
> +++ b/libio/Versions
> @@ -92,6 +92,8 @@ libc {
> # Changed getline function in libio.
> _IO_getline_info;
>
> + _IO_fgetpos64; _IO_fsetpos64;
> +
> # f*
> fgetpos64; fopen64; freopen64; fseeko; fseeko64; fsetpos64; ftello;
> ftello64; fopen; fclose; fdopen; fread_unlocked; fwrite_unlocked;
> diff --git a/nptl/Versions b/nptl/Versions
> index af62a47cca..b8b82991fd 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -175,6 +175,7 @@ libc {
> GLIBC_2.3.4 {
> pthread_attr_getaffinity_np;
> pthread_attr_setaffinity_np;
> + pthread_getaffinity_np;
> pthread_setaffinity_np;
> pthread_setschedprio;
> }
> @@ -258,6 +259,7 @@ libc {
> __pthread_register_cancel_defer;
> __pthread_unregister_cancel;
> __pthread_unregister_cancel_restore;
> + __pthread_unwind_next;
> call_once;
> cnd_broadcast;
> cnd_destroy;
> @@ -294,6 +296,7 @@ libc {
> pthread_condattr_getpshared;
> pthread_condattr_setclock;
> pthread_condattr_setpshared;
> + pthread_create;
> pthread_detach;
> pthread_getattr_default_np;
> pthread_getconcurrency;
> @@ -308,9 +311,12 @@ libc {
> pthread_mutex_consistent;
> pthread_mutex_getprioceiling;
> pthread_mutex_setprioceiling;
> + pthread_mutex_timedlock;
> + pthread_mutex_trylock;
> pthread_mutexattr_destroy;
> pthread_mutexattr_getprioceiling;
> pthread_mutexattr_getprotocol;
> + pthread_mutexattr_getpshared;
> pthread_mutexattr_getrobust;
> pthread_mutexattr_gettype;
> pthread_mutexattr_init;
> @@ -323,6 +329,7 @@ libc {
> pthread_rwlock_clockrdlock;
> pthread_rwlock_clockwrlock;
> pthread_rwlock_destroy;
> + pthread_rwlock_init;
> pthread_rwlock_rdlock;
> pthread_rwlock_timedrdlock;
> pthread_rwlock_timedwrlock;
> @@ -336,6 +343,7 @@ libc {
> pthread_rwlockattr_init;
> pthread_rwlockattr_setkind_np;
> pthread_rwlockattr_setpshared;
> + pthread_setaffinity_np;
> pthread_setattr_default_np;
> pthread_setconcurrency;
> pthread_setname_np;
> diff --git a/posix/Versions b/posix/Versions
> index b77e251e00..5983144d01 100644
> --- a/posix/Versions
> +++ b/posix/Versions
> @@ -138,6 +138,10 @@ libc {
> GLIBC_2.11 {
> execvpe;
> }
> + GLIBC_2.15 {
> + posix_spawn;
> + posix_spawnp;
> + }
> GLIBC_2.27 {
> glob; glob64;
> }
> diff --git a/sysdeps/mach/hurd/i386/Versions b/sysdeps/mach/hurd/i386/Versions
> index 67e6d94204..69572f46f5 100644
> --- a/sysdeps/mach/hurd/i386/Versions
> +++ b/sysdeps/mach/hurd/i386/Versions
> @@ -7,4 +7,7 @@ libc {
> GLIBC_2.2.6 {
> ioperm;
> }
> + GLIBC_2.3.3 {
> + posix_fadvise64; posix_fallocate64;
> + }
> }
> diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
> index 220bb2dffe..47f5d198ba 100644
> --- a/sysdeps/unix/sysv/linux/Versions
> +++ b/sysdeps/unix/sysv/linux/Versions
> @@ -86,6 +86,16 @@ libc {
>
> # ipc ctl interface change.
> semctl; shmctl; msgctl;
> +
> + # Old symbol versions from libpthread.
> + __pread64;
> + __pwrite64;
> + lseek64;
> + open64;
> + pread;
> + pread64;
> + pwrite;
> + pwrite64;
> }
> GLIBC_2.2.1 {
> # p*
> @@ -103,6 +113,8 @@ libc {
> }
> GLIBC_2.3.3 {
> gnu_dev_major; gnu_dev_minor; gnu_dev_makedev;
> + _sys_siglist; sys_siglist; sys_sigabbrev;
> + posix_fadvise64; posix_fallocate64;
> }
> GLIBC_2.3.4 {
> sched_getaffinity; sched_setaffinity;
> diff --git a/sysdeps/unix/sysv/linux/alpha/Versions b/sysdeps/unix/sysv/linux/alpha/Versions
> index b90d5f2e5a..b157e2694a 100644
> --- a/sysdeps/unix/sysv/linux/alpha/Versions
> +++ b/sysdeps/unix/sysv/linux/alpha/Versions
> @@ -64,6 +64,10 @@ libc {
> GLIBC_2.3 {
> _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
> }
> + GLIBC_2.3.3 {
> + # Changed PTHREAD_STACK_MIN.
> + pthread_attr_setstack; pthread_attr_setstacksize;
> + }
> GLIBC_2.4 {
> _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
> }
> @@ -85,12 +89,6 @@ ld {
> __libc_alpha_cache_shape;
> }
> }
> -libpthread {
> - GLIBC_2.3.3 {
> - # Changed PTHREAD_STACK_MIN.
> - pthread_attr_setstack; pthread_attr_setstacksize;
> - }
> -}
> librt {
> GLIBC_2.3 {
> # AIO functions.
> diff --git a/sysdeps/unix/sysv/linux/i386/Versions b/sysdeps/unix/sysv/linux/i386/Versions
> index b59ace48da..1335e6551b 100644
> --- a/sysdeps/unix/sysv/linux/i386/Versions
> +++ b/sysdeps/unix/sysv/linux/i386/Versions
> @@ -33,10 +33,6 @@ libc {
> # v*
> versionsort64;
> }
> - GLIBC_2.3.3 {
> - # p*
> - posix_fadvise64; posix_fallocate64;
> - }
> GLIBC_2.3.4 {
> # v*
> vm86;
> diff --git a/sysdeps/unix/sysv/linux/ia64/Versions b/sysdeps/unix/sysv/linux/ia64/Versions
> index 214e6f9f1a..f6994151aa 100644
> --- a/sysdeps/unix/sysv/linux/ia64/Versions
> +++ b/sysdeps/unix/sysv/linux/ia64/Versions
> @@ -14,6 +14,10 @@ libc {
> # w*
> wordexp;
> }
> + GLIBC_2.3.3 {
> + # Changed PTHREAD_STACK_MIN.
> + pthread_attr_setstack; pthread_attr_setstacksize;
> + }
> GLIBC_2.2.6 {
> getunwind;
> }
> @@ -21,12 +25,6 @@ libc {
> recvmsg; sendmsg;
> }
> }
> -libpthread {
> - GLIBC_2.3.3 {
> - # Changed PTHREAD_STACK_MIN.
> - pthread_attr_setstack; pthread_attr_setstacksize;
> - }
> -}
> librt {
> GLIBC_2.3.3 {
> # Changed timer_t.
> diff --git a/sysdeps/unix/sysv/linux/mips/Versions b/sysdeps/unix/sysv/linux/mips/Versions
> index aeaac41744..9c6f909e0d 100644
> --- a/sysdeps/unix/sysv/linux/mips/Versions
> +++ b/sysdeps/unix/sysv/linux/mips/Versions
> @@ -21,6 +21,10 @@ libc {
> # _*
> _test_and_set;
> }
> + GLIBC_2.3.3 {
> + # Changed PTHREAD_STACK_MIN.
> + pthread_attr_setstack; pthread_attr_setstacksize;
> + }
> GLIBC_2.11 {
> fallocate64;
> }
> diff --git a/sysdeps/unix/sysv/linux/powerpc/Versions b/sysdeps/unix/sysv/linux/powerpc/Versions
> index 416272b718..6778adf5c7 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/Versions
> +++ b/sysdeps/unix/sysv/linux/powerpc/Versions
> @@ -1,4 +1,8 @@
> libc {
> + GLIBC_2.6 {
> + # Changed PTHREAD_STACK_MIN.
> + pthread_attr_setstack; pthread_attr_setstacksize;
> + }
> GLIBC_PRIVATE {
> __vdso_get_tbfreq;
> __vdso_clock_gettime;
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions b/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions
> index ee505efb9e..0e6c8692b0 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions
> @@ -21,10 +21,10 @@ libc {
> scandir64;
> }
> GLIBC_2.3.3 {
> - posix_fadvise64; posix_fallocate64;
> setcontext; getcontext; swapcontext; makecontext;
> }
> GLIBC_2.3.4 {
> + longjmp; siglongjmp;
> setcontext; getcontext; swapcontext; makecontext;
> }
> GLIBC_2.11 {
> @@ -34,9 +34,3 @@ libc {
> __ppc_get_timebase_freq;
> }
> }
> -
> -libpthread {
> - GLIBC_2.3.4 {
> - longjmp; siglongjmp;
> - }
> -}
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
> index 7a166f2400..13717b2c5e 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
> @@ -18,6 +18,7 @@ libc {
> getcontext;
> setcontext;
> swapcontext;
> + longjmp; siglongjmp;
> }
> GLIBC_2.17 {
> __ppc_get_timebase_freq;
> @@ -31,9 +32,3 @@ librt {
> timer_settime;
> }
> }
> -
> -libpthread {
> - GLIBC_2.3.4 {
> - longjmp; siglongjmp;
> - }
> -}
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/Versions b/sysdeps/unix/sysv/linux/s390/s390-32/Versions
> index 99193982a7..cc03e70015 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/Versions
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/Versions
> @@ -26,9 +26,6 @@ libc {
> # v*
> versionsort64;
> }
> - GLIBC_2.3.3 {
> - posix_fadvise64; posix_fallocate64;
> - }
> GLIBC_2.9 {
> getutent;
> getutid;
> diff --git a/sysdeps/unix/sysv/linux/sh/Versions b/sysdeps/unix/sysv/linux/sh/Versions
> index e0938c4165..19ba1d8d91 100644
> --- a/sysdeps/unix/sysv/linux/sh/Versions
> +++ b/sysdeps/unix/sysv/linux/sh/Versions
> @@ -21,9 +21,6 @@ libc {
> # v*
> versionsort64;
> }
> - GLIBC_2.3.3 {
> - posix_fadvise64; posix_fallocate64;
> - }
> GLIBC_2.11 {
> fallocate64;
> }
> diff --git a/sysdeps/unix/sysv/linux/sparc/Versions b/sysdeps/unix/sysv/linux/sparc/Versions
> index 61e57fae99..c4ec7ab537 100644
> --- a/sysdeps/unix/sysv/linux/sparc/Versions
> +++ b/sysdeps/unix/sysv/linux/sparc/Versions
> @@ -8,6 +8,10 @@ libc {
> GLIBC_2.3 {
> _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
> }
> + GLIBC_2.3.3 {
> + # Changed PTHREAD_STACK_MIN.
> + pthread_attr_setstack; pthread_attr_setstacksize;
> + }
> GLIBC_2.4 {
> _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
> }
> @@ -25,13 +29,6 @@ libc {
> }
> }
>
> -libpthread {
> - GLIBC_2.3.3 {
> - # Changed PTHREAD_STACK_MIN.
> - pthread_attr_setstack; pthread_attr_setstacksize;
> - }
> -}
> -
> librt {
> GLIBC_2.3 {
> # AIO functions.
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/Versions b/sysdeps/unix/sysv/linux/sparc/sparc32/Versions
> index c9a5b3e9d5..d928a65346 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/Versions
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/Versions
> @@ -17,9 +17,6 @@ libc {
> # s*
> scandir64;
> }
> - GLIBC_2.3.3 {
> - posix_fadvise64; posix_fallocate64;
> - }
> GLIBC_2.11 {
> fallocate64;
> }
>
^ permalink raw reply [flat|nested] 39+ messages in thread
* [PATCH 03/16] scripts/versions.awk: Add local: * to all version nodes
2021-05-31 14:10 [PATCH v3 00/16] Move libdl into libc Florian Weimer
2021-05-31 14:11 ` [PATCH v2 01/16] stdio-common: Remove _IO_vfwscanf Florian Weimer
2021-05-31 14:11 ` [PATCH 02/16] Add missing symbols to Version files Florian Weimer
@ 2021-05-31 14:11 ` Florian Weimer
2021-06-01 19:23 ` Adhemerval Zanella
2021-05-31 14:11 ` [PATCH v2 04/16] Add libc ABI extension kludge for baseline-violating libdl symbols Florian Weimer
` (12 subsequent siblings)
15 siblings, 1 reply; 39+ messages in thread
From: Florian Weimer @ 2021-05-31 14:11 UTC (permalink / raw)
To: libc-alpha
This requires that all exported symbol versions are listed in
Versions files. It results in more consistent behavior across
architectures because previously, symbols could be exported
via explicit versioned_symbol and compat_symbol clauses if the
version node existed in some Versions file (without listing the
symbol) and it was not the base version for the library.
---
scripts/versions.awk | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/scripts/versions.awk b/scripts/versions.awk
index 3291123666..a7154480e3 100644
--- a/scripts/versions.awk
+++ b/scripts/versions.awk
@@ -95,10 +95,7 @@ function ord(c) {
function closeversion(name, oldname) {
- if (firstinfile) {
- printf(" local:\n *;\n") > outfile;
- firstinfile = 0;
- }
+ printf(" local:\n *;\n") > outfile;
# This version inherits from the last one only if they
# have the same nonnumeric prefix, i.e. GLIBC_x.y and GLIBC_x.z
# or FOO_x and FOO_y but not GLIBC_x and FOO_y.
@@ -157,7 +154,6 @@ END {
oldlib = $1;
real_outfile = buildroot oldlib ".map";
outfile = real_outfile "T";
- firstinfile = 1;
veryoldver = "";
printf(" %s.map", oldlib);
}
--
2.31.1
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH 03/16] scripts/versions.awk: Add local: * to all version nodes
2021-05-31 14:11 ` [PATCH 03/16] scripts/versions.awk: Add local: * to all version nodes Florian Weimer
@ 2021-06-01 19:23 ` Adhemerval Zanella
0 siblings, 0 replies; 39+ messages in thread
From: Adhemerval Zanella @ 2021-06-01 19:23 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 31/05/2021 11:11, Florian Weimer via Libc-alpha wrote:
> This requires that all exported symbol versions are listed in
> Versions files. It results in more consistent behavior across
> architectures because previously, symbols could be exported
> via explicit versioned_symbol and compat_symbol clauses if the
> version node existed in some Versions file (without listing the
> symbol) and it was not the base version for the library.
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> scripts/versions.awk | 6 +-----
> 1 file changed, 1 insertion(+), 5 deletions(-)
>
> diff --git a/scripts/versions.awk b/scripts/versions.awk
> index 3291123666..a7154480e3 100644
> --- a/scripts/versions.awk
> +++ b/scripts/versions.awk
> @@ -95,10 +95,7 @@ function ord(c) {
>
>
> function closeversion(name, oldname) {
> - if (firstinfile) {
> - printf(" local:\n *;\n") > outfile;
> - firstinfile = 0;
> - }
> + printf(" local:\n *;\n") > outfile;
> # This version inherits from the last one only if they
> # have the same nonnumeric prefix, i.e. GLIBC_x.y and GLIBC_x.z
> # or FOO_x and FOO_y but not GLIBC_x and FOO_y.
> @@ -157,7 +154,6 @@ END {
> oldlib = $1;
> real_outfile = buildroot oldlib ".map";
> outfile = real_outfile "T";
> - firstinfile = 1;
> veryoldver = "";
> printf(" %s.map", oldlib);
> }
>
^ permalink raw reply [flat|nested] 39+ messages in thread
* [PATCH v2 04/16] Add libc ABI extension kludge for baseline-violating libdl symbols
2021-05-31 14:10 [PATCH v3 00/16] Move libdl into libc Florian Weimer
` (2 preceding siblings ...)
2021-05-31 14:11 ` [PATCH 03/16] scripts/versions.awk: Add local: * to all version nodes Florian Weimer
@ 2021-05-31 14:11 ` Florian Weimer
2021-06-01 19:31 ` Adhemerval Zanella
2021-05-31 14:11 ` [PATCH 05/16] dlfcn: Move dlerror into libc Florian Weimer
` (11 subsequent siblings)
15 siblings, 1 reply; 39+ messages in thread
From: Florian Weimer @ 2021-05-31 14:11 UTC (permalink / raw)
To: libc-alpha
Some targets have a GLIBC_2.0 baseline for libdl, while using
GLIBC_2.2 for libc. This means that the generated libc.map file
does not have any version nodes for GLIBC_2.0 or GLIBC_2.1. However,
moving symbols from libdl into libc needs such version nodes.
(Future symbol moves from librt will need this as well.)
This kludge is only necessary for symbols predating GLIBC_2.2 because
the affected targets use GLIBC_2.2 as the baseline for libc. Given
the small number and fixexd set of affected architectures, no generic
mechanism is implemented, and instead the map file fragment is
hard-coded in scripts/versions.mk.
The compat_symbol macro already emits the appropriate version strings,
so no adjustments are needed there.
---
scripts/versions.awk | 26 ++++++++++++++++++-
sysdeps/unix/sysv/linux/hppa/Versions | 1 +
sysdeps/unix/sysv/linux/ia64/Versions | 1 +
sysdeps/unix/sysv/linux/sh/Versions | 1 +
.../unix/sysv/linux/sparc/sparc64/Versions | 1 +
5 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/scripts/versions.awk b/scripts/versions.awk
index a7154480e3..1e8d8e4dc5 100644
--- a/scripts/versions.awk
+++ b/scripts/versions.awk
@@ -93,6 +93,26 @@ function ord(c) {
printf("%s %s %s\n", actlib, sortver, $0) | sort;
}
+# Some targets do not set the ABI baseline for libdl. As a result,
+# symbols originally in libdl need to be moved under historic symbol
+# versions, without altering the baseline version for libc itself.
+/^ *!libc_abi_extension/ {
+ libc_abi_extension_active = 1;
+}
+
+function libc_abi_extension() {
+ # No local: * here, so that we do not have to update this script
+ # if symbols are moved into libc. The abilist files and the other
+ # targets (with a real GLIBC_2.0 baseline) provide testing
+ # coverage.
+ printf("\
+GLIBC_2.0 {\n\
+};\n\
+GLIBC_2.1 {\n\
+} GLIBC_2.0;\n\
+") > outfile;
+ return "GLIBC_2.1";
+}
function closeversion(name, oldname) {
printf(" local:\n *;\n") > outfile;
@@ -154,7 +174,11 @@ END {
oldlib = $1;
real_outfile = buildroot oldlib ".map";
outfile = real_outfile "T";
- veryoldver = "";
+ if ($1 == "libc" && libc_abi_extension_active) {
+ veryoldver = libc_abi_extension();
+ } else {
+ veryoldver = "";
+ }
printf(" %s.map", oldlib);
}
if ($2 != oldver) {
diff --git a/sysdeps/unix/sysv/linux/hppa/Versions b/sysdeps/unix/sysv/linux/hppa/Versions
index 9532d207fc..8969fc08af 100644
--- a/sysdeps/unix/sysv/linux/hppa/Versions
+++ b/sysdeps/unix/sysv/linux/hppa/Versions
@@ -1,3 +1,4 @@
+!libc_abi_extension
libc {
GLIBC_2.1 {
_sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
diff --git a/sysdeps/unix/sysv/linux/ia64/Versions b/sysdeps/unix/sysv/linux/ia64/Versions
index f6994151aa..7cac57a8e1 100644
--- a/sysdeps/unix/sysv/linux/ia64/Versions
+++ b/sysdeps/unix/sysv/linux/ia64/Versions
@@ -1,3 +1,4 @@
+!libc_abi_extension
libc {
GLIBC_2.2 {
ioperm; iopl;
diff --git a/sysdeps/unix/sysv/linux/sh/Versions b/sysdeps/unix/sysv/linux/sh/Versions
index 19ba1d8d91..fc89ff1c18 100644
--- a/sysdeps/unix/sysv/linux/sh/Versions
+++ b/sysdeps/unix/sysv/linux/sh/Versions
@@ -1,3 +1,4 @@
+!libc_abi_extension
libc {
GLIBC_2.2 {
# functions used in other libraries
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
index fbea1bb2ef..3059d56f80 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
@@ -1,3 +1,4 @@
+!libc_abi_extension
libc {
GLIBC_2.0 {
# Exception handling support functions from libgcc
--
2.31.1
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH v2 04/16] Add libc ABI extension kludge for baseline-violating libdl symbols
2021-05-31 14:11 ` [PATCH v2 04/16] Add libc ABI extension kludge for baseline-violating libdl symbols Florian Weimer
@ 2021-06-01 19:31 ` Adhemerval Zanella
2021-06-01 19:34 ` Florian Weimer
0 siblings, 1 reply; 39+ messages in thread
From: Adhemerval Zanella @ 2021-06-01 19:31 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 31/05/2021 11:11, Florian Weimer via Libc-alpha wrote:
> Some targets have a GLIBC_2.0 baseline for libdl, while using
> GLIBC_2.2 for libc. This means that the generated libc.map file
> does not have any version nodes for GLIBC_2.0 or GLIBC_2.1. However,
> moving symbols from libdl into libc needs such version nodes.
> (Future symbol moves from librt will need this as well.)
>
> This kludge is only necessary for symbols predating GLIBC_2.2 because
> the affected targets use GLIBC_2.2 as the baseline for libc. Given
> the small number and fixexd set of affected architectures, no generic
Typo 'fixexd'
> mechanism is implemented, and instead the map file fragment is
> hard-coded in scripts/versions.mk.
>
> The compat_symbol macro already emits the appropriate version strings,
> so no adjustments are needed there.
I guess this quite specific mismatched version issue justify this
ad-hoc solution.
LGTM, thanks. There is only a small nit regarding the version tag
name used.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> scripts/versions.awk | 26 ++++++++++++++++++-
> sysdeps/unix/sysv/linux/hppa/Versions | 1 +
> sysdeps/unix/sysv/linux/ia64/Versions | 1 +
> sysdeps/unix/sysv/linux/sh/Versions | 1 +
> .../unix/sysv/linux/sparc/sparc64/Versions | 1 +
> 5 files changed, 29 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/versions.awk b/scripts/versions.awk
> index a7154480e3..1e8d8e4dc5 100644
> --- a/scripts/versions.awk
> +++ b/scripts/versions.awk
> @@ -93,6 +93,26 @@ function ord(c) {
> printf("%s %s %s\n", actlib, sortver, $0) | sort;
> }
>
> +# Some targets do not set the ABI baseline for libdl. As a result,
> +# symbols originally in libdl need to be moved under historic symbol
> +# versions, without altering the baseline version for libc itself.
> +/^ *!libc_abi_extension/ {
Maybe use a different name like 'libc_compat_versions', the 'extension'
wording does not really fits in what it is providing.
> + libc_abi_extension_active = 1;
> +}
> +
> +function libc_abi_extension() {
> + # No local: * here, so that we do not have to update this script
> + # if symbols are moved into libc. The abilist files and the other
> + # targets (with a real GLIBC_2.0 baseline) provide testing
> + # coverage.
> + printf("\
> +GLIBC_2.0 {\n\
> +};\n\
> +GLIBC_2.1 {\n\
> +} GLIBC_2.0;\n\
> +") > outfile;
> + return "GLIBC_2.1";
> +}
>
> function closeversion(name, oldname) {
> printf(" local:\n *;\n") > outfile;
> @@ -154,7 +174,11 @@ END {
> oldlib = $1;
> real_outfile = buildroot oldlib ".map";
> outfile = real_outfile "T";
> - veryoldver = "";
> + if ($1 == "libc" && libc_abi_extension_active) {
> + veryoldver = libc_abi_extension();
> + } else {
> + veryoldver = "";
> + }
> printf(" %s.map", oldlib);
> }
> if ($2 != oldver) {
Ok.
> diff --git a/sysdeps/unix/sysv/linux/hppa/Versions b/sysdeps/unix/sysv/linux/hppa/Versions
> index 9532d207fc..8969fc08af 100644
> --- a/sysdeps/unix/sysv/linux/hppa/Versions
> +++ b/sysdeps/unix/sysv/linux/hppa/Versions
> @@ -1,3 +1,4 @@
> +!libc_abi_extension
> libc {
> GLIBC_2.1 {
> _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
> diff --git a/sysdeps/unix/sysv/linux/ia64/Versions b/sysdeps/unix/sysv/linux/ia64/Versions
> index f6994151aa..7cac57a8e1 100644
> --- a/sysdeps/unix/sysv/linux/ia64/Versions
> +++ b/sysdeps/unix/sysv/linux/ia64/Versions
> @@ -1,3 +1,4 @@
> +!libc_abi_extension
> libc {
> GLIBC_2.2 {
> ioperm; iopl;
> diff --git a/sysdeps/unix/sysv/linux/sh/Versions b/sysdeps/unix/sysv/linux/sh/Versions
> index 19ba1d8d91..fc89ff1c18 100644
> --- a/sysdeps/unix/sysv/linux/sh/Versions
> +++ b/sysdeps/unix/sysv/linux/sh/Versions
> @@ -1,3 +1,4 @@
> +!libc_abi_extension
> libc {
> GLIBC_2.2 {
> # functions used in other libraries
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
> index fbea1bb2ef..3059d56f80 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
> @@ -1,3 +1,4 @@
> +!libc_abi_extension
> libc {
> GLIBC_2.0 {
> # Exception handling support functions from libgcc
>
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH v2 04/16] Add libc ABI extension kludge for baseline-violating libdl symbols
2021-06-01 19:31 ` Adhemerval Zanella
@ 2021-06-01 19:34 ` Florian Weimer
2021-06-01 19:38 ` Adhemerval Zanella
0 siblings, 1 reply; 39+ messages in thread
From: Florian Weimer @ 2021-06-01 19:34 UTC (permalink / raw)
To: Adhemerval Zanella; +Cc: libc-alpha
* Adhemerval Zanella:
>> +# Some targets do not set the ABI baseline for libdl. As a result,
>> +# symbols originally in libdl need to be moved under historic symbol
>> +# versions, without altering the baseline version for libc itself.
>> +/^ *!libc_abi_extension/ {
>
> Maybe use a different name like 'libc_compat_versions', the 'extension'
> wording does not really fits in what it is providing.
It extends the version nodes below the actual baseline. Maybe
libc_pre_versions?
Thanks,
Florian
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH v2 04/16] Add libc ABI extension kludge for baseline-violating libdl symbols
2021-06-01 19:34 ` Florian Weimer
@ 2021-06-01 19:38 ` Adhemerval Zanella
0 siblings, 0 replies; 39+ messages in thread
From: Adhemerval Zanella @ 2021-06-01 19:38 UTC (permalink / raw)
To: Florian Weimer; +Cc: libc-alpha
On 01/06/2021 16:34, Florian Weimer wrote:
> * Adhemerval Zanella:
>
>>> +# Some targets do not set the ABI baseline for libdl. As a result,
>>> +# symbols originally in libdl need to be moved under historic symbol
>>> +# versions, without altering the baseline version for libc itself.
>>> +/^ *!libc_abi_extension/ {
>>
>> Maybe use a different name like 'libc_compat_versions', the 'extension'
>> wording does not really fits in what it is providing.
>
> It extends the version nodes below the actual baseline. Maybe
> libc_pre_versions?
Good for me.
^ permalink raw reply [flat|nested] 39+ messages in thread
* [PATCH 05/16] dlfcn: Move dlerror into libc
2021-05-31 14:10 [PATCH v3 00/16] Move libdl into libc Florian Weimer
` (3 preceding siblings ...)
2021-05-31 14:11 ` [PATCH v2 04/16] Add libc ABI extension kludge for baseline-violating libdl symbols Florian Weimer
@ 2021-05-31 14:11 ` Florian Weimer
2021-06-01 19:36 ` Adhemerval Zanella
2021-05-31 14:11 ` [PATCH 06/16] dlfcn: Move dlclose " Florian Weimer
` (10 subsequent siblings)
15 siblings, 1 reply; 39+ messages in thread
From: Florian Weimer @ 2021-05-31 14:11 UTC (permalink / raw)
To: libc-alpha
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.
---
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
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;
}
GLIBC_2.1 {
dlopen; dlvsym;
@@ -16,7 +24,4 @@ libdl {
GLIBC_2.3.4 {
dlmopen;
}
- GLIBC_PRIVATE {
- _dlfcn_hook;
- }
}
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 <assert.h>
#include <dlerror.h>
-#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;
@@ -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)
@@ -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 */
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"
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;
@@ -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,
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
--
2.31.1
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH 05/16] dlfcn: Move dlerror into libc
2021-05-31 14:11 ` [PATCH 05/16] dlfcn: Move dlerror into libc Florian Weimer
@ 2021-06-01 19:36 ` Adhemerval Zanella
0 siblings, 0 replies; 39+ messages in thread
From: Adhemerval Zanella @ 2021-06-01 19:36 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
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 <adhemerval.zanella@linaro.org>
> ---
> 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 <assert.h>
> #include <dlerror.h>
>
> -#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.
^ permalink raw reply [flat|nested] 39+ messages in thread
* [PATCH 06/16] dlfcn: Move dlclose into libc
2021-05-31 14:10 [PATCH v3 00/16] Move libdl into libc Florian Weimer
` (4 preceding siblings ...)
2021-05-31 14:11 ` [PATCH 05/16] dlfcn: Move dlerror into libc Florian Weimer
@ 2021-05-31 14:11 ` Florian Weimer
2021-06-02 12:58 ` Adhemerval Zanella
2021-05-31 14:11 ` [PATCH 07/16] dlfcn: Move dladdr " Florian Weimer
` (9 subsequent siblings)
15 siblings, 1 reply; 39+ messages in thread
From: Florian Weimer @ 2021-05-31 14:11 UTC (permalink / raw)
To: libc-alpha
The symbol was moved using scripts/move-symbol-to-libc.py.
---
dlfcn/Makefile | 3 +-
dlfcn/Versions | 4 ++-
dlfcn/dlclose.c | 30 +++++--------------
dlfcn/sdlclose.c | 1 -
include/dlfcn.h | 7 +++--
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, 84 insertions(+), 57 deletions(-)
delete mode 100644 dlfcn/sdlclose.c
diff --git a/dlfcn/Makefile b/dlfcn/Makefile
index b194762d3e..4bdf524492 100644
--- a/dlfcn/Makefile
+++ b/dlfcn/Makefile
@@ -21,11 +21,12 @@ include ../Makeconfig
headers := bits/dlfcn.h dlfcn.h
extra-libs := libdl
-libdl-routines := dlopen dlclose dlsym dlvsym dladdr dladdr1 dlinfo \
+libdl-routines := dlopen dlsym dlvsym dladdr dladdr1 dlinfo \
dlmopen dlfcn
routines := $(patsubst %,s%,$(filter-out dlfcn,$(libdl-routines)))
elide-routines.os := $(routines)
routines += \
+ dlclose \
dlerror \
libc_dlerror_result \
diff --git a/dlfcn/Versions b/dlfcn/Versions
index e7a6081d60..e2978c2a1c 100644
--- a/dlfcn/Versions
+++ b/dlfcn/Versions
@@ -1,8 +1,10 @@
libc {
GLIBC_2.0 {
+ dlclose;
dlerror;
}
GLIBC_2.34 {
+ dlclose;
dlerror;
}
GLIBC_PRIVATE {
@@ -13,7 +15,7 @@ libc {
}
libdl {
GLIBC_2.0 {
- dladdr; dlclose; dlopen; dlsym;
+ dladdr; dlopen; dlsym;
}
GLIBC_2.1 {
dlopen; dlvsym;
diff --git a/dlfcn/dlclose.c b/dlfcn/dlclose.c
index 4bed5de55d..4d5d307ab1 100644
--- a/dlfcn/dlclose.c
+++ b/dlfcn/dlclose.c
@@ -18,34 +18,20 @@
#include <dlfcn.h>
#include <ldsodefs.h>
-
-#if !defined SHARED && IS_IN (libdl)
-
-int
-dlclose (void *handle)
-{
- return __dlclose (handle);
-}
-
-#else
-
-static void
-dlclose_doit (void *handle)
-{
- GLRO(dl_close) (handle);
-}
+#include <shlib-compat.h>
int
__dlclose (void *handle)
{
-# ifdef SHARED
+#ifdef SHARED
if (!rtld_active ())
return _dlfcn_hook->dlclose (handle);
-# endif
+#endif
- return _dlerror_run (dlclose_doit, handle) ? -1 : 0;
+ return _dlerror_run (GLRO (dl_close), handle) ? -1 : 0;
}
-# ifdef SHARED
-strong_alias (__dlclose, dlclose)
-# endif
+versioned_symbol (libc, __dlclose, dlclose, GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (libdl, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libdl, __dlclose, dlclose, GLIBC_2_0);
#endif
diff --git a/dlfcn/sdlclose.c b/dlfcn/sdlclose.c
deleted file mode 100644
index dc89b98029..0000000000
--- a/dlfcn/sdlclose.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "dlclose.c"
diff --git a/include/dlfcn.h b/include/dlfcn.h
index a92b2aefb8..352eb79500 100644
--- a/include/dlfcn.h
+++ b/include/dlfcn.h
@@ -126,12 +126,15 @@ struct dlfcn_hook
extern struct dlfcn_hook *_dlfcn_hook;
libc_hidden_proto (_dlfcn_hook)
+/* Note: These prototypes are for initializing _dflcn_hook in static
+ libraries. Internal calls in glibc should use the __libc_dl*
+ functions defined in elf/dl-libc.c instead. */
+
extern void *__dlopen (const char *file, int mode DL_CALLER_DECL)
attribute_hidden;
extern void *__dlmopen (Lmid_t nsid, const char *file, int mode DL_CALLER_DECL)
attribute_hidden;
-extern int __dlclose (void *handle)
- attribute_hidden;
+extern int __dlclose (void *handle);
extern void *__dlsym (void *handle, const char *name DL_CALLER_DECL)
attribute_hidden;
extern void *__dlvsym (void *handle, const char *name, const char *version
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 4c62bf215f..7e1b9845fc 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 dlclose F
GLIBC_2.2.6 dlerror F
GLIBC_2.2.6 dngettext F
GLIBC_2.2.6 dprintf F
@@ -2208,6 +2209,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 timespec_getres F
diff --git a/sysdeps/mach/hurd/i386/libdl.abilist b/sysdeps/mach/hurd/i386/libdl.abilist
index 1073ce7845..d267e7d457 100644
--- a/sysdeps/mach/hurd/i386/libdl.abilist
+++ b/sysdeps/mach/hurd/i386/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.2.6 dladdr F
-GLIBC_2.2.6 dlclose 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 cf1e160614..8fdbe6548e 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 dlclose F
GLIBC_2.17 dlerror F
GLIBC_2.17 dngettext F
GLIBC_2.17 dprintf F
@@ -2343,6 +2344,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
index cb92fbf091..201e1e7146 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
@@ -1,6 +1,5 @@
GLIBC_2.17 dladdr F
GLIBC_2.17 dladdr1 F
-GLIBC_2.17 dlclose 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 9b303bfeea..c2bae6f242 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 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dprintf F
GLIBC_2.0 drand48 F
@@ -2435,6 +2436,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/alpha/libdl.abilist b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
index 62dfb3059d..a975af50ec 100644
--- a/sysdeps/unix/sysv/linux/alpha/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dladdr F
-GLIBC_2.0 dlclose 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 804e109621..bcc9352407 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 dlclose F
GLIBC_2.32 dlerror F
GLIBC_2.32 dngettext F
GLIBC_2.32 dprintf F
@@ -2102,6 +2103,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/arc/libdl.abilist b/sysdeps/unix/sysv/linux/arc/libdl.abilist
index 3f7f805044..7dc68475ea 100644
--- a/sysdeps/unix/sysv/linux/arc/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libdl.abilist
@@ -1,6 +1,5 @@
GLIBC_2.32 dladdr F
GLIBC_2.32 dladdr1 F
-GLIBC_2.32 dlclose 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 1c766b317d..d883be6028 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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
@@ -1018,6 +1019,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 dlclose F
GLIBC_2.4 dlerror F
GLIBC_2.4 dngettext F
GLIBC_2.4 dprintf F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
index 1951f0a9af..0ddfa10b3d 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
@@ -1,6 +1,5 @@
GLIBC_2.4 dladdr F
GLIBC_2.4 dladdr1 F
-GLIBC_2.4 dlclose 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 6e5898f5a0..4dbb5e3442 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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
@@ -1015,6 +1016,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 dlclose F
GLIBC_2.4 dlerror F
GLIBC_2.4 dngettext F
GLIBC_2.4 dprintf F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
index 1951f0a9af..0ddfa10b3d 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
@@ -1,6 +1,5 @@
GLIBC_2.4 dladdr F
GLIBC_2.4 dladdr1 F
-GLIBC_2.4 dlclose 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 cd740fb61e..0da7522411 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 dlclose F
GLIBC_2.29 dlerror F
GLIBC_2.29 dngettext F
GLIBC_2.29 dprintf F
@@ -2286,6 +2287,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/csky/libdl.abilist b/sysdeps/unix/sysv/linux/csky/libdl.abilist
index 7477354fa8..359b2d6267 100644
--- a/sysdeps/unix/sysv/linux/csky/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libdl.abilist
@@ -1,6 +1,5 @@
GLIBC_2.29 dladdr F
GLIBC_2.29 dladdr1 F
-GLIBC_2.29 dlclose 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 79ef2450fb..53128aae93 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1,3 +1,4 @@
+GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.10 __cxa_at_quick_exit F
GLIBC_2.10 __posix_getopt 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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/hppa/libdl.abilist b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
index 62dfb3059d..a975af50ec 100644
--- a/sysdeps/unix/sysv/linux/hppa/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dladdr F
-GLIBC_2.0 dlclose 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 a5c5cb5868..0731f99ab1 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 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dprintf F
GLIBC_2.0 drand48 F
@@ -2423,6 +2424,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/i386/libdl.abilist b/sysdeps/unix/sysv/linux/i386/libdl.abilist
index 62dfb3059d..a975af50ec 100644
--- a/sysdeps/unix/sysv/linux/i386/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dladdr F
-GLIBC_2.0 dlclose 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 9d1e50984f..87acf0b861 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1,3 +1,4 @@
+GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.10 __cxa_at_quick_exit F
GLIBC_2.10 __posix_getopt F
@@ -2275,6 +2276,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/ia64/libdl.abilist b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
index 62dfb3059d..a975af50ec 100644
--- a/sysdeps/unix/sysv/linux/ia64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dladdr F
-GLIBC_2.0 dlclose 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 8cc0f0402f..ed482a6551 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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
@@ -1007,6 +1008,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 dlclose F
GLIBC_2.4 dlerror F
GLIBC_2.4 dngettext F
GLIBC_2.4 dprintf F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
index 1951f0a9af..0ddfa10b3d 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
@@ -1,6 +1,5 @@
GLIBC_2.4 dladdr F
GLIBC_2.4 dladdr1 F
-GLIBC_2.4 dlclose 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 9df60dda8a..eff3f537f0 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 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dprintf F
GLIBC_2.0 drand48 F
@@ -2366,6 +2367,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
index 62dfb3059d..a975af50ec 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dladdr F
-GLIBC_2.0 dlclose 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 a10b65e1c9..aeda8130c1 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 dlclose F
GLIBC_2.18 dlerror F
GLIBC_2.18 dngettext F
GLIBC_2.18 dprintf F
@@ -2337,6 +2338,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
index 1bb6077e6f..90dcb88bab 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
@@ -1,6 +1,5 @@
GLIBC_2.18 dladdr F
GLIBC_2.18 dladdr1 F
-GLIBC_2.18 dlclose 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 aa80f6db28..cf8583acf8 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 dlclose F
GLIBC_2.18 dlerror F
GLIBC_2.18 dngettext F
GLIBC_2.18 dprintf F
@@ -2334,6 +2335,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
index 1bb6077e6f..90dcb88bab 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
@@ -1,6 +1,5 @@
GLIBC_2.18 dladdr F
GLIBC_2.18 dladdr1 F
-GLIBC_2.18 dlclose 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 969e1febcf..72a1879260 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 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dprintf F
GLIBC_2.0 drand48 F
@@ -2331,6 +2332,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
index 3b3e0c7d60..c35888c87a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dladdr F
-GLIBC_2.0 dlclose 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 82813866d0..7f116922cf 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 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dprintf F
GLIBC_2.0 drand48 F
@@ -2329,6 +2330,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
index 3b3e0c7d60..c35888c87a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dladdr F
-GLIBC_2.0 dlclose 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 6f9d2b0842..af7ab63030 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 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dprintf F
GLIBC_2.0 drand48 F
@@ -2337,6 +2338,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index c75f9a8535..17f64d7c1e 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 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dprintf F
GLIBC_2.0 drand48 F
@@ -2331,6 +2332,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 7c13372bed..7c0d6dbd03 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 dlclose F
GLIBC_2.21 dlerror F
GLIBC_2.21 dngettext F
GLIBC_2.21 dprintf F
@@ -2376,6 +2377,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/nios2/libdl.abilist b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
index f47d113867..2de1533f42 100644
--- a/sysdeps/unix/sysv/linux/nios2/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
@@ -1,6 +1,5 @@
GLIBC_2.21 dladdr F
GLIBC_2.21 dladdr1 F
-GLIBC_2.21 dlclose 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 a974a27468..c3f9df2b67 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 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dprintf F
GLIBC_2.0 drand48 F
@@ -2393,6 +2394,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
index 62dfb3059d..a975af50ec 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dladdr F
-GLIBC_2.0 dlclose 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 ea3daaf85f..b122dce9f5 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 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dprintf F
GLIBC_2.0 drand48 F
@@ -2426,6 +2427,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 1204e120c7..c5cee140ea 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 dlclose F
GLIBC_2.3 dlerror F
GLIBC_2.3 dngettext F
GLIBC_2.3 dprintf F
@@ -2240,6 +2241,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
index fdda336bd2..183a4b1526 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.3 dladdr F
-GLIBC_2.3 dlclose 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 58359362ad..14a53736ff 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 dlclose F
GLIBC_2.17 dlerror F
GLIBC_2.17 dngettext F
GLIBC_2.17 dprintf F
@@ -2539,6 +2540,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
index cb92fbf091..201e1e7146 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
@@ -1,6 +1,5 @@
GLIBC_2.17 dladdr F
GLIBC_2.17 dladdr1 F
-GLIBC_2.17 dlclose 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 2717605ce0..4076eb1fc3 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 dlclose F
GLIBC_2.33 dlerror F
GLIBC_2.33 dngettext F
GLIBC_2.33 dprintf F
@@ -2104,6 +2105,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
index 8bb5ee8f56..40991dffcd 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
@@ -1,6 +1,5 @@
GLIBC_2.33 dladdr F
GLIBC_2.33 dladdr1 F
-GLIBC_2.33 dlclose 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 6d5cfc1003..b608d9384a 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 dlclose F
GLIBC_2.27 dlerror F
GLIBC_2.27 dngettext F
GLIBC_2.27 dprintf F
@@ -2304,6 +2305,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
index 044092c8ba..6dea0435f8 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
@@ -1,6 +1,5 @@
GLIBC_2.27 dladdr F
GLIBC_2.27 dladdr1 F
-GLIBC_2.27 dlclose 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 5050039c86..c5809de838 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 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dprintf F
GLIBC_2.0 drand48 F
@@ -2391,6 +2392,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
index 62dfb3059d..a975af50ec 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dladdr F
-GLIBC_2.0 dlclose 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 4baccfe878..b118d56f0d 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 dlclose F
GLIBC_2.2 dlerror F
GLIBC_2.2 dngettext F
GLIBC_2.2 dprintf F
@@ -2277,6 +2278,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
index 88c2b76660..99bb237244 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.2 dladdr F
-GLIBC_2.2 dlclose 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 a0b0006997..e6748c96dc 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 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.10 __cxa_at_quick_exit F
GLIBC_2.10 __posix_getopt F
@@ -2246,6 +2247,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
index 62dfb3059d..a975af50ec 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dladdr F
-GLIBC_2.0 dlclose 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 12f05ed141..fa0e795ec1 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 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.10 __cxa_at_quick_exit F
GLIBC_2.10 __posix_getopt F
@@ -2243,6 +2244,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
index 62dfb3059d..a975af50ec 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dladdr F
-GLIBC_2.0 dlclose 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 2a19e65697..897b34dabf 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 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dprintf F
GLIBC_2.0 drand48 F
@@ -2384,6 +2385,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
index 62dfb3059d..a975af50ec 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dladdr F
-GLIBC_2.0 dlclose 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 99bf107f54..2d7e5a0ca1 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 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.10 __cxa_at_quick_exit F
GLIBC_2.10 __posix_getopt F
@@ -2296,6 +2297,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
index 62dfb3059d..a975af50ec 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dladdr F
-GLIBC_2.0 dlclose 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 ec26f0c30a..62bded4298 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 dlclose F
GLIBC_2.2.5 dlerror F
GLIBC_2.2.5 dngettext F
GLIBC_2.2.5 dprintf F
@@ -2255,6 +2256,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
index 0d933bc3d6..f4f0482c24 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.2.5 dladdr F
-GLIBC_2.2.5 dlclose 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 a74f962b63..f197d4301f 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 dlclose F
GLIBC_2.16 dlerror F
GLIBC_2.16 dngettext F
GLIBC_2.16 dprintf F
@@ -2358,6 +2359,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 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
index 0360ee41e6..a29fef95d4 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
@@ -1,6 +1,5 @@
GLIBC_2.16 dladdr F
GLIBC_2.16 dladdr1 F
-GLIBC_2.16 dlclose F
GLIBC_2.16 dlinfo F
GLIBC_2.16 dlmopen F
GLIBC_2.16 dlopen F
--
2.31.1
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH 06/16] dlfcn: Move dlclose into libc
2021-05-31 14:11 ` [PATCH 06/16] dlfcn: Move dlclose " Florian Weimer
@ 2021-06-02 12:58 ` Adhemerval Zanella
0 siblings, 0 replies; 39+ messages in thread
From: Adhemerval Zanella @ 2021-06-02 12:58 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 31/05/2021 11:11, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.
LGTM, thanks. Just a small suggestion for the Versions change.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> dlfcn/Makefile | 3 +-
> dlfcn/Versions | 4 ++-
> dlfcn/dlclose.c | 30 +++++--------------
> dlfcn/sdlclose.c | 1 -
> include/dlfcn.h | 7 +++--
> 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, 84 insertions(+), 57 deletions(-)
> delete mode 100644 dlfcn/sdlclose.c
>
> diff --git a/dlfcn/Makefile b/dlfcn/Makefile
> index b194762d3e..4bdf524492 100644
> --- a/dlfcn/Makefile
> +++ b/dlfcn/Makefile
> @@ -21,11 +21,12 @@ include ../Makeconfig
>
> headers := bits/dlfcn.h dlfcn.h
> extra-libs := libdl
> -libdl-routines := dlopen dlclose dlsym dlvsym dladdr dladdr1 dlinfo \
> +libdl-routines := dlopen dlsym dlvsym dladdr dladdr1 dlinfo \
> dlmopen dlfcn
> routines := $(patsubst %,s%,$(filter-out dlfcn,$(libdl-routines)))
> elide-routines.os := $(routines)
> routines += \
> + dlclose \
> dlerror \
> libc_dlerror_result \
>
Ok.
> diff --git a/dlfcn/Versions b/dlfcn/Versions
> index e7a6081d60..e2978c2a1c 100644
> --- a/dlfcn/Versions
> +++ b/dlfcn/Versions
> @@ -1,8 +1,10 @@
> libc {
> GLIBC_2.0 {
> + dlclose;
> dlerror;
> }
> GLIBC_2.34 {
> + dlclose;
> dlerror;
> }
> GLIBC_PRIVATE {
> @@ -13,7 +15,7 @@ libc {
> }
> libdl {
> GLIBC_2.0 {
> - dladdr; dlclose; dlopen; dlsym;
> + dladdr; dlopen; dlsym;
Maybe one entry per line?
> }
> GLIBC_2.1 {
> dlopen; dlvsym;
> diff --git a/dlfcn/dlclose.c b/dlfcn/dlclose.c
> index 4bed5de55d..4d5d307ab1 100644
> --- a/dlfcn/dlclose.c
> +++ b/dlfcn/dlclose.c
> @@ -18,34 +18,20 @@
>
> #include <dlfcn.h>
> #include <ldsodefs.h>
> -
> -#if !defined SHARED && IS_IN (libdl)
> -
> -int
> -dlclose (void *handle)
> -{
> - return __dlclose (handle);
> -}
> -
> -#else
> -
> -static void
> -dlclose_doit (void *handle)
> -{
> - GLRO(dl_close) (handle);
> -}
> +#include <shlib-compat.h>
>
> int
> __dlclose (void *handle)
> {
> -# ifdef SHARED
> +#ifdef SHARED
> if (!rtld_active ())
> return _dlfcn_hook->dlclose (handle);
> -# endif
> +#endif
>
> - return _dlerror_run (dlclose_doit, handle) ? -1 : 0;
> + return _dlerror_run (GLRO (dl_close), handle) ? -1 : 0;
> }
> -# ifdef SHARED
> -strong_alias (__dlclose, dlclose)
> -# endif
> +versioned_symbol (libc, __dlclose, dlclose, GLIBC_2_34);
> +
> +#if OTHER_SHLIB_COMPAT (libdl, GLIBC_2_0, GLIBC_2_34)
> +compat_symbol (libdl, __dlclose, dlclose, GLIBC_2_0);
> #endif
Ok.
> diff --git a/dlfcn/sdlclose.c b/dlfcn/sdlclose.c
> deleted file mode 100644
> index dc89b98029..0000000000
> --- a/dlfcn/sdlclose.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include "dlclose.c"
Ok.
> diff --git a/include/dlfcn.h b/include/dlfcn.h
> index a92b2aefb8..352eb79500 100644
> --- a/include/dlfcn.h
> +++ b/include/dlfcn.h
> @@ -126,12 +126,15 @@ struct dlfcn_hook
> extern struct dlfcn_hook *_dlfcn_hook;
> libc_hidden_proto (_dlfcn_hook)
>
> +/* Note: These prototypes are for initializing _dflcn_hook in static
> + libraries. Internal calls in glibc should use the __libc_dl*
> + functions defined in elf/dl-libc.c instead. */
> +
> extern void *__dlopen (const char *file, int mode DL_CALLER_DECL)
> attribute_hidden;
> extern void *__dlmopen (Lmid_t nsid, const char *file, int mode DL_CALLER_DECL)
> attribute_hidden;
> -extern int __dlclose (void *handle)
> - attribute_hidden;
> +extern int __dlclose (void *handle);
> extern void *__dlsym (void *handle, const char *name DL_CALLER_DECL)
> attribute_hidden;
> extern void *__dlvsym (void *handle, const char *name, const char *version
Ok.
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
> index 4c62bf215f..7e1b9845fc 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 dlclose F
> GLIBC_2.2.6 dlerror F
> GLIBC_2.2.6 dngettext F
> GLIBC_2.2.6 dprintf F
> @@ -2208,6 +2209,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 timespec_getres F
> diff --git a/sysdeps/mach/hurd/i386/libdl.abilist b/sysdeps/mach/hurd/i386/libdl.abilist
> index 1073ce7845..d267e7d457 100644
> --- a/sysdeps/mach/hurd/i386/libdl.abilist
> +++ b/sysdeps/mach/hurd/i386/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.2.6 dladdr F
> -GLIBC_2.2.6 dlclose 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 cf1e160614..8fdbe6548e 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 dlclose F
> GLIBC_2.17 dlerror F
> GLIBC_2.17 dngettext F
> GLIBC_2.17 dprintf F
> @@ -2343,6 +2344,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
> index cb92fbf091..201e1e7146 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.17 dladdr F
> GLIBC_2.17 dladdr1 F
> -GLIBC_2.17 dlclose 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 9b303bfeea..c2bae6f242 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 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dprintf F
> GLIBC_2.0 drand48 F
> @@ -2435,6 +2436,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libdl.abilist b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
> index 62dfb3059d..a975af50ec 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dladdr F
> -GLIBC_2.0 dlclose 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 804e109621..bcc9352407 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 dlclose F
> GLIBC_2.32 dlerror F
> GLIBC_2.32 dngettext F
> GLIBC_2.32 dprintf F
> @@ -2102,6 +2103,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/arc/libdl.abilist b/sysdeps/unix/sysv/linux/arc/libdl.abilist
> index 3f7f805044..7dc68475ea 100644
> --- a/sysdeps/unix/sysv/linux/arc/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libdl.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.32 dladdr F
> GLIBC_2.32 dladdr1 F
> -GLIBC_2.32 dlclose 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 1c766b317d..d883be6028 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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> @@ -1018,6 +1019,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 dlclose F
> GLIBC_2.4 dlerror F
> GLIBC_2.4 dngettext F
> GLIBC_2.4 dprintf F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
> index 1951f0a9af..0ddfa10b3d 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.4 dladdr F
> GLIBC_2.4 dladdr1 F
> -GLIBC_2.4 dlclose 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 6e5898f5a0..4dbb5e3442 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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> @@ -1015,6 +1016,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 dlclose F
> GLIBC_2.4 dlerror F
> GLIBC_2.4 dngettext F
> GLIBC_2.4 dprintf F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
> index 1951f0a9af..0ddfa10b3d 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.4 dladdr F
> GLIBC_2.4 dladdr1 F
> -GLIBC_2.4 dlclose 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 cd740fb61e..0da7522411 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 dlclose F
> GLIBC_2.29 dlerror F
> GLIBC_2.29 dngettext F
> GLIBC_2.29 dprintf F
> @@ -2286,6 +2287,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/csky/libdl.abilist b/sysdeps/unix/sysv/linux/csky/libdl.abilist
> index 7477354fa8..359b2d6267 100644
> --- a/sysdeps/unix/sysv/linux/csky/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libdl.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.29 dladdr F
> GLIBC_2.29 dladdr1 F
> -GLIBC_2.29 dlclose 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 79ef2450fb..53128aae93 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -1,3 +1,4 @@
> +GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.10 __cxa_at_quick_exit F
> GLIBC_2.10 __posix_getopt 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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libdl.abilist b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
> index 62dfb3059d..a975af50ec 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dladdr F
> -GLIBC_2.0 dlclose 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 a5c5cb5868..0731f99ab1 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 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dprintf F
> GLIBC_2.0 drand48 F
> @@ -2423,6 +2424,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/i386/libdl.abilist b/sysdeps/unix/sysv/linux/i386/libdl.abilist
> index 62dfb3059d..a975af50ec 100644
> --- a/sysdeps/unix/sysv/linux/i386/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dladdr F
> -GLIBC_2.0 dlclose 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 9d1e50984f..87acf0b861 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -1,3 +1,4 @@
> +GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.10 __cxa_at_quick_exit F
> GLIBC_2.10 __posix_getopt F
> @@ -2275,6 +2276,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libdl.abilist b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
> index 62dfb3059d..a975af50ec 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dladdr F
> -GLIBC_2.0 dlclose 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 8cc0f0402f..ed482a6551 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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> @@ -1007,6 +1008,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 dlclose F
> GLIBC_2.4 dlerror F
> GLIBC_2.4 dngettext F
> GLIBC_2.4 dprintf F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
> index 1951f0a9af..0ddfa10b3d 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.4 dladdr F
> GLIBC_2.4 dladdr1 F
> -GLIBC_2.4 dlclose 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 9df60dda8a..eff3f537f0 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 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dprintf F
> GLIBC_2.0 drand48 F
> @@ -2366,6 +2367,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
> index 62dfb3059d..a975af50ec 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dladdr F
> -GLIBC_2.0 dlclose 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 a10b65e1c9..aeda8130c1 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 dlclose F
> GLIBC_2.18 dlerror F
> GLIBC_2.18 dngettext F
> GLIBC_2.18 dprintf F
> @@ -2337,6 +2338,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
> index 1bb6077e6f..90dcb88bab 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.18 dladdr F
> GLIBC_2.18 dladdr1 F
> -GLIBC_2.18 dlclose 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 aa80f6db28..cf8583acf8 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 dlclose F
> GLIBC_2.18 dlerror F
> GLIBC_2.18 dngettext F
> GLIBC_2.18 dprintf F
> @@ -2334,6 +2335,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
> index 1bb6077e6f..90dcb88bab 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.18 dladdr F
> GLIBC_2.18 dladdr1 F
> -GLIBC_2.18 dlclose 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 969e1febcf..72a1879260 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 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dprintf F
> GLIBC_2.0 drand48 F
> @@ -2331,6 +2332,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
> index 3b3e0c7d60..c35888c87a 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dladdr F
> -GLIBC_2.0 dlclose 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 82813866d0..7f116922cf 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 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dprintf F
> GLIBC_2.0 drand48 F
> @@ -2329,6 +2330,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
> index 3b3e0c7d60..c35888c87a 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dladdr F
> -GLIBC_2.0 dlclose 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 6f9d2b0842..af7ab63030 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 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dprintf F
> GLIBC_2.0 drand48 F
> @@ -2337,6 +2338,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index c75f9a8535..17f64d7c1e 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 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dprintf F
> GLIBC_2.0 drand48 F
> @@ -2331,6 +2332,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 7c13372bed..7c0d6dbd03 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 dlclose F
> GLIBC_2.21 dlerror F
> GLIBC_2.21 dngettext F
> GLIBC_2.21 dprintf F
> @@ -2376,6 +2377,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libdl.abilist b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
> index f47d113867..2de1533f42 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.21 dladdr F
> GLIBC_2.21 dladdr1 F
> -GLIBC_2.21 dlclose 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 a974a27468..c3f9df2b67 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 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dprintf F
> GLIBC_2.0 drand48 F
> @@ -2393,6 +2394,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
> index 62dfb3059d..a975af50ec 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dladdr F
> -GLIBC_2.0 dlclose 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 ea3daaf85f..b122dce9f5 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 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dprintf F
> GLIBC_2.0 drand48 F
> @@ -2426,6 +2427,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 1204e120c7..c5cee140ea 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 dlclose F
> GLIBC_2.3 dlerror F
> GLIBC_2.3 dngettext F
> GLIBC_2.3 dprintf F
> @@ -2240,6 +2241,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
> index fdda336bd2..183a4b1526 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.3 dladdr F
> -GLIBC_2.3 dlclose 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 58359362ad..14a53736ff 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 dlclose F
> GLIBC_2.17 dlerror F
> GLIBC_2.17 dngettext F
> GLIBC_2.17 dprintf F
> @@ -2539,6 +2540,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
> index cb92fbf091..201e1e7146 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.17 dladdr F
> GLIBC_2.17 dladdr1 F
> -GLIBC_2.17 dlclose 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 2717605ce0..4076eb1fc3 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 dlclose F
> GLIBC_2.33 dlerror F
> GLIBC_2.33 dngettext F
> GLIBC_2.33 dprintf F
> @@ -2104,6 +2105,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
> index 8bb5ee8f56..40991dffcd 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.33 dladdr F
> GLIBC_2.33 dladdr1 F
> -GLIBC_2.33 dlclose 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 6d5cfc1003..b608d9384a 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 dlclose F
> GLIBC_2.27 dlerror F
> GLIBC_2.27 dngettext F
> GLIBC_2.27 dprintf F
> @@ -2304,6 +2305,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
> index 044092c8ba..6dea0435f8 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.27 dladdr F
> GLIBC_2.27 dladdr1 F
> -GLIBC_2.27 dlclose 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 5050039c86..c5809de838 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 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dprintf F
> GLIBC_2.0 drand48 F
> @@ -2391,6 +2392,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
> index 62dfb3059d..a975af50ec 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dladdr F
> -GLIBC_2.0 dlclose 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 4baccfe878..b118d56f0d 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 dlclose F
> GLIBC_2.2 dlerror F
> GLIBC_2.2 dngettext F
> GLIBC_2.2 dprintf F
> @@ -2277,6 +2278,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
> index 88c2b76660..99bb237244 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.2 dladdr F
> -GLIBC_2.2 dlclose 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 a0b0006997..e6748c96dc 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 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.10 __cxa_at_quick_exit F
> GLIBC_2.10 __posix_getopt F
> @@ -2246,6 +2247,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
> index 62dfb3059d..a975af50ec 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dladdr F
> -GLIBC_2.0 dlclose 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 12f05ed141..fa0e795ec1 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 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.10 __cxa_at_quick_exit F
> GLIBC_2.10 __posix_getopt F
> @@ -2243,6 +2244,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
> index 62dfb3059d..a975af50ec 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dladdr F
> -GLIBC_2.0 dlclose 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 2a19e65697..897b34dabf 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 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dprintf F
> GLIBC_2.0 drand48 F
> @@ -2384,6 +2385,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
> index 62dfb3059d..a975af50ec 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dladdr F
> -GLIBC_2.0 dlclose 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 99bf107f54..2d7e5a0ca1 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 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.10 __cxa_at_quick_exit F
> GLIBC_2.10 __posix_getopt F
> @@ -2296,6 +2297,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
> index 62dfb3059d..a975af50ec 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dladdr F
> -GLIBC_2.0 dlclose 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 ec26f0c30a..62bded4298 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 dlclose F
> GLIBC_2.2.5 dlerror F
> GLIBC_2.2.5 dngettext F
> GLIBC_2.2.5 dprintf F
> @@ -2255,6 +2256,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
> index 0d933bc3d6..f4f0482c24 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.2.5 dladdr F
> -GLIBC_2.2.5 dlclose 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 a74f962b63..f197d4301f 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 dlclose F
> GLIBC_2.16 dlerror F
> GLIBC_2.16 dngettext F
> GLIBC_2.16 dprintf F
> @@ -2358,6 +2359,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 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
> index 0360ee41e6..a29fef95d4 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.16 dladdr F
> GLIBC_2.16 dladdr1 F
> -GLIBC_2.16 dlclose F
> GLIBC_2.16 dlinfo F
> GLIBC_2.16 dlmopen F
> GLIBC_2.16 dlopen F
>
Ok.
^ permalink raw reply [flat|nested] 39+ messages in thread
* [PATCH 07/16] dlfcn: Move dladdr into libc
2021-05-31 14:10 [PATCH v3 00/16] Move libdl into libc Florian Weimer
` (5 preceding siblings ...)
2021-05-31 14:11 ` [PATCH 06/16] dlfcn: Move dlclose " Florian Weimer
@ 2021-05-31 14:11 ` Florian Weimer
2021-06-02 14:02 ` Adhemerval Zanella
2021-05-31 14:11 ` [PATCH 08/16] dlfcn: Move dlsym " Florian Weimer
` (8 subsequent siblings)
15 siblings, 1 reply; 39+ messages in thread
From: Florian Weimer @ 2021-05-31 14:11 UTC (permalink / raw)
To: libc-alpha
The symbol was moved using scripts/move-symbol-to-libc.py.
---
dlfcn/Makefile | 3 ++-
dlfcn/Versions | 4 +++-
dlfcn/dladdr.c | 22 ++++++-------------
dlfcn/sdladdr.c | 1 -
include/dlfcn.h | 3 +--
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, 79 insertions(+), 50 deletions(-)
delete mode 100644 dlfcn/sdladdr.c
diff --git a/dlfcn/Makefile b/dlfcn/Makefile
index 4bdf524492..f0793468c7 100644
--- a/dlfcn/Makefile
+++ b/dlfcn/Makefile
@@ -21,11 +21,12 @@ include ../Makeconfig
headers := bits/dlfcn.h dlfcn.h
extra-libs := libdl
-libdl-routines := dlopen dlsym dlvsym dladdr dladdr1 dlinfo \
+libdl-routines := dlopen dlsym dlvsym dladdr1 dlinfo \
dlmopen dlfcn
routines := $(patsubst %,s%,$(filter-out dlfcn,$(libdl-routines)))
elide-routines.os := $(routines)
routines += \
+ dladdr \
dlclose \
dlerror \
libc_dlerror_result \
diff --git a/dlfcn/Versions b/dlfcn/Versions
index e2978c2a1c..89e4a1236a 100644
--- a/dlfcn/Versions
+++ b/dlfcn/Versions
@@ -1,9 +1,11 @@
libc {
GLIBC_2.0 {
+ dladdr;
dlclose;
dlerror;
}
GLIBC_2.34 {
+ dladdr;
dlclose;
dlerror;
}
@@ -15,7 +17,7 @@ libc {
}
libdl {
GLIBC_2.0 {
- dladdr; dlopen; dlsym;
+ dlopen; dlsym;
}
GLIBC_2.1 {
dlopen; dlvsym;
diff --git a/dlfcn/dladdr.c b/dlfcn/dladdr.c
index 27a6e49cac..3ef1b7f0b6 100644
--- a/dlfcn/dladdr.c
+++ b/dlfcn/dladdr.c
@@ -18,27 +18,19 @@
#include <dlfcn.h>
#include <ldsodefs.h>
-
-#if !defined SHARED && IS_IN (libdl)
-
-int
-dladdr (const void *address, Dl_info *info)
-{
- return __dladdr (address, info);
-}
-
-#else
+#include <shlib-compat.h>
int
__dladdr (const void *address, Dl_info *info)
{
-# ifdef SHARED
+#ifdef SHARED
if (!rtld_active ())
return _dlfcn_hook->dladdr (address, info);
-# endif
+#endif
return _dl_addr (address, info, NULL, NULL);
}
-# ifdef SHARED
-strong_alias (__dladdr, dladdr)
-# endif
+versioned_symbol (libc, __dladdr, dladdr, GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (libdl, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libdl, __dladdr, dladdr, GLIBC_2_0);
#endif
diff --git a/dlfcn/sdladdr.c b/dlfcn/sdladdr.c
deleted file mode 100644
index c484d63b29..0000000000
--- a/dlfcn/sdladdr.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "dladdr.c"
diff --git a/include/dlfcn.h b/include/dlfcn.h
index 352eb79500..a018144808 100644
--- a/include/dlfcn.h
+++ b/include/dlfcn.h
@@ -140,8 +140,7 @@ 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 int __dladdr (const void *address, Dl_info *info)
- attribute_hidden;
+extern int __dladdr (const void *address, Dl_info *info);
extern int __dladdr1 (const void *address, Dl_info *info,
void **extra_info, int flags)
attribute_hidden;
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 7e1b9845fc..abf3f3cf7f 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 dladdr F
GLIBC_2.2.6 dlclose F
GLIBC_2.2.6 dlerror F
GLIBC_2.2.6 dngettext F
@@ -2209,6 +2210,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/mach/hurd/i386/libdl.abilist b/sysdeps/mach/hurd/i386/libdl.abilist
index d267e7d457..5b9579b3d2 100644
--- a/sysdeps/mach/hurd/i386/libdl.abilist
+++ b/sysdeps/mach/hurd/i386/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.2.6 dladdr 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 8fdbe6548e..f912cea6a0 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 dladdr F
GLIBC_2.17 dlclose F
GLIBC_2.17 dlerror F
GLIBC_2.17 dngettext F
@@ -2344,6 +2345,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
index 201e1e7146..731d6a1377 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.17 dladdr F
GLIBC_2.17 dladdr1 F
GLIBC_2.17 dlinfo F
GLIBC_2.17 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index c2bae6f242..c0dfb9be95 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 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dprintf F
@@ -2436,6 +2437,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/alpha/libdl.abilist b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
index a975af50ec..25cf9cd21e 100644
--- a/sysdeps/unix/sysv/linux/alpha/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.0 dladdr 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 bcc9352407..c2a4c1f9ba 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 dladdr F
GLIBC_2.32 dlclose F
GLIBC_2.32 dlerror F
GLIBC_2.32 dngettext 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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/arc/libdl.abilist b/sysdeps/unix/sysv/linux/arc/libdl.abilist
index 7dc68475ea..1c818309f2 100644
--- a/sysdeps/unix/sysv/linux/arc/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.32 dladdr F
GLIBC_2.32 dladdr1 F
GLIBC_2.32 dlinfo F
GLIBC_2.32 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index d883be6028..db80c07019 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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
@@ -1019,6 +1020,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 dladdr F
GLIBC_2.4 dlclose F
GLIBC_2.4 dlerror F
GLIBC_2.4 dngettext F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
index 0ddfa10b3d..69ffaf4edf 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.4 dladdr F
GLIBC_2.4 dladdr1 F
GLIBC_2.4 dlinfo F
GLIBC_2.4 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 4dbb5e3442..3600075a47 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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
@@ -1016,6 +1017,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 dladdr F
GLIBC_2.4 dlclose F
GLIBC_2.4 dlerror F
GLIBC_2.4 dngettext F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
index 0ddfa10b3d..69ffaf4edf 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.4 dladdr F
GLIBC_2.4 dladdr1 F
GLIBC_2.4 dlinfo F
GLIBC_2.4 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 0da7522411..d7beb5db45 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 dladdr F
GLIBC_2.29 dlclose F
GLIBC_2.29 dlerror F
GLIBC_2.29 dngettext F
@@ -2287,6 +2288,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/csky/libdl.abilist b/sysdeps/unix/sysv/linux/csky/libdl.abilist
index 359b2d6267..2c8047a614 100644
--- a/sysdeps/unix/sysv/linux/csky/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.29 dladdr F
GLIBC_2.29 dladdr1 F
GLIBC_2.29 dlinfo F
GLIBC_2.29 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 53128aae93..59b0e421a7 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1,3 +1,4 @@
+GLIBC_2.0 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2240,6 +2241,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/hppa/libdl.abilist b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
index a975af50ec..25cf9cd21e 100644
--- a/sysdeps/unix/sysv/linux/hppa/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.0 dladdr 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 0731f99ab1..e33dd7d91e 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 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dprintf F
@@ -2424,6 +2425,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/i386/libdl.abilist b/sysdeps/unix/sysv/linux/i386/libdl.abilist
index a975af50ec..25cf9cd21e 100644
--- a/sysdeps/unix/sysv/linux/i386/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.0 dladdr 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 87acf0b861..772b686c1d 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1,3 +1,4 @@
+GLIBC_2.0 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.10 __cxa_at_quick_exit 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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/ia64/libdl.abilist b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
index a975af50ec..25cf9cd21e 100644
--- a/sysdeps/unix/sysv/linux/ia64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.0 dladdr 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 ed482a6551..6ee063131e 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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
@@ -1008,6 +1009,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 dladdr F
GLIBC_2.4 dlclose F
GLIBC_2.4 dlerror F
GLIBC_2.4 dngettext F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
index 0ddfa10b3d..69ffaf4edf 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.4 dladdr F
GLIBC_2.4 dladdr1 F
GLIBC_2.4 dlinfo F
GLIBC_2.4 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index eff3f537f0..9fb78fd4fd 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 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dprintf F
@@ -2367,6 +2368,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
index a975af50ec..25cf9cd21e 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.0 dladdr 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 aeda8130c1..6ba6e439c5 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 dladdr F
GLIBC_2.18 dlclose F
GLIBC_2.18 dlerror F
GLIBC_2.18 dngettext F
@@ -2338,6 +2339,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
index 90dcb88bab..721e823b1b 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.18 dladdr F
GLIBC_2.18 dladdr1 F
GLIBC_2.18 dlinfo F
GLIBC_2.18 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index cf8583acf8..b3d12892e6 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 dladdr F
GLIBC_2.18 dlclose F
GLIBC_2.18 dlerror F
GLIBC_2.18 dngettext F
@@ -2335,6 +2336,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
index 90dcb88bab..721e823b1b 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.18 dladdr F
GLIBC_2.18 dladdr1 F
GLIBC_2.18 dlinfo F
GLIBC_2.18 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 72a1879260..43fe36e7d1 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 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dprintf F
@@ -2332,6 +2333,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
index c35888c87a..d8aab2a6de 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.0 dladdr 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 7f116922cf..699ad445f7 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 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dprintf 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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
index c35888c87a..d8aab2a6de 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.0 dladdr 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 af7ab63030..3da887b94b 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 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dprintf F
@@ -2338,6 +2339,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 17f64d7c1e..8c34936cc0 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 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dprintf F
@@ -2332,6 +2333,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 7c0d6dbd03..e1bc50caf5 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 dladdr F
GLIBC_2.21 dlclose F
GLIBC_2.21 dlerror F
GLIBC_2.21 dngettext F
@@ -2377,6 +2378,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/nios2/libdl.abilist b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
index 2de1533f42..835ee02768 100644
--- a/sysdeps/unix/sysv/linux/nios2/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.21 dladdr F
GLIBC_2.21 dladdr1 F
GLIBC_2.21 dlinfo F
GLIBC_2.21 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index c3f9df2b67..8c3c1bb5c5 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 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dprintf F
@@ -2394,6 +2395,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
index a975af50ec..25cf9cd21e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.0 dladdr 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 b122dce9f5..018f9c0253 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 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dprintf F
@@ -2427,6 +2428,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index c5cee140ea..330f5fdc1a 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 dladdr F
GLIBC_2.3 dlclose F
GLIBC_2.3 dlerror F
GLIBC_2.3 dngettext F
@@ -2241,6 +2242,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
index 183a4b1526..4446495717 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.3 dladdr 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 14a53736ff..b770ac88b3 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 dladdr F
GLIBC_2.17 dlclose F
GLIBC_2.17 dlerror F
GLIBC_2.17 dngettext F
@@ -2540,6 +2541,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
index 201e1e7146..731d6a1377 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.17 dladdr F
GLIBC_2.17 dladdr1 F
GLIBC_2.17 dlinfo F
GLIBC_2.17 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 4076eb1fc3..ea14f58edb 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 dladdr F
GLIBC_2.33 dlclose F
GLIBC_2.33 dlerror F
GLIBC_2.33 dngettext F
@@ -2105,6 +2106,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
index 40991dffcd..b140aa0b09 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.33 dladdr F
GLIBC_2.33 dladdr1 F
GLIBC_2.33 dlinfo F
GLIBC_2.33 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index b608d9384a..5c2a87a3b0 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 dladdr F
GLIBC_2.27 dlclose F
GLIBC_2.27 dlerror F
GLIBC_2.27 dngettext F
@@ -2305,6 +2306,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
index 6dea0435f8..3536869c77 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.27 dladdr F
GLIBC_2.27 dladdr1 F
GLIBC_2.27 dlinfo F
GLIBC_2.27 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index c5809de838..937a3ba942 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 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dprintf 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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
index a975af50ec..25cf9cd21e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.0 dladdr 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 b118d56f0d..cce8034393 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 dladdr F
GLIBC_2.2 dlclose F
GLIBC_2.2 dlerror F
GLIBC_2.2 dngettext F
@@ -2278,6 +2279,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
index 99bb237244..c995dec160 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.2 dladdr 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 e6748c96dc..28154a96dd 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 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2247,6 +2248,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
index a975af50ec..25cf9cd21e 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.0 dladdr 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 fa0e795ec1..d9a16e9ccf 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 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2244,6 +2245,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
index a975af50ec..25cf9cd21e 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.0 dladdr 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 897b34dabf..98e6db33fe 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 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dprintf F
@@ -2385,6 +2386,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
index a975af50ec..25cf9cd21e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.0 dladdr 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 2d7e5a0ca1..479a1b38a6 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 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2297,6 +2298,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
index a975af50ec..25cf9cd21e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.0 dladdr 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 62bded4298..3c6750b3a4 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 dladdr F
GLIBC_2.2.5 dlclose F
GLIBC_2.2.5 dlerror F
GLIBC_2.2.5 dngettext F
@@ -2256,6 +2257,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
index f4f0482c24..28f001d6ec 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.2.5 dladdr 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 f197d4301f..0bfba9edbc 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 dladdr F
GLIBC_2.16 dlclose F
GLIBC_2.16 dlerror F
GLIBC_2.16 dngettext F
@@ -2359,6 +2360,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 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
index a29fef95d4..f61c4a59d3 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.16 dladdr F
GLIBC_2.16 dladdr1 F
GLIBC_2.16 dlinfo F
GLIBC_2.16 dlmopen F
--
2.31.1
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH 07/16] dlfcn: Move dladdr into libc
2021-05-31 14:11 ` [PATCH 07/16] dlfcn: Move dladdr " Florian Weimer
@ 2021-06-02 14:02 ` Adhemerval Zanella
0 siblings, 0 replies; 39+ messages in thread
From: Adhemerval Zanella @ 2021-06-02 14:02 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 31/05/2021 11:11, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> dlfcn/Makefile | 3 ++-
> dlfcn/Versions | 4 +++-
> dlfcn/dladdr.c | 22 ++++++-------------
> dlfcn/sdladdr.c | 1 -
> include/dlfcn.h | 3 +--
> 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, 79 insertions(+), 50 deletions(-)
> delete mode 100644 dlfcn/sdladdr.c
>
> diff --git a/dlfcn/Makefile b/dlfcn/Makefile
> index 4bdf524492..f0793468c7 100644
> --- a/dlfcn/Makefile
> +++ b/dlfcn/Makefile
> @@ -21,11 +21,12 @@ include ../Makeconfig
>
> headers := bits/dlfcn.h dlfcn.h
> extra-libs := libdl
> -libdl-routines := dlopen dlsym dlvsym dladdr dladdr1 dlinfo \
> +libdl-routines := dlopen dlsym dlvsym dladdr1 dlinfo \
> dlmopen dlfcn
> routines := $(patsubst %,s%,$(filter-out dlfcn,$(libdl-routines)))
> elide-routines.os := $(routines)
> routines += \
> + dladdr \
> dlclose \
> dlerror \
> libc_dlerror_result \
Ok.
> diff --git a/dlfcn/Versions b/dlfcn/Versions
> index e2978c2a1c..89e4a1236a 100644
> --- a/dlfcn/Versions
> +++ b/dlfcn/Versions
> @@ -1,9 +1,11 @@
> libc {
> GLIBC_2.0 {
> + dladdr;
> dlclose;
> dlerror;
> }
> GLIBC_2.34 {
> + dladdr;
> dlclose;
> dlerror;
> }
> @@ -15,7 +17,7 @@ libc {
> }
> libdl {
> GLIBC_2.0 {
> - dladdr; dlopen; dlsym;
> + dlopen; dlsym;
> }
> GLIBC_2.1 {
> dlopen; dlvsym;
Ok.
> diff --git a/dlfcn/dladdr.c b/dlfcn/dladdr.c
> index 27a6e49cac..3ef1b7f0b6 100644
> --- a/dlfcn/dladdr.c
> +++ b/dlfcn/dladdr.c
> @@ -18,27 +18,19 @@
>
> #include <dlfcn.h>
> #include <ldsodefs.h>
> -
> -#if !defined SHARED && IS_IN (libdl)
> -
> -int
> -dladdr (const void *address, Dl_info *info)
> -{
> - return __dladdr (address, info);
> -}
> -
> -#else
> +#include <shlib-compat.h>
>
> int
> __dladdr (const void *address, Dl_info *info)
> {
> -# ifdef SHARED
> +#ifdef SHARED
> if (!rtld_active ())
> return _dlfcn_hook->dladdr (address, info);
> -# endif
> +#endif
> return _dl_addr (address, info, NULL, NULL);
> }
> -# ifdef SHARED
> -strong_alias (__dladdr, dladdr)
> -# endif
> +versioned_symbol (libc, __dladdr, dladdr, GLIBC_2_34);
> +
> +#if OTHER_SHLIB_COMPAT (libdl, GLIBC_2_0, GLIBC_2_34)
> +compat_symbol (libdl, __dladdr, dladdr, GLIBC_2_0);
> #endif
Ok.
> diff --git a/dlfcn/sdladdr.c b/dlfcn/sdladdr.c
> deleted file mode 100644
> index c484d63b29..0000000000
> --- a/dlfcn/sdladdr.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include "dladdr.c"
Ok.
> diff --git a/include/dlfcn.h b/include/dlfcn.h
> index 352eb79500..a018144808 100644
> --- a/include/dlfcn.h
> +++ b/include/dlfcn.h
> @@ -140,8 +140,7 @@ 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 int __dladdr (const void *address, Dl_info *info)
> - attribute_hidden;
> +extern int __dladdr (const void *address, Dl_info *info);
> extern int __dladdr1 (const void *address, Dl_info *info,
> void **extra_info, int flags)
> attribute_hidden;
Ok.
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
> index 7e1b9845fc..abf3f3cf7f 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 dladdr F
> GLIBC_2.2.6 dlclose F
> GLIBC_2.2.6 dlerror F
> GLIBC_2.2.6 dngettext F
> @@ -2209,6 +2210,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/mach/hurd/i386/libdl.abilist b/sysdeps/mach/hurd/i386/libdl.abilist
> index d267e7d457..5b9579b3d2 100644
> --- a/sysdeps/mach/hurd/i386/libdl.abilist
> +++ b/sysdeps/mach/hurd/i386/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.2.6 dladdr 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 8fdbe6548e..f912cea6a0 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 dladdr F
> GLIBC_2.17 dlclose F
> GLIBC_2.17 dlerror F
> GLIBC_2.17 dngettext F
> @@ -2344,6 +2345,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
> index 201e1e7146..731d6a1377 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.17 dladdr F
> GLIBC_2.17 dladdr1 F
> GLIBC_2.17 dlinfo F
> GLIBC_2.17 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index c2bae6f242..c0dfb9be95 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 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dprintf F
> @@ -2436,6 +2437,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libdl.abilist b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
> index a975af50ec..25cf9cd21e 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.0 dladdr 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 bcc9352407..c2a4c1f9ba 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 dladdr F
> GLIBC_2.32 dlclose F
> GLIBC_2.32 dlerror F
> GLIBC_2.32 dngettext 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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/arc/libdl.abilist b/sysdeps/unix/sysv/linux/arc/libdl.abilist
> index 7dc68475ea..1c818309f2 100644
> --- a/sysdeps/unix/sysv/linux/arc/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.32 dladdr F
> GLIBC_2.32 dladdr1 F
> GLIBC_2.32 dlinfo F
> GLIBC_2.32 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index d883be6028..db80c07019 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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> @@ -1019,6 +1020,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 dladdr F
> GLIBC_2.4 dlclose F
> GLIBC_2.4 dlerror F
> GLIBC_2.4 dngettext F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
> index 0ddfa10b3d..69ffaf4edf 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.4 dladdr F
> GLIBC_2.4 dladdr1 F
> GLIBC_2.4 dlinfo F
> GLIBC_2.4 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 4dbb5e3442..3600075a47 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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> @@ -1016,6 +1017,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 dladdr F
> GLIBC_2.4 dlclose F
> GLIBC_2.4 dlerror F
> GLIBC_2.4 dngettext F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
> index 0ddfa10b3d..69ffaf4edf 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.4 dladdr F
> GLIBC_2.4 dladdr1 F
> GLIBC_2.4 dlinfo F
> GLIBC_2.4 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 0da7522411..d7beb5db45 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 dladdr F
> GLIBC_2.29 dlclose F
> GLIBC_2.29 dlerror F
> GLIBC_2.29 dngettext F
> @@ -2287,6 +2288,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/csky/libdl.abilist b/sysdeps/unix/sysv/linux/csky/libdl.abilist
> index 359b2d6267..2c8047a614 100644
> --- a/sysdeps/unix/sysv/linux/csky/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.29 dladdr F
> GLIBC_2.29 dladdr1 F
> GLIBC_2.29 dlinfo F
> GLIBC_2.29 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 53128aae93..59b0e421a7 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -1,3 +1,4 @@
> +GLIBC_2.0 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2240,6 +2241,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libdl.abilist b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
> index a975af50ec..25cf9cd21e 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.0 dladdr 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 0731f99ab1..e33dd7d91e 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 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dprintf F
> @@ -2424,6 +2425,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/i386/libdl.abilist b/sysdeps/unix/sysv/linux/i386/libdl.abilist
> index a975af50ec..25cf9cd21e 100644
> --- a/sysdeps/unix/sysv/linux/i386/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.0 dladdr 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 87acf0b861..772b686c1d 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -1,3 +1,4 @@
> +GLIBC_2.0 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.10 __cxa_at_quick_exit 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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libdl.abilist b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
> index a975af50ec..25cf9cd21e 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.0 dladdr 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 ed482a6551..6ee063131e 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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> @@ -1008,6 +1009,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 dladdr F
> GLIBC_2.4 dlclose F
> GLIBC_2.4 dlerror F
> GLIBC_2.4 dngettext F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
> index 0ddfa10b3d..69ffaf4edf 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.4 dladdr F
> GLIBC_2.4 dladdr1 F
> GLIBC_2.4 dlinfo F
> GLIBC_2.4 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index eff3f537f0..9fb78fd4fd 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 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dprintf F
> @@ -2367,6 +2368,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
> index a975af50ec..25cf9cd21e 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.0 dladdr 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 aeda8130c1..6ba6e439c5 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 dladdr F
> GLIBC_2.18 dlclose F
> GLIBC_2.18 dlerror F
> GLIBC_2.18 dngettext F
> @@ -2338,6 +2339,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
> index 90dcb88bab..721e823b1b 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.18 dladdr F
> GLIBC_2.18 dladdr1 F
> GLIBC_2.18 dlinfo F
> GLIBC_2.18 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index cf8583acf8..b3d12892e6 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 dladdr F
> GLIBC_2.18 dlclose F
> GLIBC_2.18 dlerror F
> GLIBC_2.18 dngettext F
> @@ -2335,6 +2336,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
> index 90dcb88bab..721e823b1b 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.18 dladdr F
> GLIBC_2.18 dladdr1 F
> GLIBC_2.18 dlinfo F
> GLIBC_2.18 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 72a1879260..43fe36e7d1 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 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dprintf F
> @@ -2332,6 +2333,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
> index c35888c87a..d8aab2a6de 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.0 dladdr 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 7f116922cf..699ad445f7 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 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dprintf 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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
> index c35888c87a..d8aab2a6de 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.0 dladdr 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 af7ab63030..3da887b94b 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 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dprintf F
> @@ -2338,6 +2339,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 17f64d7c1e..8c34936cc0 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 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dprintf F
> @@ -2332,6 +2333,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 7c0d6dbd03..e1bc50caf5 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 dladdr F
> GLIBC_2.21 dlclose F
> GLIBC_2.21 dlerror F
> GLIBC_2.21 dngettext F
> @@ -2377,6 +2378,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libdl.abilist b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
> index 2de1533f42..835ee02768 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.21 dladdr F
> GLIBC_2.21 dladdr1 F
> GLIBC_2.21 dlinfo F
> GLIBC_2.21 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index c3f9df2b67..8c3c1bb5c5 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 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dprintf F
> @@ -2394,6 +2395,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
> index a975af50ec..25cf9cd21e 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.0 dladdr 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 b122dce9f5..018f9c0253 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 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dprintf F
> @@ -2427,6 +2428,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index c5cee140ea..330f5fdc1a 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 dladdr F
> GLIBC_2.3 dlclose F
> GLIBC_2.3 dlerror F
> GLIBC_2.3 dngettext F
> @@ -2241,6 +2242,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
> index 183a4b1526..4446495717 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.3 dladdr 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 14a53736ff..b770ac88b3 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 dladdr F
> GLIBC_2.17 dlclose F
> GLIBC_2.17 dlerror F
> GLIBC_2.17 dngettext F
> @@ -2540,6 +2541,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
> index 201e1e7146..731d6a1377 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.17 dladdr F
> GLIBC_2.17 dladdr1 F
> GLIBC_2.17 dlinfo F
> GLIBC_2.17 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index 4076eb1fc3..ea14f58edb 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 dladdr F
> GLIBC_2.33 dlclose F
> GLIBC_2.33 dlerror F
> GLIBC_2.33 dngettext F
> @@ -2105,6 +2106,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
> index 40991dffcd..b140aa0b09 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.33 dladdr F
> GLIBC_2.33 dladdr1 F
> GLIBC_2.33 dlinfo F
> GLIBC_2.33 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index b608d9384a..5c2a87a3b0 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 dladdr F
> GLIBC_2.27 dlclose F
> GLIBC_2.27 dlerror F
> GLIBC_2.27 dngettext F
> @@ -2305,6 +2306,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
> index 6dea0435f8..3536869c77 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.27 dladdr F
> GLIBC_2.27 dladdr1 F
> GLIBC_2.27 dlinfo F
> GLIBC_2.27 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index c5809de838..937a3ba942 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 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dprintf 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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
> index a975af50ec..25cf9cd21e 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.0 dladdr 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 b118d56f0d..cce8034393 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 dladdr F
> GLIBC_2.2 dlclose F
> GLIBC_2.2 dlerror F
> GLIBC_2.2 dngettext F
> @@ -2278,6 +2279,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
> index 99bb237244..c995dec160 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.2 dladdr 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 e6748c96dc..28154a96dd 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 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2247,6 +2248,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
> index a975af50ec..25cf9cd21e 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.0 dladdr 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 fa0e795ec1..d9a16e9ccf 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 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2244,6 +2245,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
> index a975af50ec..25cf9cd21e 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.0 dladdr 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 897b34dabf..98e6db33fe 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 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dprintf F
> @@ -2385,6 +2386,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
> index a975af50ec..25cf9cd21e 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.0 dladdr 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 2d7e5a0ca1..479a1b38a6 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 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2297,6 +2298,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
> index a975af50ec..25cf9cd21e 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.0 dladdr 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 62bded4298..3c6750b3a4 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 dladdr F
> GLIBC_2.2.5 dlclose F
> GLIBC_2.2.5 dlerror F
> GLIBC_2.2.5 dngettext F
> @@ -2256,6 +2257,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
> index f4f0482c24..28f001d6ec 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.2.5 dladdr 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 f197d4301f..0bfba9edbc 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 dladdr F
> GLIBC_2.16 dlclose F
> GLIBC_2.16 dlerror F
> GLIBC_2.16 dngettext F
> @@ -2359,6 +2360,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 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
> index a29fef95d4..f61c4a59d3 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.16 dladdr F
> GLIBC_2.16 dladdr1 F
> GLIBC_2.16 dlinfo F
> GLIBC_2.16 dlmopen F
>
Ok.
^ permalink raw reply [flat|nested] 39+ messages in thread
* [PATCH 08/16] dlfcn: Move dlsym into libc
2021-05-31 14:10 [PATCH v3 00/16] Move libdl into libc Florian Weimer
` (6 preceding siblings ...)
2021-05-31 14:11 ` [PATCH 07/16] dlfcn: Move dladdr " Florian Weimer
@ 2021-05-31 14:11 ` Florian Weimer
2021-06-02 14:12 ` Adhemerval Zanella
2021-05-31 14:12 ` [PATCH 09/16] dlfcn: Move dlmopen " Florian Weimer
` (7 subsequent siblings)
15 siblings, 1 reply; 39+ messages in thread
From: Florian Weimer @ 2021-05-31 14:11 UTC (permalink / raw)
To: libc-alpha
The symbol was moved using scripts/move-symbol-to-libc.py.
In elf/Makefile, remove the $(libdl) dependency from testobj1.so
because it the unused libdl DSO now causes elf/tst-unused-deps to
fail.
---
dlfcn/Makefile | 3 +-
dlfcn/Versions | 4 +-
dlfcn/dlsym.c | 59 +++++++++++--------
dlfcn/sdlsym.c | 1 -
elf/Makefile | 1 -
elf/dl-sym.c | 1 +
include/dlfcn.h | 4 +-
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 -
70 files changed, 109 insertions(+), 60 deletions(-)
delete mode 100644 dlfcn/sdlsym.c
diff --git a/dlfcn/Makefile b/dlfcn/Makefile
index f0793468c7..b0f2e8a986 100644
--- a/dlfcn/Makefile
+++ b/dlfcn/Makefile
@@ -21,7 +21,7 @@ include ../Makeconfig
headers := bits/dlfcn.h dlfcn.h
extra-libs := libdl
-libdl-routines := dlopen dlsym dlvsym dladdr1 dlinfo \
+libdl-routines := dlopen dlvsym dladdr1 dlinfo \
dlmopen dlfcn
routines := $(patsubst %,s%,$(filter-out dlfcn,$(libdl-routines)))
elide-routines.os := $(routines)
@@ -29,6 +29,7 @@ routines += \
dladdr \
dlclose \
dlerror \
+ dlsym \
libc_dlerror_result \
extra-libs-others := libdl
diff --git a/dlfcn/Versions b/dlfcn/Versions
index 89e4a1236a..7d6b51a4e3 100644
--- a/dlfcn/Versions
+++ b/dlfcn/Versions
@@ -3,11 +3,13 @@ libc {
dladdr;
dlclose;
dlerror;
+ dlsym;
}
GLIBC_2.34 {
dladdr;
dlclose;
dlerror;
+ dlsym;
}
GLIBC_PRIVATE {
__libc_dlerror_result;
@@ -17,7 +19,7 @@ libc {
}
libdl {
GLIBC_2.0 {
- dlopen; dlsym;
+ dlopen;
}
GLIBC_2.1 {
dlopen; dlvsym;
diff --git a/dlfcn/dlsym.c b/dlfcn/dlsym.c
index 26cea4ba6d..6b03b7b7ab 100644
--- a/dlfcn/dlsym.c
+++ b/dlfcn/dlsym.c
@@ -17,19 +17,9 @@
<https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
-#include <stddef.h>
-
#include <ldsodefs.h>
-
-#if !defined SHARED && IS_IN (libdl)
-
-void *
-dlsym (void *handle, const char *name)
-{
- return __dlsym (handle, name, RETURN_ADDRESS (0));
-}
-
-#else
+#include <shlib-compat.h>
+#include <stddef.h>
struct dlsym_args
{
@@ -50,17 +40,11 @@ dlsym_doit (void *a)
args->sym = _dl_sym (args->handle, args->name, args->who);
}
-
-void *
-__dlsym (void *handle, const char *name DL_CALLER_DECL)
+static void *
+dlsym_implementation (void *handle, const char *name, void *dl_caller)
{
-# ifdef SHARED
- if (!rtld_active ())
- return _dlfcn_hook->dlsym (handle, name, DL_CALLER);
-# endif
-
struct dlsym_args args;
- args.who = DL_CALLER;
+ args.who = dl_caller;
args.handle = handle;
args.name = name;
@@ -73,7 +57,34 @@ __dlsym (void *handle, const char *name DL_CALLER_DECL)
return result;
}
-# ifdef SHARED
-strong_alias (__dlsym, dlsym)
+
+#ifdef SHARED
+void *
+___dlsym (void *handle, const char *name)
+{
+ if (!rtld_active ())
+ return _dlfcn_hook->dlsym (handle, name, RETURN_ADDRESS (0));
+ else
+ return dlsym_implementation (handle, name, RETURN_ADDRESS (0));
+}
+versioned_symbol (libc, ___dlsym, dlsym, GLIBC_2_34);
+
+# if OTHER_SHLIB_COMPAT (libdl, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libdl, ___dlsym, dlsym, GLIBC_2_0);
# endif
-#endif
+
+#else /* !SHARED */
+/* Also used with _dlfcn_hook. */
+void *
+__dlsym (void *handle, const char *name, void *dl_caller)
+{
+ return dlsym_implementation (handle, name, dl_caller);
+}
+
+void *
+___dlsym (void *handle, const char *name)
+{
+ return __dlsym (handle, name, RETURN_ADDRESS (0));
+}
+weak_alias (___dlsym, dlsym)
+#endif /* !SHARED */
diff --git a/dlfcn/sdlsym.c b/dlfcn/sdlsym.c
deleted file mode 100644
index 0234f23f8f..0000000000
--- a/dlfcn/sdlsym.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "dlsym.c"
diff --git a/elf/Makefile b/elf/Makefile
index 834ec858a8..0ec736bb0f 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -699,7 +699,6 @@ include $(patsubst %,$(..)libof-iterator.mk,$(cpp-srcs-left))
test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names))))
generated += $(addsuffix .so,$(strip $(modules-names)))
-$(objpfx)testobj1.so: $(libdl)
$(objpfx)testobj1_1.so: $(objpfx)testobj1.so $(libdl)
$(objpfx)testobj2.so: $(objpfx)testobj1.so $(libdl)
$(objpfx)testobj3.so: $(libdl)
diff --git a/elf/dl-sym.c b/elf/dl-sym.c
index dfd6169e12..b34cc2f8eb 100644
--- a/elf/dl-sym.c
+++ b/elf/dl-sym.c
@@ -195,3 +195,4 @@ _dl_sym (void *handle, const char *name, void *who)
{
return do_sym (handle, name, who, NULL, DL_LOOKUP_RETURN_NEWEST);
}
+libc_hidden_def (_dl_sym)
diff --git a/include/dlfcn.h b/include/dlfcn.h
index a018144808..2b174f8670 100644
--- a/include/dlfcn.h
+++ b/include/dlfcn.h
@@ -84,6 +84,7 @@ extern void _dl_close_worker (struct link_map *map, bool force)
RTLD_NEXT). WHO is the calling function, for RTLD_NEXT. Returns
the symbol value, which may be NULL. */
extern void *_dl_sym (void *handle, const char *name, void *who);
+libc_hidden_proto (_dl_sym)
/* Look up version VERSION of symbol NAME in shared object HANDLE
(which may be RTLD_DEFAULT or RTLD_NEXT). WHO is the calling
@@ -135,8 +136,7 @@ extern void *__dlopen (const char *file, int mode DL_CALLER_DECL)
extern void *__dlmopen (Lmid_t nsid, const char *file, int mode DL_CALLER_DECL)
attribute_hidden;
extern int __dlclose (void *handle);
-extern void *__dlsym (void *handle, const char *name DL_CALLER_DECL)
- attribute_hidden;
+extern void *__dlsym (void *handle, const char *name, void *dl_caller);
extern void *__dlvsym (void *handle, const char *name, const char *version
DL_CALLER_DECL)
attribute_hidden;
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index abf3f3cf7f..02ba6c3593 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -744,6 +744,7 @@ GLIBC_2.2.6 dl_iterate_phdr F
GLIBC_2.2.6 dladdr F
GLIBC_2.2.6 dlclose F
GLIBC_2.2.6 dlerror F
+GLIBC_2.2.6 dlsym F
GLIBC_2.2.6 dngettext F
GLIBC_2.2.6 dprintf F
GLIBC_2.2.6 drand48 F
@@ -2213,6 +2214,7 @@ GLIBC_2.34 _hurd_libc_proc_init F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 5b9579b3d2..e4fe2ccab6 100644
--- a/sysdeps/mach/hurd/i386/libdl.abilist
+++ b/sysdeps/mach/hurd/i386/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.2.6 dlopen F
-GLIBC_2.2.6 dlsym F
GLIBC_2.2.6 dlvsym F
GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index f912cea6a0..9da6e869fa 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -721,6 +721,7 @@ GLIBC_2.17 dl_iterate_phdr F
GLIBC_2.17 dladdr F
GLIBC_2.17 dlclose F
GLIBC_2.17 dlerror F
+GLIBC_2.17 dlsym F
GLIBC_2.17 dngettext F
GLIBC_2.17 dprintf F
GLIBC_2.17 drand48 F
@@ -2348,6 +2349,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 731d6a1377..d3822d83fc 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
@@ -2,5 +2,4 @@ GLIBC_2.17 dladdr1 F
GLIBC_2.17 dlinfo F
GLIBC_2.17 dlmopen F
GLIBC_2.17 dlopen F
-GLIBC_2.17 dlsym F
GLIBC_2.17 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index c0dfb9be95..1c9805a7f4 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -412,6 +412,7 @@ GLIBC_2.0 div F
GLIBC_2.0 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
+GLIBC_2.0 dlsym F
GLIBC_2.0 dprintf F
GLIBC_2.0 drand48 F
GLIBC_2.0 drand48_r F
@@ -2440,6 +2441,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 25cf9cd21e..9019e8db65 100644
--- a/sysdeps/unix/sysv/linux/alpha/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
-GLIBC_2.0 dlsym F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.3.3 dladdr1 F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index c2a4c1f9ba..1a83cb2288 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -666,6 +666,7 @@ GLIBC_2.32 dl_iterate_phdr F
GLIBC_2.32 dladdr F
GLIBC_2.32 dlclose F
GLIBC_2.32 dlerror F
+GLIBC_2.32 dlsym F
GLIBC_2.32 dngettext F
GLIBC_2.32 dprintf F
GLIBC_2.32 drand48 F
@@ -2107,6 +2108,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 1c818309f2..74e8c10002 100644
--- a/sysdeps/unix/sysv/linux/arc/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libdl.abilist
@@ -2,5 +2,4 @@ GLIBC_2.32 dladdr1 F
GLIBC_2.32 dlinfo F
GLIBC_2.32 dlmopen F
GLIBC_2.32 dlopen F
-GLIBC_2.32 dlsym F
GLIBC_2.32 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index db80c07019..b49c187be7 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -210,6 +210,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -1023,6 +1024,7 @@ GLIBC_2.4 dl_iterate_phdr F
GLIBC_2.4 dladdr F
GLIBC_2.4 dlclose F
GLIBC_2.4 dlerror F
+GLIBC_2.4 dlsym 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 69ffaf4edf..816b953a69 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
@@ -2,5 +2,4 @@ GLIBC_2.4 dladdr1 F
GLIBC_2.4 dlinfo F
GLIBC_2.4 dlmopen F
GLIBC_2.4 dlopen F
-GLIBC_2.4 dlsym F
GLIBC_2.4 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 3600075a47..7f49a4977f 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -207,6 +207,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -1020,6 +1021,7 @@ GLIBC_2.4 dl_iterate_phdr F
GLIBC_2.4 dladdr F
GLIBC_2.4 dlclose F
GLIBC_2.4 dlerror F
+GLIBC_2.4 dlsym 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 69ffaf4edf..816b953a69 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
@@ -2,5 +2,4 @@ GLIBC_2.4 dladdr1 F
GLIBC_2.4 dlinfo F
GLIBC_2.4 dlmopen F
GLIBC_2.4 dlopen F
-GLIBC_2.4 dlsym F
GLIBC_2.4 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index d7beb5db45..f060c2b0d5 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -702,6 +702,7 @@ GLIBC_2.29 dl_iterate_phdr F
GLIBC_2.29 dladdr F
GLIBC_2.29 dlclose F
GLIBC_2.29 dlerror F
+GLIBC_2.29 dlsym F
GLIBC_2.29 dngettext F
GLIBC_2.29 dprintf F
GLIBC_2.29 drand48 F
@@ -2291,6 +2292,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 2c8047a614..78edf27275 100644
--- a/sysdeps/unix/sysv/linux/csky/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libdl.abilist
@@ -2,5 +2,4 @@ GLIBC_2.29 dladdr1 F
GLIBC_2.29 dlinfo F
GLIBC_2.29 dlmopen F
GLIBC_2.29 dlopen F
-GLIBC_2.29 dlsym F
GLIBC_2.29 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 59b0e421a7..bd4bbe548d 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1,6 +1,7 @@
GLIBC_2.0 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
+GLIBC_2.0 dlsym F
GLIBC_2.10 __cxa_at_quick_exit F
GLIBC_2.10 __posix_getopt F
GLIBC_2.10 accept4 F
@@ -2244,6 +2245,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 25cf9cd21e..9019e8db65 100644
--- a/sysdeps/unix/sysv/linux/hppa/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
-GLIBC_2.0 dlsym F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.3.3 dladdr1 F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index e33dd7d91e..c781b36839 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -398,6 +398,7 @@ GLIBC_2.0 div F
GLIBC_2.0 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
+GLIBC_2.0 dlsym F
GLIBC_2.0 dprintf F
GLIBC_2.0 drand48 F
GLIBC_2.0 drand48_r F
@@ -2428,6 +2429,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 25cf9cd21e..9019e8db65 100644
--- a/sysdeps/unix/sysv/linux/i386/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
-GLIBC_2.0 dlsym F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.3.3 dladdr1 F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 772b686c1d..f0af999f5d 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1,6 +1,7 @@
GLIBC_2.0 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
+GLIBC_2.0 dlsym F
GLIBC_2.10 __cxa_at_quick_exit F
GLIBC_2.10 __posix_getopt F
GLIBC_2.10 accept4 F
@@ -2280,6 +2281,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 25cf9cd21e..9019e8db65 100644
--- a/sysdeps/unix/sysv/linux/ia64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
-GLIBC_2.0 dlsym F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.3.3 dladdr1 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 6ee063131e..8b58481a8c 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -211,6 +211,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -1012,6 +1013,7 @@ GLIBC_2.4 dl_iterate_phdr F
GLIBC_2.4 dladdr F
GLIBC_2.4 dlclose F
GLIBC_2.4 dlerror F
+GLIBC_2.4 dlsym 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 69ffaf4edf..816b953a69 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
@@ -2,5 +2,4 @@ GLIBC_2.4 dladdr1 F
GLIBC_2.4 dlinfo F
GLIBC_2.4 dlmopen F
GLIBC_2.4 dlopen F
-GLIBC_2.4 dlsym F
GLIBC_2.4 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 9fb78fd4fd..d4f2220a6a 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -399,6 +399,7 @@ GLIBC_2.0 div F
GLIBC_2.0 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
+GLIBC_2.0 dlsym F
GLIBC_2.0 dprintf F
GLIBC_2.0 drand48 F
GLIBC_2.0 drand48_r F
@@ -2371,6 +2372,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 25cf9cd21e..9019e8db65 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
-GLIBC_2.0 dlsym F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.3.3 dladdr1 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 6ba6e439c5..d443e72888 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -723,6 +723,7 @@ GLIBC_2.18 dl_iterate_phdr F
GLIBC_2.18 dladdr F
GLIBC_2.18 dlclose F
GLIBC_2.18 dlerror F
+GLIBC_2.18 dlsym F
GLIBC_2.18 dngettext F
GLIBC_2.18 dprintf F
GLIBC_2.18 drand48 F
@@ -2342,6 +2343,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 721e823b1b..9f0b07e50d 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
@@ -2,5 +2,4 @@ GLIBC_2.18 dladdr1 F
GLIBC_2.18 dlinfo F
GLIBC_2.18 dlmopen F
GLIBC_2.18 dlopen F
-GLIBC_2.18 dlsym F
GLIBC_2.18 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index b3d12892e6..5d899de9e1 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -723,6 +723,7 @@ GLIBC_2.18 dl_iterate_phdr F
GLIBC_2.18 dladdr F
GLIBC_2.18 dlclose F
GLIBC_2.18 dlerror F
+GLIBC_2.18 dlsym F
GLIBC_2.18 dngettext F
GLIBC_2.18 dprintf F
GLIBC_2.18 drand48 F
@@ -2339,6 +2340,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 721e823b1b..9f0b07e50d 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
@@ -2,5 +2,4 @@ GLIBC_2.18 dladdr1 F
GLIBC_2.18 dlinfo F
GLIBC_2.18 dlmopen F
GLIBC_2.18 dlopen F
-GLIBC_2.18 dlsym F
GLIBC_2.18 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 43fe36e7d1..80f71d2c9d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -397,6 +397,7 @@ GLIBC_2.0 div F
GLIBC_2.0 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
+GLIBC_2.0 dlsym 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_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 d8aab2a6de..e79fbf179b 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
-GLIBC_2.0 dlsym F
GLIBC_2.2 dlopen F
GLIBC_2.2 dlvsym F
GLIBC_2.3.3 dladdr1 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 699ad445f7..041df76409 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -397,6 +397,7 @@ GLIBC_2.0 div F
GLIBC_2.0 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
+GLIBC_2.0 dlsym F
GLIBC_2.0 dprintf F
GLIBC_2.0 drand48 F
GLIBC_2.0 drand48_r F
@@ -2334,6 +2335,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 d8aab2a6de..e79fbf179b 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
-GLIBC_2.0 dlsym F
GLIBC_2.2 dlopen F
GLIBC_2.2 dlvsym F
GLIBC_2.3.3 dladdr1 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 3da887b94b..9d741ee23b 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -397,6 +397,7 @@ GLIBC_2.0 div F
GLIBC_2.0 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
+GLIBC_2.0 dlsym F
GLIBC_2.0 dprintf F
GLIBC_2.0 drand48 F
GLIBC_2.0 drand48_r F
@@ -2342,6 +2343,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 8c34936cc0..eb2b387ce6 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -395,6 +395,7 @@ GLIBC_2.0 div F
GLIBC_2.0 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
+GLIBC_2.0 dlsym 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_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 e1bc50caf5..91e8dac129 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -766,6 +766,7 @@ GLIBC_2.21 dl_iterate_phdr F
GLIBC_2.21 dladdr F
GLIBC_2.21 dlclose F
GLIBC_2.21 dlerror F
+GLIBC_2.21 dlsym F
GLIBC_2.21 dngettext F
GLIBC_2.21 dprintf F
GLIBC_2.21 drand48 F
@@ -2381,6 +2382,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 835ee02768..354d0b0f1f 100644
--- a/sysdeps/unix/sysv/linux/nios2/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
@@ -2,5 +2,4 @@ GLIBC_2.21 dladdr1 F
GLIBC_2.21 dlinfo F
GLIBC_2.21 dlmopen F
GLIBC_2.21 dlopen F
-GLIBC_2.21 dlsym F
GLIBC_2.21 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 8c3c1bb5c5..3531cf9744 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -408,6 +408,7 @@ GLIBC_2.0 div F
GLIBC_2.0 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
+GLIBC_2.0 dlsym F
GLIBC_2.0 dprintf F
GLIBC_2.0 drand48 F
GLIBC_2.0 drand48_r F
@@ -2398,6 +2399,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 25cf9cd21e..9019e8db65 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
-GLIBC_2.0 dlsym F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.3.3 dladdr1 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 018f9c0253..b2610134a9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -408,6 +408,7 @@ GLIBC_2.0 div F
GLIBC_2.0 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
+GLIBC_2.0 dlsym F
GLIBC_2.0 dprintf F
GLIBC_2.0 drand48 F
GLIBC_2.0 drand48_r F
@@ -2431,6 +2432,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 330f5fdc1a..cb9457053d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -761,6 +761,7 @@ GLIBC_2.3 dl_iterate_phdr F
GLIBC_2.3 dladdr F
GLIBC_2.3 dlclose F
GLIBC_2.3 dlerror F
+GLIBC_2.3 dlsym F
GLIBC_2.3 dngettext F
GLIBC_2.3 dprintf F
GLIBC_2.3 drand48 F
@@ -2245,6 +2246,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 4446495717..5344e7141c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.3 dlopen F
-GLIBC_2.3 dlsym F
GLIBC_2.3 dlvsym F
GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index b770ac88b3..43e579db72 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -809,6 +809,7 @@ GLIBC_2.17 dl_iterate_phdr F
GLIBC_2.17 dladdr F
GLIBC_2.17 dlclose F
GLIBC_2.17 dlerror F
+GLIBC_2.17 dlsym F
GLIBC_2.17 dngettext F
GLIBC_2.17 dprintf F
GLIBC_2.17 drand48 F
@@ -2544,6 +2545,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 731d6a1377..d3822d83fc 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
@@ -2,5 +2,4 @@ GLIBC_2.17 dladdr1 F
GLIBC_2.17 dlinfo F
GLIBC_2.17 dlmopen F
GLIBC_2.17 dlopen F
-GLIBC_2.17 dlsym F
GLIBC_2.17 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index ea14f58edb..fe9784bfe7 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -659,6 +659,7 @@ GLIBC_2.33 dl_iterate_phdr F
GLIBC_2.33 dladdr F
GLIBC_2.33 dlclose F
GLIBC_2.33 dlerror F
+GLIBC_2.33 dlsym F
GLIBC_2.33 dngettext F
GLIBC_2.33 dprintf F
GLIBC_2.33 drand48 F
@@ -2109,6 +2110,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 b140aa0b09..12113b56ff 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
@@ -2,5 +2,4 @@ GLIBC_2.33 dladdr1 F
GLIBC_2.33 dlinfo F
GLIBC_2.33 dlmopen F
GLIBC_2.33 dlopen F
-GLIBC_2.33 dlsym F
GLIBC_2.33 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 5c2a87a3b0..241850b78d 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -700,6 +700,7 @@ GLIBC_2.27 dl_iterate_phdr F
GLIBC_2.27 dladdr F
GLIBC_2.27 dlclose F
GLIBC_2.27 dlerror F
+GLIBC_2.27 dlsym F
GLIBC_2.27 dngettext F
GLIBC_2.27 dprintf F
GLIBC_2.27 drand48 F
@@ -2309,6 +2310,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 3536869c77..e42f9d97a8 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
@@ -2,5 +2,4 @@ GLIBC_2.27 dladdr1 F
GLIBC_2.27 dlinfo F
GLIBC_2.27 dlmopen F
GLIBC_2.27 dlopen F
-GLIBC_2.27 dlsym F
GLIBC_2.27 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 937a3ba942..72baa14350 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -398,6 +398,7 @@ GLIBC_2.0 div F
GLIBC_2.0 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
+GLIBC_2.0 dlsym F
GLIBC_2.0 dprintf F
GLIBC_2.0 drand48 F
GLIBC_2.0 drand48_r F
@@ -2396,6 +2397,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 25cf9cd21e..9019e8db65 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
-GLIBC_2.0 dlsym F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.3.3 dladdr1 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index cce8034393..2e58f6151b 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -698,6 +698,7 @@ GLIBC_2.2 div F
GLIBC_2.2 dladdr F
GLIBC_2.2 dlclose F
GLIBC_2.2 dlerror F
+GLIBC_2.2 dlsym F
GLIBC_2.2 dngettext F
GLIBC_2.2 dprintf F
GLIBC_2.2 drand48 F
@@ -2282,6 +2283,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 c995dec160..97dcae5bf1 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.2 dlopen F
-GLIBC_2.2 dlsym F
GLIBC_2.2 dlvsym F
GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 28154a96dd..ab113c966d 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -5,6 +5,7 @@ GCC_3.0 __register_frame_info_table_bases F
GLIBC_2.0 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
+GLIBC_2.0 dlsym F
GLIBC_2.10 __cxa_at_quick_exit F
GLIBC_2.10 __posix_getopt F
GLIBC_2.10 accept4 F
@@ -2251,6 +2252,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 25cf9cd21e..9019e8db65 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
-GLIBC_2.0 dlsym F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.3.3 dladdr1 F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index d9a16e9ccf..e733d13430 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -5,6 +5,7 @@ GCC_3.0 __register_frame_info_table_bases F
GLIBC_2.0 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
+GLIBC_2.0 dlsym F
GLIBC_2.10 __cxa_at_quick_exit F
GLIBC_2.10 __posix_getopt F
GLIBC_2.10 accept4 F
@@ -2248,6 +2249,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 25cf9cd21e..9019e8db65 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
-GLIBC_2.0 dlsym F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.3.3 dladdr1 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 98e6db33fe..0534abb5b4 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -400,6 +400,7 @@ GLIBC_2.0 div F
GLIBC_2.0 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
+GLIBC_2.0 dlsym F
GLIBC_2.0 dprintf F
GLIBC_2.0 drand48 F
GLIBC_2.0 drand48_r F
@@ -2389,6 +2390,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 25cf9cd21e..9019e8db65 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
-GLIBC_2.0 dlsym F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.3.3 dladdr1 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 479a1b38a6..89e1646f02 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -5,6 +5,7 @@ GCC_3.0 __register_frame_info_table_bases F
GLIBC_2.0 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
+GLIBC_2.0 dlsym F
GLIBC_2.10 __cxa_at_quick_exit F
GLIBC_2.10 __posix_getopt F
GLIBC_2.10 accept4 F
@@ -2301,6 +2302,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 25cf9cd21e..9019e8db65 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
-GLIBC_2.0 dlsym F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.3.3 dladdr1 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 3c6750b3a4..842a613fdb 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -688,6 +688,7 @@ GLIBC_2.2.5 dl_iterate_phdr F
GLIBC_2.2.5 dladdr F
GLIBC_2.2.5 dlclose F
GLIBC_2.2.5 dlerror F
+GLIBC_2.2.5 dlsym F
GLIBC_2.2.5 dngettext F
GLIBC_2.2.5 dprintf F
GLIBC_2.2.5 drand48 F
@@ -2260,6 +2261,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 28f001d6ec..a43447856f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.2.5 dlopen F
-GLIBC_2.2.5 dlsym F
GLIBC_2.2.5 dlvsym F
GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 0bfba9edbc..5e8c5a64f2 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -725,6 +725,7 @@ GLIBC_2.16 dl_iterate_phdr F
GLIBC_2.16 dladdr F
GLIBC_2.16 dlclose F
GLIBC_2.16 dlerror F
+GLIBC_2.16 dlsym F
GLIBC_2.16 dngettext F
GLIBC_2.16 dprintf F
GLIBC_2.16 drand48 F
@@ -2363,6 +2364,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlsym 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 f61c4a59d3..7586a5f0b7 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
@@ -2,5 +2,4 @@ GLIBC_2.16 dladdr1 F
GLIBC_2.16 dlinfo F
GLIBC_2.16 dlmopen F
GLIBC_2.16 dlopen F
-GLIBC_2.16 dlsym F
GLIBC_2.16 dlvsym F
--
2.31.1
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH 08/16] dlfcn: Move dlsym into libc
2021-05-31 14:11 ` [PATCH 08/16] dlfcn: Move dlsym " Florian Weimer
@ 2021-06-02 14:12 ` Adhemerval Zanella
0 siblings, 0 replies; 39+ messages in thread
From: Adhemerval Zanella @ 2021-06-02 14:12 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 31/05/2021 11:11, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.
>
> In elf/Makefile, remove the $(libdl) dependency from testobj1.so
> because it the unused libdl DSO now causes elf/tst-unused-deps to
> fail.
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> dlfcn/Makefile | 3 +-
> dlfcn/Versions | 4 +-
> dlfcn/dlsym.c | 59 +++++++++++--------
> dlfcn/sdlsym.c | 1 -
> elf/Makefile | 1 -
> elf/dl-sym.c | 1 +
> include/dlfcn.h | 4 +-
> 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 -
> 70 files changed, 109 insertions(+), 60 deletions(-)
> delete mode 100644 dlfcn/sdlsym.c
>
> diff --git a/dlfcn/Makefile b/dlfcn/Makefile
> index f0793468c7..b0f2e8a986 100644
> --- a/dlfcn/Makefile
> +++ b/dlfcn/Makefile
> @@ -21,7 +21,7 @@ include ../Makeconfig
>
> headers := bits/dlfcn.h dlfcn.h
> extra-libs := libdl
> -libdl-routines := dlopen dlsym dlvsym dladdr1 dlinfo \
> +libdl-routines := dlopen dlvsym dladdr1 dlinfo \
> dlmopen dlfcn
> routines := $(patsubst %,s%,$(filter-out dlfcn,$(libdl-routines)))
> elide-routines.os := $(routines)
> @@ -29,6 +29,7 @@ routines += \
> dladdr \
> dlclose \
> dlerror \
> + dlsym \
> libc_dlerror_result \
>
> extra-libs-others := libdl
Ok.
> diff --git a/dlfcn/Versions b/dlfcn/Versions
> index 89e4a1236a..7d6b51a4e3 100644
> --- a/dlfcn/Versions
> +++ b/dlfcn/Versions
> @@ -3,11 +3,13 @@ libc {
> dladdr;
> dlclose;
> dlerror;
> + dlsym;
> }
> GLIBC_2.34 {
> dladdr;
> dlclose;
> dlerror;
> + dlsym;
> }
> GLIBC_PRIVATE {
> __libc_dlerror_result;
> @@ -17,7 +19,7 @@ libc {
> }
> libdl {
> GLIBC_2.0 {
> - dlopen; dlsym;
> + dlopen;
> }
> GLIBC_2.1 {
> dlopen; dlvsym;
Ok.
> diff --git a/dlfcn/dlsym.c b/dlfcn/dlsym.c
> index 26cea4ba6d..6b03b7b7ab 100644
> --- a/dlfcn/dlsym.c
> +++ b/dlfcn/dlsym.c
> @@ -17,19 +17,9 @@
> <https://www.gnu.org/licenses/>. */
>
> #include <dlfcn.h>
> -#include <stddef.h>
> -
> #include <ldsodefs.h>
> -
> -#if !defined SHARED && IS_IN (libdl)
> -
> -void *
> -dlsym (void *handle, const char *name)
> -{
> - return __dlsym (handle, name, RETURN_ADDRESS (0));
> -}
> -
> -#else
> +#include <shlib-compat.h>
> +#include <stddef.h>
>
> struct dlsym_args
> {
> @@ -50,17 +40,11 @@ dlsym_doit (void *a)
> args->sym = _dl_sym (args->handle, args->name, args->who);
> }
>
> -
> -void *
> -__dlsym (void *handle, const char *name DL_CALLER_DECL)
> +static void *
> +dlsym_implementation (void *handle, const char *name, void *dl_caller)
> {
> -# ifdef SHARED
> - if (!rtld_active ())
> - return _dlfcn_hook->dlsym (handle, name, DL_CALLER);
> -# endif
> -
> struct dlsym_args args;
> - args.who = DL_CALLER;
> + args.who = dl_caller;
> args.handle = handle;
> args.name = name;
>
> @@ -73,7 +57,34 @@ __dlsym (void *handle, const char *name DL_CALLER_DECL)
>
> return result;
> }
> -# ifdef SHARED
> -strong_alias (__dlsym, dlsym)
> +
> +#ifdef SHARED
> +void *
> +___dlsym (void *handle, const char *name)
> +{
> + if (!rtld_active ())
> + return _dlfcn_hook->dlsym (handle, name, RETURN_ADDRESS (0));
> + else
> + return dlsym_implementation (handle, name, RETURN_ADDRESS (0));
> +}
> +versioned_symbol (libc, ___dlsym, dlsym, GLIBC_2_34);
> +
> +# if OTHER_SHLIB_COMPAT (libdl, GLIBC_2_0, GLIBC_2_34)
> +compat_symbol (libdl, ___dlsym, dlsym, GLIBC_2_0);
> # endif
> -#endif
> +
> +#else /* !SHARED */
> +/* Also used with _dlfcn_hook. */
> +void *
> +__dlsym (void *handle, const char *name, void *dl_caller)
> +{
> + return dlsym_implementation (handle, name, dl_caller);
> +}
> +
> +void *
> +___dlsym (void *handle, const char *name)
> +{
> + return __dlsym (handle, name, RETURN_ADDRESS (0));
> +}
> +weak_alias (___dlsym, dlsym)
> +#endif /* !SHARED */
Ok.
> diff --git a/dlfcn/sdlsym.c b/dlfcn/sdlsym.c
> deleted file mode 100644
> index 0234f23f8f..0000000000
> --- a/dlfcn/sdlsym.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include "dlsym.c"
Ok.
> diff --git a/elf/Makefile b/elf/Makefile
> index 834ec858a8..0ec736bb0f 100644
> --- a/elf/Makefile
> +++ b/elf/Makefile
> @@ -699,7 +699,6 @@ include $(patsubst %,$(..)libof-iterator.mk,$(cpp-srcs-left))
> test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names))))
> generated += $(addsuffix .so,$(strip $(modules-names)))
>
> -$(objpfx)testobj1.so: $(libdl)
> $(objpfx)testobj1_1.so: $(objpfx)testobj1.so $(libdl)
> $(objpfx)testobj2.so: $(objpfx)testobj1.so $(libdl)
> $(objpfx)testobj3.so: $(libdl)
Ok.
> diff --git a/elf/dl-sym.c b/elf/dl-sym.c
> index dfd6169e12..b34cc2f8eb 100644
> --- a/elf/dl-sym.c
> +++ b/elf/dl-sym.c
> @@ -195,3 +195,4 @@ _dl_sym (void *handle, const char *name, void *who)
> {
> return do_sym (handle, name, who, NULL, DL_LOOKUP_RETURN_NEWEST);
> }
> +libc_hidden_def (_dl_sym)
Ok.
> diff --git a/include/dlfcn.h b/include/dlfcn.h
> index a018144808..2b174f8670 100644
> --- a/include/dlfcn.h
> +++ b/include/dlfcn.h
> @@ -84,6 +84,7 @@ extern void _dl_close_worker (struct link_map *map, bool force)
> RTLD_NEXT). WHO is the calling function, for RTLD_NEXT. Returns
> the symbol value, which may be NULL. */
> extern void *_dl_sym (void *handle, const char *name, void *who);
> +libc_hidden_proto (_dl_sym)
>
> /* Look up version VERSION of symbol NAME in shared object HANDLE
> (which may be RTLD_DEFAULT or RTLD_NEXT). WHO is the calling
Ok.
> @@ -135,8 +136,7 @@ extern void *__dlopen (const char *file, int mode DL_CALLER_DECL)
> extern void *__dlmopen (Lmid_t nsid, const char *file, int mode DL_CALLER_DECL)
> attribute_hidden;
> extern int __dlclose (void *handle);
> -extern void *__dlsym (void *handle, const char *name DL_CALLER_DECL)
> - attribute_hidden;
> +extern void *__dlsym (void *handle, const char *name, void *dl_caller);
> extern void *__dlvsym (void *handle, const char *name, const char *version
> DL_CALLER_DECL)
> attribute_hidden;
Ok.
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
> index abf3f3cf7f..02ba6c3593 100644
> --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -744,6 +744,7 @@ GLIBC_2.2.6 dl_iterate_phdr F
> GLIBC_2.2.6 dladdr F
> GLIBC_2.2.6 dlclose F
> GLIBC_2.2.6 dlerror F
> +GLIBC_2.2.6 dlsym F
> GLIBC_2.2.6 dngettext F
> GLIBC_2.2.6 dprintf F
> GLIBC_2.2.6 drand48 F
> @@ -2213,6 +2214,7 @@ GLIBC_2.34 _hurd_libc_proc_init F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 5b9579b3d2..e4fe2ccab6 100644
> --- a/sysdeps/mach/hurd/i386/libdl.abilist
> +++ b/sysdeps/mach/hurd/i386/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.2.6 dlopen F
> -GLIBC_2.2.6 dlsym F
> GLIBC_2.2.6 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index f912cea6a0..9da6e869fa 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -721,6 +721,7 @@ GLIBC_2.17 dl_iterate_phdr F
> GLIBC_2.17 dladdr F
> GLIBC_2.17 dlclose F
> GLIBC_2.17 dlerror F
> +GLIBC_2.17 dlsym F
> GLIBC_2.17 dngettext F
> GLIBC_2.17 dprintf F
> GLIBC_2.17 drand48 F
> @@ -2348,6 +2349,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 731d6a1377..d3822d83fc 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
> @@ -2,5 +2,4 @@ GLIBC_2.17 dladdr1 F
> GLIBC_2.17 dlinfo F
> GLIBC_2.17 dlmopen F
> GLIBC_2.17 dlopen F
> -GLIBC_2.17 dlsym F
> GLIBC_2.17 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index c0dfb9be95..1c9805a7f4 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -412,6 +412,7 @@ GLIBC_2.0 div F
> GLIBC_2.0 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> +GLIBC_2.0 dlsym F
> GLIBC_2.0 dprintf F
> GLIBC_2.0 drand48 F
> GLIBC_2.0 drand48_r F
> @@ -2440,6 +2441,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 25cf9cd21e..9019e8db65 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> -GLIBC_2.0 dlsym F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index c2a4c1f9ba..1a83cb2288 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -666,6 +666,7 @@ GLIBC_2.32 dl_iterate_phdr F
> GLIBC_2.32 dladdr F
> GLIBC_2.32 dlclose F
> GLIBC_2.32 dlerror F
> +GLIBC_2.32 dlsym F
> GLIBC_2.32 dngettext F
> GLIBC_2.32 dprintf F
> GLIBC_2.32 drand48 F
> @@ -2107,6 +2108,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 1c818309f2..74e8c10002 100644
> --- a/sysdeps/unix/sysv/linux/arc/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libdl.abilist
> @@ -2,5 +2,4 @@ GLIBC_2.32 dladdr1 F
> GLIBC_2.32 dlinfo F
> GLIBC_2.32 dlmopen F
> GLIBC_2.32 dlopen F
> -GLIBC_2.32 dlsym F
> GLIBC_2.32 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index db80c07019..b49c187be7 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -210,6 +210,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -1023,6 +1024,7 @@ GLIBC_2.4 dl_iterate_phdr F
> GLIBC_2.4 dladdr F
> GLIBC_2.4 dlclose F
> GLIBC_2.4 dlerror F
> +GLIBC_2.4 dlsym 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 69ffaf4edf..816b953a69 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
> @@ -2,5 +2,4 @@ GLIBC_2.4 dladdr1 F
> GLIBC_2.4 dlinfo F
> GLIBC_2.4 dlmopen F
> GLIBC_2.4 dlopen F
> -GLIBC_2.4 dlsym F
> GLIBC_2.4 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 3600075a47..7f49a4977f 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -207,6 +207,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -1020,6 +1021,7 @@ GLIBC_2.4 dl_iterate_phdr F
> GLIBC_2.4 dladdr F
> GLIBC_2.4 dlclose F
> GLIBC_2.4 dlerror F
> +GLIBC_2.4 dlsym 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 69ffaf4edf..816b953a69 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
> @@ -2,5 +2,4 @@ GLIBC_2.4 dladdr1 F
> GLIBC_2.4 dlinfo F
> GLIBC_2.4 dlmopen F
> GLIBC_2.4 dlopen F
> -GLIBC_2.4 dlsym F
> GLIBC_2.4 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index d7beb5db45..f060c2b0d5 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -702,6 +702,7 @@ GLIBC_2.29 dl_iterate_phdr F
> GLIBC_2.29 dladdr F
> GLIBC_2.29 dlclose F
> GLIBC_2.29 dlerror F
> +GLIBC_2.29 dlsym F
> GLIBC_2.29 dngettext F
> GLIBC_2.29 dprintf F
> GLIBC_2.29 drand48 F
> @@ -2291,6 +2292,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 2c8047a614..78edf27275 100644
> --- a/sysdeps/unix/sysv/linux/csky/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libdl.abilist
> @@ -2,5 +2,4 @@ GLIBC_2.29 dladdr1 F
> GLIBC_2.29 dlinfo F
> GLIBC_2.29 dlmopen F
> GLIBC_2.29 dlopen F
> -GLIBC_2.29 dlsym F
> GLIBC_2.29 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 59b0e421a7..bd4bbe548d 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -1,6 +1,7 @@
> GLIBC_2.0 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> +GLIBC_2.0 dlsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> GLIBC_2.10 __posix_getopt F
> GLIBC_2.10 accept4 F
> @@ -2244,6 +2245,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 25cf9cd21e..9019e8db65 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> -GLIBC_2.0 dlsym F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index e33dd7d91e..c781b36839 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -398,6 +398,7 @@ GLIBC_2.0 div F
> GLIBC_2.0 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> +GLIBC_2.0 dlsym F
> GLIBC_2.0 dprintf F
> GLIBC_2.0 drand48 F
> GLIBC_2.0 drand48_r F
> @@ -2428,6 +2429,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 25cf9cd21e..9019e8db65 100644
> --- a/sysdeps/unix/sysv/linux/i386/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> -GLIBC_2.0 dlsym F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 772b686c1d..f0af999f5d 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -1,6 +1,7 @@
> GLIBC_2.0 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> +GLIBC_2.0 dlsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> GLIBC_2.10 __posix_getopt F
> GLIBC_2.10 accept4 F
> @@ -2280,6 +2281,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 25cf9cd21e..9019e8db65 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> -GLIBC_2.0 dlsym F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 6ee063131e..8b58481a8c 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -211,6 +211,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -1012,6 +1013,7 @@ GLIBC_2.4 dl_iterate_phdr F
> GLIBC_2.4 dladdr F
> GLIBC_2.4 dlclose F
> GLIBC_2.4 dlerror F
> +GLIBC_2.4 dlsym 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 69ffaf4edf..816b953a69 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
> @@ -2,5 +2,4 @@ GLIBC_2.4 dladdr1 F
> GLIBC_2.4 dlinfo F
> GLIBC_2.4 dlmopen F
> GLIBC_2.4 dlopen F
> -GLIBC_2.4 dlsym F
> GLIBC_2.4 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 9fb78fd4fd..d4f2220a6a 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -399,6 +399,7 @@ GLIBC_2.0 div F
> GLIBC_2.0 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> +GLIBC_2.0 dlsym F
> GLIBC_2.0 dprintf F
> GLIBC_2.0 drand48 F
> GLIBC_2.0 drand48_r F
> @@ -2371,6 +2372,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 25cf9cd21e..9019e8db65 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> -GLIBC_2.0 dlsym F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 6ba6e439c5..d443e72888 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -723,6 +723,7 @@ GLIBC_2.18 dl_iterate_phdr F
> GLIBC_2.18 dladdr F
> GLIBC_2.18 dlclose F
> GLIBC_2.18 dlerror F
> +GLIBC_2.18 dlsym F
> GLIBC_2.18 dngettext F
> GLIBC_2.18 dprintf F
> GLIBC_2.18 drand48 F
> @@ -2342,6 +2343,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 721e823b1b..9f0b07e50d 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
> @@ -2,5 +2,4 @@ GLIBC_2.18 dladdr1 F
> GLIBC_2.18 dlinfo F
> GLIBC_2.18 dlmopen F
> GLIBC_2.18 dlopen F
> -GLIBC_2.18 dlsym F
> GLIBC_2.18 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index b3d12892e6..5d899de9e1 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -723,6 +723,7 @@ GLIBC_2.18 dl_iterate_phdr F
> GLIBC_2.18 dladdr F
> GLIBC_2.18 dlclose F
> GLIBC_2.18 dlerror F
> +GLIBC_2.18 dlsym F
> GLIBC_2.18 dngettext F
> GLIBC_2.18 dprintf F
> GLIBC_2.18 drand48 F
> @@ -2339,6 +2340,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 721e823b1b..9f0b07e50d 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
> @@ -2,5 +2,4 @@ GLIBC_2.18 dladdr1 F
> GLIBC_2.18 dlinfo F
> GLIBC_2.18 dlmopen F
> GLIBC_2.18 dlopen F
> -GLIBC_2.18 dlsym F
> GLIBC_2.18 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 43fe36e7d1..80f71d2c9d 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -397,6 +397,7 @@ GLIBC_2.0 div F
> GLIBC_2.0 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> +GLIBC_2.0 dlsym 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_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 d8aab2a6de..e79fbf179b 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> -GLIBC_2.0 dlsym F
> GLIBC_2.2 dlopen F
> GLIBC_2.2 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 699ad445f7..041df76409 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -397,6 +397,7 @@ GLIBC_2.0 div F
> GLIBC_2.0 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> +GLIBC_2.0 dlsym F
> GLIBC_2.0 dprintf F
> GLIBC_2.0 drand48 F
> GLIBC_2.0 drand48_r F
> @@ -2334,6 +2335,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 d8aab2a6de..e79fbf179b 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> -GLIBC_2.0 dlsym F
> GLIBC_2.2 dlopen F
> GLIBC_2.2 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 3da887b94b..9d741ee23b 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -397,6 +397,7 @@ GLIBC_2.0 div F
> GLIBC_2.0 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> +GLIBC_2.0 dlsym F
> GLIBC_2.0 dprintf F
> GLIBC_2.0 drand48 F
> GLIBC_2.0 drand48_r F
> @@ -2342,6 +2343,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 8c34936cc0..eb2b387ce6 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -395,6 +395,7 @@ GLIBC_2.0 div F
> GLIBC_2.0 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> +GLIBC_2.0 dlsym 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_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 e1bc50caf5..91e8dac129 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -766,6 +766,7 @@ GLIBC_2.21 dl_iterate_phdr F
> GLIBC_2.21 dladdr F
> GLIBC_2.21 dlclose F
> GLIBC_2.21 dlerror F
> +GLIBC_2.21 dlsym F
> GLIBC_2.21 dngettext F
> GLIBC_2.21 dprintf F
> GLIBC_2.21 drand48 F
> @@ -2381,6 +2382,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 835ee02768..354d0b0f1f 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
> @@ -2,5 +2,4 @@ GLIBC_2.21 dladdr1 F
> GLIBC_2.21 dlinfo F
> GLIBC_2.21 dlmopen F
> GLIBC_2.21 dlopen F
> -GLIBC_2.21 dlsym F
> GLIBC_2.21 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 8c3c1bb5c5..3531cf9744 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -408,6 +408,7 @@ GLIBC_2.0 div F
> GLIBC_2.0 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> +GLIBC_2.0 dlsym F
> GLIBC_2.0 dprintf F
> GLIBC_2.0 drand48 F
> GLIBC_2.0 drand48_r F
> @@ -2398,6 +2399,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 25cf9cd21e..9019e8db65 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> -GLIBC_2.0 dlsym F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 018f9c0253..b2610134a9 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -408,6 +408,7 @@ GLIBC_2.0 div F
> GLIBC_2.0 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> +GLIBC_2.0 dlsym F
> GLIBC_2.0 dprintf F
> GLIBC_2.0 drand48 F
> GLIBC_2.0 drand48_r F
> @@ -2431,6 +2432,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 330f5fdc1a..cb9457053d 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -761,6 +761,7 @@ GLIBC_2.3 dl_iterate_phdr F
> GLIBC_2.3 dladdr F
> GLIBC_2.3 dlclose F
> GLIBC_2.3 dlerror F
> +GLIBC_2.3 dlsym F
> GLIBC_2.3 dngettext F
> GLIBC_2.3 dprintf F
> GLIBC_2.3 drand48 F
> @@ -2245,6 +2246,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 4446495717..5344e7141c 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.3 dlopen F
> -GLIBC_2.3 dlsym F
> GLIBC_2.3 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index b770ac88b3..43e579db72 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -809,6 +809,7 @@ GLIBC_2.17 dl_iterate_phdr F
> GLIBC_2.17 dladdr F
> GLIBC_2.17 dlclose F
> GLIBC_2.17 dlerror F
> +GLIBC_2.17 dlsym F
> GLIBC_2.17 dngettext F
> GLIBC_2.17 dprintf F
> GLIBC_2.17 drand48 F
> @@ -2544,6 +2545,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 731d6a1377..d3822d83fc 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
> @@ -2,5 +2,4 @@ GLIBC_2.17 dladdr1 F
> GLIBC_2.17 dlinfo F
> GLIBC_2.17 dlmopen F
> GLIBC_2.17 dlopen F
> -GLIBC_2.17 dlsym F
> GLIBC_2.17 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index ea14f58edb..fe9784bfe7 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -659,6 +659,7 @@ GLIBC_2.33 dl_iterate_phdr F
> GLIBC_2.33 dladdr F
> GLIBC_2.33 dlclose F
> GLIBC_2.33 dlerror F
> +GLIBC_2.33 dlsym F
> GLIBC_2.33 dngettext F
> GLIBC_2.33 dprintf F
> GLIBC_2.33 drand48 F
> @@ -2109,6 +2110,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 b140aa0b09..12113b56ff 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
> @@ -2,5 +2,4 @@ GLIBC_2.33 dladdr1 F
> GLIBC_2.33 dlinfo F
> GLIBC_2.33 dlmopen F
> GLIBC_2.33 dlopen F
> -GLIBC_2.33 dlsym F
> GLIBC_2.33 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 5c2a87a3b0..241850b78d 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -700,6 +700,7 @@ GLIBC_2.27 dl_iterate_phdr F
> GLIBC_2.27 dladdr F
> GLIBC_2.27 dlclose F
> GLIBC_2.27 dlerror F
> +GLIBC_2.27 dlsym F
> GLIBC_2.27 dngettext F
> GLIBC_2.27 dprintf F
> GLIBC_2.27 drand48 F
> @@ -2309,6 +2310,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 3536869c77..e42f9d97a8 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
> @@ -2,5 +2,4 @@ GLIBC_2.27 dladdr1 F
> GLIBC_2.27 dlinfo F
> GLIBC_2.27 dlmopen F
> GLIBC_2.27 dlopen F
> -GLIBC_2.27 dlsym F
> GLIBC_2.27 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 937a3ba942..72baa14350 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -398,6 +398,7 @@ GLIBC_2.0 div F
> GLIBC_2.0 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> +GLIBC_2.0 dlsym F
> GLIBC_2.0 dprintf F
> GLIBC_2.0 drand48 F
> GLIBC_2.0 drand48_r F
> @@ -2396,6 +2397,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 25cf9cd21e..9019e8db65 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> -GLIBC_2.0 dlsym F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index cce8034393..2e58f6151b 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -698,6 +698,7 @@ GLIBC_2.2 div F
> GLIBC_2.2 dladdr F
> GLIBC_2.2 dlclose F
> GLIBC_2.2 dlerror F
> +GLIBC_2.2 dlsym F
> GLIBC_2.2 dngettext F
> GLIBC_2.2 dprintf F
> GLIBC_2.2 drand48 F
> @@ -2282,6 +2283,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 c995dec160..97dcae5bf1 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.2 dlopen F
> -GLIBC_2.2 dlsym F
> GLIBC_2.2 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 28154a96dd..ab113c966d 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -5,6 +5,7 @@ GCC_3.0 __register_frame_info_table_bases F
> GLIBC_2.0 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> +GLIBC_2.0 dlsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> GLIBC_2.10 __posix_getopt F
> GLIBC_2.10 accept4 F
> @@ -2251,6 +2252,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 25cf9cd21e..9019e8db65 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> -GLIBC_2.0 dlsym F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index d9a16e9ccf..e733d13430 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -5,6 +5,7 @@ GCC_3.0 __register_frame_info_table_bases F
> GLIBC_2.0 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> +GLIBC_2.0 dlsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> GLIBC_2.10 __posix_getopt F
> GLIBC_2.10 accept4 F
> @@ -2248,6 +2249,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 25cf9cd21e..9019e8db65 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> -GLIBC_2.0 dlsym F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 98e6db33fe..0534abb5b4 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -400,6 +400,7 @@ GLIBC_2.0 div F
> GLIBC_2.0 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> +GLIBC_2.0 dlsym F
> GLIBC_2.0 dprintf F
> GLIBC_2.0 drand48 F
> GLIBC_2.0 drand48_r F
> @@ -2389,6 +2390,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 25cf9cd21e..9019e8db65 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> -GLIBC_2.0 dlsym F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 479a1b38a6..89e1646f02 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -5,6 +5,7 @@ GCC_3.0 __register_frame_info_table_bases F
> GLIBC_2.0 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> +GLIBC_2.0 dlsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> GLIBC_2.10 __posix_getopt F
> GLIBC_2.10 accept4 F
> @@ -2301,6 +2302,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 25cf9cd21e..9019e8db65 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> -GLIBC_2.0 dlsym F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 3c6750b3a4..842a613fdb 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -688,6 +688,7 @@ GLIBC_2.2.5 dl_iterate_phdr F
> GLIBC_2.2.5 dladdr F
> GLIBC_2.2.5 dlclose F
> GLIBC_2.2.5 dlerror F
> +GLIBC_2.2.5 dlsym F
> GLIBC_2.2.5 dngettext F
> GLIBC_2.2.5 dprintf F
> GLIBC_2.2.5 drand48 F
> @@ -2260,6 +2261,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 28f001d6ec..a43447856f 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.2.5 dlopen F
> -GLIBC_2.2.5 dlsym F
> GLIBC_2.2.5 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 0bfba9edbc..5e8c5a64f2 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -725,6 +725,7 @@ GLIBC_2.16 dl_iterate_phdr F
> GLIBC_2.16 dladdr F
> GLIBC_2.16 dlclose F
> GLIBC_2.16 dlerror F
> +GLIBC_2.16 dlsym F
> GLIBC_2.16 dngettext F
> GLIBC_2.16 dprintf F
> GLIBC_2.16 drand48 F
> @@ -2363,6 +2364,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlsym 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 f61c4a59d3..7586a5f0b7 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
> @@ -2,5 +2,4 @@ GLIBC_2.16 dladdr1 F
> GLIBC_2.16 dlinfo F
> GLIBC_2.16 dlmopen F
> GLIBC_2.16 dlopen F
> -GLIBC_2.16 dlsym F
> GLIBC_2.16 dlvsym F
>
Ok.
^ permalink raw reply [flat|nested] 39+ messages in thread
* [PATCH 09/16] dlfcn: Move dlmopen into libc
2021-05-31 14:10 [PATCH v3 00/16] Move libdl into libc Florian Weimer
` (7 preceding siblings ...)
2021-05-31 14:11 ` [PATCH 08/16] dlfcn: Move dlsym " Florian Weimer
@ 2021-05-31 14:12 ` Florian Weimer
2021-06-02 14:19 ` Adhemerval Zanella
2021-05-31 14:12 ` [PATCH 10/16] dlfcn: Move dladdr1 " Florian Weimer
` (6 subsequent siblings)
15 siblings, 1 reply; 39+ messages in thread
From: Florian Weimer @ 2021-05-31 14:12 UTC (permalink / raw)
To: libc-alpha
The symbol was moved using scripts/move-symbol-to-libc.py.
---
dlfcn/Makefile | 3 +-
dlfcn/Versions | 6 +-
dlfcn/dlfcn.c | 19 ++++-
dlfcn/dlmopen.c | 73 ++++++++++---------
dlfcn/sdlmopen.c | 1 -
include/dlfcn.h | 12 +--
sysdeps/mach/hurd/i386/libc.abilist | 2 +
sysdeps/mach/hurd/i386/libdl.abilist | 2 +-
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 | 2 +-
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 | 2 +-
sysdeps/unix/sysv/linux/i386/libc.abilist | 2 +
sysdeps/unix/sysv/linux/i386/libdl.abilist | 2 +-
sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 +
sysdeps/unix/sysv/linux/ia64/libdl.abilist | 2 +-
.../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 | 2 +-
.../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 | 2 +-
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 +
.../unix/sysv/linux/mips/mips64/libdl.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 +
sysdeps/unix/sysv/linux/nios2/libdl.abilist | 1 -
.../linux/powerpc/powerpc32/fpu/libc.abilist | 2 +
.../linux/powerpc/powerpc32/libdl.abilist | 2 +-
.../powerpc/powerpc32/nofpu/libc.abilist | 2 +
.../linux/powerpc/powerpc64/be/libc.abilist | 2 +
.../linux/powerpc/powerpc64/be/libdl.abilist | 2 +-
.../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 | 2 +-
.../unix/sysv/linux/s390/s390-64/libc.abilist | 2 +
.../sysv/linux/s390/s390-64/libdl.abilist | 2 +-
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 +
sysdeps/unix/sysv/linux/sh/be/libdl.abilist | 2 +-
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 +
sysdeps/unix/sysv/linux/sh/le/libdl.abilist | 2 +-
.../sysv/linux/sparc/sparc32/libc.abilist | 2 +
.../sysv/linux/sparc/sparc32/libdl.abilist | 2 +-
.../sysv/linux/sparc/sparc64/libc.abilist | 2 +
.../sysv/linux/sparc/sparc64/libdl.abilist | 2 +-
.../unix/sysv/linux/x86_64/64/libc.abilist | 2 +
.../unix/sysv/linux/x86_64/64/libdl.abilist | 2 +-
.../unix/sysv/linux/x86_64/x32/libc.abilist | 2 +
.../unix/sysv/linux/x86_64/x32/libdl.abilist | 1 -
69 files changed, 154 insertions(+), 73 deletions(-)
delete mode 100644 dlfcn/sdlmopen.c
diff --git a/dlfcn/Makefile b/dlfcn/Makefile
index b0f2e8a986..f7ffd242dc 100644
--- a/dlfcn/Makefile
+++ b/dlfcn/Makefile
@@ -22,13 +22,14 @@ include ../Makeconfig
headers := bits/dlfcn.h dlfcn.h
extra-libs := libdl
libdl-routines := dlopen dlvsym dladdr1 dlinfo \
- dlmopen dlfcn
+ dlfcn
routines := $(patsubst %,s%,$(filter-out dlfcn,$(libdl-routines)))
elide-routines.os := $(routines)
routines += \
dladdr \
dlclose \
dlerror \
+ dlmopen \
dlsym \
libc_dlerror_result \
diff --git a/dlfcn/Versions b/dlfcn/Versions
index 7d6b51a4e3..584035e203 100644
--- a/dlfcn/Versions
+++ b/dlfcn/Versions
@@ -5,10 +5,14 @@ libc {
dlerror;
dlsym;
}
+ GLIBC_2.3.4 {
+ dlmopen;
+ }
GLIBC_2.34 {
dladdr;
dlclose;
dlerror;
+ dlmopen;
dlsym;
}
GLIBC_PRIVATE {
@@ -28,6 +32,6 @@ libdl {
dladdr1; dlinfo;
}
GLIBC_2.3.4 {
- dlmopen;
+ __libdl_version_placeholder;
}
}
diff --git a/dlfcn/dlfcn.c b/dlfcn/dlfcn.c
index 8f85308b5f..90cdee0903 100644
--- a/dlfcn/dlfcn.c
+++ b/dlfcn/dlfcn.c
@@ -17,7 +17,7 @@
<https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
-
+#include <shlib-compat.h>
int __dlfcn_argc attribute_hidden;
char **__dlfcn_argv attribute_hidden;
@@ -36,3 +36,20 @@ static void (*const init_array []) (int argc, char *argv[])
{
init
};
+
+/* The remainder of this file is used to keep specific symbol versions
+ occupied, so that ld does not generate weak symbol version
+ definitions. */
+
+void
+attribute_compat_text_section
+__attribute_used__
+__libdl_version_placeholder_1 (void)
+{
+}
+
+#if SHLIB_COMPAT (libdl, GLIBC_2_3_4, GLIBC_2_34) \
+ && ABI_libdl_GLIBC_2_3_4 != ABI_libdl_GLIBC_2_1
+compat_symbol (libdl, __libdl_version_placeholder_1,
+ __libdl_version_placeholder, GLIBC_2_3_4);
+#endif
diff --git a/dlfcn/dlmopen.c b/dlfcn/dlmopen.c
index 6c6e98cd0e..ae42814bbf 100644
--- a/dlfcn/dlmopen.c
+++ b/dlfcn/dlmopen.c
@@ -22,17 +22,7 @@
#include <stddef.h>
#include <unistd.h>
#include <ldsodefs.h>
-
-#if !defined SHARED && IS_IN (libdl)
-
-void *
-dlmopen (Lmid_t nsid, const char *file, int mode)
-{
- return __dlmopen (nsid, file, mode, RETURN_ADDRESS (0));
-}
-static_link_warning (dlmopen)
-
-#else
+#include <shlib-compat.h>
struct dlmopen_args
{
@@ -70,38 +60,55 @@ dlmopen_doit (void *a)
args->new = GLRO(dl_open) (args->file ?: "", args->mode | __RTLD_DLOPEN,
args->caller,
- args->nsid, __dlfcn_argc, __dlfcn_argv,
- __environ);
+ args->nsid, __libc_argc, __libc_argv, __environ);
}
-
-void *
-__dlmopen (Lmid_t nsid, const char *file, int mode DL_CALLER_DECL)
+static void *
+dlmopen_implementation (Lmid_t nsid, const char *file, int mode,
+ void *dl_caller)
{
-# ifdef SHARED
- if (!rtld_active ())
- return _dlfcn_hook->dlmopen (nsid, file, mode, RETURN_ADDRESS (0));
-# endif
-
struct dlmopen_args args;
args.nsid = nsid;
args.file = file;
args.mode = mode;
- args.caller = DL_CALLER;
+ args.caller = dl_caller;
-# ifdef SHARED
return _dlerror_run (dlmopen_doit, &args) ? NULL : args.new;
-# else
- if (_dlerror_run (dlmopen_doit, &args))
- return NULL;
+}
- __libc_register_dl_open_hook ((struct link_map *) args.new);
- __libc_register_dlfcn_hook ((struct link_map *) args.new);
+#ifdef SHARED
+void *
+___dlmopen (Lmid_t nsid, const char *file, int mode)
+{
+ if (!rtld_active ())
+ return _dlfcn_hook->dlmopen (nsid, file, mode, RETURN_ADDRESS (0));
+ else
+ return dlmopen_implementation (nsid, file, mode, RETURN_ADDRESS (0));
+}
+versioned_symbol (libc, ___dlmopen, dlmopen, GLIBC_2_34);
- return args.new;
+# if OTHER_SHLIB_COMPAT (libdl, GLIBC_2_3_4, GLIBC_2_34)
+compat_symbol (libdl, ___dlmopen, dlmopen, GLIBC_2_3_4);
# endif
+#else /* !SHARED */
+/* Also used with _dlfcn_hook. */
+void *
+__dlmopen (Lmid_t nsid, const char *file, int mode, void *dl_caller)
+{
+ return dlmopen_implementation (nsid, file, mode, RETURN_ADDRESS (0));
}
-# ifdef SHARED
-strong_alias (__dlmopen, dlmopen)
-# endif
-#endif
+
+void *
+___dlmopen (Lmid_t nsid, const char *file, int mode)
+{
+ struct link_map *l = __dlmopen (nsid, file, mode, RETURN_ADDRESS (0));
+ if (l != NULL)
+ {
+ __libc_register_dl_open_hook (l);
+ __libc_register_dlfcn_hook (l);
+ }
+ return l;
+}
+weak_alias (___dlmopen, dlmopen)
+static_link_warning (dlmopen)
+#endif /* !SHARED */
diff --git a/dlfcn/sdlmopen.c b/dlfcn/sdlmopen.c
deleted file mode 100644
index 9630c89a7f..0000000000
--- a/dlfcn/sdlmopen.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "dlmopen.c"
diff --git a/include/dlfcn.h b/include/dlfcn.h
index 2b174f8670..27309ab1dd 100644
--- a/include/dlfcn.h
+++ b/include/dlfcn.h
@@ -15,15 +15,15 @@
#define __LM_ID_CALLER -2
+/* These variables are defined and initialized in the startup code. */
+extern int __libc_argc attribute_hidden;
+extern char **__libc_argv attribute_hidden;
+
#ifdef SHARED
/* Locally stored program arguments. */
extern int __dlfcn_argc attribute_hidden;
extern char **__dlfcn_argv attribute_hidden;
#else
-/* These variables are defined and initialized in the startup code. */
-extern int __libc_argc attribute_hidden;
-extern char **__libc_argv attribute_hidden;
-
# define __dlfcn_argc __libc_argc
# define __dlfcn_argv __libc_argv
#endif
@@ -133,8 +133,8 @@ libc_hidden_proto (_dlfcn_hook)
extern void *__dlopen (const char *file, int mode DL_CALLER_DECL)
attribute_hidden;
-extern void *__dlmopen (Lmid_t nsid, const char *file, int mode DL_CALLER_DECL)
- attribute_hidden;
+extern void *__dlmopen (Lmid_t nsid, const char *file, int mode,
+ void *dl_caller);
extern int __dlclose (void *handle);
extern void *__dlsym (void *handle, const char *name, void *dl_caller);
extern void *__dlvsym (void *handle, const char *name, const char *version
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 02ba6c3593..9827bea1e9 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -2177,6 +2177,7 @@ GLIBC_2.3.4 __vprintf_chk F
GLIBC_2.3.4 __vsnprintf_chk F
GLIBC_2.3.4 __vsprintf_chk F
GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 regexec F
@@ -2214,6 +2215,7 @@ GLIBC_2.34 _hurd_libc_proc_init F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 timespec_getres F
diff --git a/sysdeps/mach/hurd/i386/libdl.abilist b/sysdeps/mach/hurd/i386/libdl.abilist
index e4fe2ccab6..d2c315509d 100644
--- a/sysdeps/mach/hurd/i386/libdl.abilist
+++ b/sysdeps/mach/hurd/i386/libdl.abilist
@@ -2,4 +2,4 @@ GLIBC_2.2.6 dlopen F
GLIBC_2.2.6 dlvsym F
GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
-GLIBC_2.3.4 dlmopen F
+GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 9da6e869fa..9b0f917944 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -721,6 +721,7 @@ GLIBC_2.17 dl_iterate_phdr F
GLIBC_2.17 dladdr F
GLIBC_2.17 dlclose F
GLIBC_2.17 dlerror F
+GLIBC_2.17 dlmopen F
GLIBC_2.17 dlsym F
GLIBC_2.17 dngettext F
GLIBC_2.17 dprintf F
@@ -2349,6 +2350,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
index d3822d83fc..391b72c100 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.17 dladdr1 F
GLIBC_2.17 dlinfo F
-GLIBC_2.17 dlmopen F
GLIBC_2.17 dlopen F
GLIBC_2.17 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 1c9805a7f4..5b24169acf 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2363,6 +2363,7 @@ GLIBC_2.3.4 __vprintf_chk F
GLIBC_2.3.4 __vsnprintf_chk F
GLIBC_2.3.4 __vsprintf_chk F
GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
@@ -2441,6 +2442,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/alpha/libdl.abilist b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
index 9019e8db65..795a5abd45 100644
--- a/sysdeps/unix/sysv/linux/alpha/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
@@ -3,4 +3,4 @@ GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
-GLIBC_2.3.4 dlmopen F
+GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 1a83cb2288..5e28b203cd 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -666,6 +666,7 @@ GLIBC_2.32 dl_iterate_phdr F
GLIBC_2.32 dladdr F
GLIBC_2.32 dlclose F
GLIBC_2.32 dlerror F
+GLIBC_2.32 dlmopen F
GLIBC_2.32 dlsym F
GLIBC_2.32 dngettext F
GLIBC_2.32 dprintf F
@@ -2108,6 +2109,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/arc/libdl.abilist b/sysdeps/unix/sysv/linux/arc/libdl.abilist
index 74e8c10002..b23f34195f 100644
--- a/sysdeps/unix/sysv/linux/arc/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.32 dladdr1 F
GLIBC_2.32 dlinfo F
-GLIBC_2.32 dlmopen F
GLIBC_2.32 dlopen F
GLIBC_2.32 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index b49c187be7..ea14c3cd99 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -210,6 +210,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
@@ -1024,6 +1025,7 @@ GLIBC_2.4 dl_iterate_phdr F
GLIBC_2.4 dladdr F
GLIBC_2.4 dlclose F
GLIBC_2.4 dlerror F
+GLIBC_2.4 dlmopen F
GLIBC_2.4 dlsym F
GLIBC_2.4 dngettext F
GLIBC_2.4 dprintf F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
index 816b953a69..22691633fb 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.4 dladdr1 F
GLIBC_2.4 dlinfo F
-GLIBC_2.4 dlmopen F
GLIBC_2.4 dlopen F
GLIBC_2.4 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 7f49a4977f..5ff5eb7d04 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -207,6 +207,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
@@ -1021,6 +1022,7 @@ GLIBC_2.4 dl_iterate_phdr F
GLIBC_2.4 dladdr F
GLIBC_2.4 dlclose F
GLIBC_2.4 dlerror F
+GLIBC_2.4 dlmopen F
GLIBC_2.4 dlsym F
GLIBC_2.4 dngettext F
GLIBC_2.4 dprintf F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
index 816b953a69..22691633fb 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.4 dladdr1 F
GLIBC_2.4 dlinfo F
-GLIBC_2.4 dlmopen F
GLIBC_2.4 dlopen F
GLIBC_2.4 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index f060c2b0d5..8f36e5c844 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -702,6 +702,7 @@ GLIBC_2.29 dl_iterate_phdr F
GLIBC_2.29 dladdr F
GLIBC_2.29 dlclose F
GLIBC_2.29 dlerror F
+GLIBC_2.29 dlmopen F
GLIBC_2.29 dlsym F
GLIBC_2.29 dngettext F
GLIBC_2.29 dprintf F
@@ -2292,6 +2293,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/csky/libdl.abilist b/sysdeps/unix/sysv/linux/csky/libdl.abilist
index 78edf27275..51061cb361 100644
--- a/sysdeps/unix/sysv/linux/csky/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.29 dladdr1 F
GLIBC_2.29 dlinfo F
-GLIBC_2.29 dlmopen F
GLIBC_2.29 dlopen F
GLIBC_2.29 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index bd4bbe548d..0302aeae56 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2179,6 +2179,7 @@ GLIBC_2.3.4 __vprintf_chk F
GLIBC_2.3.4 __vsnprintf_chk F
GLIBC_2.3.4 __vsprintf_chk F
GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
@@ -2245,6 +2246,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/hppa/libdl.abilist b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
index 9019e8db65..795a5abd45 100644
--- a/sysdeps/unix/sysv/linux/hppa/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
@@ -3,4 +3,4 @@ GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
-GLIBC_2.3.4 dlmopen F
+GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index c781b36839..233096afbd 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2360,6 +2360,7 @@ GLIBC_2.3.4 __vprintf_chk F
GLIBC_2.3.4 __vsnprintf_chk F
GLIBC_2.3.4 __vsprintf_chk F
GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
@@ -2429,6 +2430,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/i386/libdl.abilist b/sysdeps/unix/sysv/linux/i386/libdl.abilist
index 9019e8db65..795a5abd45 100644
--- a/sysdeps/unix/sysv/linux/i386/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libdl.abilist
@@ -3,4 +3,4 @@ GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
-GLIBC_2.3.4 dlmopen F
+GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index f0af999f5d..704fe57ca2 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2214,6 +2214,7 @@ GLIBC_2.3.4 __vprintf_chk F
GLIBC_2.3.4 __vsnprintf_chk F
GLIBC_2.3.4 __vsprintf_chk F
GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
@@ -2281,6 +2282,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/ia64/libdl.abilist b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
index 9019e8db65..795a5abd45 100644
--- a/sysdeps/unix/sysv/linux/ia64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
@@ -3,4 +3,4 @@ GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
-GLIBC_2.3.4 dlmopen F
+GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 8b58481a8c..dc32b7561b 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -211,6 +211,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
@@ -1013,6 +1014,7 @@ GLIBC_2.4 dl_iterate_phdr F
GLIBC_2.4 dladdr F
GLIBC_2.4 dlclose F
GLIBC_2.4 dlerror F
+GLIBC_2.4 dlmopen F
GLIBC_2.4 dlsym F
GLIBC_2.4 dngettext F
GLIBC_2.4 dprintf F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
index 816b953a69..22691633fb 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.4 dladdr1 F
GLIBC_2.4 dlinfo F
-GLIBC_2.4 dlmopen F
GLIBC_2.4 dlopen F
GLIBC_2.4 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index d4f2220a6a..0ad41be521 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2303,6 +2303,7 @@ GLIBC_2.3.4 __vprintf_chk F
GLIBC_2.3.4 __vsnprintf_chk F
GLIBC_2.3.4 __vsprintf_chk F
GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
@@ -2372,6 +2373,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
index 9019e8db65..795a5abd45 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
@@ -3,4 +3,4 @@ GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
-GLIBC_2.3.4 dlmopen F
+GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index d443e72888..ea61742cf2 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -723,6 +723,7 @@ GLIBC_2.18 dl_iterate_phdr F
GLIBC_2.18 dladdr F
GLIBC_2.18 dlclose F
GLIBC_2.18 dlerror F
+GLIBC_2.18 dlmopen F
GLIBC_2.18 dlsym F
GLIBC_2.18 dngettext F
GLIBC_2.18 dprintf F
@@ -2343,6 +2344,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
index 9f0b07e50d..409e59cf21 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.18 dladdr1 F
GLIBC_2.18 dlinfo F
-GLIBC_2.18 dlmopen F
GLIBC_2.18 dlopen F
GLIBC_2.18 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 5d899de9e1..3b09b44dd8 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -723,6 +723,7 @@ GLIBC_2.18 dl_iterate_phdr F
GLIBC_2.18 dladdr F
GLIBC_2.18 dlclose F
GLIBC_2.18 dlerror F
+GLIBC_2.18 dlmopen F
GLIBC_2.18 dlsym F
GLIBC_2.18 dngettext F
GLIBC_2.18 dprintf F
@@ -2340,6 +2341,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
index 9f0b07e50d..409e59cf21 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.18 dladdr1 F
GLIBC_2.18 dlinfo F
-GLIBC_2.18 dlmopen F
GLIBC_2.18 dlopen F
GLIBC_2.18 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 80f71d2c9d..adde44be66 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2271,6 +2271,7 @@ GLIBC_2.3.4 __vprintf_chk F
GLIBC_2.3.4 __vsnprintf_chk F
GLIBC_2.3.4 __vsprintf_chk F
GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
@@ -2337,6 +2338,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
index e79fbf179b..04aca378ef 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
@@ -3,4 +3,4 @@ GLIBC_2.2 dlopen F
GLIBC_2.2 dlvsym F
GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
-GLIBC_2.3.4 dlmopen F
+GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 041df76409..a4c9a17e9e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2269,6 +2269,7 @@ GLIBC_2.3.4 __vprintf_chk F
GLIBC_2.3.4 __vsnprintf_chk F
GLIBC_2.3.4 __vsprintf_chk F
GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
@@ -2335,6 +2336,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
index e79fbf179b..04aca378ef 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
@@ -3,4 +3,4 @@ GLIBC_2.2 dlopen F
GLIBC_2.2 dlvsym F
GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
-GLIBC_2.3.4 dlmopen F
+GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 9d741ee23b..214e0db752 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2277,6 +2277,7 @@ GLIBC_2.3.4 __vprintf_chk F
GLIBC_2.3.4 __vsnprintf_chk F
GLIBC_2.3.4 __vsprintf_chk F
GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
@@ -2343,6 +2344,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index eb2b387ce6..b09d4058a2 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2271,6 +2271,7 @@ GLIBC_2.3.4 __vprintf_chk F
GLIBC_2.3.4 __vsnprintf_chk F
GLIBC_2.3.4 __vsprintf_chk F
GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
@@ -2337,6 +2338,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 91e8dac129..748f12c254 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -766,6 +766,7 @@ GLIBC_2.21 dl_iterate_phdr F
GLIBC_2.21 dladdr F
GLIBC_2.21 dlclose F
GLIBC_2.21 dlerror F
+GLIBC_2.21 dlmopen F
GLIBC_2.21 dlsym F
GLIBC_2.21 dngettext F
GLIBC_2.21 dprintf F
@@ -2382,6 +2383,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/nios2/libdl.abilist b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
index 354d0b0f1f..90aaa0b49b 100644
--- a/sysdeps/unix/sysv/linux/nios2/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.21 dladdr1 F
GLIBC_2.21 dlinfo F
-GLIBC_2.21 dlmopen F
GLIBC_2.21 dlopen F
GLIBC_2.21 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 3531cf9744..4134f7ed41 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2314,6 +2314,7 @@ GLIBC_2.3.4 __vsprintf_chk F
GLIBC_2.3.4 __xpg_strerror_r F
GLIBC_2.3.4 _longjmp F
GLIBC_2.3.4 _setjmp F
+GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getcontext F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
@@ -2399,6 +2400,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
index 9019e8db65..795a5abd45 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
@@ -3,4 +3,4 @@ GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
-GLIBC_2.3.4 dlmopen F
+GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index b2610134a9..43baf50dca 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2347,6 +2347,7 @@ GLIBC_2.3.4 __vsprintf_chk F
GLIBC_2.3.4 __xpg_strerror_r F
GLIBC_2.3.4 _longjmp F
GLIBC_2.3.4 _setjmp F
+GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getcontext F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
@@ -2432,6 +2433,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index cb9457053d..b3d27c2678 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2162,6 +2162,7 @@ GLIBC_2.3.4 __vsprintf_chk F
GLIBC_2.3.4 __xpg_strerror_r F
GLIBC_2.3.4 _longjmp F
GLIBC_2.3.4 _setjmp F
+GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getcontext F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
@@ -2246,6 +2247,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
index 5344e7141c..8e709e5bc4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
@@ -2,4 +2,4 @@ GLIBC_2.3 dlopen F
GLIBC_2.3 dlvsym F
GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
-GLIBC_2.3.4 dlmopen F
+GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 43e579db72..60a6327f37 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -809,6 +809,7 @@ GLIBC_2.17 dl_iterate_phdr F
GLIBC_2.17 dladdr F
GLIBC_2.17 dlclose F
GLIBC_2.17 dlerror F
+GLIBC_2.17 dlmopen F
GLIBC_2.17 dlsym F
GLIBC_2.17 dngettext F
GLIBC_2.17 dprintf F
@@ -2545,6 +2546,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
index d3822d83fc..391b72c100 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.17 dladdr1 F
GLIBC_2.17 dlinfo F
-GLIBC_2.17 dlmopen F
GLIBC_2.17 dlopen F
GLIBC_2.17 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index fe9784bfe7..dccdf14b63 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -659,6 +659,7 @@ GLIBC_2.33 dl_iterate_phdr F
GLIBC_2.33 dladdr F
GLIBC_2.33 dlclose F
GLIBC_2.33 dlerror F
+GLIBC_2.33 dlmopen F
GLIBC_2.33 dlsym F
GLIBC_2.33 dngettext F
GLIBC_2.33 dprintf F
@@ -2110,6 +2111,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
index 12113b56ff..2710b64293 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.33 dladdr1 F
GLIBC_2.33 dlinfo F
-GLIBC_2.33 dlmopen F
GLIBC_2.33 dlopen F
GLIBC_2.33 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 241850b78d..2acb8db062 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -700,6 +700,7 @@ GLIBC_2.27 dl_iterate_phdr F
GLIBC_2.27 dladdr F
GLIBC_2.27 dlclose F
GLIBC_2.27 dlerror F
+GLIBC_2.27 dlmopen F
GLIBC_2.27 dlsym F
GLIBC_2.27 dngettext F
GLIBC_2.27 dprintf F
@@ -2310,6 +2311,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
index e42f9d97a8..c0d8307937 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.27 dladdr1 F
GLIBC_2.27 dlinfo F
-GLIBC_2.27 dlmopen F
GLIBC_2.27 dlopen F
GLIBC_2.27 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 72baa14350..b2666bd723 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2316,6 +2316,7 @@ GLIBC_2.3.4 __vprintf_chk F
GLIBC_2.3.4 __vsnprintf_chk F
GLIBC_2.3.4 __vsprintf_chk F
GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
@@ -2397,6 +2398,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
index 9019e8db65..795a5abd45 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
@@ -3,4 +3,4 @@ GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
-GLIBC_2.3.4 dlmopen F
+GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 2e58f6151b..6ea55ebcdf 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2205,6 +2205,7 @@ GLIBC_2.3.4 __vprintf_chk F
GLIBC_2.3.4 __vsnprintf_chk F
GLIBC_2.3.4 __vsprintf_chk F
GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
@@ -2283,6 +2284,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
index 97dcae5bf1..45decb94f9 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
@@ -2,4 +2,4 @@ GLIBC_2.2 dlopen F
GLIBC_2.2 dlvsym F
GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
-GLIBC_2.3.4 dlmopen F
+GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index ab113c966d..7d3680520a 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2183,6 +2183,7 @@ GLIBC_2.3.4 __vprintf_chk F
GLIBC_2.3.4 __vsnprintf_chk F
GLIBC_2.3.4 __vsprintf_chk F
GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
@@ -2252,6 +2253,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
index 9019e8db65..795a5abd45 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
@@ -3,4 +3,4 @@ GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
-GLIBC_2.3.4 dlmopen F
+GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index e733d13430..51a77c9553 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2183,6 +2183,7 @@ GLIBC_2.3.4 __vprintf_chk F
GLIBC_2.3.4 __vsnprintf_chk F
GLIBC_2.3.4 __vsprintf_chk F
GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
@@ -2249,6 +2250,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
index 9019e8db65..795a5abd45 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
@@ -3,4 +3,4 @@ GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
-GLIBC_2.3.4 dlmopen F
+GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 0534abb5b4..45053a171a 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2312,6 +2312,7 @@ GLIBC_2.3.4 __vprintf_chk F
GLIBC_2.3.4 __vsnprintf_chk F
GLIBC_2.3.4 __vsprintf_chk F
GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
@@ -2390,6 +2391,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
index 9019e8db65..795a5abd45 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
@@ -3,4 +3,4 @@ GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
-GLIBC_2.3.4 dlmopen F
+GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 89e1646f02..30e7e6baa0 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2236,6 +2236,7 @@ GLIBC_2.3.4 __vprintf_chk F
GLIBC_2.3.4 __vsnprintf_chk F
GLIBC_2.3.4 __vsprintf_chk F
GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
@@ -2302,6 +2303,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
index 9019e8db65..795a5abd45 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
@@ -3,4 +3,4 @@ GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
-GLIBC_2.3.4 dlmopen F
+GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 842a613fdb..abaf3ee9de 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2193,6 +2193,7 @@ GLIBC_2.3.4 __vprintf_chk F
GLIBC_2.3.4 __vsnprintf_chk F
GLIBC_2.3.4 __vsprintf_chk F
GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
@@ -2261,6 +2262,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
index a43447856f..91f878e859 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
@@ -2,4 +2,4 @@ GLIBC_2.2.5 dlopen F
GLIBC_2.2.5 dlvsym F
GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
-GLIBC_2.3.4 dlmopen F
+GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 5e8c5a64f2..b30feb4888 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -725,6 +725,7 @@ GLIBC_2.16 dl_iterate_phdr F
GLIBC_2.16 dladdr F
GLIBC_2.16 dlclose F
GLIBC_2.16 dlerror F
+GLIBC_2.16 dlmopen F
GLIBC_2.16 dlsym F
GLIBC_2.16 dngettext F
GLIBC_2.16 dprintf F
@@ -2364,6 +2365,7 @@ GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
index 7586a5f0b7..b37e9ff78c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.16 dladdr1 F
GLIBC_2.16 dlinfo F
-GLIBC_2.16 dlmopen F
GLIBC_2.16 dlopen F
GLIBC_2.16 dlvsym F
--
2.31.1
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH 09/16] dlfcn: Move dlmopen into libc
2021-05-31 14:12 ` [PATCH 09/16] dlfcn: Move dlmopen " Florian Weimer
@ 2021-06-02 14:19 ` Adhemerval Zanella
2021-06-02 14:37 ` Florian Weimer
2021-06-02 17:49 ` Florian Weimer
0 siblings, 2 replies; 39+ messages in thread
From: Adhemerval Zanella @ 2021-06-02 14:19 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 31/05/2021 11:12, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.
LGTM, thanks. I would move the compat symbols at dlfcn/dlfcn.c to
a dlfcn/libdl-compat.c, similar to what is done for libpthread.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> dlfcn/Makefile | 3 +-
> dlfcn/Versions | 6 +-
> dlfcn/dlfcn.c | 19 ++++-
> dlfcn/dlmopen.c | 73 ++++++++++---------
> dlfcn/sdlmopen.c | 1 -
> include/dlfcn.h | 12 +--
> sysdeps/mach/hurd/i386/libc.abilist | 2 +
> sysdeps/mach/hurd/i386/libdl.abilist | 2 +-
> 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 | 2 +-
> 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 | 2 +-
> sysdeps/unix/sysv/linux/i386/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/i386/libdl.abilist | 2 +-
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/ia64/libdl.abilist | 2 +-
> .../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 | 2 +-
> .../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 | 2 +-
> .../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 +
> .../unix/sysv/linux/mips/mips64/libdl.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 +
> sysdeps/unix/sysv/linux/nios2/libdl.abilist | 1 -
> .../linux/powerpc/powerpc32/fpu/libc.abilist | 2 +
> .../linux/powerpc/powerpc32/libdl.abilist | 2 +-
> .../powerpc/powerpc32/nofpu/libc.abilist | 2 +
> .../linux/powerpc/powerpc64/be/libc.abilist | 2 +
> .../linux/powerpc/powerpc64/be/libdl.abilist | 2 +-
> .../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 | 2 +-
> .../unix/sysv/linux/s390/s390-64/libc.abilist | 2 +
> .../sysv/linux/s390/s390-64/libdl.abilist | 2 +-
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/sh/be/libdl.abilist | 2 +-
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/sh/le/libdl.abilist | 2 +-
> .../sysv/linux/sparc/sparc32/libc.abilist | 2 +
> .../sysv/linux/sparc/sparc32/libdl.abilist | 2 +-
> .../sysv/linux/sparc/sparc64/libc.abilist | 2 +
> .../sysv/linux/sparc/sparc64/libdl.abilist | 2 +-
> .../unix/sysv/linux/x86_64/64/libc.abilist | 2 +
> .../unix/sysv/linux/x86_64/64/libdl.abilist | 2 +-
> .../unix/sysv/linux/x86_64/x32/libc.abilist | 2 +
> .../unix/sysv/linux/x86_64/x32/libdl.abilist | 1 -
> 69 files changed, 154 insertions(+), 73 deletions(-)
> delete mode 100644 dlfcn/sdlmopen.c
>
> diff --git a/dlfcn/Makefile b/dlfcn/Makefile
> index b0f2e8a986..f7ffd242dc 100644
> --- a/dlfcn/Makefile
> +++ b/dlfcn/Makefile
> @@ -22,13 +22,14 @@ include ../Makeconfig
> headers := bits/dlfcn.h dlfcn.h
> extra-libs := libdl
> libdl-routines := dlopen dlvsym dladdr1 dlinfo \
> - dlmopen dlfcn
> + dlfcn
> routines := $(patsubst %,s%,$(filter-out dlfcn,$(libdl-routines)))
> elide-routines.os := $(routines)
> routines += \
> dladdr \
> dlclose \
> dlerror \
> + dlmopen \
> dlsym \
> libc_dlerror_result \
>
Ok.
> diff --git a/dlfcn/Versions b/dlfcn/Versions
> index 7d6b51a4e3..584035e203 100644
> --- a/dlfcn/Versions
> +++ b/dlfcn/Versions
> @@ -5,10 +5,14 @@ libc {
> dlerror;
> dlsym;
> }
> + GLIBC_2.3.4 {
> + dlmopen;
> + }
> GLIBC_2.34 {
> dladdr;
> dlclose;
> dlerror;
> + dlmopen;
> dlsym;
> }
> GLIBC_PRIVATE {
> @@ -28,6 +32,6 @@ libdl {
> dladdr1; dlinfo;
> }
> GLIBC_2.3.4 {
> - dlmopen;
> + __libdl_version_placeholder;
> }
> }
Ok.
> diff --git a/dlfcn/dlfcn.c b/dlfcn/dlfcn.c
> index 8f85308b5f..90cdee0903 100644
> --- a/dlfcn/dlfcn.c
> +++ b/dlfcn/dlfcn.c
> @@ -17,7 +17,7 @@
> <https://www.gnu.org/licenses/>. */
>
> #include <dlfcn.h>
> -
> +#include <shlib-compat.h>
>
> int __dlfcn_argc attribute_hidden;
> char **__dlfcn_argv attribute_hidden;
> @@ -36,3 +36,20 @@ static void (*const init_array []) (int argc, char *argv[])
> {
> init
> };
> +
> +/* The remainder of this file is used to keep specific symbol versions
> + occupied, so that ld does not generate weak symbol version
> + definitions. */
> +
I think it should built only for SHARED.
> +void
> +attribute_compat_text_section
> +__attribute_used__
> +__libdl_version_placeholder_1 (void)
> +{
> +}
> +
> +#if SHLIB_COMPAT (libdl, GLIBC_2_3_4, GLIBC_2_34) \
> + && ABI_libdl_GLIBC_2_3_4 != ABI_libdl_GLIBC_2_1
> +compat_symbol (libdl, __libdl_version_placeholder_1,
> + __libdl_version_placeholder, GLIBC_2_3_4);
> +#endif
Shouldn't we do the same as nptl/libpthread-compat.c for the symbol
placeholders?
> diff --git a/dlfcn/dlmopen.c b/dlfcn/dlmopen.c
> index 6c6e98cd0e..ae42814bbf 100644
> --- a/dlfcn/dlmopen.c
> +++ b/dlfcn/dlmopen.c
> @@ -22,17 +22,7 @@
> #include <stddef.h>
> #include <unistd.h>
> #include <ldsodefs.h>
> -
> -#if !defined SHARED && IS_IN (libdl)
> -
> -void *
> -dlmopen (Lmid_t nsid, const char *file, int mode)
> -{
> - return __dlmopen (nsid, file, mode, RETURN_ADDRESS (0));
> -}
> -static_link_warning (dlmopen)
> -
> -#else
> +#include <shlib-compat.h>
>
> struct dlmopen_args
> {
> @@ -70,38 +60,55 @@ dlmopen_doit (void *a)
>
> args->new = GLRO(dl_open) (args->file ?: "", args->mode | __RTLD_DLOPEN,
> args->caller,
> - args->nsid, __dlfcn_argc, __dlfcn_argv,
> - __environ);
> + args->nsid, __libc_argc, __libc_argv, __environ);
> }
>
> -
> -void *
> -__dlmopen (Lmid_t nsid, const char *file, int mode DL_CALLER_DECL)
> +static void *
> +dlmopen_implementation (Lmid_t nsid, const char *file, int mode,
> + void *dl_caller)
> {
> -# ifdef SHARED
> - if (!rtld_active ())
> - return _dlfcn_hook->dlmopen (nsid, file, mode, RETURN_ADDRESS (0));
> -# endif
> -
> struct dlmopen_args args;
> args.nsid = nsid;
> args.file = file;
> args.mode = mode;
> - args.caller = DL_CALLER;
> + args.caller = dl_caller;
>
> -# ifdef SHARED
> return _dlerror_run (dlmopen_doit, &args) ? NULL : args.new;
> -# else
> - if (_dlerror_run (dlmopen_doit, &args))
> - return NULL;
> +}
>
> - __libc_register_dl_open_hook ((struct link_map *) args.new);
> - __libc_register_dlfcn_hook ((struct link_map *) args.new);
> +#ifdef SHARED
> +void *
> +___dlmopen (Lmid_t nsid, const char *file, int mode)
> +{
> + if (!rtld_active ())
> + return _dlfcn_hook->dlmopen (nsid, file, mode, RETURN_ADDRESS (0));
> + else
> + return dlmopen_implementation (nsid, file, mode, RETURN_ADDRESS (0));
> +}
> +versioned_symbol (libc, ___dlmopen, dlmopen, GLIBC_2_34);
>
> - return args.new;
> +# if OTHER_SHLIB_COMPAT (libdl, GLIBC_2_3_4, GLIBC_2_34)
> +compat_symbol (libdl, ___dlmopen, dlmopen, GLIBC_2_3_4);
> # endif
> +#else /* !SHARED */
> +/* Also used with _dlfcn_hook. */
> +void *
> +__dlmopen (Lmid_t nsid, const char *file, int mode, void *dl_caller)
> +{
> + return dlmopen_implementation (nsid, file, mode, RETURN_ADDRESS (0));
> }
> -# ifdef SHARED
> -strong_alias (__dlmopen, dlmopen)
> -# endif
> -#endif
> +
> +void *
> +___dlmopen (Lmid_t nsid, const char *file, int mode)
> +{
> + struct link_map *l = __dlmopen (nsid, file, mode, RETURN_ADDRESS (0));
> + if (l != NULL)
> + {
> + __libc_register_dl_open_hook (l);
> + __libc_register_dlfcn_hook (l);
> + }
> + return l;
> +}
> +weak_alias (___dlmopen, dlmopen)
> +static_link_warning (dlmopen)
> +#endif /* !SHARED */
Ok.
> diff --git a/dlfcn/sdlmopen.c b/dlfcn/sdlmopen.c
> deleted file mode 100644
> index 9630c89a7f..0000000000
> --- a/dlfcn/sdlmopen.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include "dlmopen.c"
Ok.
> diff --git a/include/dlfcn.h b/include/dlfcn.h
> index 2b174f8670..27309ab1dd 100644
> --- a/include/dlfcn.h
> +++ b/include/dlfcn.h
> @@ -15,15 +15,15 @@
>
> #define __LM_ID_CALLER -2
>
> +/* These variables are defined and initialized in the startup code. */
> +extern int __libc_argc attribute_hidden;
> +extern char **__libc_argv attribute_hidden;
> +
> #ifdef SHARED
> /* Locally stored program arguments. */
> extern int __dlfcn_argc attribute_hidden;
> extern char **__dlfcn_argv attribute_hidden;
> #else
> -/* These variables are defined and initialized in the startup code. */
> -extern int __libc_argc attribute_hidden;
> -extern char **__libc_argv attribute_hidden;
> -
> # define __dlfcn_argc __libc_argc
> # define __dlfcn_argv __libc_argv
> #endif
> @@ -133,8 +133,8 @@ libc_hidden_proto (_dlfcn_hook)
>
> extern void *__dlopen (const char *file, int mode DL_CALLER_DECL)
> attribute_hidden;
> -extern void *__dlmopen (Lmid_t nsid, const char *file, int mode DL_CALLER_DECL)
> - attribute_hidden;
> +extern void *__dlmopen (Lmid_t nsid, const char *file, int mode,
> + void *dl_caller);
> extern int __dlclose (void *handle);
> extern void *__dlsym (void *handle, const char *name, void *dl_caller);
> extern void *__dlvsym (void *handle, const char *name, const char *version
Ok.
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
> index 02ba6c3593..9827bea1e9 100644
> --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -2177,6 +2177,7 @@ GLIBC_2.3.4 __vprintf_chk F
> GLIBC_2.3.4 __vsnprintf_chk F
> GLIBC_2.3.4 __vsprintf_chk F
> GLIBC_2.3.4 __xpg_strerror_r F
> +GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 regexec F
> @@ -2214,6 +2215,7 @@ GLIBC_2.34 _hurd_libc_proc_init F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 timespec_getres F
> diff --git a/sysdeps/mach/hurd/i386/libdl.abilist b/sysdeps/mach/hurd/i386/libdl.abilist
> index e4fe2ccab6..d2c315509d 100644
> --- a/sysdeps/mach/hurd/i386/libdl.abilist
> +++ b/sysdeps/mach/hurd/i386/libdl.abilist
> @@ -2,4 +2,4 @@ GLIBC_2.2.6 dlopen F
> GLIBC_2.2.6 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> -GLIBC_2.3.4 dlmopen F
> +GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 9da6e869fa..9b0f917944 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -721,6 +721,7 @@ GLIBC_2.17 dl_iterate_phdr F
> GLIBC_2.17 dladdr F
> GLIBC_2.17 dlclose F
> GLIBC_2.17 dlerror F
> +GLIBC_2.17 dlmopen F
> GLIBC_2.17 dlsym F
> GLIBC_2.17 dngettext F
> GLIBC_2.17 dprintf F
> @@ -2349,6 +2350,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
> index d3822d83fc..391b72c100 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.17 dladdr1 F
> GLIBC_2.17 dlinfo F
> -GLIBC_2.17 dlmopen F
> GLIBC_2.17 dlopen F
> GLIBC_2.17 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 1c9805a7f4..5b24169acf 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2363,6 +2363,7 @@ GLIBC_2.3.4 __vprintf_chk F
> GLIBC_2.3.4 __vsnprintf_chk F
> GLIBC_2.3.4 __vsprintf_chk F
> GLIBC_2.3.4 __xpg_strerror_r F
> +GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> @@ -2441,6 +2442,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libdl.abilist b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
> index 9019e8db65..795a5abd45 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
> @@ -3,4 +3,4 @@ GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> -GLIBC_2.3.4 dlmopen F
> +GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 1a83cb2288..5e28b203cd 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -666,6 +666,7 @@ GLIBC_2.32 dl_iterate_phdr F
> GLIBC_2.32 dladdr F
> GLIBC_2.32 dlclose F
> GLIBC_2.32 dlerror F
> +GLIBC_2.32 dlmopen F
> GLIBC_2.32 dlsym F
> GLIBC_2.32 dngettext F
> GLIBC_2.32 dprintf F
> @@ -2108,6 +2109,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/arc/libdl.abilist b/sysdeps/unix/sysv/linux/arc/libdl.abilist
> index 74e8c10002..b23f34195f 100644
> --- a/sysdeps/unix/sysv/linux/arc/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.32 dladdr1 F
> GLIBC_2.32 dlinfo F
> -GLIBC_2.32 dlmopen F
> GLIBC_2.32 dlopen F
> GLIBC_2.32 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index b49c187be7..ea14c3cd99 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -210,6 +210,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> @@ -1024,6 +1025,7 @@ GLIBC_2.4 dl_iterate_phdr F
> GLIBC_2.4 dladdr F
> GLIBC_2.4 dlclose F
> GLIBC_2.4 dlerror F
> +GLIBC_2.4 dlmopen F
> GLIBC_2.4 dlsym F
> GLIBC_2.4 dngettext F
> GLIBC_2.4 dprintf F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
> index 816b953a69..22691633fb 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.4 dladdr1 F
> GLIBC_2.4 dlinfo F
> -GLIBC_2.4 dlmopen F
> GLIBC_2.4 dlopen F
> GLIBC_2.4 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 7f49a4977f..5ff5eb7d04 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -207,6 +207,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> @@ -1021,6 +1022,7 @@ GLIBC_2.4 dl_iterate_phdr F
> GLIBC_2.4 dladdr F
> GLIBC_2.4 dlclose F
> GLIBC_2.4 dlerror F
> +GLIBC_2.4 dlmopen F
> GLIBC_2.4 dlsym F
> GLIBC_2.4 dngettext F
> GLIBC_2.4 dprintf F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
> index 816b953a69..22691633fb 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.4 dladdr1 F
> GLIBC_2.4 dlinfo F
> -GLIBC_2.4 dlmopen F
> GLIBC_2.4 dlopen F
> GLIBC_2.4 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index f060c2b0d5..8f36e5c844 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -702,6 +702,7 @@ GLIBC_2.29 dl_iterate_phdr F
> GLIBC_2.29 dladdr F
> GLIBC_2.29 dlclose F
> GLIBC_2.29 dlerror F
> +GLIBC_2.29 dlmopen F
> GLIBC_2.29 dlsym F
> GLIBC_2.29 dngettext F
> GLIBC_2.29 dprintf F
> @@ -2292,6 +2293,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/csky/libdl.abilist b/sysdeps/unix/sysv/linux/csky/libdl.abilist
> index 78edf27275..51061cb361 100644
> --- a/sysdeps/unix/sysv/linux/csky/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.29 dladdr1 F
> GLIBC_2.29 dlinfo F
> -GLIBC_2.29 dlmopen F
> GLIBC_2.29 dlopen F
> GLIBC_2.29 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index bd4bbe548d..0302aeae56 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -2179,6 +2179,7 @@ GLIBC_2.3.4 __vprintf_chk F
> GLIBC_2.3.4 __vsnprintf_chk F
> GLIBC_2.3.4 __vsprintf_chk F
> GLIBC_2.3.4 __xpg_strerror_r F
> +GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> @@ -2245,6 +2246,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libdl.abilist b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
> index 9019e8db65..795a5abd45 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
> @@ -3,4 +3,4 @@ GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> -GLIBC_2.3.4 dlmopen F
> +GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index c781b36839..233096afbd 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2360,6 +2360,7 @@ GLIBC_2.3.4 __vprintf_chk F
> GLIBC_2.3.4 __vsnprintf_chk F
> GLIBC_2.3.4 __vsprintf_chk F
> GLIBC_2.3.4 __xpg_strerror_r F
> +GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> @@ -2429,6 +2430,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/i386/libdl.abilist b/sysdeps/unix/sysv/linux/i386/libdl.abilist
> index 9019e8db65..795a5abd45 100644
> --- a/sysdeps/unix/sysv/linux/i386/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libdl.abilist
> @@ -3,4 +3,4 @@ GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> -GLIBC_2.3.4 dlmopen F
> +GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index f0af999f5d..704fe57ca2 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -2214,6 +2214,7 @@ GLIBC_2.3.4 __vprintf_chk F
> GLIBC_2.3.4 __vsnprintf_chk F
> GLIBC_2.3.4 __vsprintf_chk F
> GLIBC_2.3.4 __xpg_strerror_r F
> +GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> @@ -2281,6 +2282,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libdl.abilist b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
> index 9019e8db65..795a5abd45 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
> @@ -3,4 +3,4 @@ GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> -GLIBC_2.3.4 dlmopen F
> +GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 8b58481a8c..dc32b7561b 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -211,6 +211,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> @@ -1013,6 +1014,7 @@ GLIBC_2.4 dl_iterate_phdr F
> GLIBC_2.4 dladdr F
> GLIBC_2.4 dlclose F
> GLIBC_2.4 dlerror F
> +GLIBC_2.4 dlmopen F
> GLIBC_2.4 dlsym F
> GLIBC_2.4 dngettext F
> GLIBC_2.4 dprintf F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
> index 816b953a69..22691633fb 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.4 dladdr1 F
> GLIBC_2.4 dlinfo F
> -GLIBC_2.4 dlmopen F
> GLIBC_2.4 dlopen F
> GLIBC_2.4 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index d4f2220a6a..0ad41be521 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2303,6 +2303,7 @@ GLIBC_2.3.4 __vprintf_chk F
> GLIBC_2.3.4 __vsnprintf_chk F
> GLIBC_2.3.4 __vsprintf_chk F
> GLIBC_2.3.4 __xpg_strerror_r F
> +GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> @@ -2372,6 +2373,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
> index 9019e8db65..795a5abd45 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
> @@ -3,4 +3,4 @@ GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> -GLIBC_2.3.4 dlmopen F
> +GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index d443e72888..ea61742cf2 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -723,6 +723,7 @@ GLIBC_2.18 dl_iterate_phdr F
> GLIBC_2.18 dladdr F
> GLIBC_2.18 dlclose F
> GLIBC_2.18 dlerror F
> +GLIBC_2.18 dlmopen F
> GLIBC_2.18 dlsym F
> GLIBC_2.18 dngettext F
> GLIBC_2.18 dprintf F
> @@ -2343,6 +2344,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
> index 9f0b07e50d..409e59cf21 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.18 dladdr1 F
> GLIBC_2.18 dlinfo F
> -GLIBC_2.18 dlmopen F
> GLIBC_2.18 dlopen F
> GLIBC_2.18 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 5d899de9e1..3b09b44dd8 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -723,6 +723,7 @@ GLIBC_2.18 dl_iterate_phdr F
> GLIBC_2.18 dladdr F
> GLIBC_2.18 dlclose F
> GLIBC_2.18 dlerror F
> +GLIBC_2.18 dlmopen F
> GLIBC_2.18 dlsym F
> GLIBC_2.18 dngettext F
> GLIBC_2.18 dprintf F
> @@ -2340,6 +2341,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
> index 9f0b07e50d..409e59cf21 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.18 dladdr1 F
> GLIBC_2.18 dlinfo F
> -GLIBC_2.18 dlmopen F
> GLIBC_2.18 dlopen F
> GLIBC_2.18 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 80f71d2c9d..adde44be66 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2271,6 +2271,7 @@ GLIBC_2.3.4 __vprintf_chk F
> GLIBC_2.3.4 __vsnprintf_chk F
> GLIBC_2.3.4 __vsprintf_chk F
> GLIBC_2.3.4 __xpg_strerror_r F
> +GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> @@ -2337,6 +2338,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
> index e79fbf179b..04aca378ef 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
> @@ -3,4 +3,4 @@ GLIBC_2.2 dlopen F
> GLIBC_2.2 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> -GLIBC_2.3.4 dlmopen F
> +GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 041df76409..a4c9a17e9e 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2269,6 +2269,7 @@ GLIBC_2.3.4 __vprintf_chk F
> GLIBC_2.3.4 __vsnprintf_chk F
> GLIBC_2.3.4 __vsprintf_chk F
> GLIBC_2.3.4 __xpg_strerror_r F
> +GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> @@ -2335,6 +2336,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
> index e79fbf179b..04aca378ef 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
> @@ -3,4 +3,4 @@ GLIBC_2.2 dlopen F
> GLIBC_2.2 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> -GLIBC_2.3.4 dlmopen F
> +GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 9d741ee23b..214e0db752 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2277,6 +2277,7 @@ GLIBC_2.3.4 __vprintf_chk F
> GLIBC_2.3.4 __vsnprintf_chk F
> GLIBC_2.3.4 __vsprintf_chk F
> GLIBC_2.3.4 __xpg_strerror_r F
> +GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> @@ -2343,6 +2344,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index eb2b387ce6..b09d4058a2 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2271,6 +2271,7 @@ GLIBC_2.3.4 __vprintf_chk F
> GLIBC_2.3.4 __vsnprintf_chk F
> GLIBC_2.3.4 __vsprintf_chk F
> GLIBC_2.3.4 __xpg_strerror_r F
> +GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> @@ -2337,6 +2338,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 91e8dac129..748f12c254 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -766,6 +766,7 @@ GLIBC_2.21 dl_iterate_phdr F
> GLIBC_2.21 dladdr F
> GLIBC_2.21 dlclose F
> GLIBC_2.21 dlerror F
> +GLIBC_2.21 dlmopen F
> GLIBC_2.21 dlsym F
> GLIBC_2.21 dngettext F
> GLIBC_2.21 dprintf F
> @@ -2382,6 +2383,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libdl.abilist b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
> index 354d0b0f1f..90aaa0b49b 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.21 dladdr1 F
> GLIBC_2.21 dlinfo F
> -GLIBC_2.21 dlmopen F
> GLIBC_2.21 dlopen F
> GLIBC_2.21 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 3531cf9744..4134f7ed41 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2314,6 +2314,7 @@ GLIBC_2.3.4 __vsprintf_chk F
> GLIBC_2.3.4 __xpg_strerror_r F
> GLIBC_2.3.4 _longjmp F
> GLIBC_2.3.4 _setjmp F
> +GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getcontext F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> @@ -2399,6 +2400,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
> index 9019e8db65..795a5abd45 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
> @@ -3,4 +3,4 @@ GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> -GLIBC_2.3.4 dlmopen F
> +GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index b2610134a9..43baf50dca 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2347,6 +2347,7 @@ GLIBC_2.3.4 __vsprintf_chk F
> GLIBC_2.3.4 __xpg_strerror_r F
> GLIBC_2.3.4 _longjmp F
> GLIBC_2.3.4 _setjmp F
> +GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getcontext F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> @@ -2432,6 +2433,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index cb9457053d..b3d27c2678 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -2162,6 +2162,7 @@ GLIBC_2.3.4 __vsprintf_chk F
> GLIBC_2.3.4 __xpg_strerror_r F
> GLIBC_2.3.4 _longjmp F
> GLIBC_2.3.4 _setjmp F
> +GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getcontext F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> @@ -2246,6 +2247,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
> index 5344e7141c..8e709e5bc4 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
> @@ -2,4 +2,4 @@ GLIBC_2.3 dlopen F
> GLIBC_2.3 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> -GLIBC_2.3.4 dlmopen F
> +GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 43e579db72..60a6327f37 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -809,6 +809,7 @@ GLIBC_2.17 dl_iterate_phdr F
> GLIBC_2.17 dladdr F
> GLIBC_2.17 dlclose F
> GLIBC_2.17 dlerror F
> +GLIBC_2.17 dlmopen F
> GLIBC_2.17 dlsym F
> GLIBC_2.17 dngettext F
> GLIBC_2.17 dprintf F
> @@ -2545,6 +2546,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
> index d3822d83fc..391b72c100 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.17 dladdr1 F
> GLIBC_2.17 dlinfo F
> -GLIBC_2.17 dlmopen F
> GLIBC_2.17 dlopen F
> GLIBC_2.17 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index fe9784bfe7..dccdf14b63 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -659,6 +659,7 @@ GLIBC_2.33 dl_iterate_phdr F
> GLIBC_2.33 dladdr F
> GLIBC_2.33 dlclose F
> GLIBC_2.33 dlerror F
> +GLIBC_2.33 dlmopen F
> GLIBC_2.33 dlsym F
> GLIBC_2.33 dngettext F
> GLIBC_2.33 dprintf F
> @@ -2110,6 +2111,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
> index 12113b56ff..2710b64293 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.33 dladdr1 F
> GLIBC_2.33 dlinfo F
> -GLIBC_2.33 dlmopen F
> GLIBC_2.33 dlopen F
> GLIBC_2.33 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 241850b78d..2acb8db062 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -700,6 +700,7 @@ GLIBC_2.27 dl_iterate_phdr F
> GLIBC_2.27 dladdr F
> GLIBC_2.27 dlclose F
> GLIBC_2.27 dlerror F
> +GLIBC_2.27 dlmopen F
> GLIBC_2.27 dlsym F
> GLIBC_2.27 dngettext F
> GLIBC_2.27 dprintf F
> @@ -2310,6 +2311,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
> index e42f9d97a8..c0d8307937 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.27 dladdr1 F
> GLIBC_2.27 dlinfo F
> -GLIBC_2.27 dlmopen F
> GLIBC_2.27 dlopen F
> GLIBC_2.27 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 72baa14350..b2666bd723 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2316,6 +2316,7 @@ GLIBC_2.3.4 __vprintf_chk F
> GLIBC_2.3.4 __vsnprintf_chk F
> GLIBC_2.3.4 __vsprintf_chk F
> GLIBC_2.3.4 __xpg_strerror_r F
> +GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> @@ -2397,6 +2398,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
> index 9019e8db65..795a5abd45 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
> @@ -3,4 +3,4 @@ GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> -GLIBC_2.3.4 dlmopen F
> +GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 2e58f6151b..6ea55ebcdf 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -2205,6 +2205,7 @@ GLIBC_2.3.4 __vprintf_chk F
> GLIBC_2.3.4 __vsnprintf_chk F
> GLIBC_2.3.4 __vsprintf_chk F
> GLIBC_2.3.4 __xpg_strerror_r F
> +GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> @@ -2283,6 +2284,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
> index 97dcae5bf1..45decb94f9 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
> @@ -2,4 +2,4 @@ GLIBC_2.2 dlopen F
> GLIBC_2.2 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> -GLIBC_2.3.4 dlmopen F
> +GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index ab113c966d..7d3680520a 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -2183,6 +2183,7 @@ GLIBC_2.3.4 __vprintf_chk F
> GLIBC_2.3.4 __vsnprintf_chk F
> GLIBC_2.3.4 __vsprintf_chk F
> GLIBC_2.3.4 __xpg_strerror_r F
> +GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> @@ -2252,6 +2253,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
> index 9019e8db65..795a5abd45 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
> @@ -3,4 +3,4 @@ GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> -GLIBC_2.3.4 dlmopen F
> +GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index e733d13430..51a77c9553 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -2183,6 +2183,7 @@ GLIBC_2.3.4 __vprintf_chk F
> GLIBC_2.3.4 __vsnprintf_chk F
> GLIBC_2.3.4 __vsprintf_chk F
> GLIBC_2.3.4 __xpg_strerror_r F
> +GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> @@ -2249,6 +2250,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
> index 9019e8db65..795a5abd45 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
> @@ -3,4 +3,4 @@ GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> -GLIBC_2.3.4 dlmopen F
> +GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 0534abb5b4..45053a171a 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2312,6 +2312,7 @@ GLIBC_2.3.4 __vprintf_chk F
> GLIBC_2.3.4 __vsnprintf_chk F
> GLIBC_2.3.4 __vsprintf_chk F
> GLIBC_2.3.4 __xpg_strerror_r F
> +GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> @@ -2390,6 +2391,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
> index 9019e8db65..795a5abd45 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
> @@ -3,4 +3,4 @@ GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> -GLIBC_2.3.4 dlmopen F
> +GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 89e1646f02..30e7e6baa0 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -2236,6 +2236,7 @@ GLIBC_2.3.4 __vprintf_chk F
> GLIBC_2.3.4 __vsnprintf_chk F
> GLIBC_2.3.4 __vsprintf_chk F
> GLIBC_2.3.4 __xpg_strerror_r F
> +GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> @@ -2302,6 +2303,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
> index 9019e8db65..795a5abd45 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
> @@ -3,4 +3,4 @@ GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> -GLIBC_2.3.4 dlmopen F
> +GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 842a613fdb..abaf3ee9de 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -2193,6 +2193,7 @@ GLIBC_2.3.4 __vprintf_chk F
> GLIBC_2.3.4 __vsnprintf_chk F
> GLIBC_2.3.4 __vsprintf_chk F
> GLIBC_2.3.4 __xpg_strerror_r F
> +GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> @@ -2261,6 +2262,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
> index a43447856f..91f878e859 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
> @@ -2,4 +2,4 @@ GLIBC_2.2.5 dlopen F
> GLIBC_2.2.5 dlvsym F
> GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> -GLIBC_2.3.4 dlmopen F
> +GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 5e8c5a64f2..b30feb4888 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -725,6 +725,7 @@ GLIBC_2.16 dl_iterate_phdr F
> GLIBC_2.16 dladdr F
> GLIBC_2.16 dlclose F
> GLIBC_2.16 dlerror F
> +GLIBC_2.16 dlmopen F
> GLIBC_2.16 dlsym F
> GLIBC_2.16 dngettext F
> GLIBC_2.16 dprintf F
> @@ -2364,6 +2365,7 @@ GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
> index 7586a5f0b7..b37e9ff78c 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.16 dladdr1 F
> GLIBC_2.16 dlinfo F
> -GLIBC_2.16 dlmopen F
> GLIBC_2.16 dlopen F
> GLIBC_2.16 dlvsym F
>
Ok.
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH 09/16] dlfcn: Move dlmopen into libc
2021-06-02 14:19 ` Adhemerval Zanella
@ 2021-06-02 14:37 ` Florian Weimer
2021-06-02 14:43 ` Adhemerval Zanella
2021-06-02 17:49 ` Florian Weimer
1 sibling, 1 reply; 39+ messages in thread
From: Florian Weimer @ 2021-06-02 14:37 UTC (permalink / raw)
To: Adhemerval Zanella; +Cc: libc-alpha
* Adhemerval Zanella:
> On 31/05/2021 11:12, Florian Weimer via Libc-alpha wrote:
>> The symbol was moved using scripts/move-symbol-to-libc.py.
>
> LGTM, thanks. I would move the compat symbols at dlfcn/dlfcn.c to
> a dlfcn/libdl-compat.c, similar to what is done for libpthread.
I'm going to rename the file in the final cleanup patch, where
dlfcn/dlfcn.c is otherwise empty.
Thanks,
Florian
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH 09/16] dlfcn: Move dlmopen into libc
2021-06-02 14:37 ` Florian Weimer
@ 2021-06-02 14:43 ` Adhemerval Zanella
0 siblings, 0 replies; 39+ messages in thread
From: Adhemerval Zanella @ 2021-06-02 14:43 UTC (permalink / raw)
To: Florian Weimer; +Cc: libc-alpha
On 02/06/2021 11:37, Florian Weimer wrote:
> * Adhemerval Zanella:
>
>> On 31/05/2021 11:12, Florian Weimer via Libc-alpha wrote:
>>> The symbol was moved using scripts/move-symbol-to-libc.py.
>>
>> LGTM, thanks. I would move the compat symbols at dlfcn/dlfcn.c to
>> a dlfcn/libdl-compat.c, similar to what is done for libpthread.
>
> I'm going to rename the file in the final cleanup patch, where
> dlfcn/dlfcn.c is otherwise empty.
>
Fair enough.
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH 09/16] dlfcn: Move dlmopen into libc
2021-06-02 14:19 ` Adhemerval Zanella
2021-06-02 14:37 ` Florian Weimer
@ 2021-06-02 17:49 ` Florian Weimer
2021-06-02 18:00 ` Adhemerval Zanella
1 sibling, 1 reply; 39+ messages in thread
From: Florian Weimer @ 2021-06-02 17:49 UTC (permalink / raw)
To: Adhemerval Zanella; +Cc: libc-alpha
* Adhemerval Zanella:
>> +/* The remainder of this file is used to keep specific symbol versions
>> + occupied, so that ld does not generate weak symbol version
>> + definitions. */
>> +
>
> I think it should built only for SHARED.
That's handled externally in dlfcn/Makefile (libdl-shared-only-routines).
Thanks,
Florian
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH 09/16] dlfcn: Move dlmopen into libc
2021-06-02 17:49 ` Florian Weimer
@ 2021-06-02 18:00 ` Adhemerval Zanella
0 siblings, 0 replies; 39+ messages in thread
From: Adhemerval Zanella @ 2021-06-02 18:00 UTC (permalink / raw)
To: Florian Weimer; +Cc: libc-alpha
On 02/06/2021 14:49, Florian Weimer wrote:
> * Adhemerval Zanella:
>
>>> +/* The remainder of this file is used to keep specific symbol versions
>>> + occupied, so that ld does not generate weak symbol version
>>> + definitions. */
>>> +
>>
>> I think it should built only for SHARED.
>
> That's handled externally in dlfcn/Makefile (libdl-shared-only-routines).
>
Ok, so you can ignore this suggestion then.
^ permalink raw reply [flat|nested] 39+ messages in thread
* [PATCH 10/16] dlfcn: Move dladdr1 into libc
2021-05-31 14:10 [PATCH v3 00/16] Move libdl into libc Florian Weimer
` (8 preceding siblings ...)
2021-05-31 14:12 ` [PATCH 09/16] dlfcn: Move dlmopen " Florian Weimer
@ 2021-05-31 14:12 ` Florian Weimer
2021-06-02 14:29 ` Adhemerval Zanella
2021-05-31 14:12 ` [PATCH 11/16] dlfcn: Move dlinfo " Florian Weimer
` (5 subsequent siblings)
15 siblings, 1 reply; 39+ messages in thread
From: Florian Weimer @ 2021-05-31 14:12 UTC (permalink / raw)
To: libc-alpha
The symbol was moved using scripts/move-symbol-to-libc.py.
---
dlfcn/Makefile | 3 ++-
dlfcn/Versions | 6 ++++-
dlfcn/dladdr1.c | 22 ++++++-------------
dlfcn/sdladdr1.c | 1 -
include/dlfcn.h | 3 +--
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, 81 insertions(+), 50 deletions(-)
delete mode 100644 dlfcn/sdladdr1.c
diff --git a/dlfcn/Makefile b/dlfcn/Makefile
index f7ffd242dc..1dfa247538 100644
--- a/dlfcn/Makefile
+++ b/dlfcn/Makefile
@@ -21,12 +21,13 @@ include ../Makeconfig
headers := bits/dlfcn.h dlfcn.h
extra-libs := libdl
-libdl-routines := dlopen dlvsym dladdr1 dlinfo \
+libdl-routines := dlopen dlvsym dlinfo \
dlfcn
routines := $(patsubst %,s%,$(filter-out dlfcn,$(libdl-routines)))
elide-routines.os := $(routines)
routines += \
dladdr \
+ dladdr1 \
dlclose \
dlerror \
dlmopen \
diff --git a/dlfcn/Versions b/dlfcn/Versions
index 584035e203..acd9402b34 100644
--- a/dlfcn/Versions
+++ b/dlfcn/Versions
@@ -5,10 +5,14 @@ libc {
dlerror;
dlsym;
}
+ GLIBC_2.3.3 {
+ dladdr1;
+ }
GLIBC_2.3.4 {
dlmopen;
}
GLIBC_2.34 {
+ dladdr1;
dladdr;
dlclose;
dlerror;
@@ -29,7 +33,7 @@ libdl {
dlopen; dlvsym;
}
GLIBC_2.3.3 {
- dladdr1; dlinfo;
+ dlinfo;
}
GLIBC_2.3.4 {
__libdl_version_placeholder;
diff --git a/dlfcn/dladdr1.c b/dlfcn/dladdr1.c
index 98cd60d78e..203d6398e4 100644
--- a/dlfcn/dladdr1.c
+++ b/dlfcn/dladdr1.c
@@ -18,24 +18,15 @@
#include <dlfcn.h>
#include <ldsodefs.h>
-
-#if !defined SHARED && IS_IN (libdl)
-
-int
-dladdr1 (const void *address, Dl_info *info, void **extra, int flags)
-{
- return __dladdr1 (address, info, extra, flags);
-}
-
-#else
+#include <shlib-compat.h>
int
__dladdr1 (const void *address, Dl_info *info, void **extra, int flags)
{
-# ifdef SHARED
+#ifdef SHARED
if (!rtld_active ())
return _dlfcn_hook->dladdr1 (address, info, extra, flags);
-# endif
+#endif
switch (flags)
{
@@ -48,7 +39,8 @@ __dladdr1 (const void *address, Dl_info *info, void **extra, int flags)
return _dl_addr (address, info, (struct link_map **) extra, NULL);
}
}
-# ifdef SHARED
-strong_alias (__dladdr1, dladdr1)
-# endif
+versioned_symbol (libc, __dladdr1, dladdr1, GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (libdl, GLIBC_2_3_3, GLIBC_2_34)
+compat_symbol (libdl, __dladdr1, dladdr1, GLIBC_2_3_3);
#endif
diff --git a/dlfcn/sdladdr1.c b/dlfcn/sdladdr1.c
deleted file mode 100644
index a655979bcf..0000000000
--- a/dlfcn/sdladdr1.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "dladdr1.c"
diff --git a/include/dlfcn.h b/include/dlfcn.h
index 27309ab1dd..dc5193acbb 100644
--- a/include/dlfcn.h
+++ b/include/dlfcn.h
@@ -142,8 +142,7 @@ extern void *__dlvsym (void *handle, const char *name, const char *version
attribute_hidden;
extern int __dladdr (const void *address, Dl_info *info);
extern int __dladdr1 (const void *address, Dl_info *info,
- void **extra_info, int flags)
- attribute_hidden;
+ void **extra_info, int flags);
extern int __dlinfo (void *handle, int request, void *arg) attribute_hidden;
#ifndef SHARED
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 9827bea1e9..172e269fe9 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -2144,6 +2144,7 @@ GLIBC_2.3.2 lchmod F
GLIBC_2.3.2 setresgid F
GLIBC_2.3.2 setresuid F
GLIBC_2.3.2 strptime_l F
+GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 inet6_option_alloc F
GLIBC_2.3.3 inet6_option_append F
GLIBC_2.3.3 inet6_option_find F
@@ -2213,6 +2214,7 @@ GLIBC_2.34 __isnanf128 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 _hurd_libc_proc_init F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/mach/hurd/i386/libdl.abilist b/sysdeps/mach/hurd/i386/libdl.abilist
index d2c315509d..9e890a9815 100644
--- a/sysdeps/mach/hurd/i386/libdl.abilist
+++ b/sysdeps/mach/hurd/i386/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.2.6 dlopen F
GLIBC_2.2.6 dlvsym F
-GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 9b0f917944..f09046237f 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -719,6 +719,7 @@ GLIBC_2.17 dirname F
GLIBC_2.17 div F
GLIBC_2.17 dl_iterate_phdr F
GLIBC_2.17 dladdr F
+GLIBC_2.17 dladdr1 F
GLIBC_2.17 dlclose F
GLIBC_2.17 dlerror F
GLIBC_2.17 dlmopen F
@@ -2348,6 +2349,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
index 391b72c100..05eeace024 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.17 dladdr1 F
GLIBC_2.17 dlinfo F
GLIBC_2.17 dlopen F
GLIBC_2.17 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 5b24169acf..1523233c99 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2297,6 +2297,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x208
+GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2440,6 +2441,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/alpha/libdl.abilist b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
index 795a5abd45..5f81d13a21 100644
--- a/sysdeps/unix/sysv/linux/alpha/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
@@ -1,6 +1,5 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
-GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 5e28b203cd..cd6a555f6b 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -664,6 +664,7 @@ GLIBC_2.32 dirname F
GLIBC_2.32 div F
GLIBC_2.32 dl_iterate_phdr F
GLIBC_2.32 dladdr F
+GLIBC_2.32 dladdr1 F
GLIBC_2.32 dlclose F
GLIBC_2.32 dlerror F
GLIBC_2.32 dlmopen F
@@ -2107,6 +2108,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/arc/libdl.abilist b/sysdeps/unix/sysv/linux/arc/libdl.abilist
index b23f34195f..d3afdc0308 100644
--- a/sysdeps/unix/sysv/linux/arc/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.32 dladdr1 F
GLIBC_2.32 dlinfo F
GLIBC_2.32 dlopen F
GLIBC_2.32 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index ea14c3cd99..07e8854909 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -208,6 +208,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
@@ -1023,6 +1024,7 @@ GLIBC_2.4 dirname F
GLIBC_2.4 div F
GLIBC_2.4 dl_iterate_phdr F
GLIBC_2.4 dladdr F
+GLIBC_2.4 dladdr1 F
GLIBC_2.4 dlclose F
GLIBC_2.4 dlerror F
GLIBC_2.4 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
index 22691633fb..c24e10d9c5 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.4 dladdr1 F
GLIBC_2.4 dlinfo F
GLIBC_2.4 dlopen F
GLIBC_2.4 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 5ff5eb7d04..2f0fef9d7d 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -205,6 +205,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
@@ -1020,6 +1021,7 @@ GLIBC_2.4 dirname F
GLIBC_2.4 div F
GLIBC_2.4 dl_iterate_phdr F
GLIBC_2.4 dladdr F
+GLIBC_2.4 dladdr1 F
GLIBC_2.4 dlclose F
GLIBC_2.4 dlerror F
GLIBC_2.4 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
index 22691633fb..c24e10d9c5 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.4 dladdr1 F
GLIBC_2.4 dlinfo F
GLIBC_2.4 dlopen F
GLIBC_2.4 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 8f36e5c844..97ba0642d5 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -700,6 +700,7 @@ GLIBC_2.29 dirname F
GLIBC_2.29 div F
GLIBC_2.29 dl_iterate_phdr F
GLIBC_2.29 dladdr F
+GLIBC_2.29 dladdr1 F
GLIBC_2.29 dlclose F
GLIBC_2.29 dlerror F
GLIBC_2.29 dlmopen F
@@ -2291,6 +2292,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/csky/libdl.abilist b/sysdeps/unix/sysv/linux/csky/libdl.abilist
index 51061cb361..5cb45f50d3 100644
--- a/sysdeps/unix/sysv/linux/csky/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.29 dladdr1 F
GLIBC_2.29 dlinfo F
GLIBC_2.29 dlopen F
GLIBC_2.29 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 0302aeae56..257072a63a 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2131,6 +2131,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
+GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2244,6 +2245,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/hppa/libdl.abilist b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
index 795a5abd45..5f81d13a21 100644
--- a/sysdeps/unix/sysv/linux/hppa/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
@@ -1,6 +1,5 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
-GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 233096afbd..8b0a2381bb 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2312,6 +2312,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
+GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2428,6 +2429,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/i386/libdl.abilist b/sysdeps/unix/sysv/linux/i386/libdl.abilist
index 795a5abd45..5f81d13a21 100644
--- a/sysdeps/unix/sysv/linux/i386/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libdl.abilist
@@ -1,6 +1,5 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
-GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 704fe57ca2..a2fd7b6f0e 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2164,6 +2164,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x208
+GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2280,6 +2281,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/ia64/libdl.abilist b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
index 795a5abd45..5f81d13a21 100644
--- a/sysdeps/unix/sysv/linux/ia64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
@@ -1,6 +1,5 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
-GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index dc32b7561b..ec0f948a22 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -209,6 +209,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
@@ -1012,6 +1013,7 @@ GLIBC_2.4 dirname F
GLIBC_2.4 div F
GLIBC_2.4 dl_iterate_phdr F
GLIBC_2.4 dladdr F
+GLIBC_2.4 dladdr1 F
GLIBC_2.4 dlclose F
GLIBC_2.4 dlerror F
GLIBC_2.4 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
index 22691633fb..c24e10d9c5 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.4 dladdr1 F
GLIBC_2.4 dlinfo F
GLIBC_2.4 dlopen F
GLIBC_2.4 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 0ad41be521..2d69d956a1 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2255,6 +2255,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
+GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2371,6 +2372,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
index 795a5abd45..5f81d13a21 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 dlopen F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
-GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index ea61742cf2..7e6a7b1645 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -721,6 +721,7 @@ GLIBC_2.18 dirname F
GLIBC_2.18 div F
GLIBC_2.18 dl_iterate_phdr F
GLIBC_2.18 dladdr F
+GLIBC_2.18 dladdr1 F
GLIBC_2.18 dlclose F
GLIBC_2.18 dlerror F
GLIBC_2.18 dlmopen F
@@ -2342,6 +2343,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
index 409e59cf21..c042c043d6 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.18 dladdr1 F
GLIBC_2.18 dlinfo F
GLIBC_2.18 dlopen F
GLIBC_2.18 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 3b09b44dd8..01bc9594bb 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -721,6 +721,7 @@ GLIBC_2.18 dirname F
GLIBC_2.18 div F
GLIBC_2.18 dl_iterate_phdr F
GLIBC_2.18 dladdr F
+GLIBC_2.18 dladdr1 F
GLIBC_2.18 dlclose F
GLIBC_2.18 dlerror F
GLIBC_2.18 dlmopen F
@@ -2339,6 +2340,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
index 409e59cf21..c042c043d6 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.18 dladdr1 F
GLIBC_2.18 dlinfo F
GLIBC_2.18 dlopen F
GLIBC_2.18 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index adde44be66..b13544403e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2221,6 +2221,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x200
+GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2336,6 +2337,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
index 04aca378ef..cb7bf28178 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 dlopen F
GLIBC_2.2 dlopen F
GLIBC_2.2 dlvsym F
-GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index a4c9a17e9e..e76cbe2a87 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2219,6 +2219,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x200
+GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2334,6 +2335,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
index 04aca378ef..cb7bf28178 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 dlopen F
GLIBC_2.2 dlopen F
GLIBC_2.2 dlvsym F
-GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 214e0db752..5ac0d47413 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2227,6 +2227,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x200
+GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2342,6 +2343,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index b09d4058a2..07d121d225 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2220,6 +2220,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x400
+GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2336,6 +2337,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 748f12c254..a27cb9cf18 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -764,6 +764,7 @@ GLIBC_2.21 dirname F
GLIBC_2.21 div F
GLIBC_2.21 dl_iterate_phdr F
GLIBC_2.21 dladdr F
+GLIBC_2.21 dladdr1 F
GLIBC_2.21 dlclose F
GLIBC_2.21 dlerror F
GLIBC_2.21 dlmopen F
@@ -2381,6 +2382,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/nios2/libdl.abilist b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
index 90aaa0b49b..9acd54fa38 100644
--- a/sysdeps/unix/sysv/linux/nios2/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.21 dladdr1 F
GLIBC_2.21 dlinfo F
GLIBC_2.21 dlopen F
GLIBC_2.21 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 4134f7ed41..1a1cbb94ce 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2259,6 +2259,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
+GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 getcontext F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2398,6 +2399,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
index 795a5abd45..5f81d13a21 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 dlopen F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
-GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 43baf50dca..9b9dc9ef3a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2292,6 +2292,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
+GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 getcontext F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2431,6 +2432,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index b3d27c2678..aad3704047 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2111,6 +2111,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x208
+GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2245,6 +2246,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
index 8e709e5bc4..c27f19ac95 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.3 dlopen F
GLIBC_2.3 dlvsym F
-GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 60a6327f37..64a45a1c48 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -807,6 +807,7 @@ GLIBC_2.17 dirname F
GLIBC_2.17 div F
GLIBC_2.17 dl_iterate_phdr F
GLIBC_2.17 dladdr F
+GLIBC_2.17 dladdr1 F
GLIBC_2.17 dlclose F
GLIBC_2.17 dlerror F
GLIBC_2.17 dlmopen F
@@ -2544,6 +2545,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
index 391b72c100..05eeace024 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.17 dladdr1 F
GLIBC_2.17 dlinfo F
GLIBC_2.17 dlopen F
GLIBC_2.17 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index dccdf14b63..94c3bcf6e2 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -657,6 +657,7 @@ GLIBC_2.33 dirname F
GLIBC_2.33 div F
GLIBC_2.33 dl_iterate_phdr F
GLIBC_2.33 dladdr F
+GLIBC_2.33 dladdr1 F
GLIBC_2.33 dlclose F
GLIBC_2.33 dlerror F
GLIBC_2.33 dlmopen F
@@ -2109,6 +2110,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
index 2710b64293..2b91d9886c 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.33 dladdr1 F
GLIBC_2.33 dlinfo F
GLIBC_2.33 dlopen F
GLIBC_2.33 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 2acb8db062..d2cde862c3 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -698,6 +698,7 @@ GLIBC_2.27 dirname F
GLIBC_2.27 div F
GLIBC_2.27 dl_iterate_phdr F
GLIBC_2.27 dladdr F
+GLIBC_2.27 dladdr1 F
GLIBC_2.27 dlclose F
GLIBC_2.27 dlerror F
GLIBC_2.27 dlmopen F
@@ -2309,6 +2310,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
index c0d8307937..8e30134591 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.27 dladdr1 F
GLIBC_2.27 dlinfo F
GLIBC_2.27 dlopen F
GLIBC_2.27 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index b2666bd723..30a533b622 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2268,6 +2268,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
+GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2396,6 +2397,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
index 795a5abd45..5f81d13a21 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 dlopen F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
-GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 6ea55ebcdf..77b21973db 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2157,6 +2157,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x208
+GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2282,6 +2283,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
index 45decb94f9..f882403fe2 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.2 dlopen F
GLIBC_2.2 dlvsym F
-GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 7d3680520a..2700b6bf98 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2135,6 +2135,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
+GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2251,6 +2252,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
index 795a5abd45..5f81d13a21 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 dlopen F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
-GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 51a77c9553..de6251d508 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2135,6 +2135,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
+GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2248,6 +2249,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
index 795a5abd45..5f81d13a21 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 dlopen F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
-GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 45053a171a..7ada64410a 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2262,6 +2262,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
+GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2389,6 +2390,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
index 795a5abd45..5f81d13a21 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 dlopen F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
-GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 30e7e6baa0..75fb6e4bbe 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2186,6 +2186,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x208
+GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2301,6 +2302,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
index 795a5abd45..5f81d13a21 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 dlopen F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
-GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index abaf3ee9de..d94135174a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2145,6 +2145,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x208
+GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2260,6 +2261,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
index 91f878e859..6b11f673cc 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.2.5 dlopen F
GLIBC_2.2.5 dlvsym F
-GLIBC_2.3.3 dladdr1 F
GLIBC_2.3.3 dlinfo F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index b30feb4888..989f276480 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -723,6 +723,7 @@ GLIBC_2.16 dirname F
GLIBC_2.16 div F
GLIBC_2.16 dl_iterate_phdr F
GLIBC_2.16 dladdr F
+GLIBC_2.16 dladdr1 F
GLIBC_2.16 dlclose F
GLIBC_2.16 dlerror F
GLIBC_2.16 dlmopen F
@@ -2363,6 +2364,7 @@ GLIBC_2.34 cnd_signal F
GLIBC_2.34 cnd_timedwait F
GLIBC_2.34 cnd_wait F
GLIBC_2.34 dladdr F
+GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
index b37e9ff78c..fe8858d4ec 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.16 dladdr1 F
GLIBC_2.16 dlinfo F
GLIBC_2.16 dlopen F
GLIBC_2.16 dlvsym F
--
2.31.1
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH 10/16] dlfcn: Move dladdr1 into libc
2021-05-31 14:12 ` [PATCH 10/16] dlfcn: Move dladdr1 " Florian Weimer
@ 2021-06-02 14:29 ` Adhemerval Zanella
0 siblings, 0 replies; 39+ messages in thread
From: Adhemerval Zanella @ 2021-06-02 14:29 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 31/05/2021 11:12, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> dlfcn/Makefile | 3 ++-
> dlfcn/Versions | 6 ++++-
> dlfcn/dladdr1.c | 22 ++++++-------------
> dlfcn/sdladdr1.c | 1 -
> include/dlfcn.h | 3 +--
> 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, 81 insertions(+), 50 deletions(-)
> delete mode 100644 dlfcn/sdladdr1.c
>
> diff --git a/dlfcn/Makefile b/dlfcn/Makefile
> index f7ffd242dc..1dfa247538 100644
> --- a/dlfcn/Makefile
> +++ b/dlfcn/Makefile
> @@ -21,12 +21,13 @@ include ../Makeconfig
>
> headers := bits/dlfcn.h dlfcn.h
> extra-libs := libdl
> -libdl-routines := dlopen dlvsym dladdr1 dlinfo \
> +libdl-routines := dlopen dlvsym dlinfo \
> dlfcn
> routines := $(patsubst %,s%,$(filter-out dlfcn,$(libdl-routines)))
> elide-routines.os := $(routines)
> routines += \
> dladdr \
> + dladdr1 \
> dlclose \
> dlerror \
> dlmopen \
Ok.
> diff --git a/dlfcn/Versions b/dlfcn/Versions
> index 584035e203..acd9402b34 100644
> --- a/dlfcn/Versions
> +++ b/dlfcn/Versions
> @@ -5,10 +5,14 @@ libc {
> dlerror;
> dlsym;
> }
> + GLIBC_2.3.3 {
> + dladdr1;
> + }
> GLIBC_2.3.4 {
> dlmopen;
> }
> GLIBC_2.34 {
> + dladdr1;
> dladdr;
> dlclose;
> dlerror;
> @@ -29,7 +33,7 @@ libdl {
> dlopen; dlvsym;
> }
> GLIBC_2.3.3 {
> - dladdr1; dlinfo;
> + dlinfo;
> }
> GLIBC_2.3.4 {
> __libdl_version_placeholder;
Ok.
> diff --git a/dlfcn/dladdr1.c b/dlfcn/dladdr1.c
> index 98cd60d78e..203d6398e4 100644
> --- a/dlfcn/dladdr1.c
> +++ b/dlfcn/dladdr1.c
> @@ -18,24 +18,15 @@
>
> #include <dlfcn.h>
> #include <ldsodefs.h>
> -
> -#if !defined SHARED && IS_IN (libdl)
> -
> -int
> -dladdr1 (const void *address, Dl_info *info, void **extra, int flags)
> -{
> - return __dladdr1 (address, info, extra, flags);
> -}
> -
> -#else
> +#include <shlib-compat.h>
>
> int
> __dladdr1 (const void *address, Dl_info *info, void **extra, int flags)
> {
> -# ifdef SHARED
> +#ifdef SHARED
> if (!rtld_active ())
> return _dlfcn_hook->dladdr1 (address, info, extra, flags);
> -# endif
> +#endif
>
> switch (flags)
> {
> @@ -48,7 +39,8 @@ __dladdr1 (const void *address, Dl_info *info, void **extra, int flags)
> return _dl_addr (address, info, (struct link_map **) extra, NULL);
> }
> }
> -# ifdef SHARED
> -strong_alias (__dladdr1, dladdr1)
> -# endif
> +versioned_symbol (libc, __dladdr1, dladdr1, GLIBC_2_34);
> +
> +#if OTHER_SHLIB_COMPAT (libdl, GLIBC_2_3_3, GLIBC_2_34)
> +compat_symbol (libdl, __dladdr1, dladdr1, GLIBC_2_3_3);
> #endif
Ok.
> diff --git a/dlfcn/sdladdr1.c b/dlfcn/sdladdr1.c
> deleted file mode 100644
> index a655979bcf..0000000000
> --- a/dlfcn/sdladdr1.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include "dladdr1.c"
Ok.
> diff --git a/include/dlfcn.h b/include/dlfcn.h
> index 27309ab1dd..dc5193acbb 100644
> --- a/include/dlfcn.h
> +++ b/include/dlfcn.h
> @@ -142,8 +142,7 @@ extern void *__dlvsym (void *handle, const char *name, const char *version
> attribute_hidden;
> extern int __dladdr (const void *address, Dl_info *info);
> extern int __dladdr1 (const void *address, Dl_info *info,
> - void **extra_info, int flags)
> - attribute_hidden;
> + void **extra_info, int flags);
> extern int __dlinfo (void *handle, int request, void *arg) attribute_hidden;
>
> #ifndef SHARED
Ok.
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
> index 9827bea1e9..172e269fe9 100644
> --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -2144,6 +2144,7 @@ GLIBC_2.3.2 lchmod F
> GLIBC_2.3.2 setresgid F
> GLIBC_2.3.2 setresuid F
> GLIBC_2.3.2 strptime_l F
> +GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 inet6_option_alloc F
> GLIBC_2.3.3 inet6_option_append F
> GLIBC_2.3.3 inet6_option_find F
> @@ -2213,6 +2214,7 @@ GLIBC_2.34 __isnanf128 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 _hurd_libc_proc_init F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/mach/hurd/i386/libdl.abilist b/sysdeps/mach/hurd/i386/libdl.abilist
> index d2c315509d..9e890a9815 100644
> --- a/sysdeps/mach/hurd/i386/libdl.abilist
> +++ b/sysdeps/mach/hurd/i386/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.2.6 dlopen F
> GLIBC_2.2.6 dlvsym F
> -GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 9b0f917944..f09046237f 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -719,6 +719,7 @@ GLIBC_2.17 dirname F
> GLIBC_2.17 div F
> GLIBC_2.17 dl_iterate_phdr F
> GLIBC_2.17 dladdr F
> +GLIBC_2.17 dladdr1 F
> GLIBC_2.17 dlclose F
> GLIBC_2.17 dlerror F
> GLIBC_2.17 dlmopen F
> @@ -2348,6 +2349,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
> index 391b72c100..05eeace024 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.17 dladdr1 F
> GLIBC_2.17 dlinfo F
> GLIBC_2.17 dlopen F
> GLIBC_2.17 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 5b24169acf..1523233c99 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2297,6 +2297,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x208
> +GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2440,6 +2441,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libdl.abilist b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
> index 795a5abd45..5f81d13a21 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> -GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 5e28b203cd..cd6a555f6b 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -664,6 +664,7 @@ GLIBC_2.32 dirname F
> GLIBC_2.32 div F
> GLIBC_2.32 dl_iterate_phdr F
> GLIBC_2.32 dladdr F
> +GLIBC_2.32 dladdr1 F
> GLIBC_2.32 dlclose F
> GLIBC_2.32 dlerror F
> GLIBC_2.32 dlmopen F
> @@ -2107,6 +2108,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/arc/libdl.abilist b/sysdeps/unix/sysv/linux/arc/libdl.abilist
> index b23f34195f..d3afdc0308 100644
> --- a/sysdeps/unix/sysv/linux/arc/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.32 dladdr1 F
> GLIBC_2.32 dlinfo F
> GLIBC_2.32 dlopen F
> GLIBC_2.32 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index ea14c3cd99..07e8854909 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -208,6 +208,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> @@ -1023,6 +1024,7 @@ GLIBC_2.4 dirname F
> GLIBC_2.4 div F
> GLIBC_2.4 dl_iterate_phdr F
> GLIBC_2.4 dladdr F
> +GLIBC_2.4 dladdr1 F
> GLIBC_2.4 dlclose F
> GLIBC_2.4 dlerror F
> GLIBC_2.4 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
> index 22691633fb..c24e10d9c5 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.4 dladdr1 F
> GLIBC_2.4 dlinfo F
> GLIBC_2.4 dlopen F
> GLIBC_2.4 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 5ff5eb7d04..2f0fef9d7d 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -205,6 +205,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> @@ -1020,6 +1021,7 @@ GLIBC_2.4 dirname F
> GLIBC_2.4 div F
> GLIBC_2.4 dl_iterate_phdr F
> GLIBC_2.4 dladdr F
> +GLIBC_2.4 dladdr1 F
> GLIBC_2.4 dlclose F
> GLIBC_2.4 dlerror F
> GLIBC_2.4 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
> index 22691633fb..c24e10d9c5 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.4 dladdr1 F
> GLIBC_2.4 dlinfo F
> GLIBC_2.4 dlopen F
> GLIBC_2.4 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 8f36e5c844..97ba0642d5 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -700,6 +700,7 @@ GLIBC_2.29 dirname F
> GLIBC_2.29 div F
> GLIBC_2.29 dl_iterate_phdr F
> GLIBC_2.29 dladdr F
> +GLIBC_2.29 dladdr1 F
> GLIBC_2.29 dlclose F
> GLIBC_2.29 dlerror F
> GLIBC_2.29 dlmopen F
> @@ -2291,6 +2292,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/csky/libdl.abilist b/sysdeps/unix/sysv/linux/csky/libdl.abilist
> index 51061cb361..5cb45f50d3 100644
> --- a/sysdeps/unix/sysv/linux/csky/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.29 dladdr1 F
> GLIBC_2.29 dlinfo F
> GLIBC_2.29 dlopen F
> GLIBC_2.29 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 0302aeae56..257072a63a 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -2131,6 +2131,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> +GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2244,6 +2245,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libdl.abilist b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
> index 795a5abd45..5f81d13a21 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> -GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 233096afbd..8b0a2381bb 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2312,6 +2312,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> +GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2428,6 +2429,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/i386/libdl.abilist b/sysdeps/unix/sysv/linux/i386/libdl.abilist
> index 795a5abd45..5f81d13a21 100644
> --- a/sysdeps/unix/sysv/linux/i386/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libdl.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> -GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 704fe57ca2..a2fd7b6f0e 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -2164,6 +2164,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x208
> +GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2280,6 +2281,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libdl.abilist b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
> index 795a5abd45..5f81d13a21 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> -GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index dc32b7561b..ec0f948a22 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -209,6 +209,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> @@ -1012,6 +1013,7 @@ GLIBC_2.4 dirname F
> GLIBC_2.4 div F
> GLIBC_2.4 dl_iterate_phdr F
> GLIBC_2.4 dladdr F
> +GLIBC_2.4 dladdr1 F
> GLIBC_2.4 dlclose F
> GLIBC_2.4 dlerror F
> GLIBC_2.4 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
> index 22691633fb..c24e10d9c5 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.4 dladdr1 F
> GLIBC_2.4 dlinfo F
> GLIBC_2.4 dlopen F
> GLIBC_2.4 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 0ad41be521..2d69d956a1 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2255,6 +2255,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> +GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2371,6 +2372,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
> index 795a5abd45..5f81d13a21 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 dlopen F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> -GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index ea61742cf2..7e6a7b1645 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -721,6 +721,7 @@ GLIBC_2.18 dirname F
> GLIBC_2.18 div F
> GLIBC_2.18 dl_iterate_phdr F
> GLIBC_2.18 dladdr F
> +GLIBC_2.18 dladdr1 F
> GLIBC_2.18 dlclose F
> GLIBC_2.18 dlerror F
> GLIBC_2.18 dlmopen F
> @@ -2342,6 +2343,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
> index 409e59cf21..c042c043d6 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.18 dladdr1 F
> GLIBC_2.18 dlinfo F
> GLIBC_2.18 dlopen F
> GLIBC_2.18 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 3b09b44dd8..01bc9594bb 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -721,6 +721,7 @@ GLIBC_2.18 dirname F
> GLIBC_2.18 div F
> GLIBC_2.18 dl_iterate_phdr F
> GLIBC_2.18 dladdr F
> +GLIBC_2.18 dladdr1 F
> GLIBC_2.18 dlclose F
> GLIBC_2.18 dlerror F
> GLIBC_2.18 dlmopen F
> @@ -2339,6 +2340,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
> index 409e59cf21..c042c043d6 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.18 dladdr1 F
> GLIBC_2.18 dlinfo F
> GLIBC_2.18 dlopen F
> GLIBC_2.18 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index adde44be66..b13544403e 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2221,6 +2221,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x200
> +GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2336,6 +2337,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
> index 04aca378ef..cb7bf28178 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 dlopen F
> GLIBC_2.2 dlopen F
> GLIBC_2.2 dlvsym F
> -GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index a4c9a17e9e..e76cbe2a87 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2219,6 +2219,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x200
> +GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2334,6 +2335,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
> index 04aca378ef..cb7bf28178 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 dlopen F
> GLIBC_2.2 dlopen F
> GLIBC_2.2 dlvsym F
> -GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 214e0db752..5ac0d47413 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2227,6 +2227,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x200
> +GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2342,6 +2343,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index b09d4058a2..07d121d225 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2220,6 +2220,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x400
> +GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2336,6 +2337,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 748f12c254..a27cb9cf18 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -764,6 +764,7 @@ GLIBC_2.21 dirname F
> GLIBC_2.21 div F
> GLIBC_2.21 dl_iterate_phdr F
> GLIBC_2.21 dladdr F
> +GLIBC_2.21 dladdr1 F
> GLIBC_2.21 dlclose F
> GLIBC_2.21 dlerror F
> GLIBC_2.21 dlmopen F
> @@ -2381,6 +2382,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libdl.abilist b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
> index 90aaa0b49b..9acd54fa38 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.21 dladdr1 F
> GLIBC_2.21 dlinfo F
> GLIBC_2.21 dlopen F
> GLIBC_2.21 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 4134f7ed41..1a1cbb94ce 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2259,6 +2259,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> +GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 getcontext F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> @@ -2398,6 +2399,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
> index 795a5abd45..5f81d13a21 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 dlopen F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> -GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 43baf50dca..9b9dc9ef3a 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2292,6 +2292,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> +GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 getcontext F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> @@ -2431,6 +2432,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index b3d27c2678..aad3704047 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -2111,6 +2111,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x208
> +GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2245,6 +2246,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
> index 8e709e5bc4..c27f19ac95 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.3 dlopen F
> GLIBC_2.3 dlvsym F
> -GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 60a6327f37..64a45a1c48 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -807,6 +807,7 @@ GLIBC_2.17 dirname F
> GLIBC_2.17 div F
> GLIBC_2.17 dl_iterate_phdr F
> GLIBC_2.17 dladdr F
> +GLIBC_2.17 dladdr1 F
> GLIBC_2.17 dlclose F
> GLIBC_2.17 dlerror F
> GLIBC_2.17 dlmopen F
> @@ -2544,6 +2545,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
> index 391b72c100..05eeace024 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.17 dladdr1 F
> GLIBC_2.17 dlinfo F
> GLIBC_2.17 dlopen F
> GLIBC_2.17 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index dccdf14b63..94c3bcf6e2 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -657,6 +657,7 @@ GLIBC_2.33 dirname F
> GLIBC_2.33 div F
> GLIBC_2.33 dl_iterate_phdr F
> GLIBC_2.33 dladdr F
> +GLIBC_2.33 dladdr1 F
> GLIBC_2.33 dlclose F
> GLIBC_2.33 dlerror F
> GLIBC_2.33 dlmopen F
> @@ -2109,6 +2110,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
> index 2710b64293..2b91d9886c 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.33 dladdr1 F
> GLIBC_2.33 dlinfo F
> GLIBC_2.33 dlopen F
> GLIBC_2.33 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 2acb8db062..d2cde862c3 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -698,6 +698,7 @@ GLIBC_2.27 dirname F
> GLIBC_2.27 div F
> GLIBC_2.27 dl_iterate_phdr F
> GLIBC_2.27 dladdr F
> +GLIBC_2.27 dladdr1 F
> GLIBC_2.27 dlclose F
> GLIBC_2.27 dlerror F
> GLIBC_2.27 dlmopen F
> @@ -2309,6 +2310,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
> index c0d8307937..8e30134591 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.27 dladdr1 F
> GLIBC_2.27 dlinfo F
> GLIBC_2.27 dlopen F
> GLIBC_2.27 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index b2666bd723..30a533b622 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2268,6 +2268,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> +GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2396,6 +2397,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
> index 795a5abd45..5f81d13a21 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 dlopen F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> -GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 6ea55ebcdf..77b21973db 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -2157,6 +2157,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x208
> +GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2282,6 +2283,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
> index 45decb94f9..f882403fe2 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.2 dlopen F
> GLIBC_2.2 dlvsym F
> -GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 7d3680520a..2700b6bf98 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -2135,6 +2135,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> +GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2251,6 +2252,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
> index 795a5abd45..5f81d13a21 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 dlopen F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> -GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 51a77c9553..de6251d508 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -2135,6 +2135,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> +GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2248,6 +2249,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
> index 795a5abd45..5f81d13a21 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 dlopen F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> -GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 45053a171a..7ada64410a 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2262,6 +2262,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> +GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2389,6 +2390,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
> index 795a5abd45..5f81d13a21 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 dlopen F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> -GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 30e7e6baa0..75fb6e4bbe 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -2186,6 +2186,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x208
> +GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2301,6 +2302,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
> index 795a5abd45..5f81d13a21 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 dlopen F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> -GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index abaf3ee9de..d94135174a 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -2145,6 +2145,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x208
> +GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2260,6 +2261,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
> index 91f878e859..6b11f673cc 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.2.5 dlopen F
> GLIBC_2.2.5 dlvsym F
> -GLIBC_2.3.3 dladdr1 F
> GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index b30feb4888..989f276480 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -723,6 +723,7 @@ GLIBC_2.16 dirname F
> GLIBC_2.16 div F
> GLIBC_2.16 dl_iterate_phdr F
> GLIBC_2.16 dladdr F
> +GLIBC_2.16 dladdr1 F
> GLIBC_2.16 dlclose F
> GLIBC_2.16 dlerror F
> GLIBC_2.16 dlmopen F
> @@ -2363,6 +2364,7 @@ GLIBC_2.34 cnd_signal F
> GLIBC_2.34 cnd_timedwait F
> GLIBC_2.34 cnd_wait F
> GLIBC_2.34 dladdr F
> +GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlmopen F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
> index b37e9ff78c..fe8858d4ec 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.16 dladdr1 F
> GLIBC_2.16 dlinfo F
> GLIBC_2.16 dlopen F
> GLIBC_2.16 dlvsym F
>
Ok.
^ permalink raw reply [flat|nested] 39+ messages in thread
* [PATCH 11/16] dlfcn: Move dlinfo into libc
2021-05-31 14:10 [PATCH v3 00/16] Move libdl into libc Florian Weimer
` (9 preceding siblings ...)
2021-05-31 14:12 ` [PATCH 10/16] dlfcn: Move dladdr1 " Florian Weimer
@ 2021-05-31 14:12 ` Florian Weimer
2021-06-02 14:31 ` Adhemerval Zanella
2021-05-31 14:12 ` [PATCH 12/16] dlfcn: Move dlvsym " Florian Weimer
` (4 subsequent siblings)
15 siblings, 1 reply; 39+ messages in thread
From: Florian Weimer @ 2021-05-31 14:12 UTC (permalink / raw)
To: libc-alpha
The symbol was moved using scripts/move-symbol-to-libc.py.
---
dlfcn/Makefile | 3 +-
dlfcn/Versions | 4 +-
dlfcn/dlfcn.c | 6 +++
dlfcn/dlinfo.c | 45 ++++++++++---------
dlfcn/sdlinfo.c | 1 -
include/dlfcn.h | 2 +-
sysdeps/mach/hurd/i386/libc.abilist | 2 +
sysdeps/mach/hurd/i386/libdl.abilist | 2 +-
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 | 2 +-
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 | 2 +-
sysdeps/unix/sysv/linux/i386/libc.abilist | 2 +
sysdeps/unix/sysv/linux/i386/libdl.abilist | 2 +-
sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 +
sysdeps/unix/sysv/linux/ia64/libdl.abilist | 2 +-
.../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 | 2 +-
.../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 | 2 +-
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 +
.../unix/sysv/linux/mips/mips64/libdl.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 +
sysdeps/unix/sysv/linux/nios2/libdl.abilist | 1 -
.../linux/powerpc/powerpc32/fpu/libc.abilist | 2 +
.../linux/powerpc/powerpc32/libdl.abilist | 2 +-
.../powerpc/powerpc32/nofpu/libc.abilist | 2 +
.../linux/powerpc/powerpc64/be/libc.abilist | 2 +
.../linux/powerpc/powerpc64/be/libdl.abilist | 2 +-
.../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 | 2 +-
.../unix/sysv/linux/s390/s390-64/libc.abilist | 2 +
.../sysv/linux/s390/s390-64/libdl.abilist | 2 +-
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 +
sysdeps/unix/sysv/linux/sh/be/libdl.abilist | 2 +-
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 +
sysdeps/unix/sysv/linux/sh/le/libdl.abilist | 2 +-
.../sysv/linux/sparc/sparc32/libc.abilist | 2 +
.../sysv/linux/sparc/sparc32/libdl.abilist | 2 +-
.../sysv/linux/sparc/sparc64/libc.abilist | 2 +
.../sysv/linux/sparc/sparc64/libdl.abilist | 2 +-
.../unix/sysv/linux/x86_64/64/libc.abilist | 2 +
.../unix/sysv/linux/x86_64/64/libdl.abilist | 2 +-
.../unix/sysv/linux/x86_64/x32/libc.abilist | 2 +
.../unix/sysv/linux/x86_64/x32/libdl.abilist | 1 -
69 files changed, 120 insertions(+), 54 deletions(-)
delete mode 100644 dlfcn/sdlinfo.c
diff --git a/dlfcn/Makefile b/dlfcn/Makefile
index 1dfa247538..c65cdc2e2b 100644
--- a/dlfcn/Makefile
+++ b/dlfcn/Makefile
@@ -21,7 +21,7 @@ include ../Makeconfig
headers := bits/dlfcn.h dlfcn.h
extra-libs := libdl
-libdl-routines := dlopen dlvsym dlinfo \
+libdl-routines := dlopen dlvsym \
dlfcn
routines := $(patsubst %,s%,$(filter-out dlfcn,$(libdl-routines)))
elide-routines.os := $(routines)
@@ -30,6 +30,7 @@ routines += \
dladdr1 \
dlclose \
dlerror \
+ dlinfo \
dlmopen \
dlsym \
libc_dlerror_result \
diff --git a/dlfcn/Versions b/dlfcn/Versions
index acd9402b34..ca9a3e5591 100644
--- a/dlfcn/Versions
+++ b/dlfcn/Versions
@@ -7,6 +7,7 @@ libc {
}
GLIBC_2.3.3 {
dladdr1;
+ dlinfo;
}
GLIBC_2.3.4 {
dlmopen;
@@ -16,6 +17,7 @@ libc {
dladdr;
dlclose;
dlerror;
+ dlinfo;
dlmopen;
dlsym;
}
@@ -33,7 +35,7 @@ libdl {
dlopen; dlvsym;
}
GLIBC_2.3.3 {
- dlinfo;
+ __libdl_version_placeholder;
}
GLIBC_2.3.4 {
__libdl_version_placeholder;
diff --git a/dlfcn/dlfcn.c b/dlfcn/dlfcn.c
index 90cdee0903..55ecfcabbe 100644
--- a/dlfcn/dlfcn.c
+++ b/dlfcn/dlfcn.c
@@ -48,6 +48,12 @@ __libdl_version_placeholder_1 (void)
{
}
+#if SHLIB_COMPAT (libdl, GLIBC_2_3_3, GLIBC_2_34) \
+ && ABI_libdl_GLIBC_2_3_3 != ABI_libdl_GLIBC_2_1
+compat_symbol (libdl, __libdl_version_placeholder_1,
+ __libdl_version_placeholder, GLIBC_2_3_3);
+#endif
+
#if SHLIB_COMPAT (libdl, GLIBC_2_3_4, GLIBC_2_34) \
&& ABI_libdl_GLIBC_2_3_4 != ABI_libdl_GLIBC_2_1
compat_symbol (libdl, __libdl_version_placeholder_1,
diff --git a/dlfcn/dlinfo.c b/dlfcn/dlinfo.c
index 9fb2a1405c..15fcbc5dc1 100644
--- a/dlfcn/dlinfo.c
+++ b/dlfcn/dlinfo.c
@@ -20,18 +20,8 @@
#include <link.h>
#include <ldsodefs.h>
#include <libintl.h>
-
-#if !defined SHARED && IS_IN (libdl)
-
-int
-dlinfo (void *handle, int request, void *arg)
-{
- return __dlinfo (handle, request, arg);
-}
-
-#else
-
-# include <dl-tls.h>
+#include <dl-tls.h>
+#include <shlib-compat.h>
struct dlinfo_args
{
@@ -88,18 +78,33 @@ dlinfo_doit (void *argsblock)
}
}
+static int
+dlinfo_implementation (void *handle, int request, void *arg)
+{
+ struct dlinfo_args args = { handle, request, arg };
+ return _dlerror_run (&dlinfo_doit, &args) ? -1 : 0;
+}
+
+#ifdef SHARED
int
-__dlinfo (void *handle, int request, void *arg)
+___dlinfo (void *handle, int request, void *arg)
{
-# ifdef SHARED
if (!rtld_active ())
return _dlfcn_hook->dlinfo (handle, request, arg);
-# endif
-
- struct dlinfo_args args = { handle, request, arg };
- return _dlerror_run (&dlinfo_doit, &args) ? -1 : 0;
+ else
+ return dlinfo_implementation (handle, request, arg);
}
-# ifdef SHARED
-strong_alias (__dlinfo, dlinfo)
+versioned_symbol (libc, ___dlinfo, dlinfo, GLIBC_2_34);
+
+# if OTHER_SHLIB_COMPAT (libdl, GLIBC_2_3_3, GLIBC_2_34)
+compat_symbol (libc, ___dlinfo, dlinfo, GLIBC_2_3_3);
# endif
+#else /* !SHARED */
+/* Also used with _dlfcn_hook. */
+int
+__dlinfo (void *handle, int request, void *arg)
+{
+ return dlinfo_implementation (handle, request, arg);
+}
+weak_alias (__dlinfo, dlinfo)
#endif
diff --git a/dlfcn/sdlinfo.c b/dlfcn/sdlinfo.c
deleted file mode 100644
index dcc257dd1f..0000000000
--- a/dlfcn/sdlinfo.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "dlinfo.c"
diff --git a/include/dlfcn.h b/include/dlfcn.h
index dc5193acbb..e898c17792 100644
--- a/include/dlfcn.h
+++ b/include/dlfcn.h
@@ -143,7 +143,7 @@ extern void *__dlvsym (void *handle, const char *name, const char *version
extern int __dladdr (const void *address, Dl_info *info);
extern int __dladdr1 (const void *address, Dl_info *info,
void **extra_info, int flags);
-extern int __dlinfo (void *handle, int request, void *arg) attribute_hidden;
+extern int __dlinfo (void *handle, int request, void *arg);
#ifndef SHARED
struct link_map;
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 172e269fe9..f4adfc6e5f 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -2145,6 +2145,7 @@ GLIBC_2.3.2 setresgid F
GLIBC_2.3.2 setresuid F
GLIBC_2.3.2 strptime_l F
GLIBC_2.3.3 dladdr1 F
+GLIBC_2.3.3 dlinfo F
GLIBC_2.3.3 inet6_option_alloc F
GLIBC_2.3.3 inet6_option_append F
GLIBC_2.3.3 inet6_option_find F
@@ -2217,6 +2218,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/mach/hurd/i386/libdl.abilist b/sysdeps/mach/hurd/i386/libdl.abilist
index 9e890a9815..3a60902d2a 100644
--- a/sysdeps/mach/hurd/i386/libdl.abilist
+++ b/sysdeps/mach/hurd/i386/libdl.abilist
@@ -1,4 +1,4 @@
GLIBC_2.2.6 dlopen F
GLIBC_2.2.6 dlvsym F
-GLIBC_2.3.3 dlinfo F
+GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index f09046237f..a962e2966c 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -722,6 +722,7 @@ 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 dlsym F
GLIBC_2.17 dngettext F
@@ -2352,6 +2353,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
index 05eeace024..840db53856 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
@@ -1,3 +1,2 @@
-GLIBC_2.17 dlinfo F
GLIBC_2.17 dlopen F
GLIBC_2.17 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 1523233c99..b4cab19c7e 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2298,6 +2298,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x208
GLIBC_2.3.3 dladdr1 F
+GLIBC_2.3.3 dlinfo F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2444,6 +2445,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/alpha/libdl.abilist b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
index 5f81d13a21..4722aad8b2 100644
--- a/sysdeps/unix/sysv/linux/alpha/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
@@ -1,5 +1,5 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
-GLIBC_2.3.3 dlinfo F
+GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index cd6a555f6b..4e5440b6ae 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -667,6 +667,7 @@ 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 dlsym F
GLIBC_2.32 dngettext F
@@ -2111,6 +2112,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/arc/libdl.abilist b/sysdeps/unix/sysv/linux/arc/libdl.abilist
index d3afdc0308..dc71de1647 100644
--- a/sysdeps/unix/sysv/linux/arc/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libdl.abilist
@@ -1,3 +1,2 @@
-GLIBC_2.32 dlinfo F
GLIBC_2.32 dlopen F
GLIBC_2.32 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 07e8854909..45fc27223e 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -211,6 +211,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
@@ -1027,6 +1028,7 @@ 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 dlsym F
GLIBC_2.4 dngettext F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
index c24e10d9c5..763c28ead6 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
@@ -1,3 +1,2 @@
-GLIBC_2.4 dlinfo F
GLIBC_2.4 dlopen F
GLIBC_2.4 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 2f0fef9d7d..bfe4d7ede0 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -208,6 +208,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
@@ -1024,6 +1025,7 @@ 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 dlsym F
GLIBC_2.4 dngettext F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
index c24e10d9c5..763c28ead6 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
@@ -1,3 +1,2 @@
-GLIBC_2.4 dlinfo F
GLIBC_2.4 dlopen F
GLIBC_2.4 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 97ba0642d5..f773509d7f 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -703,6 +703,7 @@ 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 dlsym F
GLIBC_2.29 dngettext F
@@ -2295,6 +2296,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/csky/libdl.abilist b/sysdeps/unix/sysv/linux/csky/libdl.abilist
index 5cb45f50d3..a143948a4c 100644
--- a/sysdeps/unix/sysv/linux/csky/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libdl.abilist
@@ -1,3 +1,2 @@
-GLIBC_2.29 dlinfo F
GLIBC_2.29 dlopen F
GLIBC_2.29 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 257072a63a..3050951d35 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2132,6 +2132,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
GLIBC_2.3.3 dladdr1 F
+GLIBC_2.3.3 dlinfo F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2248,6 +2249,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/hppa/libdl.abilist b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
index 5f81d13a21..4722aad8b2 100644
--- a/sysdeps/unix/sysv/linux/hppa/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
@@ -1,5 +1,5 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
-GLIBC_2.3.3 dlinfo F
+GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 8b0a2381bb..0be412ab6b 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2313,6 +2313,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
GLIBC_2.3.3 dladdr1 F
+GLIBC_2.3.3 dlinfo F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2432,6 +2433,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/i386/libdl.abilist b/sysdeps/unix/sysv/linux/i386/libdl.abilist
index 5f81d13a21..4722aad8b2 100644
--- a/sysdeps/unix/sysv/linux/i386/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libdl.abilist
@@ -1,5 +1,5 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
-GLIBC_2.3.3 dlinfo F
+GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index a2fd7b6f0e..ad6bfa0d2a 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2165,6 +2165,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x208
GLIBC_2.3.3 dladdr1 F
+GLIBC_2.3.3 dlinfo F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2284,6 +2285,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/ia64/libdl.abilist b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
index 5f81d13a21..4722aad8b2 100644
--- a/sysdeps/unix/sysv/linux/ia64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
@@ -1,5 +1,5 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
-GLIBC_2.3.3 dlinfo F
+GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index ec0f948a22..bb62cc7a4f 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -212,6 +212,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
@@ -1016,6 +1017,7 @@ 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 dlsym F
GLIBC_2.4 dngettext F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
index c24e10d9c5..763c28ead6 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
@@ -1,3 +1,2 @@
-GLIBC_2.4 dlinfo F
GLIBC_2.4 dlopen F
GLIBC_2.4 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 2d69d956a1..c313cfbc58 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2256,6 +2256,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
GLIBC_2.3.3 dladdr1 F
+GLIBC_2.3.3 dlinfo F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2375,6 +2376,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
index 5f81d13a21..4722aad8b2 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
@@ -1,5 +1,5 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
-GLIBC_2.3.3 dlinfo F
+GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 7e6a7b1645..e841dcad21 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -724,6 +724,7 @@ 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 dlsym F
GLIBC_2.18 dngettext F
@@ -2346,6 +2347,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
index c042c043d6..327d8ad43b 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
@@ -1,3 +1,2 @@
-GLIBC_2.18 dlinfo F
GLIBC_2.18 dlopen F
GLIBC_2.18 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 01bc9594bb..3d3e3d7fdb 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -724,6 +724,7 @@ 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 dlsym F
GLIBC_2.18 dngettext F
@@ -2343,6 +2344,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
index c042c043d6..327d8ad43b 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
@@ -1,3 +1,2 @@
-GLIBC_2.18 dlinfo F
GLIBC_2.18 dlopen F
GLIBC_2.18 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index b13544403e..9fe3e79ab1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2222,6 +2222,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x200
GLIBC_2.3.3 dladdr1 F
+GLIBC_2.3.3 dlinfo F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2340,6 +2341,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
index cb7bf28178..d10be39aa7 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
@@ -1,5 +1,5 @@
GLIBC_2.0 dlopen F
GLIBC_2.2 dlopen F
GLIBC_2.2 dlvsym F
-GLIBC_2.3.3 dlinfo F
+GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index e76cbe2a87..db04a7d0a7 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2220,6 +2220,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x200
GLIBC_2.3.3 dladdr1 F
+GLIBC_2.3.3 dlinfo F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2338,6 +2339,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
index cb7bf28178..d10be39aa7 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
@@ -1,5 +1,5 @@
GLIBC_2.0 dlopen F
GLIBC_2.2 dlopen F
GLIBC_2.2 dlvsym F
-GLIBC_2.3.3 dlinfo F
+GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 5ac0d47413..50b4c0cc57 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2228,6 +2228,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x200
GLIBC_2.3.3 dladdr1 F
+GLIBC_2.3.3 dlinfo F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2346,6 +2347,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 07d121d225..5d4e18b7f7 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2221,6 +2221,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x400
GLIBC_2.3.3 dladdr1 F
+GLIBC_2.3.3 dlinfo F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2340,6 +2341,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index a27cb9cf18..ef4d89fe97 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -767,6 +767,7 @@ 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 dlsym F
GLIBC_2.21 dngettext F
@@ -2385,6 +2386,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/nios2/libdl.abilist b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
index 9acd54fa38..3cecf1ebac 100644
--- a/sysdeps/unix/sysv/linux/nios2/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
@@ -1,3 +1,2 @@
-GLIBC_2.21 dlinfo F
GLIBC_2.21 dlopen F
GLIBC_2.21 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 1a1cbb94ce..32661d6341 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2260,6 +2260,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
GLIBC_2.3.3 dladdr1 F
+GLIBC_2.3.3 dlinfo F
GLIBC_2.3.3 getcontext F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2402,6 +2403,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
index 5f81d13a21..4722aad8b2 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
@@ -1,5 +1,5 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
-GLIBC_2.3.3 dlinfo F
+GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 9b9dc9ef3a..e12df18b1c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2293,6 +2293,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
GLIBC_2.3.3 dladdr1 F
+GLIBC_2.3.3 dlinfo F
GLIBC_2.3.3 getcontext F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2435,6 +2436,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index aad3704047..3262e1b917 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2112,6 +2112,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x208
GLIBC_2.3.3 dladdr1 F
+GLIBC_2.3.3 dlinfo F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2249,6 +2250,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
index c27f19ac95..ffbe9e75a3 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
@@ -1,4 +1,4 @@
GLIBC_2.3 dlopen F
GLIBC_2.3 dlvsym F
-GLIBC_2.3.3 dlinfo F
+GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 64a45a1c48..d166c4872c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -810,6 +810,7 @@ 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 dlsym F
GLIBC_2.17 dngettext F
@@ -2548,6 +2549,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
index 05eeace024..840db53856 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
@@ -1,3 +1,2 @@
-GLIBC_2.17 dlinfo F
GLIBC_2.17 dlopen F
GLIBC_2.17 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 94c3bcf6e2..5ff4d22e1b 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -660,6 +660,7 @@ 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 dlsym F
GLIBC_2.33 dngettext F
@@ -2113,6 +2114,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
index 2b91d9886c..13eefd7db9 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
@@ -1,3 +1,2 @@
-GLIBC_2.33 dlinfo F
GLIBC_2.33 dlopen F
GLIBC_2.33 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index d2cde862c3..caa8247be3 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -701,6 +701,7 @@ 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 dlsym F
GLIBC_2.27 dngettext F
@@ -2313,6 +2314,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
index 8e30134591..c4b5356c4a 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
@@ -1,3 +1,2 @@
-GLIBC_2.27 dlinfo F
GLIBC_2.27 dlopen F
GLIBC_2.27 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 30a533b622..9d4562eeb7 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2269,6 +2269,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
GLIBC_2.3.3 dladdr1 F
+GLIBC_2.3.3 dlinfo F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2400,6 +2401,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
index 5f81d13a21..4722aad8b2 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
@@ -1,5 +1,5 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
-GLIBC_2.3.3 dlinfo F
+GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 77b21973db..14f9ab9a0e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2158,6 +2158,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x208
GLIBC_2.3.3 dladdr1 F
+GLIBC_2.3.3 dlinfo F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2286,6 +2287,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
index f882403fe2..5df5e71ebf 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
@@ -1,4 +1,4 @@
GLIBC_2.2 dlopen F
GLIBC_2.2 dlvsym F
-GLIBC_2.3.3 dlinfo F
+GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 2700b6bf98..9646c17111 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2136,6 +2136,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
GLIBC_2.3.3 dladdr1 F
+GLIBC_2.3.3 dlinfo F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2255,6 +2256,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
index 5f81d13a21..4722aad8b2 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
@@ -1,5 +1,5 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
-GLIBC_2.3.3 dlinfo F
+GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index de6251d508..84643a9d87 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2136,6 +2136,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
GLIBC_2.3.3 dladdr1 F
+GLIBC_2.3.3 dlinfo F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2252,6 +2253,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
index 5f81d13a21..4722aad8b2 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
@@ -1,5 +1,5 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
-GLIBC_2.3.3 dlinfo F
+GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 7ada64410a..dc3bbcde02 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2263,6 +2263,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
GLIBC_2.3.3 dladdr1 F
+GLIBC_2.3.3 dlinfo F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2393,6 +2394,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
index 5f81d13a21..4722aad8b2 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
@@ -1,5 +1,5 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
-GLIBC_2.3.3 dlinfo F
+GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 75fb6e4bbe..1170aa5c51 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2187,6 +2187,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x208
GLIBC_2.3.3 dladdr1 F
+GLIBC_2.3.3 dlinfo F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2305,6 +2306,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
index 5f81d13a21..4722aad8b2 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
@@ -1,5 +1,5 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
-GLIBC_2.3.3 dlinfo F
+GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index d94135174a..6aa4eedff4 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2146,6 +2146,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x208
GLIBC_2.3.3 dladdr1 F
+GLIBC_2.3.3 dlinfo F
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
GLIBC_2.3.3 gnu_dev_minor F
@@ -2264,6 +2265,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
index 6b11f673cc..00764915cf 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
@@ -1,4 +1,4 @@
GLIBC_2.2.5 dlopen F
GLIBC_2.2.5 dlvsym F
-GLIBC_2.3.3 dlinfo F
+GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 989f276480..dab4cbc677 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -726,6 +726,7 @@ 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 dlsym F
GLIBC_2.16 dngettext F
@@ -2367,6 +2368,7 @@ GLIBC_2.34 dladdr F
GLIBC_2.34 dladdr1 F
GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
+GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
index fe8858d4ec..645f87e571 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
@@ -1,3 +1,2 @@
-GLIBC_2.16 dlinfo F
GLIBC_2.16 dlopen F
GLIBC_2.16 dlvsym F
--
2.31.1
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH 11/16] dlfcn: Move dlinfo into libc
2021-05-31 14:12 ` [PATCH 11/16] dlfcn: Move dlinfo " Florian Weimer
@ 2021-06-02 14:31 ` Adhemerval Zanella
0 siblings, 0 replies; 39+ messages in thread
From: Adhemerval Zanella @ 2021-06-02 14:31 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 31/05/2021 11:12, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> dlfcn/Makefile | 3 +-
> dlfcn/Versions | 4 +-
> dlfcn/dlfcn.c | 6 +++
> dlfcn/dlinfo.c | 45 ++++++++++---------
> dlfcn/sdlinfo.c | 1 -
> include/dlfcn.h | 2 +-
> sysdeps/mach/hurd/i386/libc.abilist | 2 +
> sysdeps/mach/hurd/i386/libdl.abilist | 2 +-
> 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 | 2 +-
> 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 | 2 +-
> sysdeps/unix/sysv/linux/i386/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/i386/libdl.abilist | 2 +-
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/ia64/libdl.abilist | 2 +-
> .../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 | 2 +-
> .../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 | 2 +-
> .../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 +
> .../unix/sysv/linux/mips/mips64/libdl.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 +
> sysdeps/unix/sysv/linux/nios2/libdl.abilist | 1 -
> .../linux/powerpc/powerpc32/fpu/libc.abilist | 2 +
> .../linux/powerpc/powerpc32/libdl.abilist | 2 +-
> .../powerpc/powerpc32/nofpu/libc.abilist | 2 +
> .../linux/powerpc/powerpc64/be/libc.abilist | 2 +
> .../linux/powerpc/powerpc64/be/libdl.abilist | 2 +-
> .../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 | 2 +-
> .../unix/sysv/linux/s390/s390-64/libc.abilist | 2 +
> .../sysv/linux/s390/s390-64/libdl.abilist | 2 +-
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/sh/be/libdl.abilist | 2 +-
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/sh/le/libdl.abilist | 2 +-
> .../sysv/linux/sparc/sparc32/libc.abilist | 2 +
> .../sysv/linux/sparc/sparc32/libdl.abilist | 2 +-
> .../sysv/linux/sparc/sparc64/libc.abilist | 2 +
> .../sysv/linux/sparc/sparc64/libdl.abilist | 2 +-
> .../unix/sysv/linux/x86_64/64/libc.abilist | 2 +
> .../unix/sysv/linux/x86_64/64/libdl.abilist | 2 +-
> .../unix/sysv/linux/x86_64/x32/libc.abilist | 2 +
> .../unix/sysv/linux/x86_64/x32/libdl.abilist | 1 -
> 69 files changed, 120 insertions(+), 54 deletions(-)
> delete mode 100644 dlfcn/sdlinfo.c
>
> diff --git a/dlfcn/Makefile b/dlfcn/Makefile
> index 1dfa247538..c65cdc2e2b 100644
> --- a/dlfcn/Makefile
> +++ b/dlfcn/Makefile
> @@ -21,7 +21,7 @@ include ../Makeconfig
>
> headers := bits/dlfcn.h dlfcn.h
> extra-libs := libdl
> -libdl-routines := dlopen dlvsym dlinfo \
> +libdl-routines := dlopen dlvsym \
> dlfcn
> routines := $(patsubst %,s%,$(filter-out dlfcn,$(libdl-routines)))
> elide-routines.os := $(routines)
> @@ -30,6 +30,7 @@ routines += \
> dladdr1 \
> dlclose \
> dlerror \
> + dlinfo \
> dlmopen \
> dlsym \
> libc_dlerror_result \
Ok.
> diff --git a/dlfcn/Versions b/dlfcn/Versions
> index acd9402b34..ca9a3e5591 100644
> --- a/dlfcn/Versions
> +++ b/dlfcn/Versions
> @@ -7,6 +7,7 @@ libc {
> }
> GLIBC_2.3.3 {
> dladdr1;
> + dlinfo;
> }
> GLIBC_2.3.4 {
> dlmopen;
> @@ -16,6 +17,7 @@ libc {
> dladdr;
> dlclose;
> dlerror;
> + dlinfo;
> dlmopen;
> dlsym;
> }
> @@ -33,7 +35,7 @@ libdl {
> dlopen; dlvsym;
> }
> GLIBC_2.3.3 {
> - dlinfo;
> + __libdl_version_placeholder;
> }
> GLIBC_2.3.4 {
> __libdl_version_placeholder;
Ok.
> diff --git a/dlfcn/dlfcn.c b/dlfcn/dlfcn.c
> index 90cdee0903..55ecfcabbe 100644
> --- a/dlfcn/dlfcn.c
> +++ b/dlfcn/dlfcn.c
> @@ -48,6 +48,12 @@ __libdl_version_placeholder_1 (void)
> {
> }
>
> +#if SHLIB_COMPAT (libdl, GLIBC_2_3_3, GLIBC_2_34) \
> + && ABI_libdl_GLIBC_2_3_3 != ABI_libdl_GLIBC_2_1
> +compat_symbol (libdl, __libdl_version_placeholder_1,
> + __libdl_version_placeholder, GLIBC_2_3_3);
> +#endif
> +
> #if SHLIB_COMPAT (libdl, GLIBC_2_3_4, GLIBC_2_34) \
> && ABI_libdl_GLIBC_2_3_4 != ABI_libdl_GLIBC_2_1
> compat_symbol (libdl, __libdl_version_placeholder_1,
Ok.
> diff --git a/dlfcn/dlinfo.c b/dlfcn/dlinfo.c
> index 9fb2a1405c..15fcbc5dc1 100644
> --- a/dlfcn/dlinfo.c
> +++ b/dlfcn/dlinfo.c
> @@ -20,18 +20,8 @@
> #include <link.h>
> #include <ldsodefs.h>
> #include <libintl.h>
> -
> -#if !defined SHARED && IS_IN (libdl)
> -
> -int
> -dlinfo (void *handle, int request, void *arg)
> -{
> - return __dlinfo (handle, request, arg);
> -}
> -
> -#else
> -
> -# include <dl-tls.h>
> +#include <dl-tls.h>
> +#include <shlib-compat.h>
>
> struct dlinfo_args
> {
> @@ -88,18 +78,33 @@ dlinfo_doit (void *argsblock)
> }
> }
>
> +static int
> +dlinfo_implementation (void *handle, int request, void *arg)
> +{
> + struct dlinfo_args args = { handle, request, arg };
> + return _dlerror_run (&dlinfo_doit, &args) ? -1 : 0;
> +}
> +
> +#ifdef SHARED
> int
> -__dlinfo (void *handle, int request, void *arg)
> +___dlinfo (void *handle, int request, void *arg)
> {
> -# ifdef SHARED
> if (!rtld_active ())
> return _dlfcn_hook->dlinfo (handle, request, arg);
> -# endif
> -
> - struct dlinfo_args args = { handle, request, arg };
> - return _dlerror_run (&dlinfo_doit, &args) ? -1 : 0;
> + else
> + return dlinfo_implementation (handle, request, arg);
> }
> -# ifdef SHARED
> -strong_alias (__dlinfo, dlinfo)
> +versioned_symbol (libc, ___dlinfo, dlinfo, GLIBC_2_34);
> +
> +# if OTHER_SHLIB_COMPAT (libdl, GLIBC_2_3_3, GLIBC_2_34)
> +compat_symbol (libc, ___dlinfo, dlinfo, GLIBC_2_3_3);
> # endif
> +#else /* !SHARED */
> +/* Also used with _dlfcn_hook. */
> +int
> +__dlinfo (void *handle, int request, void *arg)
> +{
> + return dlinfo_implementation (handle, request, arg);
> +}
> +weak_alias (__dlinfo, dlinfo)
> #endif
Ok.
> diff --git a/dlfcn/sdlinfo.c b/dlfcn/sdlinfo.c
> deleted file mode 100644
> index dcc257dd1f..0000000000
> --- a/dlfcn/sdlinfo.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include "dlinfo.c"
Ok.
> diff --git a/include/dlfcn.h b/include/dlfcn.h
> index dc5193acbb..e898c17792 100644
> --- a/include/dlfcn.h
> +++ b/include/dlfcn.h
> @@ -143,7 +143,7 @@ extern void *__dlvsym (void *handle, const char *name, const char *version
> extern int __dladdr (const void *address, Dl_info *info);
> extern int __dladdr1 (const void *address, Dl_info *info,
> void **extra_info, int flags);
> -extern int __dlinfo (void *handle, int request, void *arg) attribute_hidden;
> +extern int __dlinfo (void *handle, int request, void *arg);
>
> #ifndef SHARED
> struct link_map;
Ok.
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
> index 172e269fe9..f4adfc6e5f 100644
> --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -2145,6 +2145,7 @@ GLIBC_2.3.2 setresgid F
> GLIBC_2.3.2 setresuid F
> GLIBC_2.3.2 strptime_l F
> GLIBC_2.3.3 dladdr1 F
> +GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.3 inet6_option_alloc F
> GLIBC_2.3.3 inet6_option_append F
> GLIBC_2.3.3 inet6_option_find F
> @@ -2217,6 +2218,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/mach/hurd/i386/libdl.abilist b/sysdeps/mach/hurd/i386/libdl.abilist
> index 9e890a9815..3a60902d2a 100644
> --- a/sysdeps/mach/hurd/i386/libdl.abilist
> +++ b/sysdeps/mach/hurd/i386/libdl.abilist
> @@ -1,4 +1,4 @@
> GLIBC_2.2.6 dlopen F
> GLIBC_2.2.6 dlvsym F
> -GLIBC_2.3.3 dlinfo F
> +GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index f09046237f..a962e2966c 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -722,6 +722,7 @@ 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 dlsym F
> GLIBC_2.17 dngettext F
> @@ -2352,6 +2353,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
> index 05eeace024..840db53856 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.17 dlinfo F
> GLIBC_2.17 dlopen F
> GLIBC_2.17 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 1523233c99..b4cab19c7e 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2298,6 +2298,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x208
> GLIBC_2.3.3 dladdr1 F
> +GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2444,6 +2445,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libdl.abilist b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
> index 5f81d13a21..4722aad8b2 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
> @@ -1,5 +1,5 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> -GLIBC_2.3.3 dlinfo F
> +GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index cd6a555f6b..4e5440b6ae 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -667,6 +667,7 @@ 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 dlsym F
> GLIBC_2.32 dngettext F
> @@ -2111,6 +2112,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/arc/libdl.abilist b/sysdeps/unix/sysv/linux/arc/libdl.abilist
> index d3afdc0308..dc71de1647 100644
> --- a/sysdeps/unix/sysv/linux/arc/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libdl.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.32 dlinfo F
> GLIBC_2.32 dlopen F
> GLIBC_2.32 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 07e8854909..45fc27223e 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -211,6 +211,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> @@ -1027,6 +1028,7 @@ 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 dlsym F
> GLIBC_2.4 dngettext F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
> index c24e10d9c5..763c28ead6 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.4 dlinfo F
> GLIBC_2.4 dlopen F
> GLIBC_2.4 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 2f0fef9d7d..bfe4d7ede0 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -208,6 +208,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> @@ -1024,6 +1025,7 @@ 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 dlsym F
> GLIBC_2.4 dngettext F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
> index c24e10d9c5..763c28ead6 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.4 dlinfo F
> GLIBC_2.4 dlopen F
> GLIBC_2.4 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 97ba0642d5..f773509d7f 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -703,6 +703,7 @@ 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 dlsym F
> GLIBC_2.29 dngettext F
> @@ -2295,6 +2296,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/csky/libdl.abilist b/sysdeps/unix/sysv/linux/csky/libdl.abilist
> index 5cb45f50d3..a143948a4c 100644
> --- a/sysdeps/unix/sysv/linux/csky/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libdl.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.29 dlinfo F
> GLIBC_2.29 dlopen F
> GLIBC_2.29 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 257072a63a..3050951d35 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -2132,6 +2132,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> GLIBC_2.3.3 dladdr1 F
> +GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2248,6 +2249,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libdl.abilist b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
> index 5f81d13a21..4722aad8b2 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
> @@ -1,5 +1,5 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> -GLIBC_2.3.3 dlinfo F
> +GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 8b0a2381bb..0be412ab6b 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2313,6 +2313,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> GLIBC_2.3.3 dladdr1 F
> +GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2432,6 +2433,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/i386/libdl.abilist b/sysdeps/unix/sysv/linux/i386/libdl.abilist
> index 5f81d13a21..4722aad8b2 100644
> --- a/sysdeps/unix/sysv/linux/i386/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libdl.abilist
> @@ -1,5 +1,5 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> -GLIBC_2.3.3 dlinfo F
> +GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index a2fd7b6f0e..ad6bfa0d2a 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -2165,6 +2165,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x208
> GLIBC_2.3.3 dladdr1 F
> +GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2284,6 +2285,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libdl.abilist b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
> index 5f81d13a21..4722aad8b2 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
> @@ -1,5 +1,5 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> -GLIBC_2.3.3 dlinfo F
> +GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index ec0f948a22..bb62cc7a4f 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -212,6 +212,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> @@ -1016,6 +1017,7 @@ 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 dlsym F
> GLIBC_2.4 dngettext F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
> index c24e10d9c5..763c28ead6 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.4 dlinfo F
> GLIBC_2.4 dlopen F
> GLIBC_2.4 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 2d69d956a1..c313cfbc58 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2256,6 +2256,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> GLIBC_2.3.3 dladdr1 F
> +GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2375,6 +2376,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
> index 5f81d13a21..4722aad8b2 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
> @@ -1,5 +1,5 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> -GLIBC_2.3.3 dlinfo F
> +GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 7e6a7b1645..e841dcad21 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -724,6 +724,7 @@ 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 dlsym F
> GLIBC_2.18 dngettext F
> @@ -2346,6 +2347,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
> index c042c043d6..327d8ad43b 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.18 dlinfo F
> GLIBC_2.18 dlopen F
> GLIBC_2.18 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 01bc9594bb..3d3e3d7fdb 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -724,6 +724,7 @@ 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 dlsym F
> GLIBC_2.18 dngettext F
> @@ -2343,6 +2344,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
> index c042c043d6..327d8ad43b 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.18 dlinfo F
> GLIBC_2.18 dlopen F
> GLIBC_2.18 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index b13544403e..9fe3e79ab1 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2222,6 +2222,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x200
> GLIBC_2.3.3 dladdr1 F
> +GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2340,6 +2341,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
> index cb7bf28178..d10be39aa7 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
> @@ -1,5 +1,5 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.2 dlopen F
> GLIBC_2.2 dlvsym F
> -GLIBC_2.3.3 dlinfo F
> +GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index e76cbe2a87..db04a7d0a7 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2220,6 +2220,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x200
> GLIBC_2.3.3 dladdr1 F
> +GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2338,6 +2339,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
> index cb7bf28178..d10be39aa7 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
> @@ -1,5 +1,5 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.2 dlopen F
> GLIBC_2.2 dlvsym F
> -GLIBC_2.3.3 dlinfo F
> +GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 5ac0d47413..50b4c0cc57 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2228,6 +2228,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x200
> GLIBC_2.3.3 dladdr1 F
> +GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2346,6 +2347,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 07d121d225..5d4e18b7f7 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2221,6 +2221,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x400
> GLIBC_2.3.3 dladdr1 F
> +GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2340,6 +2341,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index a27cb9cf18..ef4d89fe97 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -767,6 +767,7 @@ 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 dlsym F
> GLIBC_2.21 dngettext F
> @@ -2385,6 +2386,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libdl.abilist b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
> index 9acd54fa38..3cecf1ebac 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.21 dlinfo F
> GLIBC_2.21 dlopen F
> GLIBC_2.21 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 1a1cbb94ce..32661d6341 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2260,6 +2260,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> GLIBC_2.3.3 dladdr1 F
> +GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.3 getcontext F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> @@ -2402,6 +2403,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
> index 5f81d13a21..4722aad8b2 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
> @@ -1,5 +1,5 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> -GLIBC_2.3.3 dlinfo F
> +GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 9b9dc9ef3a..e12df18b1c 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2293,6 +2293,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> GLIBC_2.3.3 dladdr1 F
> +GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.3 getcontext F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> @@ -2435,6 +2436,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index aad3704047..3262e1b917 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -2112,6 +2112,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x208
> GLIBC_2.3.3 dladdr1 F
> +GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2249,6 +2250,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
> index c27f19ac95..ffbe9e75a3 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
> @@ -1,4 +1,4 @@
> GLIBC_2.3 dlopen F
> GLIBC_2.3 dlvsym F
> -GLIBC_2.3.3 dlinfo F
> +GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 64a45a1c48..d166c4872c 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -810,6 +810,7 @@ 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 dlsym F
> GLIBC_2.17 dngettext F
> @@ -2548,6 +2549,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
> index 05eeace024..840db53856 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.17 dlinfo F
> GLIBC_2.17 dlopen F
> GLIBC_2.17 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index 94c3bcf6e2..5ff4d22e1b 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -660,6 +660,7 @@ 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 dlsym F
> GLIBC_2.33 dngettext F
> @@ -2113,6 +2114,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
> index 2b91d9886c..13eefd7db9 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.33 dlinfo F
> GLIBC_2.33 dlopen F
> GLIBC_2.33 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index d2cde862c3..caa8247be3 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -701,6 +701,7 @@ 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 dlsym F
> GLIBC_2.27 dngettext F
> @@ -2313,6 +2314,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
> index 8e30134591..c4b5356c4a 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.27 dlinfo F
> GLIBC_2.27 dlopen F
> GLIBC_2.27 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 30a533b622..9d4562eeb7 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2269,6 +2269,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> GLIBC_2.3.3 dladdr1 F
> +GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2400,6 +2401,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
> index 5f81d13a21..4722aad8b2 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
> @@ -1,5 +1,5 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> -GLIBC_2.3.3 dlinfo F
> +GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 77b21973db..14f9ab9a0e 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -2158,6 +2158,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x208
> GLIBC_2.3.3 dladdr1 F
> +GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2286,6 +2287,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
> index f882403fe2..5df5e71ebf 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
> @@ -1,4 +1,4 @@
> GLIBC_2.2 dlopen F
> GLIBC_2.2 dlvsym F
> -GLIBC_2.3.3 dlinfo F
> +GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 2700b6bf98..9646c17111 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -2136,6 +2136,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> GLIBC_2.3.3 dladdr1 F
> +GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2255,6 +2256,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
> index 5f81d13a21..4722aad8b2 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
> @@ -1,5 +1,5 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> -GLIBC_2.3.3 dlinfo F
> +GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index de6251d508..84643a9d87 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -2136,6 +2136,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> GLIBC_2.3.3 dladdr1 F
> +GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2252,6 +2253,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
> index 5f81d13a21..4722aad8b2 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
> @@ -1,5 +1,5 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> -GLIBC_2.3.3 dlinfo F
> +GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 7ada64410a..dc3bbcde02 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2263,6 +2263,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> GLIBC_2.3.3 dladdr1 F
> +GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2393,6 +2394,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
> index 5f81d13a21..4722aad8b2 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
> @@ -1,5 +1,5 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> -GLIBC_2.3.3 dlinfo F
> +GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 75fb6e4bbe..1170aa5c51 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -2187,6 +2187,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x208
> GLIBC_2.3.3 dladdr1 F
> +GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2305,6 +2306,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
> index 5f81d13a21..4722aad8b2 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
> @@ -1,5 +1,5 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> -GLIBC_2.3.3 dlinfo F
> +GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index d94135174a..6aa4eedff4 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -2146,6 +2146,7 @@ GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x208
> GLIBC_2.3.3 dladdr1 F
> +GLIBC_2.3.3 dlinfo F
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> GLIBC_2.3.3 gnu_dev_minor F
> @@ -2264,6 +2265,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
> index 6b11f673cc..00764915cf 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
> @@ -1,4 +1,4 @@
> GLIBC_2.2.5 dlopen F
> GLIBC_2.2.5 dlvsym F
> -GLIBC_2.3.3 dlinfo F
> +GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 989f276480..dab4cbc677 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -726,6 +726,7 @@ 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 dlsym F
> GLIBC_2.16 dngettext F
> @@ -2367,6 +2368,7 @@ GLIBC_2.34 dladdr F
> GLIBC_2.34 dladdr1 F
> GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> +GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
> index fe8858d4ec..645f87e571 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.16 dlinfo F
> GLIBC_2.16 dlopen F
> GLIBC_2.16 dlvsym F
>
Ok.
^ permalink raw reply [flat|nested] 39+ messages in thread
* [PATCH 12/16] dlfcn: Move dlvsym into libc
2021-05-31 14:10 [PATCH v3 00/16] Move libdl into libc Florian Weimer
` (10 preceding siblings ...)
2021-05-31 14:12 ` [PATCH 11/16] dlfcn: Move dlinfo " Florian Weimer
@ 2021-05-31 14:12 ` Florian Weimer
2021-06-02 14:34 ` Adhemerval Zanella
2021-05-31 14:12 ` [PATCH 13/16] dlfcn: Move dlopen " Florian Weimer
` (3 subsequent siblings)
15 siblings, 1 reply; 39+ messages in thread
From: Florian Weimer @ 2021-05-31 14:12 UTC (permalink / raw)
To: libc-alpha
The symbol was moved using scripts/move-symbol-to-libc.py.
---
dlfcn/Makefile | 3 +-
dlfcn/Versions | 6 +-
dlfcn/dlvsym.c | 66 +++++++++++--------
dlfcn/sdlvsym.c | 1 -
elf/dl-sym.c | 2 +-
include/dlfcn.h | 6 +-
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 -
69 files changed, 115 insertions(+), 65 deletions(-)
delete mode 100644 dlfcn/sdlvsym.c
diff --git a/dlfcn/Makefile b/dlfcn/Makefile
index c65cdc2e2b..08d92f85fc 100644
--- a/dlfcn/Makefile
+++ b/dlfcn/Makefile
@@ -21,7 +21,7 @@ include ../Makeconfig
headers := bits/dlfcn.h dlfcn.h
extra-libs := libdl
-libdl-routines := dlopen dlvsym \
+libdl-routines := dlopen \
dlfcn
routines := $(patsubst %,s%,$(filter-out dlfcn,$(libdl-routines)))
elide-routines.os := $(routines)
@@ -33,6 +33,7 @@ routines += \
dlinfo \
dlmopen \
dlsym \
+ dlvsym \
libc_dlerror_result \
extra-libs-others := libdl
diff --git a/dlfcn/Versions b/dlfcn/Versions
index ca9a3e5591..3c4fa2742e 100644
--- a/dlfcn/Versions
+++ b/dlfcn/Versions
@@ -5,6 +5,9 @@ libc {
dlerror;
dlsym;
}
+ GLIBC_2.1 {
+ dlvsym;
+ }
GLIBC_2.3.3 {
dladdr1;
dlinfo;
@@ -20,6 +23,7 @@ libc {
dlinfo;
dlmopen;
dlsym;
+ dlvsym;
}
GLIBC_PRIVATE {
__libc_dlerror_result;
@@ -32,7 +36,7 @@ libdl {
dlopen;
}
GLIBC_2.1 {
- dlopen; dlvsym;
+ dlopen;
}
GLIBC_2.3.3 {
__libdl_version_placeholder;
diff --git a/dlfcn/dlvsym.c b/dlfcn/dlvsym.c
index 519e706ea1..de6b340647 100644
--- a/dlfcn/dlvsym.c
+++ b/dlfcn/dlvsym.c
@@ -17,20 +17,9 @@
<https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
-#include <stddef.h>
-
#include <ldsodefs.h>
-
-#if !defined SHARED && IS_IN (libdl)
-
-void *
-weak_function
-dlvsym (void *handle, const char *name, const char *version_str)
-{
- return __dlvsym (handle, name, version_str, RETURN_ADDRESS (0));
-}
-
-#else
+#include <shlib-compat.h>
+#include <stddef.h>
struct dlvsym_args
{
@@ -44,29 +33,23 @@ struct dlvsym_args
void *sym;
};
-
static void
dlvsym_doit (void *a)
{
- struct dlvsym_args *args = (struct dlvsym_args *)a;
+ struct dlvsym_args *args = (struct dlvsym_args *) a;
args->sym = _dl_vsym (args->handle, args->name, args->version, args->who);
}
-void *
-__dlvsym (void *handle, const char *name, const char *version_str
- DL_CALLER_DECL)
+static void *
+dlvsym_implementation (void *handle, const char *name, const char *version,
+ void *dl_caller)
{
-# ifdef SHARED
- if (!rtld_active ())
- return _dlfcn_hook->dlvsym (handle, name, version_str, DL_CALLER);
-# endif
-
struct dlvsym_args args;
+ args.who = dl_caller;
args.handle = handle;
args.name = name;
- args.who = DL_CALLER;
- args.version = version_str;
+ args.version = version;
/* Protect against concurrent loads and unloads. */
__rtld_lock_lock_recursive (GL(dl_load_lock));
@@ -77,7 +60,34 @@ __dlvsym (void *handle, const char *name, const char *version_str
return result;
}
-# ifdef SHARED
-weak_alias (__dlvsym, dlvsym)
+
+#ifdef SHARED
+void *
+___dlvsym (void *handle, const char *name, const char *version)
+{
+ if (!rtld_active ())
+ return _dlfcn_hook->dlvsym (handle, name, version, RETURN_ADDRESS (0));
+ else
+ return dlvsym_implementation (handle, name, version, RETURN_ADDRESS (0));
+}
+versioned_symbol (libc, ___dlvsym, dlvsym, GLIBC_2_34);
+
+# if OTHER_SHLIB_COMPAT (libdl, GLIBC_2_1, GLIBC_2_34)
+compat_symbol (libdl, ___dlvsym, dlvsym, GLIBC_2_1);
# endif
-#endif
+
+#else /* !SHARED */
+/* Also used with _dlfcn_hook. */
+void *
+__dlvsym (void *handle, const char *name, const char *version, void *dl_caller)
+{
+ return dlvsym_implementation (handle, name, version, dl_caller);
+}
+
+void *
+___dlvsym (void *handle, const char *name, const char *version)
+{
+ return __dlvsym (handle, name, version, RETURN_ADDRESS (0));
+}
+weak_alias (___dlvsym, dlvsym)
+#endif /* !SHARED */
diff --git a/dlfcn/sdlvsym.c b/dlfcn/sdlvsym.c
deleted file mode 100644
index ec4286058c..0000000000
--- a/dlfcn/sdlvsym.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "dlvsym.c"
diff --git a/elf/dl-sym.c b/elf/dl-sym.c
index b34cc2f8eb..fa0cce678f 100644
--- a/elf/dl-sym.c
+++ b/elf/dl-sym.c
@@ -188,7 +188,7 @@ _dl_vsym (void *handle, const char *name, const char *version, void *who)
return do_sym (handle, name, who, &vers, 0);
}
-
+libc_hidden_def (_dl_vsym)
void *
_dl_sym (void *handle, const char *name, void *who)
diff --git a/include/dlfcn.h b/include/dlfcn.h
index e898c17792..04ea4f6e2d 100644
--- a/include/dlfcn.h
+++ b/include/dlfcn.h
@@ -92,6 +92,7 @@ libc_hidden_proto (_dl_sym)
NULL. */
extern void *_dl_vsym (void *handle, const char *name, const char *version,
void *who);
+libc_hidden_proto (_dl_vsym)
/* Helper function for <dlfcn.h> functions. Runs the OPERATE function via
_dl_catch_error. Returns zero for success, nonzero for failure; and
@@ -137,9 +138,8 @@ extern void *__dlmopen (Lmid_t nsid, const char *file, int mode,
void *dl_caller);
extern int __dlclose (void *handle);
extern void *__dlsym (void *handle, const char *name, void *dl_caller);
-extern void *__dlvsym (void *handle, const char *name, const char *version
- DL_CALLER_DECL)
- attribute_hidden;
+extern void *__dlvsym (void *handle, const char *name, const char *version,
+ void *dl_caller);
extern int __dladdr (const void *address, Dl_info *info);
extern int __dladdr1 (const void *address, Dl_info *info,
void **extra_info, int flags);
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index f4adfc6e5f..f0bd076005 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -745,6 +745,7 @@ GLIBC_2.2.6 dladdr F
GLIBC_2.2.6 dlclose F
GLIBC_2.2.6 dlerror F
GLIBC_2.2.6 dlsym F
+GLIBC_2.2.6 dlvsym F
GLIBC_2.2.6 dngettext F
GLIBC_2.2.6 dprintf F
GLIBC_2.2.6 drand48 F
@@ -2221,6 +2222,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 3a60902d2a..cd906eff75 100644
--- a/sysdeps/mach/hurd/i386/libdl.abilist
+++ b/sysdeps/mach/hurd/i386/libdl.abilist
@@ -1,4 +1,3 @@
GLIBC_2.2.6 dlopen F
-GLIBC_2.2.6 dlvsym F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index a962e2966c..deebf612dc 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -725,6 +725,7 @@ GLIBC_2.17 dlerror F
GLIBC_2.17 dlinfo F
GLIBC_2.17 dlmopen F
GLIBC_2.17 dlsym F
+GLIBC_2.17 dlvsym F
GLIBC_2.17 dngettext F
GLIBC_2.17 dprintf F
GLIBC_2.17 drand48 F
@@ -2356,6 +2357,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 840db53856..1fabf08e3c 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
@@ -1,2 +1 @@
GLIBC_2.17 dlopen F
-GLIBC_2.17 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index b4cab19c7e..a4f79e54d8 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1524,6 +1524,7 @@ GLIBC_2.1 cbc_crypt F
GLIBC_2.1 clntunix_create F
GLIBC_2.1 creat64 F
GLIBC_2.1 des_setparity F
+GLIBC_2.1 dlvsym F
GLIBC_2.1 ecb_crypt F
GLIBC_2.1 endutxent F
GLIBC_2.1 fattach F
@@ -2448,6 +2449,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 4722aad8b2..8500feca8a 100644
--- a/sysdeps/unix/sysv/linux/alpha/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
-GLIBC_2.1 dlvsym F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 4e5440b6ae..ad8180833a 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -670,6 +670,7 @@ GLIBC_2.32 dlerror F
GLIBC_2.32 dlinfo F
GLIBC_2.32 dlmopen F
GLIBC_2.32 dlsym F
+GLIBC_2.32 dlvsym F
GLIBC_2.32 dngettext F
GLIBC_2.32 dprintf F
GLIBC_2.32 drand48 F
@@ -2115,6 +2116,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 dc71de1647..aef59c3c3c 100644
--- a/sysdeps/unix/sysv/linux/arc/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libdl.abilist
@@ -1,2 +1 @@
GLIBC_2.32 dlopen F
-GLIBC_2.32 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 45fc27223e..a9eae3c20e 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -214,6 +214,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -1031,6 +1032,7 @@ GLIBC_2.4 dlerror F
GLIBC_2.4 dlinfo F
GLIBC_2.4 dlmopen F
GLIBC_2.4 dlsym F
+GLIBC_2.4 dlvsym 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 763c28ead6..f6280a2f0d 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
@@ -1,2 +1 @@
GLIBC_2.4 dlopen F
-GLIBC_2.4 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index bfe4d7ede0..c93d59d01b 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -211,6 +211,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -1028,6 +1029,7 @@ GLIBC_2.4 dlerror F
GLIBC_2.4 dlinfo F
GLIBC_2.4 dlmopen F
GLIBC_2.4 dlsym F
+GLIBC_2.4 dlvsym 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 763c28ead6..f6280a2f0d 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
@@ -1,2 +1 @@
GLIBC_2.4 dlopen F
-GLIBC_2.4 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index f773509d7f..226187a2e2 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -706,6 +706,7 @@ GLIBC_2.29 dlerror F
GLIBC_2.29 dlinfo F
GLIBC_2.29 dlmopen F
GLIBC_2.29 dlsym F
+GLIBC_2.29 dlvsym F
GLIBC_2.29 dngettext F
GLIBC_2.29 dprintf F
GLIBC_2.29 drand48 F
@@ -2299,6 +2300,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 a143948a4c..323b9117b2 100644
--- a/sysdeps/unix/sysv/linux/csky/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libdl.abilist
@@ -1,2 +1 @@
GLIBC_2.29 dlopen F
-GLIBC_2.29 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 3050951d35..1b41bfd3d7 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2,6 +2,7 @@ GLIBC_2.0 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dlsym F
+GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
GLIBC_2.10 __posix_getopt F
GLIBC_2.10 accept4 F
@@ -2252,6 +2253,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 4722aad8b2..8500feca8a 100644
--- a/sysdeps/unix/sysv/linux/hppa/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
-GLIBC_2.1 dlvsym F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 0be412ab6b..2c0369a482 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1498,6 +1498,7 @@ GLIBC_2.1 chown F
GLIBC_2.1 clntunix_create F
GLIBC_2.1 creat64 F
GLIBC_2.1 des_setparity F
+GLIBC_2.1 dlvsym F
GLIBC_2.1 ecb_crypt F
GLIBC_2.1 endutxent F
GLIBC_2.1 fattach F
@@ -2436,6 +2437,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 4722aad8b2..8500feca8a 100644
--- a/sysdeps/unix/sysv/linux/i386/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
-GLIBC_2.1 dlvsym F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index ad6bfa0d2a..852bba8bf8 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2,6 +2,7 @@ GLIBC_2.0 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dlsym F
+GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
GLIBC_2.10 __posix_getopt F
GLIBC_2.10 accept4 F
@@ -2288,6 +2289,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 4722aad8b2..8500feca8a 100644
--- a/sysdeps/unix/sysv/linux/ia64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
-GLIBC_2.1 dlvsym F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index bb62cc7a4f..c55e7622c7 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -215,6 +215,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -1020,6 +1021,7 @@ GLIBC_2.4 dlerror F
GLIBC_2.4 dlinfo F
GLIBC_2.4 dlmopen F
GLIBC_2.4 dlsym F
+GLIBC_2.4 dlvsym 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 763c28ead6..f6280a2f0d 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
@@ -1,2 +1 @@
GLIBC_2.4 dlopen F
-GLIBC_2.4 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index c313cfbc58..b97c4a53f5 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1495,6 +1495,7 @@ GLIBC_2.1 cbc_crypt F
GLIBC_2.1 clntunix_create F
GLIBC_2.1 creat64 F
GLIBC_2.1 des_setparity F
+GLIBC_2.1 dlvsym F
GLIBC_2.1 ecb_crypt F
GLIBC_2.1 endutxent F
GLIBC_2.1 fattach F
@@ -2379,6 +2380,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 4722aad8b2..8500feca8a 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
-GLIBC_2.1 dlvsym F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index e841dcad21..f5a906f7c5 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -727,6 +727,7 @@ GLIBC_2.18 dlerror F
GLIBC_2.18 dlinfo F
GLIBC_2.18 dlmopen F
GLIBC_2.18 dlsym F
+GLIBC_2.18 dlvsym F
GLIBC_2.18 dngettext F
GLIBC_2.18 dprintf F
GLIBC_2.18 drand48 F
@@ -2350,6 +2351,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 327d8ad43b..f8d2fc1b69 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
@@ -1,2 +1 @@
GLIBC_2.18 dlopen F
-GLIBC_2.18 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 3d3e3d7fdb..81ccb4e029 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -727,6 +727,7 @@ GLIBC_2.18 dlerror F
GLIBC_2.18 dlinfo F
GLIBC_2.18 dlmopen F
GLIBC_2.18 dlsym F
+GLIBC_2.18 dlvsym F
GLIBC_2.18 dngettext F
GLIBC_2.18 dprintf F
GLIBC_2.18 drand48 F
@@ -2347,6 +2348,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 327d8ad43b..f8d2fc1b69 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
@@ -1,2 +1 @@
GLIBC_2.18 dlopen F
-GLIBC_2.18 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 9fe3e79ab1..e4e1b90620 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1680,6 +1680,7 @@ GLIBC_2.2 clock_settime F
GLIBC_2.2 creat64 F
GLIBC_2.2 dcngettext F
GLIBC_2.2 des_setparity F
+GLIBC_2.2 dlvsym F
GLIBC_2.2 dngettext F
GLIBC_2.2 ecb_crypt F
GLIBC_2.2 endutxent F
@@ -2344,6 +2345,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 d10be39aa7..69d0dae81c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
GLIBC_2.2 dlopen F
-GLIBC_2.2 dlvsym F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index db04a7d0a7..458475399a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1678,6 +1678,7 @@ GLIBC_2.2 clock_settime F
GLIBC_2.2 creat64 F
GLIBC_2.2 dcngettext F
GLIBC_2.2 des_setparity F
+GLIBC_2.2 dlvsym F
GLIBC_2.2 dngettext F
GLIBC_2.2 ecb_crypt F
GLIBC_2.2 endutxent F
@@ -2342,6 +2343,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 d10be39aa7..69d0dae81c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
GLIBC_2.2 dlopen F
-GLIBC_2.2 dlvsym F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 50b4c0cc57..c79ce36927 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1679,6 +1679,7 @@ GLIBC_2.2 clock_settime F
GLIBC_2.2 creat64 F
GLIBC_2.2 dcngettext F
GLIBC_2.2 des_setparity F
+GLIBC_2.2 dlvsym F
GLIBC_2.2 dngettext F
GLIBC_2.2 ecb_crypt F
GLIBC_2.2 endutxent F
@@ -2350,6 +2351,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 5d4e18b7f7..4f642a64f8 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1675,6 +1675,7 @@ GLIBC_2.2 clock_settime F
GLIBC_2.2 creat64 F
GLIBC_2.2 dcngettext F
GLIBC_2.2 des_setparity F
+GLIBC_2.2 dlvsym F
GLIBC_2.2 dngettext F
GLIBC_2.2 ecb_crypt F
GLIBC_2.2 endutxent F
@@ -2344,6 +2345,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 ef4d89fe97..403a109f8f 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -770,6 +770,7 @@ GLIBC_2.21 dlerror F
GLIBC_2.21 dlinfo F
GLIBC_2.21 dlmopen F
GLIBC_2.21 dlsym F
+GLIBC_2.21 dlvsym F
GLIBC_2.21 dngettext F
GLIBC_2.21 dprintf F
GLIBC_2.21 drand48 F
@@ -2389,6 +2390,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 3cecf1ebac..b83daf801c 100644
--- a/sysdeps/unix/sysv/linux/nios2/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
@@ -1,2 +1 @@
GLIBC_2.21 dlopen F
-GLIBC_2.21 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 32661d6341..a51daed07a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1503,6 +1503,7 @@ GLIBC_2.1 chown F
GLIBC_2.1 clntunix_create F
GLIBC_2.1 creat64 F
GLIBC_2.1 des_setparity F
+GLIBC_2.1 dlvsym F
GLIBC_2.1 ecb_crypt F
GLIBC_2.1 endutxent F
GLIBC_2.1 fattach F
@@ -2406,6 +2407,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 4722aad8b2..8500feca8a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
-GLIBC_2.1 dlvsym F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index e12df18b1c..54b6d41c6d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1503,6 +1503,7 @@ GLIBC_2.1 chown F
GLIBC_2.1 clntunix_create F
GLIBC_2.1 creat64 F
GLIBC_2.1 des_setparity F
+GLIBC_2.1 dlvsym F
GLIBC_2.1 ecb_crypt F
GLIBC_2.1 endutxent F
GLIBC_2.1 fattach F
@@ -2439,6 +2440,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 3262e1b917..be60141560 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -762,6 +762,7 @@ GLIBC_2.3 dladdr F
GLIBC_2.3 dlclose F
GLIBC_2.3 dlerror F
GLIBC_2.3 dlsym F
+GLIBC_2.3 dlvsym F
GLIBC_2.3 dngettext F
GLIBC_2.3 dprintf F
GLIBC_2.3 drand48 F
@@ -2253,6 +2254,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 ffbe9e75a3..c32fb65365 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
@@ -1,4 +1,3 @@
GLIBC_2.3 dlopen F
-GLIBC_2.3 dlvsym F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index d166c4872c..4157f78a90 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -813,6 +813,7 @@ GLIBC_2.17 dlerror F
GLIBC_2.17 dlinfo F
GLIBC_2.17 dlmopen F
GLIBC_2.17 dlsym F
+GLIBC_2.17 dlvsym F
GLIBC_2.17 dngettext F
GLIBC_2.17 dprintf F
GLIBC_2.17 drand48 F
@@ -2552,6 +2553,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 840db53856..1fabf08e3c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
@@ -1,2 +1 @@
GLIBC_2.17 dlopen F
-GLIBC_2.17 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 5ff4d22e1b..367e46b2e2 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -663,6 +663,7 @@ GLIBC_2.33 dlerror F
GLIBC_2.33 dlinfo F
GLIBC_2.33 dlmopen F
GLIBC_2.33 dlsym F
+GLIBC_2.33 dlvsym F
GLIBC_2.33 dngettext F
GLIBC_2.33 dprintf F
GLIBC_2.33 drand48 F
@@ -2117,6 +2118,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 13eefd7db9..7014e0e280 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
@@ -1,2 +1 @@
GLIBC_2.33 dlopen F
-GLIBC_2.33 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index caa8247be3..aec46ac3c0 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -704,6 +704,7 @@ GLIBC_2.27 dlerror F
GLIBC_2.27 dlinfo F
GLIBC_2.27 dlmopen F
GLIBC_2.27 dlsym F
+GLIBC_2.27 dlvsym F
GLIBC_2.27 dngettext F
GLIBC_2.27 dprintf F
GLIBC_2.27 drand48 F
@@ -2317,6 +2318,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 c4b5356c4a..d4d85e298f 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
@@ -1,2 +1 @@
GLIBC_2.27 dlopen F
-GLIBC_2.27 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 9d4562eeb7..5dbfc50d2a 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1495,6 +1495,7 @@ GLIBC_2.1 chown F
GLIBC_2.1 clntunix_create F
GLIBC_2.1 creat64 F
GLIBC_2.1 des_setparity F
+GLIBC_2.1 dlvsym F
GLIBC_2.1 ecb_crypt F
GLIBC_2.1 endutxent F
GLIBC_2.1 fattach F
@@ -2404,6 +2405,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 4722aad8b2..8500feca8a 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
-GLIBC_2.1 dlvsym F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 14f9ab9a0e..c0d3d8362c 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -699,6 +699,7 @@ GLIBC_2.2 dladdr F
GLIBC_2.2 dlclose F
GLIBC_2.2 dlerror F
GLIBC_2.2 dlsym F
+GLIBC_2.2 dlvsym F
GLIBC_2.2 dngettext F
GLIBC_2.2 dprintf F
GLIBC_2.2 drand48 F
@@ -2290,6 +2291,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 5df5e71ebf..59fedff595 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
@@ -1,4 +1,3 @@
GLIBC_2.2 dlopen F
-GLIBC_2.2 dlvsym F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 9646c17111..1928e8a1fb 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -6,6 +6,7 @@ GLIBC_2.0 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dlsym F
+GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
GLIBC_2.10 __posix_getopt F
GLIBC_2.10 accept4 F
@@ -2259,6 +2260,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 4722aad8b2..8500feca8a 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
-GLIBC_2.1 dlvsym F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 84643a9d87..738628c7b6 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -6,6 +6,7 @@ GLIBC_2.0 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dlsym F
+GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
GLIBC_2.10 __posix_getopt F
GLIBC_2.10 accept4 F
@@ -2256,6 +2257,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 4722aad8b2..8500feca8a 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
-GLIBC_2.1 dlvsym F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index dc3bbcde02..c7e29c5d31 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1496,6 +1496,7 @@ GLIBC_2.1 cbc_crypt F
GLIBC_2.1 clntunix_create F
GLIBC_2.1 creat64 F
GLIBC_2.1 des_setparity F
+GLIBC_2.1 dlvsym F
GLIBC_2.1 ecb_crypt F
GLIBC_2.1 endutxent F
GLIBC_2.1 fattach F
@@ -2397,6 +2398,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 4722aad8b2..8500feca8a 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
-GLIBC_2.1 dlvsym F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 1170aa5c51..e5c7a92b38 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -6,6 +6,7 @@ GLIBC_2.0 dladdr F
GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dlsym F
+GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
GLIBC_2.10 __posix_getopt F
GLIBC_2.10 accept4 F
@@ -2309,6 +2310,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 4722aad8b2..8500feca8a 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
@@ -1,5 +1,4 @@
GLIBC_2.0 dlopen F
GLIBC_2.1 dlopen F
-GLIBC_2.1 dlvsym F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 6aa4eedff4..7e35c50406 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -689,6 +689,7 @@ GLIBC_2.2.5 dladdr F
GLIBC_2.2.5 dlclose F
GLIBC_2.2.5 dlerror F
GLIBC_2.2.5 dlsym F
+GLIBC_2.2.5 dlvsym F
GLIBC_2.2.5 dngettext F
GLIBC_2.2.5 dprintf F
GLIBC_2.2.5 drand48 F
@@ -2268,6 +2269,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 00764915cf..7a82c097cf 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
@@ -1,4 +1,3 @@
GLIBC_2.2.5 dlopen F
-GLIBC_2.2.5 dlvsym F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index dab4cbc677..4d1dd2b3a2 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -729,6 +729,7 @@ GLIBC_2.16 dlerror F
GLIBC_2.16 dlinfo F
GLIBC_2.16 dlmopen F
GLIBC_2.16 dlsym F
+GLIBC_2.16 dlvsym F
GLIBC_2.16 dngettext F
GLIBC_2.16 dprintf F
GLIBC_2.16 drand48 F
@@ -2371,6 +2372,7 @@ GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
GLIBC_2.34 dlsym F
+GLIBC_2.34 dlvsym 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 645f87e571..92d5e7d128 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
@@ -1,2 +1 @@
GLIBC_2.16 dlopen F
-GLIBC_2.16 dlvsym F
--
2.31.1
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH 12/16] dlfcn: Move dlvsym into libc
2021-05-31 14:12 ` [PATCH 12/16] dlfcn: Move dlvsym " Florian Weimer
@ 2021-06-02 14:34 ` Adhemerval Zanella
0 siblings, 0 replies; 39+ messages in thread
From: Adhemerval Zanella @ 2021-06-02 14:34 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 31/05/2021 11:12, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> dlfcn/Makefile | 3 +-
> dlfcn/Versions | 6 +-
> dlfcn/dlvsym.c | 66 +++++++++++--------
> dlfcn/sdlvsym.c | 1 -
> elf/dl-sym.c | 2 +-
> include/dlfcn.h | 6 +-
> 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 -
> 69 files changed, 115 insertions(+), 65 deletions(-)
> delete mode 100644 dlfcn/sdlvsym.c
>
> diff --git a/dlfcn/Makefile b/dlfcn/Makefile
> index c65cdc2e2b..08d92f85fc 100644
> --- a/dlfcn/Makefile
> +++ b/dlfcn/Makefile
> @@ -21,7 +21,7 @@ include ../Makeconfig
>
> headers := bits/dlfcn.h dlfcn.h
> extra-libs := libdl
> -libdl-routines := dlopen dlvsym \
> +libdl-routines := dlopen \
> dlfcn
> routines := $(patsubst %,s%,$(filter-out dlfcn,$(libdl-routines)))
> elide-routines.os := $(routines)
> @@ -33,6 +33,7 @@ routines += \
> dlinfo \
> dlmopen \
> dlsym \
> + dlvsym \
> libc_dlerror_result \
>
> extra-libs-others := libdl
Ok.
> diff --git a/dlfcn/Versions b/dlfcn/Versions
> index ca9a3e5591..3c4fa2742e 100644
> --- a/dlfcn/Versions
> +++ b/dlfcn/Versions
> @@ -5,6 +5,9 @@ libc {
> dlerror;
> dlsym;
> }
> + GLIBC_2.1 {
> + dlvsym;
> + }
> GLIBC_2.3.3 {
> dladdr1;
> dlinfo;
> @@ -20,6 +23,7 @@ libc {
> dlinfo;
> dlmopen;
> dlsym;
> + dlvsym;
> }
> GLIBC_PRIVATE {
> __libc_dlerror_result;
> @@ -32,7 +36,7 @@ libdl {
> dlopen;
> }
> GLIBC_2.1 {
> - dlopen; dlvsym;
> + dlopen;
> }
> GLIBC_2.3.3 {
> __libdl_version_placeholder;
Ok.
> diff --git a/dlfcn/dlvsym.c b/dlfcn/dlvsym.c
> index 519e706ea1..de6b340647 100644
> --- a/dlfcn/dlvsym.c
> +++ b/dlfcn/dlvsym.c
> @@ -17,20 +17,9 @@
> <https://www.gnu.org/licenses/>. */
>
> #include <dlfcn.h>
> -#include <stddef.h>
> -
> #include <ldsodefs.h>
> -
> -#if !defined SHARED && IS_IN (libdl)
> -
> -void *
> -weak_function
> -dlvsym (void *handle, const char *name, const char *version_str)
> -{
> - return __dlvsym (handle, name, version_str, RETURN_ADDRESS (0));
> -}
> -
> -#else
> +#include <shlib-compat.h>
> +#include <stddef.h>
>
> struct dlvsym_args
> {
> @@ -44,29 +33,23 @@ struct dlvsym_args
> void *sym;
> };
>
> -
> static void
> dlvsym_doit (void *a)
> {
> - struct dlvsym_args *args = (struct dlvsym_args *)a;
> + struct dlvsym_args *args = (struct dlvsym_args *) a;
>
> args->sym = _dl_vsym (args->handle, args->name, args->version, args->who);
> }
>
> -void *
> -__dlvsym (void *handle, const char *name, const char *version_str
> - DL_CALLER_DECL)
> +static void *
> +dlvsym_implementation (void *handle, const char *name, const char *version,
> + void *dl_caller)
> {
> -# ifdef SHARED
> - if (!rtld_active ())
> - return _dlfcn_hook->dlvsym (handle, name, version_str, DL_CALLER);
> -# endif
> -
> struct dlvsym_args args;
> + args.who = dl_caller;
> args.handle = handle;
> args.name = name;
> - args.who = DL_CALLER;
> - args.version = version_str;
> + args.version = version;
>
> /* Protect against concurrent loads and unloads. */
> __rtld_lock_lock_recursive (GL(dl_load_lock));
> @@ -77,7 +60,34 @@ __dlvsym (void *handle, const char *name, const char *version_str
>
> return result;
> }
> -# ifdef SHARED
> -weak_alias (__dlvsym, dlvsym)
> +
> +#ifdef SHARED
> +void *
> +___dlvsym (void *handle, const char *name, const char *version)
> +{
> + if (!rtld_active ())
> + return _dlfcn_hook->dlvsym (handle, name, version, RETURN_ADDRESS (0));
> + else
> + return dlvsym_implementation (handle, name, version, RETURN_ADDRESS (0));
> +}
> +versioned_symbol (libc, ___dlvsym, dlvsym, GLIBC_2_34);
> +
> +# if OTHER_SHLIB_COMPAT (libdl, GLIBC_2_1, GLIBC_2_34)
> +compat_symbol (libdl, ___dlvsym, dlvsym, GLIBC_2_1);
> # endif
> -#endif
> +
> +#else /* !SHARED */
> +/* Also used with _dlfcn_hook. */
> +void *
> +__dlvsym (void *handle, const char *name, const char *version, void *dl_caller)
> +{
> + return dlvsym_implementation (handle, name, version, dl_caller);
> +}
> +
> +void *
> +___dlvsym (void *handle, const char *name, const char *version)
> +{
> + return __dlvsym (handle, name, version, RETURN_ADDRESS (0));
> +}
> +weak_alias (___dlvsym, dlvsym)
> +#endif /* !SHARED */
Ok.
> diff --git a/dlfcn/sdlvsym.c b/dlfcn/sdlvsym.c
> deleted file mode 100644
> index ec4286058c..0000000000
> --- a/dlfcn/sdlvsym.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include "dlvsym.c"
> diff --git a/elf/dl-sym.c b/elf/dl-sym.c
> index b34cc2f8eb..fa0cce678f 100644
> --- a/elf/dl-sym.c
> +++ b/elf/dl-sym.c
> @@ -188,7 +188,7 @@ _dl_vsym (void *handle, const char *name, const char *version, void *who)
>
> return do_sym (handle, name, who, &vers, 0);
> }
> -
> +libc_hidden_def (_dl_vsym)
>
> void *
> _dl_sym (void *handle, const char *name, void *who)
Ok.
> diff --git a/include/dlfcn.h b/include/dlfcn.h
> index e898c17792..04ea4f6e2d 100644
> --- a/include/dlfcn.h
> +++ b/include/dlfcn.h
> @@ -92,6 +92,7 @@ libc_hidden_proto (_dl_sym)
> NULL. */
> extern void *_dl_vsym (void *handle, const char *name, const char *version,
> void *who);
> +libc_hidden_proto (_dl_vsym)
>
> /* Helper function for <dlfcn.h> functions. Runs the OPERATE function via
> _dl_catch_error. Returns zero for success, nonzero for failure; and
> @@ -137,9 +138,8 @@ extern void *__dlmopen (Lmid_t nsid, const char *file, int mode,
> void *dl_caller);
> extern int __dlclose (void *handle);
> extern void *__dlsym (void *handle, const char *name, void *dl_caller);
> -extern void *__dlvsym (void *handle, const char *name, const char *version
> - DL_CALLER_DECL)
> - attribute_hidden;
> +extern void *__dlvsym (void *handle, const char *name, const char *version,
> + void *dl_caller);
> extern int __dladdr (const void *address, Dl_info *info);
> extern int __dladdr1 (const void *address, Dl_info *info,
> void **extra_info, int flags);
Ok.
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
> index f4adfc6e5f..f0bd076005 100644
> --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -745,6 +745,7 @@ GLIBC_2.2.6 dladdr F
> GLIBC_2.2.6 dlclose F
> GLIBC_2.2.6 dlerror F
> GLIBC_2.2.6 dlsym F
> +GLIBC_2.2.6 dlvsym F
> GLIBC_2.2.6 dngettext F
> GLIBC_2.2.6 dprintf F
> GLIBC_2.2.6 drand48 F
> @@ -2221,6 +2222,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 3a60902d2a..cd906eff75 100644
> --- a/sysdeps/mach/hurd/i386/libdl.abilist
> +++ b/sysdeps/mach/hurd/i386/libdl.abilist
> @@ -1,4 +1,3 @@
> GLIBC_2.2.6 dlopen F
> -GLIBC_2.2.6 dlvsym F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index a962e2966c..deebf612dc 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -725,6 +725,7 @@ GLIBC_2.17 dlerror F
> GLIBC_2.17 dlinfo F
> GLIBC_2.17 dlmopen F
> GLIBC_2.17 dlsym F
> +GLIBC_2.17 dlvsym F
> GLIBC_2.17 dngettext F
> GLIBC_2.17 dprintf F
> GLIBC_2.17 drand48 F
> @@ -2356,6 +2357,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 840db53856..1fabf08e3c 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
> @@ -1,2 +1 @@
> GLIBC_2.17 dlopen F
> -GLIBC_2.17 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index b4cab19c7e..a4f79e54d8 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -1524,6 +1524,7 @@ GLIBC_2.1 cbc_crypt F
> GLIBC_2.1 clntunix_create F
> GLIBC_2.1 creat64 F
> GLIBC_2.1 des_setparity F
> +GLIBC_2.1 dlvsym F
> GLIBC_2.1 ecb_crypt F
> GLIBC_2.1 endutxent F
> GLIBC_2.1 fattach F
> @@ -2448,6 +2449,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 4722aad8b2..8500feca8a 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> -GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 4e5440b6ae..ad8180833a 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -670,6 +670,7 @@ GLIBC_2.32 dlerror F
> GLIBC_2.32 dlinfo F
> GLIBC_2.32 dlmopen F
> GLIBC_2.32 dlsym F
> +GLIBC_2.32 dlvsym F
> GLIBC_2.32 dngettext F
> GLIBC_2.32 dprintf F
> GLIBC_2.32 drand48 F
> @@ -2115,6 +2116,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 dc71de1647..aef59c3c3c 100644
> --- a/sysdeps/unix/sysv/linux/arc/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libdl.abilist
> @@ -1,2 +1 @@
> GLIBC_2.32 dlopen F
> -GLIBC_2.32 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 45fc27223e..a9eae3c20e 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -214,6 +214,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -1031,6 +1032,7 @@ GLIBC_2.4 dlerror F
> GLIBC_2.4 dlinfo F
> GLIBC_2.4 dlmopen F
> GLIBC_2.4 dlsym F
> +GLIBC_2.4 dlvsym 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 763c28ead6..f6280a2f0d 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
> @@ -1,2 +1 @@
> GLIBC_2.4 dlopen F
> -GLIBC_2.4 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index bfe4d7ede0..c93d59d01b 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -211,6 +211,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -1028,6 +1029,7 @@ GLIBC_2.4 dlerror F
> GLIBC_2.4 dlinfo F
> GLIBC_2.4 dlmopen F
> GLIBC_2.4 dlsym F
> +GLIBC_2.4 dlvsym 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 763c28ead6..f6280a2f0d 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
> @@ -1,2 +1 @@
> GLIBC_2.4 dlopen F
> -GLIBC_2.4 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index f773509d7f..226187a2e2 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -706,6 +706,7 @@ GLIBC_2.29 dlerror F
> GLIBC_2.29 dlinfo F
> GLIBC_2.29 dlmopen F
> GLIBC_2.29 dlsym F
> +GLIBC_2.29 dlvsym F
> GLIBC_2.29 dngettext F
> GLIBC_2.29 dprintf F
> GLIBC_2.29 drand48 F
> @@ -2299,6 +2300,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 a143948a4c..323b9117b2 100644
> --- a/sysdeps/unix/sysv/linux/csky/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libdl.abilist
> @@ -1,2 +1 @@
> GLIBC_2.29 dlopen F
> -GLIBC_2.29 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 3050951d35..1b41bfd3d7 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -2,6 +2,7 @@ GLIBC_2.0 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dlsym F
> +GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> GLIBC_2.10 __posix_getopt F
> GLIBC_2.10 accept4 F
> @@ -2252,6 +2253,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 4722aad8b2..8500feca8a 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> -GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 0be412ab6b..2c0369a482 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -1498,6 +1498,7 @@ GLIBC_2.1 chown F
> GLIBC_2.1 clntunix_create F
> GLIBC_2.1 creat64 F
> GLIBC_2.1 des_setparity F
> +GLIBC_2.1 dlvsym F
> GLIBC_2.1 ecb_crypt F
> GLIBC_2.1 endutxent F
> GLIBC_2.1 fattach F
> @@ -2436,6 +2437,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 4722aad8b2..8500feca8a 100644
> --- a/sysdeps/unix/sysv/linux/i386/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> -GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index ad6bfa0d2a..852bba8bf8 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -2,6 +2,7 @@ GLIBC_2.0 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dlsym F
> +GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> GLIBC_2.10 __posix_getopt F
> GLIBC_2.10 accept4 F
> @@ -2288,6 +2289,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 4722aad8b2..8500feca8a 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> -GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index bb62cc7a4f..c55e7622c7 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -215,6 +215,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -1020,6 +1021,7 @@ GLIBC_2.4 dlerror F
> GLIBC_2.4 dlinfo F
> GLIBC_2.4 dlmopen F
> GLIBC_2.4 dlsym F
> +GLIBC_2.4 dlvsym 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 763c28ead6..f6280a2f0d 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
> @@ -1,2 +1 @@
> GLIBC_2.4 dlopen F
> -GLIBC_2.4 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index c313cfbc58..b97c4a53f5 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -1495,6 +1495,7 @@ GLIBC_2.1 cbc_crypt F
> GLIBC_2.1 clntunix_create F
> GLIBC_2.1 creat64 F
> GLIBC_2.1 des_setparity F
> +GLIBC_2.1 dlvsym F
> GLIBC_2.1 ecb_crypt F
> GLIBC_2.1 endutxent F
> GLIBC_2.1 fattach F
> @@ -2379,6 +2380,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 4722aad8b2..8500feca8a 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> -GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index e841dcad21..f5a906f7c5 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -727,6 +727,7 @@ GLIBC_2.18 dlerror F
> GLIBC_2.18 dlinfo F
> GLIBC_2.18 dlmopen F
> GLIBC_2.18 dlsym F
> +GLIBC_2.18 dlvsym F
> GLIBC_2.18 dngettext F
> GLIBC_2.18 dprintf F
> GLIBC_2.18 drand48 F
> @@ -2350,6 +2351,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 327d8ad43b..f8d2fc1b69 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
> @@ -1,2 +1 @@
> GLIBC_2.18 dlopen F
> -GLIBC_2.18 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 3d3e3d7fdb..81ccb4e029 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -727,6 +727,7 @@ GLIBC_2.18 dlerror F
> GLIBC_2.18 dlinfo F
> GLIBC_2.18 dlmopen F
> GLIBC_2.18 dlsym F
> +GLIBC_2.18 dlvsym F
> GLIBC_2.18 dngettext F
> GLIBC_2.18 dprintf F
> GLIBC_2.18 drand48 F
> @@ -2347,6 +2348,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 327d8ad43b..f8d2fc1b69 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
> @@ -1,2 +1 @@
> GLIBC_2.18 dlopen F
> -GLIBC_2.18 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 9fe3e79ab1..e4e1b90620 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1680,6 +1680,7 @@ GLIBC_2.2 clock_settime F
> GLIBC_2.2 creat64 F
> GLIBC_2.2 dcngettext F
> GLIBC_2.2 des_setparity F
> +GLIBC_2.2 dlvsym F
> GLIBC_2.2 dngettext F
> GLIBC_2.2 ecb_crypt F
> GLIBC_2.2 endutxent F
> @@ -2344,6 +2345,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 d10be39aa7..69d0dae81c 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.2 dlopen F
> -GLIBC_2.2 dlvsym F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index db04a7d0a7..458475399a 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1678,6 +1678,7 @@ GLIBC_2.2 clock_settime F
> GLIBC_2.2 creat64 F
> GLIBC_2.2 dcngettext F
> GLIBC_2.2 des_setparity F
> +GLIBC_2.2 dlvsym F
> GLIBC_2.2 dngettext F
> GLIBC_2.2 ecb_crypt F
> GLIBC_2.2 endutxent F
> @@ -2342,6 +2343,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 d10be39aa7..69d0dae81c 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.2 dlopen F
> -GLIBC_2.2 dlvsym F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 50b4c0cc57..c79ce36927 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1679,6 +1679,7 @@ GLIBC_2.2 clock_settime F
> GLIBC_2.2 creat64 F
> GLIBC_2.2 dcngettext F
> GLIBC_2.2 des_setparity F
> +GLIBC_2.2 dlvsym F
> GLIBC_2.2 dngettext F
> GLIBC_2.2 ecb_crypt F
> GLIBC_2.2 endutxent F
> @@ -2350,6 +2351,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 5d4e18b7f7..4f642a64f8 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1675,6 +1675,7 @@ GLIBC_2.2 clock_settime F
> GLIBC_2.2 creat64 F
> GLIBC_2.2 dcngettext F
> GLIBC_2.2 des_setparity F
> +GLIBC_2.2 dlvsym F
> GLIBC_2.2 dngettext F
> GLIBC_2.2 ecb_crypt F
> GLIBC_2.2 endutxent F
> @@ -2344,6 +2345,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 ef4d89fe97..403a109f8f 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -770,6 +770,7 @@ GLIBC_2.21 dlerror F
> GLIBC_2.21 dlinfo F
> GLIBC_2.21 dlmopen F
> GLIBC_2.21 dlsym F
> +GLIBC_2.21 dlvsym F
> GLIBC_2.21 dngettext F
> GLIBC_2.21 dprintf F
> GLIBC_2.21 drand48 F
> @@ -2389,6 +2390,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 3cecf1ebac..b83daf801c 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
> @@ -1,2 +1 @@
> GLIBC_2.21 dlopen F
> -GLIBC_2.21 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 32661d6341..a51daed07a 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -1503,6 +1503,7 @@ GLIBC_2.1 chown F
> GLIBC_2.1 clntunix_create F
> GLIBC_2.1 creat64 F
> GLIBC_2.1 des_setparity F
> +GLIBC_2.1 dlvsym F
> GLIBC_2.1 ecb_crypt F
> GLIBC_2.1 endutxent F
> GLIBC_2.1 fattach F
> @@ -2406,6 +2407,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 4722aad8b2..8500feca8a 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> -GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index e12df18b1c..54b6d41c6d 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -1503,6 +1503,7 @@ GLIBC_2.1 chown F
> GLIBC_2.1 clntunix_create F
> GLIBC_2.1 creat64 F
> GLIBC_2.1 des_setparity F
> +GLIBC_2.1 dlvsym F
> GLIBC_2.1 ecb_crypt F
> GLIBC_2.1 endutxent F
> GLIBC_2.1 fattach F
> @@ -2439,6 +2440,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 3262e1b917..be60141560 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -762,6 +762,7 @@ GLIBC_2.3 dladdr F
> GLIBC_2.3 dlclose F
> GLIBC_2.3 dlerror F
> GLIBC_2.3 dlsym F
> +GLIBC_2.3 dlvsym F
> GLIBC_2.3 dngettext F
> GLIBC_2.3 dprintf F
> GLIBC_2.3 drand48 F
> @@ -2253,6 +2254,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 ffbe9e75a3..c32fb65365 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
> @@ -1,4 +1,3 @@
> GLIBC_2.3 dlopen F
> -GLIBC_2.3 dlvsym F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index d166c4872c..4157f78a90 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -813,6 +813,7 @@ GLIBC_2.17 dlerror F
> GLIBC_2.17 dlinfo F
> GLIBC_2.17 dlmopen F
> GLIBC_2.17 dlsym F
> +GLIBC_2.17 dlvsym F
> GLIBC_2.17 dngettext F
> GLIBC_2.17 dprintf F
> GLIBC_2.17 drand48 F
> @@ -2552,6 +2553,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 840db53856..1fabf08e3c 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
> @@ -1,2 +1 @@
> GLIBC_2.17 dlopen F
> -GLIBC_2.17 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index 5ff4d22e1b..367e46b2e2 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -663,6 +663,7 @@ GLIBC_2.33 dlerror F
> GLIBC_2.33 dlinfo F
> GLIBC_2.33 dlmopen F
> GLIBC_2.33 dlsym F
> +GLIBC_2.33 dlvsym F
> GLIBC_2.33 dngettext F
> GLIBC_2.33 dprintf F
> GLIBC_2.33 drand48 F
> @@ -2117,6 +2118,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 13eefd7db9..7014e0e280 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
> @@ -1,2 +1 @@
> GLIBC_2.33 dlopen F
> -GLIBC_2.33 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index caa8247be3..aec46ac3c0 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -704,6 +704,7 @@ GLIBC_2.27 dlerror F
> GLIBC_2.27 dlinfo F
> GLIBC_2.27 dlmopen F
> GLIBC_2.27 dlsym F
> +GLIBC_2.27 dlvsym F
> GLIBC_2.27 dngettext F
> GLIBC_2.27 dprintf F
> GLIBC_2.27 drand48 F
> @@ -2317,6 +2318,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 c4b5356c4a..d4d85e298f 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
> @@ -1,2 +1 @@
> GLIBC_2.27 dlopen F
> -GLIBC_2.27 dlvsym F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 9d4562eeb7..5dbfc50d2a 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -1495,6 +1495,7 @@ GLIBC_2.1 chown F
> GLIBC_2.1 clntunix_create F
> GLIBC_2.1 creat64 F
> GLIBC_2.1 des_setparity F
> +GLIBC_2.1 dlvsym F
> GLIBC_2.1 ecb_crypt F
> GLIBC_2.1 endutxent F
> GLIBC_2.1 fattach F
> @@ -2404,6 +2405,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 4722aad8b2..8500feca8a 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> -GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 14f9ab9a0e..c0d3d8362c 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -699,6 +699,7 @@ GLIBC_2.2 dladdr F
> GLIBC_2.2 dlclose F
> GLIBC_2.2 dlerror F
> GLIBC_2.2 dlsym F
> +GLIBC_2.2 dlvsym F
> GLIBC_2.2 dngettext F
> GLIBC_2.2 dprintf F
> GLIBC_2.2 drand48 F
> @@ -2290,6 +2291,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 5df5e71ebf..59fedff595 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
> @@ -1,4 +1,3 @@
> GLIBC_2.2 dlopen F
> -GLIBC_2.2 dlvsym F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 9646c17111..1928e8a1fb 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -6,6 +6,7 @@ GLIBC_2.0 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dlsym F
> +GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> GLIBC_2.10 __posix_getopt F
> GLIBC_2.10 accept4 F
> @@ -2259,6 +2260,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 4722aad8b2..8500feca8a 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> -GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 84643a9d87..738628c7b6 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -6,6 +6,7 @@ GLIBC_2.0 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dlsym F
> +GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> GLIBC_2.10 __posix_getopt F
> GLIBC_2.10 accept4 F
> @@ -2256,6 +2257,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 4722aad8b2..8500feca8a 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> -GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index dc3bbcde02..c7e29c5d31 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -1496,6 +1496,7 @@ GLIBC_2.1 cbc_crypt F
> GLIBC_2.1 clntunix_create F
> GLIBC_2.1 creat64 F
> GLIBC_2.1 des_setparity F
> +GLIBC_2.1 dlvsym F
> GLIBC_2.1 ecb_crypt F
> GLIBC_2.1 endutxent F
> GLIBC_2.1 fattach F
> @@ -2397,6 +2398,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 4722aad8b2..8500feca8a 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> -GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 1170aa5c51..e5c7a92b38 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -6,6 +6,7 @@ GLIBC_2.0 dladdr F
> GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dlsym F
> +GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> GLIBC_2.10 __posix_getopt F
> GLIBC_2.10 accept4 F
> @@ -2309,6 +2310,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 4722aad8b2..8500feca8a 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.0 dlopen F
> GLIBC_2.1 dlopen F
> -GLIBC_2.1 dlvsym F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 6aa4eedff4..7e35c50406 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -689,6 +689,7 @@ GLIBC_2.2.5 dladdr F
> GLIBC_2.2.5 dlclose F
> GLIBC_2.2.5 dlerror F
> GLIBC_2.2.5 dlsym F
> +GLIBC_2.2.5 dlvsym F
> GLIBC_2.2.5 dngettext F
> GLIBC_2.2.5 dprintf F
> GLIBC_2.2.5 drand48 F
> @@ -2268,6 +2269,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 00764915cf..7a82c097cf 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
> @@ -1,4 +1,3 @@
> GLIBC_2.2.5 dlopen F
> -GLIBC_2.2.5 dlvsym F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index dab4cbc677..4d1dd2b3a2 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -729,6 +729,7 @@ GLIBC_2.16 dlerror F
> GLIBC_2.16 dlinfo F
> GLIBC_2.16 dlmopen F
> GLIBC_2.16 dlsym F
> +GLIBC_2.16 dlvsym F
> GLIBC_2.16 dngettext F
> GLIBC_2.16 dprintf F
> GLIBC_2.16 drand48 F
> @@ -2371,6 +2372,7 @@ GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> GLIBC_2.34 dlsym F
> +GLIBC_2.34 dlvsym 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 645f87e571..92d5e7d128 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
> @@ -1,2 +1 @@
> GLIBC_2.16 dlopen F
> -GLIBC_2.16 dlvsym F
>
Ok.
^ permalink raw reply [flat|nested] 39+ messages in thread
* [PATCH 13/16] dlfcn: Move dlopen into libc
2021-05-31 14:10 [PATCH v3 00/16] Move libdl into libc Florian Weimer
` (11 preceding siblings ...)
2021-05-31 14:12 ` [PATCH 12/16] dlfcn: Move dlvsym " Florian Weimer
@ 2021-05-31 14:12 ` Florian Weimer
2021-06-02 14:54 ` Adhemerval Zanella
2021-05-31 14:12 ` [PATCH 14/16] dlfcn: Cleanups after -ldl is no longer required Florian Weimer
` (2 subsequent siblings)
15 siblings, 1 reply; 39+ messages in thread
From: Florian Weimer @ 2021-05-31 14:12 UTC (permalink / raw)
To: libc-alpha
The symbol was moved using scripts/move-symbol-to-libc.py.
---
dlfcn/Makefile | 8 +-
dlfcn/Versions | 7 +-
dlfcn/dlfcn.c | 16 +++-
dlfcn/dlopen.c | 82 ++++++++++---------
dlfcn/dlopenold.c | 4 +-
dlfcn/sdlopen.c | 1 -
include/dlfcn.h | 3 +-
sysdeps/mach/hurd/i386/libc.abilist | 2 +
sysdeps/mach/hurd/i386/libdl.abilist | 2 +-
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 +
sysdeps/unix/sysv/linux/aarch64/libdl.abilist | 2 +-
sysdeps/unix/sysv/linux/alpha/libc.abilist | 3 +
sysdeps/unix/sysv/linux/alpha/libdl.abilist | 4 +-
sysdeps/unix/sysv/linux/arc/libc.abilist | 2 +
sysdeps/unix/sysv/linux/arc/libdl.abilist | 2 +-
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 +
sysdeps/unix/sysv/linux/arm/be/libdl.abilist | 2 +-
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 +
sysdeps/unix/sysv/linux/arm/le/libdl.abilist | 2 +-
sysdeps/unix/sysv/linux/csky/libc.abilist | 2 +
sysdeps/unix/sysv/linux/csky/libdl.abilist | 2 +-
sysdeps/unix/sysv/linux/hppa/libc.abilist | 3 +
sysdeps/unix/sysv/linux/hppa/libdl.abilist | 4 +-
sysdeps/unix/sysv/linux/i386/libc.abilist | 3 +
sysdeps/unix/sysv/linux/i386/libdl.abilist | 4 +-
sysdeps/unix/sysv/linux/ia64/libc.abilist | 3 +
sysdeps/unix/sysv/linux/ia64/libdl.abilist | 4 +-
.../sysv/linux/m68k/coldfire/libc.abilist | 2 +
.../sysv/linux/m68k/coldfire/libdl.abilist | 2 +-
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 3 +
.../unix/sysv/linux/m68k/m680x0/libdl.abilist | 4 +-
.../sysv/linux/microblaze/be/libc.abilist | 2 +
.../sysv/linux/microblaze/be/libdl.abilist | 2 +-
.../sysv/linux/microblaze/le/libc.abilist | 2 +
.../sysv/linux/microblaze/le/libdl.abilist | 2 +-
.../sysv/linux/mips/mips32/fpu/libc.abilist | 3 +
.../unix/sysv/linux/mips/mips32/libdl.abilist | 4 +-
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 3 +
.../unix/sysv/linux/mips/mips64/libdl.abilist | 4 +-
.../sysv/linux/mips/mips64/n32/libc.abilist | 3 +
.../sysv/linux/mips/mips64/n64/libc.abilist | 3 +
sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 +
sysdeps/unix/sysv/linux/nios2/libdl.abilist | 2 +-
.../linux/powerpc/powerpc32/fpu/libc.abilist | 3 +
.../linux/powerpc/powerpc32/libdl.abilist | 4 +-
.../powerpc/powerpc32/nofpu/libc.abilist | 3 +
.../linux/powerpc/powerpc64/be/libc.abilist | 2 +
.../linux/powerpc/powerpc64/be/libdl.abilist | 2 +-
.../linux/powerpc/powerpc64/le/libc.abilist | 2 +
.../linux/powerpc/powerpc64/le/libdl.abilist | 2 +-
.../unix/sysv/linux/riscv/rv32/libc.abilist | 2 +
.../unix/sysv/linux/riscv/rv32/libdl.abilist | 2 +-
.../unix/sysv/linux/riscv/rv64/libc.abilist | 2 +
.../unix/sysv/linux/riscv/rv64/libdl.abilist | 2 +-
.../unix/sysv/linux/s390/s390-32/libc.abilist | 3 +
.../sysv/linux/s390/s390-32/libdl.abilist | 4 +-
.../unix/sysv/linux/s390/s390-64/libc.abilist | 2 +
.../sysv/linux/s390/s390-64/libdl.abilist | 2 +-
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 3 +
sysdeps/unix/sysv/linux/sh/be/libdl.abilist | 4 +-
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 3 +
sysdeps/unix/sysv/linux/sh/le/libdl.abilist | 4 +-
.../sysv/linux/sparc/sparc32/libc.abilist | 3 +
.../sysv/linux/sparc/sparc32/libdl.abilist | 4 +-
.../sysv/linux/sparc/sparc64/libc.abilist | 3 +
.../sysv/linux/sparc/sparc64/libdl.abilist | 4 +-
.../unix/sysv/linux/x86_64/64/libc.abilist | 2 +
.../unix/sysv/linux/x86_64/64/libdl.abilist | 2 +-
.../unix/sysv/linux/x86_64/x32/libc.abilist | 2 +
.../unix/sysv/linux/x86_64/x32/libdl.abilist | 2 +-
70 files changed, 193 insertions(+), 96 deletions(-)
delete mode 100644 dlfcn/sdlopen.c
diff --git a/dlfcn/Makefile b/dlfcn/Makefile
index 08d92f85fc..a471d86071 100644
--- a/dlfcn/Makefile
+++ b/dlfcn/Makefile
@@ -21,8 +21,7 @@ include ../Makeconfig
headers := bits/dlfcn.h dlfcn.h
extra-libs := libdl
-libdl-routines := dlopen \
- dlfcn
+libdl-routines := dlfcn
routines := $(patsubst %,s%,$(filter-out dlfcn,$(libdl-routines)))
elide-routines.os := $(routines)
routines += \
@@ -32,6 +31,7 @@ routines += \
dlerror \
dlinfo \
dlmopen \
+ dlopen \
dlsym \
dlvsym \
libc_dlerror_result \
@@ -39,8 +39,8 @@ routines += \
extra-libs-others := libdl
ifeq ($(build-shared),yes)
-libdl-routines += dlopenold
-libdl-shared-only-routines := dlopenold dlfcn
+routines += dlopenold
+shared-only-routines := dlopenold dlfcn
endif
ifeq (yes,$(build-shared))
diff --git a/dlfcn/Versions b/dlfcn/Versions
index 3c4fa2742e..cc34eb824d 100644
--- a/dlfcn/Versions
+++ b/dlfcn/Versions
@@ -3,9 +3,11 @@ libc {
dladdr;
dlclose;
dlerror;
+ dlopen;
dlsym;
}
GLIBC_2.1 {
+ dlopen;
dlvsym;
}
GLIBC_2.3.3 {
@@ -22,6 +24,7 @@ libc {
dlerror;
dlinfo;
dlmopen;
+ dlopen;
dlsym;
dlvsym;
}
@@ -33,10 +36,10 @@ libc {
}
libdl {
GLIBC_2.0 {
- dlopen;
+ __libdl_version_placeholder;
}
GLIBC_2.1 {
- dlopen;
+ __libdl_version_placeholder;
}
GLIBC_2.3.3 {
__libdl_version_placeholder;
diff --git a/dlfcn/dlfcn.c b/dlfcn/dlfcn.c
index 55ecfcabbe..ef750bc27a 100644
--- a/dlfcn/dlfcn.c
+++ b/dlfcn/dlfcn.c
@@ -48,14 +48,22 @@ __libdl_version_placeholder_1 (void)
{
}
-#if SHLIB_COMPAT (libdl, GLIBC_2_3_3, GLIBC_2_34) \
- && ABI_libdl_GLIBC_2_3_3 != ABI_libdl_GLIBC_2_1
+#if SHLIB_COMPAT (libdl, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libdl, __libdl_version_placeholder_1,
+ __libdl_version_placeholder, GLIBC_2_0);
+#endif
+
+#if SHLIB_COMPAT (libdl, GLIBC_2_1, GLIBC_2_34)
+compat_symbol (libdl, __libdl_version_placeholder_1,
+ __libdl_version_placeholder, GLIBC_2_1);
+#endif
+
+#if SHLIB_COMPAT (libdl, GLIBC_2_3_3, GLIBC_2_34)
compat_symbol (libdl, __libdl_version_placeholder_1,
__libdl_version_placeholder, GLIBC_2_3_3);
#endif
-#if SHLIB_COMPAT (libdl, GLIBC_2_3_4, GLIBC_2_34) \
- && ABI_libdl_GLIBC_2_3_4 != ABI_libdl_GLIBC_2_1
+#if SHLIB_COMPAT (libdl, GLIBC_2_3_4, GLIBC_2_34)
compat_symbol (libdl, __libdl_version_placeholder_1,
__libdl_version_placeholder, GLIBC_2_3_4);
#endif
diff --git a/dlfcn/dlopen.c b/dlfcn/dlopen.c
index d51e006453..afdc113efb 100644
--- a/dlfcn/dlopen.c
+++ b/dlfcn/dlopen.c
@@ -21,17 +21,7 @@
#include <stddef.h>
#include <unistd.h>
#include <ldsodefs.h>
-
-#if !defined SHARED && IS_IN (libdl)
-
-void *
-dlopen (const char *file, int mode)
-{
- return __dlopen (file, mode, RETURN_ADDRESS (0));
-}
-static_link_warning (dlopen)
-
-#else
+#include <shlib-compat.h>
struct dlopen_args
{
@@ -46,11 +36,11 @@ struct dlopen_args
/* Non-shared code has no support for multiple namespaces. */
-# ifdef SHARED
-# define NS __LM_ID_CALLER
-# else
-# define NS LM_ID_BASE
-# endif
+#ifdef SHARED
+# define NS __LM_ID_CALLER
+#else
+# define NS LM_ID_BASE
+#endif
static void
@@ -66,38 +56,54 @@ dlopen_doit (void *a)
args->new = GLRO(dl_open) (args->file ?: "", args->mode | __RTLD_DLOPEN,
args->caller,
args->file == NULL ? LM_ID_BASE : NS,
- __dlfcn_argc, __dlfcn_argv, __environ);
+ __libc_argc, __libc_argv, __environ);
}
-void *
-__dlopen (const char *file, int mode DL_CALLER_DECL)
+static void *
+dlopen_implementation (const char *file, int mode, void *dl_caller)
{
-# ifdef SHARED
- if (!rtld_active ())
- return _dlfcn_hook->dlopen (file, mode, DL_CALLER);
-# endif
-
struct dlopen_args args;
args.file = file;
args.mode = mode;
- args.caller = DL_CALLER;
+ args.caller = dl_caller;
-# ifdef SHARED
return _dlerror_run (dlopen_doit, &args) ? NULL : args.new;
-# else
- if (_dlerror_run (dlopen_doit, &args))
- return NULL;
+}
- __libc_register_dl_open_hook ((struct link_map *) args.new);
- __libc_register_dlfcn_hook ((struct link_map *) args.new);
+#ifdef SHARED
+void *
+___dlopen (const char *file, int mode)
+{
+ if (!rtld_active ())
+ return _dlfcn_hook->dlopen (file, mode, RETURN_ADDRESS (0));
+ else
+ return dlopen_implementation (file, mode, RETURN_ADDRESS (0));
+}
+versioned_symbol (libc, ___dlopen, dlopen, GLIBC_2_34);
- return args.new;
+# if OTHER_SHLIB_COMPAT (libdl, GLIBC_2_1, GLIBC_2_34)
+compat_symbol (libdl, ___dlopen, dlopen, GLIBC_2_1);
# endif
+#else /* !SHARED */
+/* Also used with _dlfcn_hook. */
+void *
+__dlopen (const char *file, int mode, void *dl_caller)
+{
+ return dlopen_implementation (file, mode, RETURN_ADDRESS (0));
}
-# ifdef SHARED
-# include <shlib-compat.h>
-strong_alias (__dlopen, __dlopen_check)
-versioned_symbol (libdl, __dlopen_check, dlopen, GLIBC_2_1);
-# endif
-#endif
+
+void *
+___dlopen (const char *file, int mode)
+{
+ struct link_map *l = __dlopen (file, mode, RETURN_ADDRESS (0));
+ if (l != NULL)
+ {
+ __libc_register_dl_open_hook (l);
+ __libc_register_dlfcn_hook (l);
+ }
+ return l;
+}
+weak_alias (___dlopen, dlopen)
+static_link_warning (dlopen)
+#endif /* !SHARED */
diff --git a/dlfcn/dlopenold.c b/dlfcn/dlopenold.c
index 6174dcbb27..0fe5f24cc5 100644
--- a/dlfcn/dlopenold.c
+++ b/dlfcn/dlopenold.c
@@ -24,7 +24,7 @@
/* This file is for compatibility with glibc 2.0. Compile it only if
versioning is used. */
#include <shlib-compat.h>
-#if SHLIB_COMPAT (libdl, GLIBC_2_0, GLIBC_2_1)
+#if OTHER_SHLIB_COMPAT (libdl, GLIBC_2_0, GLIBC_2_1)
struct dlopen_args
{
@@ -54,7 +54,7 @@ dlopen_doit (void *a)
args->new = GLRO(dl_open) (args->file ?: "", args->mode | __RTLD_DLOPEN,
args->caller,
args->file == NULL ? LM_ID_BASE : NS,
- __dlfcn_argc, __dlfcn_argv, __environ);
+ __libc_argc, __libc_argv, __environ);
}
extern void *__dlopen_nocheck (const char *file, int mode);
diff --git a/dlfcn/sdlopen.c b/dlfcn/sdlopen.c
deleted file mode 100644
index 1ff2eb2854..0000000000
--- a/dlfcn/sdlopen.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "dlopen.c"
diff --git a/include/dlfcn.h b/include/dlfcn.h
index 04ea4f6e2d..4274eddbc9 100644
--- a/include/dlfcn.h
+++ b/include/dlfcn.h
@@ -132,8 +132,7 @@ libc_hidden_proto (_dlfcn_hook)
libraries. Internal calls in glibc should use the __libc_dl*
functions defined in elf/dl-libc.c instead. */
-extern void *__dlopen (const char *file, int mode DL_CALLER_DECL)
- attribute_hidden;
+extern void *__dlopen (const char *file, int mode, void *caller);
extern void *__dlmopen (Lmid_t nsid, const char *file, int mode,
void *dl_caller);
extern int __dlclose (void *handle);
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index f0bd076005..f651989962 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -744,6 +744,7 @@ GLIBC_2.2.6 dl_iterate_phdr F
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
GLIBC_2.2.6 dngettext F
@@ -2221,6 +2222,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/mach/hurd/i386/libdl.abilist b/sysdeps/mach/hurd/i386/libdl.abilist
index cd906eff75..59397ee9b5 100644
--- a/sysdeps/mach/hurd/i386/libdl.abilist
+++ b/sysdeps/mach/hurd/i386/libdl.abilist
@@ -1,3 +1,3 @@
-GLIBC_2.2.6 dlopen F
+GLIBC_2.2.6 __libdl_version_placeholder F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index deebf612dc..bee807a6f8 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -724,6 +724,7 @@ 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
GLIBC_2.17 dlsym F
GLIBC_2.17 dlvsym F
GLIBC_2.17 dngettext F
@@ -2356,6 +2357,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
index 1fabf08e3c..4ba4ba9aae 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
@@ -1 +1 @@
-GLIBC_2.17 dlopen F
+GLIBC_2.17 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index a4f79e54d8..43dd600039 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -412,6 +412,7 @@ GLIBC_2.0 div F
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.0 dprintf F
GLIBC_2.0 drand48 F
@@ -1524,6 +1525,7 @@ GLIBC_2.1 cbc_crypt F
GLIBC_2.1 clntunix_create F
GLIBC_2.1 creat64 F
GLIBC_2.1 des_setparity F
+GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.1 ecb_crypt F
GLIBC_2.1 endutxent F
@@ -2448,6 +2450,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/alpha/libdl.abilist b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
index 8500feca8a..a455934421 100644
--- a/sysdeps/unix/sysv/linux/alpha/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
@@ -1,4 +1,4 @@
-GLIBC_2.0 dlopen F
-GLIBC_2.1 dlopen F
+GLIBC_2.0 __libdl_version_placeholder F
+GLIBC_2.1 __libdl_version_placeholder F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index ad8180833a..033ed08877 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -669,6 +669,7 @@ 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
GLIBC_2.32 dlsym F
GLIBC_2.32 dlvsym F
GLIBC_2.32 dngettext F
@@ -2115,6 +2116,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/arc/libdl.abilist b/sysdeps/unix/sysv/linux/arc/libdl.abilist
index aef59c3c3c..051a968c87 100644
--- a/sysdeps/unix/sysv/linux/arc/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libdl.abilist
@@ -1 +1 @@
-GLIBC_2.32 dlopen F
+GLIBC_2.32 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index a9eae3c20e..f66ee7aab1 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -213,6 +213,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
@@ -1031,6 +1032,7 @@ 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
GLIBC_2.4 dlsym F
GLIBC_2.4 dlvsym F
GLIBC_2.4 dngettext F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
index f6280a2f0d..65eb212007 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
@@ -1 +1 @@
-GLIBC_2.4 dlopen F
+GLIBC_2.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index c93d59d01b..3798b32830 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -210,6 +210,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
@@ -1028,6 +1029,7 @@ 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
GLIBC_2.4 dlsym F
GLIBC_2.4 dlvsym F
GLIBC_2.4 dngettext F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
index f6280a2f0d..65eb212007 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
@@ -1 +1 @@
-GLIBC_2.4 dlopen F
+GLIBC_2.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 226187a2e2..ba53b61ea6 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -705,6 +705,7 @@ 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
GLIBC_2.29 dlsym F
GLIBC_2.29 dlvsym F
GLIBC_2.29 dngettext F
@@ -2299,6 +2300,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/csky/libdl.abilist b/sysdeps/unix/sysv/linux/csky/libdl.abilist
index 323b9117b2..7f396d46e5 100644
--- a/sysdeps/unix/sysv/linux/csky/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libdl.abilist
@@ -1 +1 @@
-GLIBC_2.29 dlopen F
+GLIBC_2.29 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 1b41bfd3d7..9783504c93 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1,7 +1,9 @@
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
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
GLIBC_2.10 __posix_getopt F
@@ -2252,6 +2254,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/hppa/libdl.abilist b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
index 8500feca8a..a455934421 100644
--- a/sysdeps/unix/sysv/linux/hppa/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
@@ -1,4 +1,4 @@
-GLIBC_2.0 dlopen F
-GLIBC_2.1 dlopen F
+GLIBC_2.0 __libdl_version_placeholder F
+GLIBC_2.1 __libdl_version_placeholder F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 2c0369a482..c223c360ff 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -398,6 +398,7 @@ GLIBC_2.0 div F
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.0 dprintf F
GLIBC_2.0 drand48 F
@@ -1498,6 +1499,7 @@ GLIBC_2.1 chown F
GLIBC_2.1 clntunix_create F
GLIBC_2.1 creat64 F
GLIBC_2.1 des_setparity F
+GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.1 ecb_crypt F
GLIBC_2.1 endutxent F
@@ -2436,6 +2438,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/i386/libdl.abilist b/sysdeps/unix/sysv/linux/i386/libdl.abilist
index 8500feca8a..a455934421 100644
--- a/sysdeps/unix/sysv/linux/i386/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libdl.abilist
@@ -1,4 +1,4 @@
-GLIBC_2.0 dlopen F
-GLIBC_2.1 dlopen F
+GLIBC_2.0 __libdl_version_placeholder F
+GLIBC_2.1 __libdl_version_placeholder F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 852bba8bf8..ea2be9ead2 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1,7 +1,9 @@
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
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
GLIBC_2.10 __posix_getopt F
@@ -2288,6 +2290,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/ia64/libdl.abilist b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
index 8500feca8a..a455934421 100644
--- a/sysdeps/unix/sysv/linux/ia64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
@@ -1,4 +1,4 @@
-GLIBC_2.0 dlopen F
-GLIBC_2.1 dlopen F
+GLIBC_2.0 __libdl_version_placeholder F
+GLIBC_2.1 __libdl_version_placeholder F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index c55e7622c7..3cb4279b41 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -214,6 +214,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
@@ -1020,6 +1021,7 @@ 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
GLIBC_2.4 dlsym F
GLIBC_2.4 dlvsym F
GLIBC_2.4 dngettext F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
index f6280a2f0d..65eb212007 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
@@ -1 +1 @@
-GLIBC_2.4 dlopen F
+GLIBC_2.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index b97c4a53f5..94a718ff58 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -399,6 +399,7 @@ GLIBC_2.0 div F
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.0 dprintf F
GLIBC_2.0 drand48 F
@@ -1495,6 +1496,7 @@ GLIBC_2.1 cbc_crypt F
GLIBC_2.1 clntunix_create F
GLIBC_2.1 creat64 F
GLIBC_2.1 des_setparity F
+GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.1 ecb_crypt F
GLIBC_2.1 endutxent F
@@ -2379,6 +2381,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
index 8500feca8a..a455934421 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
@@ -1,4 +1,4 @@
-GLIBC_2.0 dlopen F
-GLIBC_2.1 dlopen F
+GLIBC_2.0 __libdl_version_placeholder F
+GLIBC_2.1 __libdl_version_placeholder F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index f5a906f7c5..5823bf18ef 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -726,6 +726,7 @@ 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
GLIBC_2.18 dlsym F
GLIBC_2.18 dlvsym F
GLIBC_2.18 dngettext F
@@ -2350,6 +2351,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
index f8d2fc1b69..97801fca23 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
@@ -1 +1 @@
-GLIBC_2.18 dlopen F
+GLIBC_2.18 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 81ccb4e029..723c4bcb09 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -726,6 +726,7 @@ 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
GLIBC_2.18 dlsym F
GLIBC_2.18 dlvsym F
GLIBC_2.18 dngettext F
@@ -2347,6 +2348,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
index f8d2fc1b69..97801fca23 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
@@ -1 +1 @@
-GLIBC_2.18 dlopen F
+GLIBC_2.18 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index e4e1b90620..f67da8f37a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -397,6 +397,7 @@ GLIBC_2.0 div F
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.0 dprintf F
GLIBC_2.0 drand48 F
@@ -1680,6 +1681,7 @@ GLIBC_2.2 clock_settime F
GLIBC_2.2 creat64 F
GLIBC_2.2 dcngettext F
GLIBC_2.2 des_setparity F
+GLIBC_2.2 dlopen F
GLIBC_2.2 dlvsym F
GLIBC_2.2 dngettext F
GLIBC_2.2 ecb_crypt F
@@ -2344,6 +2346,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
index 69d0dae81c..6ea9b0424f 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
@@ -1,4 +1,4 @@
-GLIBC_2.0 dlopen F
-GLIBC_2.2 dlopen F
+GLIBC_2.0 __libdl_version_placeholder F
+GLIBC_2.2 __libdl_version_placeholder F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 458475399a..e44a6be8aa 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -397,6 +397,7 @@ GLIBC_2.0 div F
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.0 dprintf F
GLIBC_2.0 drand48 F
@@ -1678,6 +1679,7 @@ GLIBC_2.2 clock_settime F
GLIBC_2.2 creat64 F
GLIBC_2.2 dcngettext F
GLIBC_2.2 des_setparity F
+GLIBC_2.2 dlopen F
GLIBC_2.2 dlvsym F
GLIBC_2.2 dngettext F
GLIBC_2.2 ecb_crypt F
@@ -2342,6 +2344,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
index 69d0dae81c..6ea9b0424f 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
@@ -1,4 +1,4 @@
-GLIBC_2.0 dlopen F
-GLIBC_2.2 dlopen F
+GLIBC_2.0 __libdl_version_placeholder F
+GLIBC_2.2 __libdl_version_placeholder F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index c79ce36927..21cbe39166 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -397,6 +397,7 @@ GLIBC_2.0 div F
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.0 dprintf F
GLIBC_2.0 drand48 F
@@ -1679,6 +1680,7 @@ GLIBC_2.2 clock_settime F
GLIBC_2.2 creat64 F
GLIBC_2.2 dcngettext F
GLIBC_2.2 des_setparity F
+GLIBC_2.2 dlopen F
GLIBC_2.2 dlvsym F
GLIBC_2.2 dngettext F
GLIBC_2.2 ecb_crypt F
@@ -2350,6 +2352,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 4f642a64f8..a271342813 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -395,6 +395,7 @@ GLIBC_2.0 div F
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.0 dprintf F
GLIBC_2.0 drand48 F
@@ -1675,6 +1676,7 @@ GLIBC_2.2 clock_settime F
GLIBC_2.2 creat64 F
GLIBC_2.2 dcngettext F
GLIBC_2.2 des_setparity F
+GLIBC_2.2 dlopen F
GLIBC_2.2 dlvsym F
GLIBC_2.2 dngettext F
GLIBC_2.2 ecb_crypt F
@@ -2344,6 +2346,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 403a109f8f..9429209215 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -769,6 +769,7 @@ 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
GLIBC_2.21 dlsym F
GLIBC_2.21 dlvsym F
GLIBC_2.21 dngettext F
@@ -2389,6 +2390,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/nios2/libdl.abilist b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
index b83daf801c..70efb879ed 100644
--- a/sysdeps/unix/sysv/linux/nios2/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
@@ -1 +1 @@
-GLIBC_2.21 dlopen F
+GLIBC_2.21 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index a51daed07a..eaca8e4b0c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -408,6 +408,7 @@ GLIBC_2.0 div F
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.0 dprintf F
GLIBC_2.0 drand48 F
@@ -1503,6 +1504,7 @@ GLIBC_2.1 chown F
GLIBC_2.1 clntunix_create F
GLIBC_2.1 creat64 F
GLIBC_2.1 des_setparity F
+GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.1 ecb_crypt F
GLIBC_2.1 endutxent F
@@ -2406,6 +2408,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
index 8500feca8a..a455934421 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
@@ -1,4 +1,4 @@
-GLIBC_2.0 dlopen F
-GLIBC_2.1 dlopen F
+GLIBC_2.0 __libdl_version_placeholder F
+GLIBC_2.1 __libdl_version_placeholder F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 54b6d41c6d..c754a181da 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -408,6 +408,7 @@ GLIBC_2.0 div F
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.0 dprintf F
GLIBC_2.0 drand48 F
@@ -1503,6 +1504,7 @@ GLIBC_2.1 chown F
GLIBC_2.1 clntunix_create F
GLIBC_2.1 creat64 F
GLIBC_2.1 des_setparity F
+GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.1 ecb_crypt F
GLIBC_2.1 endutxent F
@@ -2439,6 +2441,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index be60141560..98bd6bea39 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -761,6 +761,7 @@ GLIBC_2.3 dl_iterate_phdr F
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
GLIBC_2.3 dngettext F
@@ -2253,6 +2254,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
index c32fb65365..d82eac3034 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
@@ -1,3 +1,3 @@
-GLIBC_2.3 dlopen F
+GLIBC_2.3 __libdl_version_placeholder F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 4157f78a90..d27f7448ed 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -812,6 +812,7 @@ 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
GLIBC_2.17 dlsym F
GLIBC_2.17 dlvsym F
GLIBC_2.17 dngettext F
@@ -2552,6 +2553,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
index 1fabf08e3c..4ba4ba9aae 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
@@ -1 +1 @@
-GLIBC_2.17 dlopen F
+GLIBC_2.17 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 367e46b2e2..33c9f98bf5 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -662,6 +662,7 @@ 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
GLIBC_2.33 dlsym F
GLIBC_2.33 dlvsym F
GLIBC_2.33 dngettext F
@@ -2117,6 +2118,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
index 7014e0e280..8441999906 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
@@ -1 +1 @@
-GLIBC_2.33 dlopen F
+GLIBC_2.33 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index aec46ac3c0..9902603cd4 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -703,6 +703,7 @@ 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
GLIBC_2.27 dlsym F
GLIBC_2.27 dlvsym F
GLIBC_2.27 dngettext F
@@ -2317,6 +2318,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
index d4d85e298f..33ff573df8 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
@@ -1 +1 @@
-GLIBC_2.27 dlopen F
+GLIBC_2.27 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 5dbfc50d2a..963e27571d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -398,6 +398,7 @@ GLIBC_2.0 div F
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.0 dprintf F
GLIBC_2.0 drand48 F
@@ -1495,6 +1496,7 @@ GLIBC_2.1 chown F
GLIBC_2.1 clntunix_create F
GLIBC_2.1 creat64 F
GLIBC_2.1 des_setparity F
+GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.1 ecb_crypt F
GLIBC_2.1 endutxent F
@@ -2404,6 +2406,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
index 8500feca8a..a455934421 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
@@ -1,4 +1,4 @@
-GLIBC_2.0 dlopen F
-GLIBC_2.1 dlopen F
+GLIBC_2.0 __libdl_version_placeholder F
+GLIBC_2.1 __libdl_version_placeholder F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index c0d3d8362c..17c56a2658 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -698,6 +698,7 @@ GLIBC_2.2 div F
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
GLIBC_2.2 dngettext F
@@ -2290,6 +2291,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
index 59fedff595..a1deffc0c2 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
@@ -1,3 +1,3 @@
-GLIBC_2.2 dlopen F
+GLIBC_2.2 __libdl_version_placeholder F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 1928e8a1fb..456abfb5bb 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -5,7 +5,9 @@ GCC_3.0 __register_frame_info_table_bases F
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
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
GLIBC_2.10 __posix_getopt F
@@ -2259,6 +2261,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
index 8500feca8a..a455934421 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
@@ -1,4 +1,4 @@
-GLIBC_2.0 dlopen F
-GLIBC_2.1 dlopen F
+GLIBC_2.0 __libdl_version_placeholder F
+GLIBC_2.1 __libdl_version_placeholder F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 738628c7b6..45e59f1821 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -5,7 +5,9 @@ GCC_3.0 __register_frame_info_table_bases F
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
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
GLIBC_2.10 __posix_getopt F
@@ -2256,6 +2258,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
index 8500feca8a..a455934421 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
@@ -1,4 +1,4 @@
-GLIBC_2.0 dlopen F
-GLIBC_2.1 dlopen F
+GLIBC_2.0 __libdl_version_placeholder F
+GLIBC_2.1 __libdl_version_placeholder F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index c7e29c5d31..734e1f38b6 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -400,6 +400,7 @@ GLIBC_2.0 div F
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.0 dprintf F
GLIBC_2.0 drand48 F
@@ -1496,6 +1497,7 @@ GLIBC_2.1 cbc_crypt F
GLIBC_2.1 clntunix_create F
GLIBC_2.1 creat64 F
GLIBC_2.1 des_setparity F
+GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.1 ecb_crypt F
GLIBC_2.1 endutxent F
@@ -2397,6 +2399,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
index 8500feca8a..a455934421 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
@@ -1,4 +1,4 @@
-GLIBC_2.0 dlopen F
-GLIBC_2.1 dlopen F
+GLIBC_2.0 __libdl_version_placeholder F
+GLIBC_2.1 __libdl_version_placeholder F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index e5c7a92b38..9edf5ff234 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -5,7 +5,9 @@ GCC_3.0 __register_frame_info_table_bases F
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
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
GLIBC_2.10 __posix_getopt F
@@ -2309,6 +2311,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
index 8500feca8a..a455934421 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
@@ -1,4 +1,4 @@
-GLIBC_2.0 dlopen F
-GLIBC_2.1 dlopen F
+GLIBC_2.0 __libdl_version_placeholder F
+GLIBC_2.1 __libdl_version_placeholder F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 7e35c50406..bc8535fbed 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -688,6 +688,7 @@ GLIBC_2.2.5 dl_iterate_phdr F
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
GLIBC_2.2.5 dngettext F
@@ -2268,6 +2269,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
index 7a82c097cf..590424fbdc 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
@@ -1,3 +1,3 @@
-GLIBC_2.2.5 dlopen F
+GLIBC_2.2.5 __libdl_version_placeholder F
GLIBC_2.3.3 __libdl_version_placeholder F
GLIBC_2.3.4 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 4d1dd2b3a2..669cc664f5 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -728,6 +728,7 @@ 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
GLIBC_2.16 dlsym F
GLIBC_2.16 dlvsym F
GLIBC_2.16 dngettext F
@@ -2371,6 +2372,7 @@ GLIBC_2.34 dlclose F
GLIBC_2.34 dlerror F
GLIBC_2.34 dlinfo F
GLIBC_2.34 dlmopen F
+GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
index 92d5e7d128..583acd29f7 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
@@ -1 +1 @@
-GLIBC_2.16 dlopen F
+GLIBC_2.16 __libdl_version_placeholder F
--
2.31.1
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH 13/16] dlfcn: Move dlopen into libc
2021-05-31 14:12 ` [PATCH 13/16] dlfcn: Move dlopen " Florian Weimer
@ 2021-06-02 14:54 ` Adhemerval Zanella
0 siblings, 0 replies; 39+ messages in thread
From: Adhemerval Zanella @ 2021-06-02 14:54 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 31/05/2021 11:12, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> dlfcn/Makefile | 8 +-
> dlfcn/Versions | 7 +-
> dlfcn/dlfcn.c | 16 +++-
> dlfcn/dlopen.c | 82 ++++++++++---------
> dlfcn/dlopenold.c | 4 +-
> dlfcn/sdlopen.c | 1 -
> include/dlfcn.h | 3 +-
> sysdeps/mach/hurd/i386/libc.abilist | 2 +
> sysdeps/mach/hurd/i386/libdl.abilist | 2 +-
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/aarch64/libdl.abilist | 2 +-
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/alpha/libdl.abilist | 4 +-
> sysdeps/unix/sysv/linux/arc/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/arc/libdl.abilist | 2 +-
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/arm/be/libdl.abilist | 2 +-
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/arm/le/libdl.abilist | 2 +-
> sysdeps/unix/sysv/linux/csky/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/csky/libdl.abilist | 2 +-
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/hppa/libdl.abilist | 4 +-
> sysdeps/unix/sysv/linux/i386/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/i386/libdl.abilist | 4 +-
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/ia64/libdl.abilist | 4 +-
> .../sysv/linux/m68k/coldfire/libc.abilist | 2 +
> .../sysv/linux/m68k/coldfire/libdl.abilist | 2 +-
> .../unix/sysv/linux/m68k/m680x0/libc.abilist | 3 +
> .../unix/sysv/linux/m68k/m680x0/libdl.abilist | 4 +-
> .../sysv/linux/microblaze/be/libc.abilist | 2 +
> .../sysv/linux/microblaze/be/libdl.abilist | 2 +-
> .../sysv/linux/microblaze/le/libc.abilist | 2 +
> .../sysv/linux/microblaze/le/libdl.abilist | 2 +-
> .../sysv/linux/mips/mips32/fpu/libc.abilist | 3 +
> .../unix/sysv/linux/mips/mips32/libdl.abilist | 4 +-
> .../sysv/linux/mips/mips32/nofpu/libc.abilist | 3 +
> .../unix/sysv/linux/mips/mips64/libdl.abilist | 4 +-
> .../sysv/linux/mips/mips64/n32/libc.abilist | 3 +
> .../sysv/linux/mips/mips64/n64/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/nios2/libdl.abilist | 2 +-
> .../linux/powerpc/powerpc32/fpu/libc.abilist | 3 +
> .../linux/powerpc/powerpc32/libdl.abilist | 4 +-
> .../powerpc/powerpc32/nofpu/libc.abilist | 3 +
> .../linux/powerpc/powerpc64/be/libc.abilist | 2 +
> .../linux/powerpc/powerpc64/be/libdl.abilist | 2 +-
> .../linux/powerpc/powerpc64/le/libc.abilist | 2 +
> .../linux/powerpc/powerpc64/le/libdl.abilist | 2 +-
> .../unix/sysv/linux/riscv/rv32/libc.abilist | 2 +
> .../unix/sysv/linux/riscv/rv32/libdl.abilist | 2 +-
> .../unix/sysv/linux/riscv/rv64/libc.abilist | 2 +
> .../unix/sysv/linux/riscv/rv64/libdl.abilist | 2 +-
> .../unix/sysv/linux/s390/s390-32/libc.abilist | 3 +
> .../sysv/linux/s390/s390-32/libdl.abilist | 4 +-
> .../unix/sysv/linux/s390/s390-64/libc.abilist | 2 +
> .../sysv/linux/s390/s390-64/libdl.abilist | 2 +-
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/sh/be/libdl.abilist | 4 +-
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/sh/le/libdl.abilist | 4 +-
> .../sysv/linux/sparc/sparc32/libc.abilist | 3 +
> .../sysv/linux/sparc/sparc32/libdl.abilist | 4 +-
> .../sysv/linux/sparc/sparc64/libc.abilist | 3 +
> .../sysv/linux/sparc/sparc64/libdl.abilist | 4 +-
> .../unix/sysv/linux/x86_64/64/libc.abilist | 2 +
> .../unix/sysv/linux/x86_64/64/libdl.abilist | 2 +-
> .../unix/sysv/linux/x86_64/x32/libc.abilist | 2 +
> .../unix/sysv/linux/x86_64/x32/libdl.abilist | 2 +-
> 70 files changed, 193 insertions(+), 96 deletions(-)
> delete mode 100644 dlfcn/sdlopen.c
>
> diff --git a/dlfcn/Makefile b/dlfcn/Makefile
> index 08d92f85fc..a471d86071 100644
> --- a/dlfcn/Makefile
> +++ b/dlfcn/Makefile
> @@ -21,8 +21,7 @@ include ../Makeconfig
>
> headers := bits/dlfcn.h dlfcn.h
> extra-libs := libdl
> -libdl-routines := dlopen \
> - dlfcn
> +libdl-routines := dlfcn
> routines := $(patsubst %,s%,$(filter-out dlfcn,$(libdl-routines)))
> elide-routines.os := $(routines)
> routines += \
> @@ -32,6 +31,7 @@ routines += \
> dlerror \
> dlinfo \
> dlmopen \
> + dlopen \
> dlsym \
> dlvsym \
> libc_dlerror_result \
> @@ -39,8 +39,8 @@ routines += \
> extra-libs-others := libdl
>
> ifeq ($(build-shared),yes)
> -libdl-routines += dlopenold
> -libdl-shared-only-routines := dlopenold dlfcn
> +routines += dlopenold
> +shared-only-routines := dlopenold dlfcn
> endif
>
> ifeq (yes,$(build-shared))
Ok.
> diff --git a/dlfcn/Versions b/dlfcn/Versions
> index 3c4fa2742e..cc34eb824d 100644
> --- a/dlfcn/Versions
> +++ b/dlfcn/Versions
> @@ -3,9 +3,11 @@ libc {
> dladdr;
> dlclose;
> dlerror;
> + dlopen;
> dlsym;
> }
> GLIBC_2.1 {
> + dlopen;
> dlvsym;
> }
> GLIBC_2.3.3 {
> @@ -22,6 +24,7 @@ libc {
> dlerror;
> dlinfo;
> dlmopen;
> + dlopen;
> dlsym;
> dlvsym;
> }
> @@ -33,10 +36,10 @@ libc {
> }
> libdl {
> GLIBC_2.0 {
> - dlopen;
> + __libdl_version_placeholder;
> }
> GLIBC_2.1 {
> - dlopen;
> + __libdl_version_placeholder;
> }
> GLIBC_2.3.3 {
> __libdl_version_placeholder;
Ok.
> diff --git a/dlfcn/dlfcn.c b/dlfcn/dlfcn.c
> index 55ecfcabbe..ef750bc27a 100644
> --- a/dlfcn/dlfcn.c
> +++ b/dlfcn/dlfcn.c
> @@ -48,14 +48,22 @@ __libdl_version_placeholder_1 (void)
> {
> }
>
> -#if SHLIB_COMPAT (libdl, GLIBC_2_3_3, GLIBC_2_34) \
> - && ABI_libdl_GLIBC_2_3_3 != ABI_libdl_GLIBC_2_1
> +#if SHLIB_COMPAT (libdl, GLIBC_2_0, GLIBC_2_34)
> +compat_symbol (libdl, __libdl_version_placeholder_1,
> + __libdl_version_placeholder, GLIBC_2_0);
> +#endif
> +
> +#if SHLIB_COMPAT (libdl, GLIBC_2_1, GLIBC_2_34)
> +compat_symbol (libdl, __libdl_version_placeholder_1,
> + __libdl_version_placeholder, GLIBC_2_1);
> +#endif
> +
> +#if SHLIB_COMPAT (libdl, GLIBC_2_3_3, GLIBC_2_34)
> compat_symbol (libdl, __libdl_version_placeholder_1,
> __libdl_version_placeholder, GLIBC_2_3_3);
> #endif
>
> -#if SHLIB_COMPAT (libdl, GLIBC_2_3_4, GLIBC_2_34) \
> - && ABI_libdl_GLIBC_2_3_4 != ABI_libdl_GLIBC_2_1
> +#if SHLIB_COMPAT (libdl, GLIBC_2_3_4, GLIBC_2_34)
> compat_symbol (libdl, __libdl_version_placeholder_1,
> __libdl_version_placeholder, GLIBC_2_3_4);
> #endif
Ok.
> diff --git a/dlfcn/dlopen.c b/dlfcn/dlopen.c
> index d51e006453..afdc113efb 100644
> --- a/dlfcn/dlopen.c
> +++ b/dlfcn/dlopen.c
> @@ -21,17 +21,7 @@
> #include <stddef.h>
> #include <unistd.h>
> #include <ldsodefs.h>
> -
> -#if !defined SHARED && IS_IN (libdl)
> -
> -void *
> -dlopen (const char *file, int mode)
> -{
> - return __dlopen (file, mode, RETURN_ADDRESS (0));
> -}
> -static_link_warning (dlopen)
> -
> -#else
> +#include <shlib-compat.h>
>
> struct dlopen_args
> {
> @@ -46,11 +36,11 @@ struct dlopen_args
>
>
> /* Non-shared code has no support for multiple namespaces. */
> -# ifdef SHARED
> -# define NS __LM_ID_CALLER
> -# else
> -# define NS LM_ID_BASE
> -# endif
> +#ifdef SHARED
> +# define NS __LM_ID_CALLER
> +#else
> +# define NS LM_ID_BASE
> +#endif
>
>
> static void
> @@ -66,38 +56,54 @@ dlopen_doit (void *a)
> args->new = GLRO(dl_open) (args->file ?: "", args->mode | __RTLD_DLOPEN,
> args->caller,
> args->file == NULL ? LM_ID_BASE : NS,
> - __dlfcn_argc, __dlfcn_argv, __environ);
> + __libc_argc, __libc_argv, __environ);
> }
>
>
> -void *
> -__dlopen (const char *file, int mode DL_CALLER_DECL)
> +static void *
> +dlopen_implementation (const char *file, int mode, void *dl_caller)
> {
> -# ifdef SHARED
> - if (!rtld_active ())
> - return _dlfcn_hook->dlopen (file, mode, DL_CALLER);
> -# endif
> -
> struct dlopen_args args;
> args.file = file;
> args.mode = mode;
> - args.caller = DL_CALLER;
> + args.caller = dl_caller;
>
> -# ifdef SHARED
> return _dlerror_run (dlopen_doit, &args) ? NULL : args.new;
> -# else
> - if (_dlerror_run (dlopen_doit, &args))
> - return NULL;
> +}
>
> - __libc_register_dl_open_hook ((struct link_map *) args.new);
> - __libc_register_dlfcn_hook ((struct link_map *) args.new);
> +#ifdef SHARED
> +void *
> +___dlopen (const char *file, int mode)
> +{
> + if (!rtld_active ())
> + return _dlfcn_hook->dlopen (file, mode, RETURN_ADDRESS (0));
> + else
> + return dlopen_implementation (file, mode, RETURN_ADDRESS (0));
> +}
> +versioned_symbol (libc, ___dlopen, dlopen, GLIBC_2_34);
>
> - return args.new;
> +# if OTHER_SHLIB_COMPAT (libdl, GLIBC_2_1, GLIBC_2_34)
> +compat_symbol (libdl, ___dlopen, dlopen, GLIBC_2_1);
> # endif
> +#else /* !SHARED */
> +/* Also used with _dlfcn_hook. */
> +void *
> +__dlopen (const char *file, int mode, void *dl_caller)
> +{
> + return dlopen_implementation (file, mode, RETURN_ADDRESS (0));
> }
> -# ifdef SHARED
> -# include <shlib-compat.h>
> -strong_alias (__dlopen, __dlopen_check)
> -versioned_symbol (libdl, __dlopen_check, dlopen, GLIBC_2_1);
> -# endif
> -#endif
> +
> +void *
> +___dlopen (const char *file, int mode)
> +{
> + struct link_map *l = __dlopen (file, mode, RETURN_ADDRESS (0));
> + if (l != NULL)
> + {
> + __libc_register_dl_open_hook (l);
> + __libc_register_dlfcn_hook (l);
> + }
> + return l;
> +}
> +weak_alias (___dlopen, dlopen)
> +static_link_warning (dlopen)
> +#endif /* !SHARED */
Ok.
> diff --git a/dlfcn/dlopenold.c b/dlfcn/dlopenold.c
> index 6174dcbb27..0fe5f24cc5 100644
> --- a/dlfcn/dlopenold.c
> +++ b/dlfcn/dlopenold.c
> @@ -24,7 +24,7 @@
> /* This file is for compatibility with glibc 2.0. Compile it only if
> versioning is used. */
> #include <shlib-compat.h>
> -#if SHLIB_COMPAT (libdl, GLIBC_2_0, GLIBC_2_1)
> +#if OTHER_SHLIB_COMPAT (libdl, GLIBC_2_0, GLIBC_2_1)
>
> struct dlopen_args
> {
> @@ -54,7 +54,7 @@ dlopen_doit (void *a)
> args->new = GLRO(dl_open) (args->file ?: "", args->mode | __RTLD_DLOPEN,
> args->caller,
> args->file == NULL ? LM_ID_BASE : NS,
> - __dlfcn_argc, __dlfcn_argv, __environ);
> + __libc_argc, __libc_argv, __environ);
> }
>
> extern void *__dlopen_nocheck (const char *file, int mode);
Ok.
> diff --git a/dlfcn/sdlopen.c b/dlfcn/sdlopen.c
> deleted file mode 100644
> index 1ff2eb2854..0000000000
> --- a/dlfcn/sdlopen.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include "dlopen.c"
Ok.
> diff --git a/include/dlfcn.h b/include/dlfcn.h
> index 04ea4f6e2d..4274eddbc9 100644
> --- a/include/dlfcn.h
> +++ b/include/dlfcn.h
> @@ -132,8 +132,7 @@ libc_hidden_proto (_dlfcn_hook)
> libraries. Internal calls in glibc should use the __libc_dl*
> functions defined in elf/dl-libc.c instead. */
>
> -extern void *__dlopen (const char *file, int mode DL_CALLER_DECL)
> - attribute_hidden;
> +extern void *__dlopen (const char *file, int mode, void *caller);
> extern void *__dlmopen (Lmid_t nsid, const char *file, int mode,
> void *dl_caller);
> extern int __dlclose (void *handle);
Ok.
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
> index f0bd076005..f651989962 100644
> --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -744,6 +744,7 @@ GLIBC_2.2.6 dl_iterate_phdr F
> 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
> GLIBC_2.2.6 dngettext F
> @@ -2221,6 +2222,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/mach/hurd/i386/libdl.abilist b/sysdeps/mach/hurd/i386/libdl.abilist
> index cd906eff75..59397ee9b5 100644
> --- a/sysdeps/mach/hurd/i386/libdl.abilist
> +++ b/sysdeps/mach/hurd/i386/libdl.abilist
> @@ -1,3 +1,3 @@
> -GLIBC_2.2.6 dlopen F
> +GLIBC_2.2.6 __libdl_version_placeholder F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index deebf612dc..bee807a6f8 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -724,6 +724,7 @@ 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
> GLIBC_2.17 dlsym F
> GLIBC_2.17 dlvsym F
> GLIBC_2.17 dngettext F
> @@ -2356,6 +2357,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
> index 1fabf08e3c..4ba4ba9aae 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
> @@ -1 +1 @@
> -GLIBC_2.17 dlopen F
> +GLIBC_2.17 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index a4f79e54d8..43dd600039 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -412,6 +412,7 @@ GLIBC_2.0 div F
> 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.0 dprintf F
> GLIBC_2.0 drand48 F
> @@ -1524,6 +1525,7 @@ GLIBC_2.1 cbc_crypt F
> GLIBC_2.1 clntunix_create F
> GLIBC_2.1 creat64 F
> GLIBC_2.1 des_setparity F
> +GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.1 ecb_crypt F
> GLIBC_2.1 endutxent F
> @@ -2448,6 +2450,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libdl.abilist b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
> index 8500feca8a..a455934421 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libdl.abilist
> @@ -1,4 +1,4 @@
> -GLIBC_2.0 dlopen F
> -GLIBC_2.1 dlopen F
> +GLIBC_2.0 __libdl_version_placeholder F
> +GLIBC_2.1 __libdl_version_placeholder F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index ad8180833a..033ed08877 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -669,6 +669,7 @@ 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
> GLIBC_2.32 dlsym F
> GLIBC_2.32 dlvsym F
> GLIBC_2.32 dngettext F
> @@ -2115,6 +2116,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/arc/libdl.abilist b/sysdeps/unix/sysv/linux/arc/libdl.abilist
> index aef59c3c3c..051a968c87 100644
> --- a/sysdeps/unix/sysv/linux/arc/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libdl.abilist
> @@ -1 +1 @@
> -GLIBC_2.32 dlopen F
> +GLIBC_2.32 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index a9eae3c20e..f66ee7aab1 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -213,6 +213,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> @@ -1031,6 +1032,7 @@ 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
> GLIBC_2.4 dlsym F
> GLIBC_2.4 dlvsym F
> GLIBC_2.4 dngettext F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
> index f6280a2f0d..65eb212007 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
> @@ -1 +1 @@
> -GLIBC_2.4 dlopen F
> +GLIBC_2.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index c93d59d01b..3798b32830 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -210,6 +210,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> @@ -1028,6 +1029,7 @@ 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
> GLIBC_2.4 dlsym F
> GLIBC_2.4 dlvsym F
> GLIBC_2.4 dngettext F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
> index f6280a2f0d..65eb212007 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
> @@ -1 +1 @@
> -GLIBC_2.4 dlopen F
> +GLIBC_2.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 226187a2e2..ba53b61ea6 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -705,6 +705,7 @@ 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
> GLIBC_2.29 dlsym F
> GLIBC_2.29 dlvsym F
> GLIBC_2.29 dngettext F
> @@ -2299,6 +2300,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/csky/libdl.abilist b/sysdeps/unix/sysv/linux/csky/libdl.abilist
> index 323b9117b2..7f396d46e5 100644
> --- a/sysdeps/unix/sysv/linux/csky/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libdl.abilist
> @@ -1 +1 @@
> -GLIBC_2.29 dlopen F
> +GLIBC_2.29 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 1b41bfd3d7..9783504c93 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -1,7 +1,9 @@
> 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
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> GLIBC_2.10 __posix_getopt F
> @@ -2252,6 +2254,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libdl.abilist b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
> index 8500feca8a..a455934421 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libdl.abilist
> @@ -1,4 +1,4 @@
> -GLIBC_2.0 dlopen F
> -GLIBC_2.1 dlopen F
> +GLIBC_2.0 __libdl_version_placeholder F
> +GLIBC_2.1 __libdl_version_placeholder F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 2c0369a482..c223c360ff 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -398,6 +398,7 @@ GLIBC_2.0 div F
> 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.0 dprintf F
> GLIBC_2.0 drand48 F
> @@ -1498,6 +1499,7 @@ GLIBC_2.1 chown F
> GLIBC_2.1 clntunix_create F
> GLIBC_2.1 creat64 F
> GLIBC_2.1 des_setparity F
> +GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.1 ecb_crypt F
> GLIBC_2.1 endutxent F
> @@ -2436,6 +2438,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/i386/libdl.abilist b/sysdeps/unix/sysv/linux/i386/libdl.abilist
> index 8500feca8a..a455934421 100644
> --- a/sysdeps/unix/sysv/linux/i386/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libdl.abilist
> @@ -1,4 +1,4 @@
> -GLIBC_2.0 dlopen F
> -GLIBC_2.1 dlopen F
> +GLIBC_2.0 __libdl_version_placeholder F
> +GLIBC_2.1 __libdl_version_placeholder F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 852bba8bf8..ea2be9ead2 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -1,7 +1,9 @@
> 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
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> GLIBC_2.10 __posix_getopt F
> @@ -2288,6 +2290,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libdl.abilist b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
> index 8500feca8a..a455934421 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libdl.abilist
> @@ -1,4 +1,4 @@
> -GLIBC_2.0 dlopen F
> -GLIBC_2.1 dlopen F
> +GLIBC_2.0 __libdl_version_placeholder F
> +GLIBC_2.1 __libdl_version_placeholder F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index c55e7622c7..3cb4279b41 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -214,6 +214,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> @@ -1020,6 +1021,7 @@ 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
> GLIBC_2.4 dlsym F
> GLIBC_2.4 dlvsym F
> GLIBC_2.4 dngettext F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
> index f6280a2f0d..65eb212007 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
> @@ -1 +1 @@
> -GLIBC_2.4 dlopen F
> +GLIBC_2.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index b97c4a53f5..94a718ff58 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -399,6 +399,7 @@ GLIBC_2.0 div F
> 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.0 dprintf F
> GLIBC_2.0 drand48 F
> @@ -1495,6 +1496,7 @@ GLIBC_2.1 cbc_crypt F
> GLIBC_2.1 clntunix_create F
> GLIBC_2.1 creat64 F
> GLIBC_2.1 des_setparity F
> +GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.1 ecb_crypt F
> GLIBC_2.1 endutxent F
> @@ -2379,6 +2381,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
> index 8500feca8a..a455934421 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
> @@ -1,4 +1,4 @@
> -GLIBC_2.0 dlopen F
> -GLIBC_2.1 dlopen F
> +GLIBC_2.0 __libdl_version_placeholder F
> +GLIBC_2.1 __libdl_version_placeholder F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index f5a906f7c5..5823bf18ef 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -726,6 +726,7 @@ 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
> GLIBC_2.18 dlsym F
> GLIBC_2.18 dlvsym F
> GLIBC_2.18 dngettext F
> @@ -2350,6 +2351,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
> index f8d2fc1b69..97801fca23 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
> @@ -1 +1 @@
> -GLIBC_2.18 dlopen F
> +GLIBC_2.18 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 81ccb4e029..723c4bcb09 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -726,6 +726,7 @@ 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
> GLIBC_2.18 dlsym F
> GLIBC_2.18 dlvsym F
> GLIBC_2.18 dngettext F
> @@ -2347,6 +2348,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
> index f8d2fc1b69..97801fca23 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
> @@ -1 +1 @@
> -GLIBC_2.18 dlopen F
> +GLIBC_2.18 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index e4e1b90620..f67da8f37a 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -397,6 +397,7 @@ GLIBC_2.0 div F
> 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.0 dprintf F
> GLIBC_2.0 drand48 F
> @@ -1680,6 +1681,7 @@ GLIBC_2.2 clock_settime F
> GLIBC_2.2 creat64 F
> GLIBC_2.2 dcngettext F
> GLIBC_2.2 des_setparity F
> +GLIBC_2.2 dlopen F
> GLIBC_2.2 dlvsym F
> GLIBC_2.2 dngettext F
> GLIBC_2.2 ecb_crypt F
> @@ -2344,6 +2346,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
> index 69d0dae81c..6ea9b0424f 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
> @@ -1,4 +1,4 @@
> -GLIBC_2.0 dlopen F
> -GLIBC_2.2 dlopen F
> +GLIBC_2.0 __libdl_version_placeholder F
> +GLIBC_2.2 __libdl_version_placeholder F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 458475399a..e44a6be8aa 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -397,6 +397,7 @@ GLIBC_2.0 div F
> 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.0 dprintf F
> GLIBC_2.0 drand48 F
> @@ -1678,6 +1679,7 @@ GLIBC_2.2 clock_settime F
> GLIBC_2.2 creat64 F
> GLIBC_2.2 dcngettext F
> GLIBC_2.2 des_setparity F
> +GLIBC_2.2 dlopen F
> GLIBC_2.2 dlvsym F
> GLIBC_2.2 dngettext F
> GLIBC_2.2 ecb_crypt F
> @@ -2342,6 +2344,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
> index 69d0dae81c..6ea9b0424f 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
> @@ -1,4 +1,4 @@
> -GLIBC_2.0 dlopen F
> -GLIBC_2.2 dlopen F
> +GLIBC_2.0 __libdl_version_placeholder F
> +GLIBC_2.2 __libdl_version_placeholder F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index c79ce36927..21cbe39166 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -397,6 +397,7 @@ GLIBC_2.0 div F
> 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.0 dprintf F
> GLIBC_2.0 drand48 F
> @@ -1679,6 +1680,7 @@ GLIBC_2.2 clock_settime F
> GLIBC_2.2 creat64 F
> GLIBC_2.2 dcngettext F
> GLIBC_2.2 des_setparity F
> +GLIBC_2.2 dlopen F
> GLIBC_2.2 dlvsym F
> GLIBC_2.2 dngettext F
> GLIBC_2.2 ecb_crypt F
> @@ -2350,6 +2352,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 4f642a64f8..a271342813 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -395,6 +395,7 @@ GLIBC_2.0 div F
> 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.0 dprintf F
> GLIBC_2.0 drand48 F
> @@ -1675,6 +1676,7 @@ GLIBC_2.2 clock_settime F
> GLIBC_2.2 creat64 F
> GLIBC_2.2 dcngettext F
> GLIBC_2.2 des_setparity F
> +GLIBC_2.2 dlopen F
> GLIBC_2.2 dlvsym F
> GLIBC_2.2 dngettext F
> GLIBC_2.2 ecb_crypt F
> @@ -2344,6 +2346,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 403a109f8f..9429209215 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -769,6 +769,7 @@ 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
> GLIBC_2.21 dlsym F
> GLIBC_2.21 dlvsym F
> GLIBC_2.21 dngettext F
> @@ -2389,6 +2390,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libdl.abilist b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
> index b83daf801c..70efb879ed 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
> @@ -1 +1 @@
> -GLIBC_2.21 dlopen F
> +GLIBC_2.21 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index a51daed07a..eaca8e4b0c 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -408,6 +408,7 @@ GLIBC_2.0 div F
> 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.0 dprintf F
> GLIBC_2.0 drand48 F
> @@ -1503,6 +1504,7 @@ GLIBC_2.1 chown F
> GLIBC_2.1 clntunix_create F
> GLIBC_2.1 creat64 F
> GLIBC_2.1 des_setparity F
> +GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.1 ecb_crypt F
> GLIBC_2.1 endutxent F
> @@ -2406,6 +2408,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
> index 8500feca8a..a455934421 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
> @@ -1,4 +1,4 @@
> -GLIBC_2.0 dlopen F
> -GLIBC_2.1 dlopen F
> +GLIBC_2.0 __libdl_version_placeholder F
> +GLIBC_2.1 __libdl_version_placeholder F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 54b6d41c6d..c754a181da 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -408,6 +408,7 @@ GLIBC_2.0 div F
> 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.0 dprintf F
> GLIBC_2.0 drand48 F
> @@ -1503,6 +1504,7 @@ GLIBC_2.1 chown F
> GLIBC_2.1 clntunix_create F
> GLIBC_2.1 creat64 F
> GLIBC_2.1 des_setparity F
> +GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.1 ecb_crypt F
> GLIBC_2.1 endutxent F
> @@ -2439,6 +2441,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index be60141560..98bd6bea39 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -761,6 +761,7 @@ GLIBC_2.3 dl_iterate_phdr F
> 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
> GLIBC_2.3 dngettext F
> @@ -2253,6 +2254,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
> index c32fb65365..d82eac3034 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
> @@ -1,3 +1,3 @@
> -GLIBC_2.3 dlopen F
> +GLIBC_2.3 __libdl_version_placeholder F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 4157f78a90..d27f7448ed 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -812,6 +812,7 @@ 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
> GLIBC_2.17 dlsym F
> GLIBC_2.17 dlvsym F
> GLIBC_2.17 dngettext F
> @@ -2552,6 +2553,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
> index 1fabf08e3c..4ba4ba9aae 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
> @@ -1 +1 @@
> -GLIBC_2.17 dlopen F
> +GLIBC_2.17 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index 367e46b2e2..33c9f98bf5 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -662,6 +662,7 @@ 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
> GLIBC_2.33 dlsym F
> GLIBC_2.33 dlvsym F
> GLIBC_2.33 dngettext F
> @@ -2117,6 +2118,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
> index 7014e0e280..8441999906 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist
> @@ -1 +1 @@
> -GLIBC_2.33 dlopen F
> +GLIBC_2.33 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index aec46ac3c0..9902603cd4 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -703,6 +703,7 @@ 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
> GLIBC_2.27 dlsym F
> GLIBC_2.27 dlvsym F
> GLIBC_2.27 dngettext F
> @@ -2317,6 +2318,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
> index d4d85e298f..33ff573df8 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist
> @@ -1 +1 @@
> -GLIBC_2.27 dlopen F
> +GLIBC_2.27 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 5dbfc50d2a..963e27571d 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -398,6 +398,7 @@ GLIBC_2.0 div F
> 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.0 dprintf F
> GLIBC_2.0 drand48 F
> @@ -1495,6 +1496,7 @@ GLIBC_2.1 chown F
> GLIBC_2.1 clntunix_create F
> GLIBC_2.1 creat64 F
> GLIBC_2.1 des_setparity F
> +GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.1 ecb_crypt F
> GLIBC_2.1 endutxent F
> @@ -2404,6 +2406,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
> index 8500feca8a..a455934421 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
> @@ -1,4 +1,4 @@
> -GLIBC_2.0 dlopen F
> -GLIBC_2.1 dlopen F
> +GLIBC_2.0 __libdl_version_placeholder F
> +GLIBC_2.1 __libdl_version_placeholder F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index c0d3d8362c..17c56a2658 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -698,6 +698,7 @@ GLIBC_2.2 div F
> 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
> GLIBC_2.2 dngettext F
> @@ -2290,6 +2291,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
> index 59fedff595..a1deffc0c2 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
> @@ -1,3 +1,3 @@
> -GLIBC_2.2 dlopen F
> +GLIBC_2.2 __libdl_version_placeholder F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 1928e8a1fb..456abfb5bb 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -5,7 +5,9 @@ GCC_3.0 __register_frame_info_table_bases F
> 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
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> GLIBC_2.10 __posix_getopt F
> @@ -2259,6 +2261,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
> index 8500feca8a..a455934421 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
> @@ -1,4 +1,4 @@
> -GLIBC_2.0 dlopen F
> -GLIBC_2.1 dlopen F
> +GLIBC_2.0 __libdl_version_placeholder F
> +GLIBC_2.1 __libdl_version_placeholder F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 738628c7b6..45e59f1821 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -5,7 +5,9 @@ GCC_3.0 __register_frame_info_table_bases F
> 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
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> GLIBC_2.10 __posix_getopt F
> @@ -2256,6 +2258,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
> index 8500feca8a..a455934421 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
> @@ -1,4 +1,4 @@
> -GLIBC_2.0 dlopen F
> -GLIBC_2.1 dlopen F
> +GLIBC_2.0 __libdl_version_placeholder F
> +GLIBC_2.1 __libdl_version_placeholder F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index c7e29c5d31..734e1f38b6 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -400,6 +400,7 @@ GLIBC_2.0 div F
> 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.0 dprintf F
> GLIBC_2.0 drand48 F
> @@ -1496,6 +1497,7 @@ GLIBC_2.1 cbc_crypt F
> GLIBC_2.1 clntunix_create F
> GLIBC_2.1 creat64 F
> GLIBC_2.1 des_setparity F
> +GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.1 ecb_crypt F
> GLIBC_2.1 endutxent F
> @@ -2397,6 +2399,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
> index 8500feca8a..a455934421 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
> @@ -1,4 +1,4 @@
> -GLIBC_2.0 dlopen F
> -GLIBC_2.1 dlopen F
> +GLIBC_2.0 __libdl_version_placeholder F
> +GLIBC_2.1 __libdl_version_placeholder F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index e5c7a92b38..9edf5ff234 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -5,7 +5,9 @@ GCC_3.0 __register_frame_info_table_bases F
> 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
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> GLIBC_2.10 __posix_getopt F
> @@ -2309,6 +2311,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
> index 8500feca8a..a455934421 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
> @@ -1,4 +1,4 @@
> -GLIBC_2.0 dlopen F
> -GLIBC_2.1 dlopen F
> +GLIBC_2.0 __libdl_version_placeholder F
> +GLIBC_2.1 __libdl_version_placeholder F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 7e35c50406..bc8535fbed 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -688,6 +688,7 @@ GLIBC_2.2.5 dl_iterate_phdr F
> 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
> GLIBC_2.2.5 dngettext F
> @@ -2268,6 +2269,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
> index 7a82c097cf..590424fbdc 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
> @@ -1,3 +1,3 @@
> -GLIBC_2.2.5 dlopen F
> +GLIBC_2.2.5 __libdl_version_placeholder F
> GLIBC_2.3.3 __libdl_version_placeholder F
> GLIBC_2.3.4 __libdl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 4d1dd2b3a2..669cc664f5 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -728,6 +728,7 @@ 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
> GLIBC_2.16 dlsym F
> GLIBC_2.16 dlvsym F
> GLIBC_2.16 dngettext F
> @@ -2371,6 +2372,7 @@ GLIBC_2.34 dlclose F
> GLIBC_2.34 dlerror F
> GLIBC_2.34 dlinfo F
> GLIBC_2.34 dlmopen F
> +GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
> index 92d5e7d128..583acd29f7 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
> @@ -1 +1 @@
> -GLIBC_2.16 dlopen F
> +GLIBC_2.16 __libdl_version_placeholder F
>
Ok.
^ permalink raw reply [flat|nested] 39+ messages in thread
* [PATCH 14/16] dlfcn: Cleanups after -ldl is no longer required
2021-05-31 14:10 [PATCH v3 00/16] Move libdl into libc Florian Weimer
` (12 preceding siblings ...)
2021-05-31 14:12 ` [PATCH 13/16] dlfcn: Move dlopen " Florian Weimer
@ 2021-05-31 14:12 ` Florian Weimer
2021-06-02 18:08 ` Adhemerval Zanella
2021-05-31 14:12 ` [PATCH v2 15/16] dlfcn: Eliminate GLIBC_PRIVATE dependency from tststatic2 Florian Weimer
2021-05-31 14:12 ` [PATCH 16/16] dlfcn: Rework static dlopen hooks Florian Weimer
15 siblings, 1 reply; 39+ messages in thread
From: Florian Weimer @ 2021-05-31 14:12 UTC (permalink / raw)
To: libc-alpha
This commit removes the ELF constructor and internal variables from
dlfcn, and adjusts the test suite not to use $(libdl). The libdl.so
symbolic link is no longer installed.
Moving the dlfcn object file to libdl-shared-only-routines ensures
that libdl.a is empty.
---
Makeconfig | 6 --
dlfcn/Makefile | 40 +++------
dlfcn/dlfcn.c | 18 ----
elf/Makefile | 172 +++++++--------------------------------
htl/Makefile | 1 -
iconvdata/Makefile | 1 -
include/dlfcn.h | 18 ----
malloc/Makefile | 3 -
misc/Makefile | 2 -
nptl/Makefile | 7 --
nss/Makefile | 5 --
resolv/Makefile | 19 ++---
stdlib/Makefile | 8 +-
string/Makefile | 1 -
sysdeps/mips/Makefile | 1 -
sysdeps/pthread/Makefile | 6 +-
sysdeps/x86/Makefile | 13 +--
17 files changed, 56 insertions(+), 265 deletions(-)
diff --git a/Makeconfig b/Makeconfig
index 1d5e45926c..c3496452b6 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -1255,12 +1255,6 @@ endif
endif # build-shared
-ifeq ($(build-shared),yes)
-libdl = $(common-objpfx)dlfcn/libdl.so$(libdl.so-version)
-else
-libdl = $(common-objpfx)dlfcn/libdl.a
-endif
-
ifeq ($(build-shared),yes)
libm = $(common-objpfx)math/libm.so$(libm.so-version)
libmvec = $(common-objpfx)mathvec/libmvec.so$(libmvec.so-version)
diff --git a/dlfcn/Makefile b/dlfcn/Makefile
index a471d86071..4d17f770a1 100644
--- a/dlfcn/Makefile
+++ b/dlfcn/Makefile
@@ -22,9 +22,7 @@ include ../Makeconfig
headers := bits/dlfcn.h dlfcn.h
extra-libs := libdl
libdl-routines := dlfcn
-routines := $(patsubst %,s%,$(filter-out dlfcn,$(libdl-routines)))
-elide-routines.os := $(routines)
-routines += \
+routines = \
dladdr \
dladdr1 \
dlclose \
@@ -38,9 +36,16 @@ routines += \
extra-libs-others := libdl
+libdl-shared-only-routines += dlfcn
+
+# Pretend that libdl.so is a linker script, so that the symbolic
+# link is not installed.
+install-lib-ldscripts = libdl.so
+$(inst_libdir)/libdl.so:
+
ifeq ($(build-shared),yes)
routines += dlopenold
-shared-only-routines := dlopenold dlfcn
+shared-only-routines := dlopenold
endif
ifeq (yes,$(build-shared))
@@ -87,77 +92,54 @@ ifeq ($(build-shared),yes)
tests: $(test-modules)
endif
-$(objpfx)glrefmain: $(libdl)
$(objpfx)glrefmain.out: $(objpfx)glrefmain \
$(objpfx)glreflib1.so $(objpfx)glreflib2.so
-$(objpfx)failtest: $(libdl)
$(objpfx)failtest.out: $(objpfx)failtestmod.so
-$(objpfx)tst-dladdr: $(libdl)
$(objpfx)tst-dladdr.out: $(objpfx)glreflib1.so
-$(objpfx)tst-dlinfo: $(libdl)
$(objpfx)tst-dlinfo.out: $(objpfx)glreflib3.so
LDFLAGS-glreflib3.so = -Wl,-rpath,:
LDFLAGS-default = $(LDFLAGS-rdynamic)
-$(objpfx)default: $(libdl) $(objpfx)defaultmod1.so $(objpfx)defaultmod2.so
-$(objpfx)defaultmod1.so: $(libdl)
+$(objpfx)default: $(objpfx)defaultmod1.so $(objpfx)defaultmod2.so
LDFLAGS-defaultmod2.so = $(LDFLAGS-Bsymbolic)
-$(objpfx)defaultmod2.so: $(libdl)
-$(objpfx)errmsg1: $(libdl)
$(objpfx)errmsg1.out: $(objpfx)errmsg1 $(objpfx)errmsg1mod.so
-$(objpfx)tstatexit: $(libdl)
$(objpfx)tstatexit.out: $(objpfx)tstatexit $(objpfx)modatexit.so
-$(objpfx)tstcxaatexit: $(libdl)
$(objpfx)tstcxaatexit.out: $(objpfx)tstcxaatexit $(objpfx)modcxaatexit.so
-$(objpfx)tststatic: $(objpfx)libdl.a
$(objpfx)tststatic.out: $(objpfx)tststatic $(objpfx)modstatic.so
-$(objpfx)tststatic2: $(objpfx)libdl.a
$(objpfx)tststatic2.out: $(objpfx)tststatic2 $(objpfx)modstatic.so \
$(objpfx)modstatic2.so
-$(objpfx)modstatic2.so: $(libdl)
-
-$(objpfx)tststatic3: $(objpfx)libdl.a
$(objpfx)tststatic3.out: $(objpfx)tststatic3 $(objpfx)modstatic3.so
-$(objpfx)tststatic4: $(objpfx)libdl.a
$(objpfx)tststatic4.out: $(objpfx)tststatic4 $(objpfx)modstatic3.so
-$(objpfx)tststatic5: $(objpfx)libdl.a
$(objpfx)tststatic5.out: $(objpfx)tststatic5 $(objpfx)modstatic5.so
-$(objpfx)bug-dlopen1: $(libdl)
-
-$(objpfx)bug-dlsym1: $(libdl) $(objpfx)bug-dlsym1-lib2.so
+$(objpfx)bug-dlsym1: $(objpfx)bug-dlsym1-lib2.so
$(objpfx)bug-dlsym1.out: $(objpfx)bug-dlsym1-lib1.so \
$(objpfx)bug-dlsym1-lib2.so
$(objpfx)bug-dlsym1-lib1.so: $(objpfx)bug-dlsym1-lib2.so
-$(objpfx)bug-atexit1: $(libdl)
$(objpfx)bug-atexit1.out: $(objpfx)bug-atexit1-lib.so
-$(objpfx)bug-atexit2: $(libdl)
$(objpfx)bug-atexit2.out: $(objpfx)bug-atexit2-lib.so
ifneq (,$(CXX))
LDLIBS-bug-atexit3-lib.so = -lstdc++ -lgcc_eh
$(objpfx)bug-atexit3-lib.so: $(libsupport)
-$(objpfx)bug-atexit3: $(libdl)
$(objpfx)bug-atexit3.out: $(objpfx)bug-atexit3-lib.so
endif
$(objpfx)bug-dl-leaf: $(objpfx)bug-dl-leaf-lib.so
$(objpfx)bug-dl-leaf.out: $(objpfx)bug-dl-leaf-lib-cb.so
-$(objpfx)bug-dl-leaf-lib.so: $(libdl)
$(objpfx)bug-dl-leaf-lib-cb.so: $(objpfx)bug-dl-leaf-lib.so
-$(objpfx)tst-rec-dlopen: $(libdl)
$(objpfx)tst-rec-dlopen.out: $(objpfx)moddummy1.so $(objpfx)moddummy2.so
diff --git a/dlfcn/dlfcn.c b/dlfcn/dlfcn.c
index ef750bc27a..e7fa01ecf5 100644
--- a/dlfcn/dlfcn.c
+++ b/dlfcn/dlfcn.c
@@ -19,24 +19,6 @@
#include <dlfcn.h>
#include <shlib-compat.h>
-int __dlfcn_argc attribute_hidden;
-char **__dlfcn_argv attribute_hidden;
-
-
-static void
-init (int argc, char *argv[])
-{
- __dlfcn_argc = argc;
- __dlfcn_argv = argv;
-}
-
-static void (*const init_array []) (int argc, char *argv[])
- __attribute__ ((section (".init_array"), aligned (sizeof (void *))))
- __attribute_used__ =
-{
- init
-};
-
/* The remainder of this file is used to keep specific symbol versions
occupied, so that ld does not generate weak symbol version
definitions. */
diff --git a/elf/Makefile b/elf/Makefile
index 0ec736bb0f..e9788d3d4f 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -673,8 +673,6 @@ $(objpfx)ldd: ldd.bash.in $(common-objpfx)soversions.mk \
chmod 555 $@.new
mv -f $@.new $@
-$(objpfx)sprof: $(libdl)
-
$(objpfx)sln: $(sln-modules:%=$(objpfx)%.o)
$(objpfx)ldconfig: $(ldconfig-modules:%=$(objpfx)%.o)
@@ -699,28 +697,21 @@ include $(patsubst %,$(..)libof-iterator.mk,$(cpp-srcs-left))
test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names))))
generated += $(addsuffix .so,$(strip $(modules-names)))
-$(objpfx)testobj1_1.so: $(objpfx)testobj1.so $(libdl)
-$(objpfx)testobj2.so: $(objpfx)testobj1.so $(libdl)
-$(objpfx)testobj3.so: $(libdl)
-$(objpfx)testobj4.so: $(libdl)
-$(objpfx)testobj5.so: $(libdl)
-$(objpfx)testobj6.so: $(objpfx)testobj1.so $(objpfx)testobj2.so $(libdl)
+$(objpfx)testobj1_1.so: $(objpfx)testobj1.so
+$(objpfx)testobj2.so: $(objpfx)testobj1.so
+$(objpfx)testobj6.so: $(objpfx)testobj1.so $(objpfx)testobj2.so
$(objpfx)failobj.so: $(objpfx)testobj6.so
$(objpfx)dep1.so: $(objpfx)dep2.so $(objpfx)dep4.so
$(objpfx)dep2.so: $(objpfx)dep3.so $(objpfx)dep4.so
$(objpfx)dep4.so: $(objpfx)dep3.so
$(objpfx)nodelmod3.so: $(objpfx)nodelmod4.so
-$(objpfx)nextmod1.so: $(libdl)
-$(objpfx)neededobj1.so: $(libdl)
-$(objpfx)neededobj2.so: $(objpfx)neededobj1.so $(libdl)
-$(objpfx)neededobj3.so: $(objpfx)neededobj1.so $(objpfx)neededobj2.so $(libdl)
+$(objpfx)neededobj2.so: $(objpfx)neededobj1.so
+$(objpfx)neededobj3.so: $(objpfx)neededobj1.so $(objpfx)neededobj2.so
$(objpfx)neededobj4.so: $(objpfx)neededobj1.so $(objpfx)neededobj2.so \
- $(objpfx)neededobj3.so $(libdl)
+ $(objpfx)neededobj3.so
$(objpfx)neededobj6.so: $(objpfx)neededobj5.so
$(objpfx)unload2mod.so: $(objpfx)unload2dep.so
-$(objpfx)ltglobmod2.so: $(libdl)
$(objpfx)firstobj.so: $(shared-thread-library)
-$(objpfx)globalmod1.so: $(libdl)
$(objpfx)reldep4mod1.so: $(objpfx)reldep4mod3.so
$(objpfx)reldep4mod2.so: $(objpfx)reldep4mod4.so
$(objpfx)dblloadmod1.so: $(objpfx)dblloadmod3.so
@@ -750,14 +741,9 @@ $(objpfx)unload3mod2.so: $(objpfx)unload3mod3.so
$(objpfx)unload3mod3.so: $(objpfx)unload3mod4.so
$(objpfx)unload4mod1.so: $(objpfx)unload4mod2.so $(objpfx)unload4mod3.so
$(objpfx)unload4mod2.so: $(objpfx)unload4mod4.so $(objpfx)unload4mod3.so
-$(objpfx)unload6mod1.so: $(libdl)
-$(objpfx)unload6mod2.so: $(libdl)
-$(objpfx)unload6mod3.so: $(libdl)
-$(objpfx)unload7mod1.so: $(libdl)
$(objpfx)unload7mod2.so: $(objpfx)unload7mod1.so
$(objpfx)unload8mod1.so: $(objpfx)unload8mod2.so
$(objpfx)unload8mod2.so: $(objpfx)unload8mod3.so
-$(objpfx)unload8mod3.so: $(libdl)
$(objpfx)tst-initordera2.so: $(objpfx)tst-initordera1.so
$(objpfx)tst-initorderb2.so: $(objpfx)tst-initorderb1.so $(objpfx)tst-initordera2.so
$(objpfx)tst-initordera3.so: $(objpfx)tst-initorderb2.so $(objpfx)tst-initorderb1.so
@@ -766,8 +752,6 @@ $(objpfx)tst-initorder: $(objpfx)tst-initordera4.so $(objpfx)tst-initordera1.so
$(objpfx)tst-null-argv: $(objpfx)tst-null-argv-lib.so
$(objpfx)tst-tlsalign: $(objpfx)tst-tlsalign-lib.so
$(objpfx)tst-nodelete-opened.out: $(objpfx)tst-nodelete-opened-lib.so
-$(objpfx)tst-nodelete-opened: $(libdl)
-$(objpfx)tst-noload: $(libdl)
$(objpfx)tst-tlsalign-extern: $(objpfx)tst-tlsalign-vars.o
$(objpfx)tst-tlsalign-extern-static: $(objpfx)tst-tlsalign-vars.o
@@ -842,30 +826,25 @@ ifeq ($(build-shared),yes)
tests: $(test-modules)
endif
-$(objpfx)loadtest: $(libdl)
LDFLAGS-loadtest = -rdynamic
$(objpfx)loadtest.out: $(test-modules)
-$(objpfx)neededtest: $(libdl)
$(objpfx)neededtest.out: $(objpfx)neededobj1.so $(objpfx)neededobj2.so \
$(objpfx)neededobj3.so
-$(objpfx)neededtest2: $(libdl)
$(objpfx)neededtest2.out: $(objpfx)neededobj1.so $(objpfx)neededobj2.so \
$(objpfx)neededobj3.so
-$(objpfx)neededtest3: $(libdl)
$(objpfx)neededtest3.out: $(objpfx)neededobj1.so $(objpfx)neededobj2.so \
$(objpfx)neededobj3.so $(objpfx)neededobj4.so
-$(objpfx)neededtest4: $(libdl) $(objpfx)neededobj1.so
+$(objpfx)neededtest4: $(objpfx)neededobj1.so
$(objpfx)neededtest4.out: $(objpfx)neededobj5.so $(objpfx)neededobj6.so
-$(objpfx)restest1: $(objpfx)testobj1.so $(objpfx)testobj1_1.so $(libdl)
+$(objpfx)restest1: $(objpfx)testobj1.so $(objpfx)testobj1_1.so
LDFLAGS-restest1 = -rdynamic
-$(objpfx)restest2: $(libdl)
LDFLAGS-restest2 = -rdynamic
$(objpfx)restest1.out: $(test-modules)
@@ -877,31 +856,24 @@ $(objpfx)preloadtest.out: $(preloadtest-preloads:%=$(objpfx)%.so)
preloadtest-ENV = \
LD_PRELOAD=$(subst $(empty) ,:,$(strip $(preloadtest-preloads:=.so)))
-$(objpfx)loadfail: $(libdl)
LDFLAGS-loadfail = -rdynamic
$(objpfx)loadfail.out: $(objpfx)failobj.so
-$(objpfx)multiload: $(libdl)
LDFLAGS-multiload = -rdynamic
CFLAGS-multiload.c += -DOBJDIR=\"$(elf-objpfx)\"
$(objpfx)multiload.out: $(objpfx)testobj1.so
-$(objpfx)origtest: $(libdl)
LDFLAGS-origtest = -rdynamic
$(objpfx)origtest.out: $(objpfx)testobj1.so
ifeq ($(have-thread-library),yes)
-$(objpfx)resolvfail: $(libdl) $(shared-thread-library)
-else
-$(objpfx)resolvfail: $(libdl)
+$(objpfx)resolvfail: $(shared-thread-library)
endif
-$(objpfx)constload1: $(libdl)
$(objpfx)constload1.out: $(objpfx)constload2.so $(objpfx)constload3.so
-$(objpfx)circleload1: $(libdl)
$(objpfx)circleload1.out: $(objpfx)circlemod1.so \
$(objpfx)circlemod1a.so
@@ -920,7 +892,7 @@ $(objpfx)vismain: $(addprefix $(objpfx),vismod1.so vismod2.so)
$(objpfx)vismain.out: $(addprefix $(objpfx),vismod3.so)
vismain-ENV = LD_PRELOAD=$(addprefix $(objpfx),vismod3.so)
-$(objpfx)noload: $(objpfx)testobj1.so $(libdl)
+$(objpfx)noload: $(objpfx)testobj1.so
LDFLAGS-noload = -rdynamic -Wl,--no-as-needed
$(objpfx)noload.out: $(objpfx)testobj5.so
@@ -932,16 +904,13 @@ noload-ENV = MALLOC_TRACE=$(objpfx)noload.mtrace
LDFLAGS-nodelete = -rdynamic
LDFLAGS-nodelmod1.so = -Wl,--enable-new-dtags,-z,nodelete
LDFLAGS-nodelmod4.so = -Wl,--enable-new-dtags,-z,nodelete
-$(objpfx)nodelete: $(libdl)
$(objpfx)nodelete.out: $(objpfx)nodelmod1.so $(objpfx)nodelmod2.so \
$(objpfx)nodelmod3.so
LDFLAGS-nodlopenmod.so = -Wl,--enable-new-dtags,-z,nodlopen
-$(objpfx)nodlopen: $(libdl)
$(objpfx)nodlopen.out: $(objpfx)nodlopenmod.so
$(objpfx)nodlopenmod2.so: $(objpfx)nodlopenmod.so
-$(objpfx)nodlopen2: $(libdl)
$(objpfx)nodlopen2.out: $(objpfx)nodlopenmod2.so
$(objpfx)filtmod1.so: $(objpfx)filtmod1.os $(objpfx)filtmod2.so
@@ -954,31 +923,23 @@ $(objpfx)filter: $(objpfx)filtmod1.so
# This does not link against libc.
CFLAGS-filtmod1.c += $(no-stack-protector)
-$(objpfx)unload: $(libdl)
$(objpfx)unload.out: $(objpfx)unloadmod.so
-$(objpfx)reldep: $(libdl)
$(objpfx)reldep.out: $(objpfx)reldepmod1.so $(objpfx)reldepmod2.so
-$(objpfx)reldep2: $(libdl)
$(objpfx)reldep2.out: $(objpfx)reldepmod1.so $(objpfx)reldepmod3.so
-$(objpfx)reldep3: $(libdl)
$(objpfx)reldep3.out: $(objpfx)reldepmod1.so $(objpfx)reldepmod4.so
-$(objpfx)reldep4: $(libdl)
$(objpfx)reldep4.out: $(objpfx)reldep4mod1.so $(objpfx)reldep4mod2.so
-$(objpfx)next: $(objpfx)nextmod1.so $(objpfx)nextmod2.so $(libdl)
+$(objpfx)next: $(objpfx)nextmod1.so $(objpfx)nextmod2.so
LDFLAGS-next = -Wl,--no-as-needed
-$(objpfx)unload2: $(libdl)
$(objpfx)unload2.out: $(objpfx)unload2mod.so $(objpfx)unload2dep.so
-$(objpfx)lateglobal: $(libdl)
$(objpfx)lateglobal.out: $(objpfx)ltglobmod1.so $(objpfx)ltglobmod2.so
-$(objpfx)tst-pathopt: $(libdl)
$(objpfx)tst-pathopt.out: tst-pathopt.sh $(objpfx)tst-pathopt \
$(objpfx)pathoptobj.so
$(SHELL) $< $(common-objpfx) '$(test-wrapper-env)' \
@@ -998,55 +959,40 @@ $(objpfx)tst-rtld-preload.out: tst-rtld-preload.sh $(objpfx)ld.so \
'$(rpath-link)' '$(tst-rtld-preload-OBJS)' > $@; \
$(evaluate-test)
-$(objpfx)initfirst: $(libdl)
$(objpfx)initfirst.out: $(objpfx)firstobj.so
$(objpfx)global: $(objpfx)globalmod1.so
$(objpfx)global.out: $(objpfx)reldepmod1.so
-$(objpfx)dblload: $(libdl)
$(objpfx)dblload.out: $(objpfx)dblloadmod1.so $(objpfx)dblloadmod2.so
-$(objpfx)dblunload: $(libdl)
$(objpfx)dblunload.out: $(objpfx)dblloadmod1.so $(objpfx)dblloadmod2.so
-$(objpfx)reldep5: $(libdl)
$(objpfx)reldep5.out: $(objpfx)reldepmod5.so $(objpfx)reldepmod6.so
-$(objpfx)reldep6: $(libdl)
$(objpfx)reldep6.out: $(objpfx)reldep6mod3.so $(objpfx)reldep6mod4.so
-$(objpfx)reldep7: $(libdl)
$(objpfx)reldep7.out: $(objpfx)reldep7mod1.so $(objpfx)reldep7mod2.so
-$(objpfx)reldep8: $(libdl)
$(objpfx)reldep8.out: $(objpfx)reldep8mod3.so
LDFLAGS-nodel2mod2.so = -Wl,--enable-new-dtags,-z,nodelete
-$(objpfx)nodelete2: $(libdl)
$(objpfx)nodelete2.out: $(objpfx)nodel2mod3.so
-$(objpfx)reldep9: $(libdl)
$(objpfx)reldep9.out: $(objpfx)reldep9mod3.so
$(objpfx)tst-tls3: $(objpfx)tst-tlsmod1.so
-$(objpfx)tst-tls4: $(libdl)
$(objpfx)tst-tls4.out: $(objpfx)tst-tlsmod2.so
-$(objpfx)tst-tls5: $(libdl)
$(objpfx)tst-tls5.out: $(objpfx)tst-tlsmod2.so
-$(objpfx)tst-tls6: $(libdl)
$(objpfx)tst-tls6.out: $(objpfx)tst-tlsmod2.so
-$(objpfx)tst-tls7: $(libdl)
$(objpfx)tst-tls7.out: $(objpfx)tst-tlsmod3.so
-$(objpfx)tst-tls8: $(libdl)
$(objpfx)tst-tls8.out: $(objpfx)tst-tlsmod3.so $(objpfx)tst-tlsmod4.so
-$(objpfx)tst-tls9: $(libdl)
$(objpfx)tst-tls9.out: $(objpfx)tst-tlsmod5.so $(objpfx)tst-tlsmod6.so
$(objpfx)tst-tls10: $(objpfx)tst-tlsmod8.so $(objpfx)tst-tlsmod7.so
@@ -1055,67 +1001,53 @@ $(objpfx)tst-tls11: $(objpfx)tst-tlsmod10.so $(objpfx)tst-tlsmod9.so
$(objpfx)tst-tls12: $(objpfx)tst-tlsmod12.so $(objpfx)tst-tlsmod11.so
-$(objpfx)tst-tls13: $(libdl)
$(objpfx)tst-tls13.out: $(objpfx)tst-tlsmod13a.so
-$(objpfx)tst-tls14: $(objpfx)tst-tlsmod14a.so $(libdl)
+$(objpfx)tst-tls14: $(objpfx)tst-tlsmod14a.so
$(objpfx)tst-tls14.out: $(objpfx)tst-tlsmod14b.so
-$(objpfx)tst-tls15: $(libdl)
$(objpfx)tst-tls15.out: $(objpfx)tst-tlsmod15a.so $(objpfx)tst-tlsmod15b.so
-$(objpfx)tst-tls-dlinfo: $(libdl)
$(objpfx)tst-tls-dlinfo.out: $(objpfx)tst-tlsmod2.so
-$(objpfx)tst-tls16: $(libdl)
$(objpfx)tst-tls16.out: $(objpfx)tst-tlsmod16a.so $(objpfx)tst-tlsmod16b.so
-$(objpfx)tst-tls17: $(libdl)
$(objpfx)tst-tls17.out: $(objpfx)tst-tlsmod17b.so
$(patsubst %,$(objpfx)%.os,$(tlsmod17a-modules)): $(objpfx)tst-tlsmod17a%.os: tst-tlsmod17a.c
$(compile-command.c) -DN=$*
$(patsubst %,$(objpfx)%.so,$(tlsmod17a-modules)): $(objpfx)tst-tlsmod17a%.so: $(objpfx)ld.so
$(objpfx)tst-tlsmod17b.so: $(patsubst %,$(objpfx)%.so,$(tlsmod17a-modules))
-$(objpfx)tst-tls18: $(libdl)
$(objpfx)tst-tls18.out: $(patsubst %,$(objpfx)%.so,$(tlsmod18a-modules))
$(patsubst %,$(objpfx)%.os,$(tlsmod18a-modules)): $(objpfx)tst-tlsmod18a%.os : tst-tlsmod18a.c
$(compile-command.c) -DN=$*
$(patsubst %,$(objpfx)%.so,$(tlsmod18a-modules)): $(objpfx)tst-tlsmod18a%.so: $(objpfx)ld.so
-$(objpfx)tst-tls19: $(libdl)
$(objpfx)tst-tls19.out: $(objpfx)tst-tls19mod1.so
CFLAGS-tst-align.c += $(stack-align-test-flags)
CFLAGS-tst-align2.c += $(stack-align-test-flags)
CFLAGS-tst-alignmod.c += $(stack-align-test-flags)
CFLAGS-tst-alignmod2.c += $(stack-align-test-flags)
-$(objpfx)tst-align: $(libdl)
$(objpfx)tst-align.out: $(objpfx)tst-alignmod.so
$(objpfx)tst-align2: $(objpfx)tst-alignmod2.so
-$(objpfx)unload3: $(libdl)
$(objpfx)unload3.out: $(objpfx)unload3mod1.so $(objpfx)unload3mod2.so \
$(objpfx)unload3mod3.so $(objpfx)unload3mod4.so
-$(objpfx)unload4: $(libdl)
$(objpfx)unload4.out: $(objpfx)unload4mod1.so $(objpfx)unload4mod3.so
-$(objpfx)unload5: $(libdl)
$(objpfx)unload5.out: $(objpfx)unload3mod1.so $(objpfx)unload3mod2.so \
$(objpfx)unload3mod3.so $(objpfx)unload3mod4.so
-$(objpfx)unload6: $(libdl)
$(objpfx)unload6.out: $(objpfx)unload6mod1.so $(objpfx)unload6mod2.so \
$(objpfx)unload6mod3.so
-$(objpfx)unload7: $(libdl)
$(objpfx)unload7.out: $(objpfx)unload7mod1.so $(objpfx)unload7mod2.so
unload7-ENV = MALLOC_PERTURB_=85
-$(objpfx)unload8: $(libdl)
$(objpfx)unload8.out: $(objpfx)unload8mod1.so $(objpfx)unload8mod1x.so
ifdef libdl
@@ -1124,7 +1056,6 @@ $(objpfx)tst-tls9-static.out: $(objpfx)tst-tlsmod5.so $(objpfx)tst-tlsmod6.so
endif
ifeq ($(have-z-execstack),yes)
-$(objpfx)tst-execstack: $(libdl)
$(objpfx)tst-execstack.out: $(objpfx)tst-execstack-mod.so
CPPFLAGS-tst-execstack.c += -DUSE_PTHREADS=0
LDFLAGS-tst-execstack = -Wl,-z,noexecstack
@@ -1159,7 +1090,6 @@ $(objpfx)tst-array3-cmp.out: tst-array1.exp $(objpfx)tst-array3.out
cmp $^ > $@; \
$(evaluate-test)
-$(objpfx)tst-array4: $(libdl)
$(objpfx)tst-array4.out: $(objpfx)tst-array2dep.so
$(objpfx)tst-array4-cmp.out: tst-array4.exp $(objpfx)tst-array4.out
cmp $^ > $@; \
@@ -1180,7 +1110,6 @@ CFLAGS-tst-pie2.c += $(pie-ccflag)
$(objpfx)tst-piemod1.so: $(libsupport)
$(objpfx)tst-pie1: $(objpfx)tst-piemod1.so
-$(objpfx)tst-dlopen-pie: $(libdl)
$(objpfx)tst-dlopen-pie.out: $(objpfx)tst-pie1
ifeq (yes,$(build-shared))
@@ -1239,7 +1168,6 @@ $(objpfx)check-wx-segment.out: $(..)scripts/check-wx-segment.py \
$(evaluate-test)
generated += check-wx-segment.out
-$(objpfx)tst-dlmodcount: $(libdl)
$(objpfx)tst-dlmodcount.out: $(test-modules)
$(all-built-dso:=.jmprel): %.jmprel: % Makefile
@@ -1292,38 +1220,31 @@ $(objpfx)check-initfini.out: $(..)scripts/check-initfini.awk \
$(evaluate-test)
generated += check-initfini.out
-$(objpfx)tst-dlopenrpathmod.so: $(libdl)
-$(objpfx)tst-dlopenrpath: $(objpfx)tst-dlopenrpathmod.so $(libdl)
+$(objpfx)tst-dlopenrpath: $(objpfx)tst-dlopenrpathmod.so
CFLAGS-tst-dlopenrpath.c += -DPFX=\"$(objpfx)\"
LDFLAGS-tst-dlopenrpathmod.so += -Wl,-rpath,\$$ORIGIN/test-subdir
$(objpfx)tst-dlopenrpath.out: $(objpfx)firstobj.so
$(objpfx)tst-deep1mod2.so: $(objpfx)tst-deep1mod3.so
-$(objpfx)tst-deep1: $(libdl) $(objpfx)tst-deep1mod1.so
+$(objpfx)tst-deep1: $(objpfx)tst-deep1mod1.so
$(objpfx)tst-deep1.out: $(objpfx)tst-deep1mod2.so
LDFLAGS-tst-deep1 += -rdynamic
tst-deep1mod3.so-no-z-defs = yes
-$(objpfx)tst-dlmopen1mod.so: $(libdl)
-$(objpfx)tst-dlmopen1: $(libdl)
$(objpfx)tst-dlmopen1.out: $(objpfx)tst-dlmopen1mod.so
-$(objpfx)tst-dlmopen2: $(libdl)
$(objpfx)tst-dlmopen2.out: $(objpfx)tst-dlmopen1mod.so
-$(objpfx)tst-dlmopen3: $(libdl)
$(objpfx)tst-dlmopen3.out: $(objpfx)tst-dlmopen1mod.so
$(objpfx)tst-audit1.out: $(objpfx)tst-auditmod1.so
tst-audit1-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so
-$(objpfx)tst-audit2: $(libdl)
$(objpfx)tst-audit2.out: $(objpfx)tst-auditmod1.so $(objpfx)tst-auditmod9b.so
# Prevent GCC-5 from translating a malloc/memset pair into calloc
CFLAGS-tst-audit2.c += -fno-builtin
tst-audit2-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so
-$(objpfx)tst-audit9: $(libdl)
$(objpfx)tst-audit9.out: $(objpfx)tst-auditmod9a.so $(objpfx)tst-auditmod9b.so
tst-audit9-ENV = LD_AUDIT=$(objpfx)tst-auditmod9a.so
@@ -1331,10 +1252,8 @@ $(objpfx)tst-audit8: $(libm)
$(objpfx)tst-audit8.out: $(objpfx)tst-auditmod1.so
tst-audit8-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so
-$(objpfx)tst-global1: $(libdl)
$(objpfx)tst-global1.out: $(objpfx)testobj6.so $(objpfx)testobj2.so
-$(objpfx)order2: $(libdl)
$(objpfx)order2.out: $(objpfx)order2mod1.so $(objpfx)order2mod2.so
$(objpfx)order2-cmp.out: $(objpfx)order2.out
(echo "12345" | cmp $< -) > $@; \
@@ -1355,7 +1274,6 @@ tst-ptrguard1-ARGS = --command "$(host-test-program-cmd) --child"
CFLAGS-tst-ptrguard1-static.c += -DPTRGUARD_LOCAL
tst-ptrguard1-static-ARGS = --command "$(objpfx)tst-ptrguard1-static --child"
-$(objpfx)tst-leaks1: $(libdl)
$(objpfx)tst-leaks1-mem.out: $(objpfx)tst-leaks1.out
$(common-objpfx)malloc/mtrace $(objpfx)tst-leaks1.mtrace > $@; \
$(evaluate-test)
@@ -1368,24 +1286,19 @@ $(objpfx)tst-leaks1-static-mem.out: $(objpfx)tst-leaks1-static.out
tst-leaks1-ENV = MALLOC_TRACE=$(objpfx)tst-leaks1.mtrace
tst-leaks1-static-ENV = MALLOC_TRACE=$(objpfx)tst-leaks1-static.mtrace
-$(objpfx)tst-addr1: $(libdl)
-
-$(objpfx)tst-thrlock: $(libdl) $(shared-thread-library)
+$(objpfx)tst-thrlock: $(shared-thread-library)
tst-tst-dlopen-tlsmodid-no-pie = yes
-$(objpfx)tst-dlopen-tlsmodid: $(libdl) $(shared-thread-library)
+$(objpfx)tst-dlopen-tlsmodid: $(shared-thread-library)
$(objpfx)tst-dlopen-tlsmodid.out: $(objpfx)tst-dlopen-self
CFLAGS-tst-dlopen-tlsmodid-pie.c += $(pie-ccflag)
-$(objpfx)tst-dlopen-tlsmodid-pie: $(libdl) $(shared-thread-library)
+$(objpfx)tst-dlopen-tlsmodid-pie: $(shared-thread-library)
$(objpfx)tst-dlopen-tlsmodid-pie.out: $(objpfx)tst-dlopen-self-pie
-$(objpfx)tst-dlopen-tlsmodid-container: $(libdl) $(shared-thread-library)
+$(objpfx)tst-dlopen-tlsmodid-container: $(shared-thread-library)
LDFLAGS-tst-dlopen-tlsmodid-container += -Wl,-rpath,\$$ORIGIN
tst-tst-dlopen-self-no-pie = yes
-$(objpfx)tst-dlopen-self: $(libdl)
CFLAGS-tst-dlopen-self-pie.c += $(pie-ccflag)
-$(objpfx)tst-dlopen-self-pie: $(libdl)
-$(objpfx)tst-dlopen-self-container: $(libdl)
LDFLAGS-tst-dlopen-self-container += -Wl,-rpath,\$$ORIGIN
CFLAGS-ifuncmain1pic.c += $(pic-ccflag)
@@ -1437,7 +1350,6 @@ $(objpfx)ifuncmain2pic: $(addprefix $(objpfx),ifuncdep2pic.o)
$(objpfx)ifuncmain2static: $(addprefix $(objpfx),ifuncdep2.o)
$(objpfx)ifuncmain2picstatic: $(addprefix $(objpfx),ifuncdep2pic.o)
-$(objpfx)ifuncmain3: $(libdl)
$(objpfx)ifuncmain3.out: $(objpfx)ifuncmod3.so
$(objpfx)ifuncmain5: $(addprefix $(objpfx),ifuncmod5.so)
@@ -1461,19 +1373,17 @@ $(objpfx)tst-ifunc-fault-bindnow.out: $(objpfx)tst-ifunc-fault-bindnow \
$(objpfx)ld.so
$(tst-ifunc-fault-script)
-$(objpfx)tst-unique1: $(libdl)
$(objpfx)tst-unique1.out: $(objpfx)tst-unique1mod1.so \
$(objpfx)tst-unique1mod2.so
-$(objpfx)tst-unique2: $(libdl) $(objpfx)tst-unique2mod1.so
+$(objpfx)tst-unique2: $(objpfx)tst-unique2mod1.so
$(objpfx)tst-unique2.out: $(objpfx)tst-unique2mod2.so
-$(objpfx)tst-unique3: $(libdl) $(objpfx)tst-unique3lib.so
+$(objpfx)tst-unique3: $(objpfx)tst-unique3lib.so
$(objpfx)tst-unique3.out: $(objpfx)tst-unique3lib2.so
$(objpfx)tst-unique4: $(objpfx)tst-unique4lib.so
-$(objpfx)tst-nodelete: $(libdl)
$(objpfx)tst-nodelete.out: $(objpfx)tst-nodelete-uniquemod.so \
$(objpfx)tst-nodelete-rtldmod.so \
$(objpfx)tst-nodelete-zmod.so
@@ -1481,7 +1391,6 @@ $(objpfx)tst-nodelete.out: $(objpfx)tst-nodelete-uniquemod.so \
LDFLAGS-tst-nodelete = -rdynamic
LDFLAGS-tst-nodelete-zmod.so = -Wl,--enable-new-dtags,-z,nodelete
-$(objpfx)tst-nodelete2: $(libdl)
$(objpfx)tst-nodelete2.out: $(objpfx)tst-nodelete2mod.so
LDFLAGS-tst-nodelete2 = -rdynamic
@@ -1509,7 +1418,6 @@ $(objpfx)tst-initorder2-cmp.out: tst-initorder2.exp $(objpfx)tst-initorder2.out
cmp $^ > $@; \
$(evaluate-test)
-$(objpfx)tst-relsort1: $(libdl)
$(objpfx)tst-relsort1mod1.so: $(libm) $(objpfx)tst-relsort1mod2.so
$(objpfx)tst-relsort1mod2.so: $(libm)
$(objpfx)tst-relsort1.out: $(objpfx)tst-relsort1mod1.so \
@@ -1529,13 +1437,11 @@ $(objpfx)tst-unused-dep-cmp.out: $(objpfx)tst-unused-dep.out
$(evaluate-test)
$(objpfx)tst-audit11.out: $(objpfx)tst-auditmod11.so $(objpfx)tst-audit11mod1.so
-$(objpfx)tst-audit11: $(libdl)
tst-audit11-ENV = LD_AUDIT=$(objpfx)tst-auditmod11.so
$(objpfx)tst-audit11mod1.so: $(objpfx)tst-audit11mod2.so
LDFLAGS-tst-audit11mod2.so = -Wl,--version-script=tst-audit11mod2.map,-soname,tst-audit11mod2.so
$(objpfx)tst-audit12.out: $(objpfx)tst-auditmod12.so $(objpfx)tst-audit12mod1.so $(objpfx)tst-audit12mod3.so
-$(objpfx)tst-audit12: $(libdl)
tst-audit12-ENV = LD_AUDIT=$(objpfx)tst-auditmod12.so
$(objpfx)tst-audit12mod1.so: $(objpfx)tst-audit12mod2.so
LDFLAGS-tst-audit12mod2.so = -Wl,--version-script=tst-audit12mod2.map
@@ -1585,13 +1491,11 @@ $(objpfx)tst-sonamemove-link: $(objpfx)tst-sonamemove-linkmod1.so
$(objpfx)tst-sonamemove-link.out: \
$(objpfx)tst-sonamemove-runmod1.so \
$(objpfx)tst-sonamemove-runmod2.so
-$(objpfx)tst-sonamemove-dlopen: $(libdl)
$(objpfx)tst-sonamemove-dlopen.out: \
$(objpfx)tst-sonamemove-runmod1.so \
$(objpfx)tst-sonamemove-runmod2.so
-$(objpfx)tst-dlmopen-dlerror: $(libdl)
-$(objpfx)tst-dlmopen-dlerror-mod.so: $(libdl) $(libsupport)
+$(objpfx)tst-dlmopen-dlerror-mod.so: $(libsupport)
$(objpfx)tst-dlmopen-dlerror.out: $(objpfx)tst-dlmopen-dlerror-mod.so
# Override -z defs, so that we can reference an undefined symbol.
@@ -1602,7 +1506,6 @@ LDFLAGS-tst-latepthreadmod.so = \
# function this_function_is_not_defined.
CFLAGS-tst-latepthreadmod.c += -fno-optimize-sibling-calls
$(objpfx)tst-latepthreadmod.so: $(shared-thread-library)
-$(objpfx)tst-latepthread: $(libdl)
$(objpfx)tst-latepthread.out: $(objpfx)tst-latepthreadmod.so
# The test modules are parameterized by preprocessor macros.
@@ -1610,7 +1513,7 @@ $(patsubst %,$(objpfx)%.os,$(tst-tls-many-dynamic-modules)): \
$(objpfx)tst-tls-manydynamic%mod.os : tst-tls-manydynamicmod.c
$(compile-command.c) \
-DNAME=tls_global_$* -DSETTER=set_value_$* -DGETTER=get_value_$*
-$(objpfx)tst-tls-manydynamic: $(libdl) $(shared-thread-library)
+$(objpfx)tst-tls-manydynamic: $(shared-thread-library)
$(objpfx)tst-tls-manydynamic.out: \
$(patsubst %,$(objpfx)%.so,$(tst-tls-many-dynamic-modules))
@@ -1626,8 +1529,6 @@ $(objpfx)tst-ldconfig-X.out : tst-ldconfig-X.sh $(objpfx)ldconfig
'$(run-program-env)' > $@; \
$(evaluate-test)
-$(objpfx)tst-dlsym-error: $(libdl)
-
# Test static linking of all the libraries we can possibly link
# together. Note that in some configurations this may be less than the
# complete list of libraries we build but we try to maxmimize this list.
@@ -1661,7 +1562,6 @@ endif
# The application depends on the DSO, and the DSO loads the plugin.
# The plugin also depends on the DSO. This creates the circular
# dependency via dlopen that we're testing to make sure works.
-$(objpfx)tst-nodelete-dlclose-dso.so: $(libdl)
$(objpfx)tst-nodelete-dlclose-plugin.so: $(objpfx)tst-nodelete-dlclose-dso.so
$(objpfx)tst-nodelete-dlclose: $(objpfx)tst-nodelete-dlclose-dso.so
$(objpfx)tst-nodelete-dlclose.out: $(objpfx)tst-nodelete-dlclose-dso.so \
@@ -1670,7 +1570,6 @@ $(objpfx)tst-nodelete-dlclose.out: $(objpfx)tst-nodelete-dlclose-dso.so \
tst-env-setuid-ENV = MALLOC_CHECK_=2 MALLOC_MMAP_THRESHOLD_=4096 \
LD_HWCAP_MASK=0x1
-$(objpfx)tst-debug1: $(libdl)
$(objpfx)tst-debug1.out: $(objpfx)tst-debug1mod1.so
$(objpfx)tst-debug1mod1.so: $(objpfx)testobj1.so
@@ -1692,8 +1591,7 @@ $(objpfx)tst-absolute-zero: $(objpfx)tst-absolute-zero-lib.so
# Both the main program and the DSO for tst-libc_dlvsym need to link
# against libdl.
-$(objpfx)tst-libc_dlvsym: $(libdl)
-$(objpfx)tst-libc_dlvsym-dso.so: $(libsupport) $(libdl)
+$(objpfx)tst-libc_dlvsym-dso.so: $(libsupport)
$(objpfx)tst-libc_dlvsym.out: $(objpfx)tst-libc_dlvsym-dso.so
$(objpfx)tst-libc_dlvsym-static: $(common-objpfx)dlfcn/libdl.a
tst-libc_dlvsym-static-ENV = \
@@ -1711,7 +1609,6 @@ $(objpfx)tst-unwind-ctor: $(objpfx)tst-unwind-ctor-lib.so
CFLAGS-tst-unwind-main.c += -funwind-tables -DUSE_PTHREADS=0
-$(objpfx)tst-initfinilazyfail: $(libdl)
$(objpfx)tst-initfinilazyfail.out: \
$(objpfx)tst-initlazyfailmod.so $(objpfx)tst-finilazyfailmod.so
# Override -z defs, so that we can reference an undefined symbol.
@@ -1721,7 +1618,6 @@ LDFLAGS-tst-initlazyfailmod.so = \
LDFLAGS-tst-finilazyfailmod.so = \
-Wl,-z,lazy -Wl,--unresolved-symbols=ignore-all
-$(objpfx)tst-dlopenfail: $(libdl)
$(objpfx)tst-dlopenfail.out: \
$(objpfx)tst-dlopenfailmod1.so $(objpfx)tst-dlopenfailmod2.so
# Order matters here. tst-dlopenfaillinkmod.so's soname ensures a
@@ -1733,7 +1629,6 @@ $(objpfx)tst-dlopenfailmod1.so: \
$(shared-thread-library) $(objpfx)tst-dlopenfaillinkmod.so
LDFLAGS-tst-dlopenfaillinkmod.so = -Wl,-soname,tst-dlopenfail-missingmod.so
$(objpfx)tst-dlopenfailmod2.so: $(objpfx)tst-dlopenfailnodelmod.so
-$(objpfx)tst-dlopenfail-2: $(libdl)
$(objpfx)tst-dlopenfail-2.out: \
$(objpfx)tst-dlopenfailmod1.so $(objpfx)tst-dlopenfailmod2.so \
$(objpfx)tst-dlopenfailmod3.so
@@ -1745,7 +1640,6 @@ LDFLAGS-tst-dlopenfailnodelmod.so = \
# tst-dlopenfailnodelmod.so uses them for error reporting.
LDFLAGS-tst-dlopenfail = -Wl,-E
-$(objpfx)tst-dlopen-nodelete-reloc: $(libdl)
$(objpfx)tst-dlopen-nodelete-reloc.out: \
$(objpfx)tst-dlopen-nodelete-reloc-mod1.so \
$(objpfx)tst-dlopen-nodelete-reloc-mod2.so \
@@ -1774,8 +1668,6 @@ $(objpfx)tst-dlopen-nodelete-reloc-mod5.so: \
LDFLAGS-tst-dlopen-nodelete-reloc-mod5.so = -Wl,-z,nodelete,--no-as-needed
tst-dlopen-nodelete-reloc-mod5.so-no-z-defs = yes
tst-dlopen-nodelete-reloc-mod7.so-no-z-defs = yes
-$(objpfx)tst-dlopen-nodelete-reloc-mod8.so: $(libdl)
-$(objpfx)tst-dlopen-nodelete-reloc-mod10.so: $(libdl)
tst-dlopen-nodelete-reloc-mod11.so-no-z-defs = yes
$(objpfx)tst-dlopen-nodelete-reloc-mod13.so: \
$(objpfx)tst-dlopen-nodelete-reloc-mod12.so
@@ -1791,21 +1683,18 @@ $(objpfx)tst-dlopen-nodelete-reloc-mod17.so: \
LDFLAGS-tst-dlopen-nodelete-reloc-mod17.so = -Wl,--no-as-needed
$(objpfx)tst-ldconfig-ld_so_conf-update.out: $(objpfx)tst-ldconfig-ld-mod.so
-$(objpfx)tst-ldconfig-ld_so_conf-update: $(libdl)
LDFLAGS-tst-filterobj-flt.so = -Wl,--filter=$(objpfx)tst-filterobj-filtee.so
$(objpfx)tst-filterobj: $(objpfx)tst-filterobj-flt.so
-$(objpfx)tst-filterobj-dlopen: $(libdl)
$(objpfx)tst-filterobj.out: $(objpfx)tst-filterobj-filtee.so
$(objpfx)tst-filterobj-dlopen.out: $(objpfx)tst-filterobj-filtee.so
LDFLAGS-tst-filterobj-aux.so = -Wl,--auxiliary=$(objpfx)tst-filterobj-filtee.so
$(objpfx)tst-auxobj: $(objpfx)tst-filterobj-aux.so
-$(objpfx)tst-auxobj-dlopen: $(libdl)
$(objpfx)tst-auxobj.out: $(objpfx)tst-filterobj-filtee.so
$(objpfx)tst-auxobj-dlopen.out: $(objpfx)tst-filterobj-filtee.so
-$(objpfx)tst-single_threaded: $(objpfx)tst-single_threaded-mod1.so $(libdl)
+$(objpfx)tst-single_threaded: $(objpfx)tst-single_threaded-mod1.so
$(objpfx)tst-single_threaded.out: \
$(objpfx)tst-single_threaded-mod2.so $(objpfx)tst-single_threaded-mod3.so
$(objpfx)tst-single_threaded-static-dlopen: \
@@ -1813,13 +1702,13 @@ $(objpfx)tst-single_threaded-static-dlopen: \
$(objpfx)tst-single_threaded-static-dlopen.out: \
$(objpfx)tst-single_threaded-mod2.so
$(objpfx)tst-single_threaded-pthread: \
- $(objpfx)tst-single_threaded-mod1.so $(libdl) $(shared-thread-library)
+ $(objpfx)tst-single_threaded-mod1.so $(shared-thread-library)
$(objpfx)tst-single_threaded-pthread.out: \
$(objpfx)tst-single_threaded-mod2.so $(objpfx)tst-single_threaded-mod3.so \
$(objpfx)tst-single_threaded-mod4.so
$(objpfx)tst-single_threaded-pthread-static: $(static-thread-library)
-$(objpfx)tst-tls-ie: $(libdl) $(shared-thread-library)
+$(objpfx)tst-tls-ie: $(shared-thread-library)
$(objpfx)tst-tls-ie.out: \
$(objpfx)tst-tls-ie-mod0.so \
$(objpfx)tst-tls-ie-mod1.so \
@@ -1829,7 +1718,7 @@ $(objpfx)tst-tls-ie.out: \
$(objpfx)tst-tls-ie-mod5.so \
$(objpfx)tst-tls-ie-mod6.so
-$(objpfx)tst-tls-ie-dlmopen: $(libdl) $(shared-thread-library)
+$(objpfx)tst-tls-ie-dlmopen: $(shared-thread-library)
$(objpfx)tst-tls-ie-dlmopen.out: \
$(objpfx)tst-tls-ie-mod0.so \
$(objpfx)tst-tls-ie-mod1.so \
@@ -1839,8 +1728,6 @@ $(objpfx)tst-tls-ie-dlmopen.out: \
$(objpfx)tst-tls-ie-mod5.so \
$(objpfx)tst-tls-ie-mod6.so
-$(objpfx)tst-tls-surplus: $(libdl)
-
$(objpfx)argv0test.out: tst-rtld-argv0.sh $(objpfx)ld.so \
$(objpfx)argv0test
$(SHELL) $< $(objpfx)ld.so $(objpfx)argv0test \
@@ -1896,7 +1783,6 @@ $(objpfx)tst-glibc-hwcaps-prepend.out: \
# Like tst-glibc-hwcaps-prepend, but uses a container and loads the
# library via ld.so.cache. Test setup is contained in the test
# itself.
-$(objpfx)tst-glibc-hwcaps-prepend-cache: $(libdl)
$(objpfx)tst-glibc-hwcaps-prepend-cache.out: \
$(objpfx)tst-glibc-hwcaps-prepend-cache $(objpfx)libmarkermod1-1.so \
$(objpfx)libmarkermod1-2.so $(objpfx)libmarkermod1-3.so
@@ -1941,12 +1827,12 @@ $(objpfx)tst-rtld-help.out: $(objpfx)ld.so
# Reuses tst-tls-many-dynamic-modules
tst-tls20mod-bad.so-no-z-defs = yes
-$(objpfx)tst-tls20: $(libdl) $(shared-thread-library)
+$(objpfx)tst-tls20: $(shared-thread-library)
$(objpfx)tst-tls20.out: $(objpfx)tst-tls20mod-bad.so \
$(tst-tls-many-dynamic-modules:%=$(objpfx)%.so)
# Reuses tst-tls-many-dynamic-modules
-$(objpfx)tst-tls21: $(libdl) $(shared-thread-library)
+$(objpfx)tst-tls21: $(shared-thread-library)
$(objpfx)tst-tls21.out: $(objpfx)tst-tls21mod.so
$(objpfx)tst-tls21mod.so: $(tst-tls-many-dynamic-modules:%=$(objpfx)%.so)
diff --git a/htl/Makefile b/htl/Makefile
index 4c5767b04c..8c5ad3c5de 100644
--- a/htl/Makefile
+++ b/htl/Makefile
@@ -215,7 +215,6 @@ $(addprefix $(objpfx), \
$(tests-nolibpthread), \
$(tests) $(tests-internal) $(xtests) $(test-srcs) $(tests-container))): \
$(objpfx)libpthread.so
-$(objpfx)tst-unload: $(libdl)
# $(objpfx)../libc.so is used instead of $(common-objpfx)libc.so,
# since otherwise libpthread.so comes before libc.so when linking.
$(addprefix $(objpfx), $(tests-reverse)): \
diff --git a/iconvdata/Makefile b/iconvdata/Makefile
index 55c527a5f7..6eeb92f4b3 100644
--- a/iconvdata/Makefile
+++ b/iconvdata/Makefile
@@ -307,7 +307,6 @@ $(objpfx)bug-iconv1.out: $(objpfx)gconv-modules \
$(addprefix $(objpfx),$(modules.so))
$(objpfx)bug-iconv2.out: $(objpfx)gconv-modules \
$(addprefix $(objpfx),$(modules.so))
-$(objpfx)bug-iconv3: $(libdl)
$(objpfx)bug-iconv3.out: $(objpfx)gconv-modules \
$(addprefix $(objpfx),$(modules.so))
$(objpfx)bug-iconv5.out: $(objpfx)gconv-modules \
diff --git a/include/dlfcn.h b/include/dlfcn.h
index 4274eddbc9..711bbb0f12 100644
--- a/include/dlfcn.h
+++ b/include/dlfcn.h
@@ -19,16 +19,6 @@
extern int __libc_argc attribute_hidden;
extern char **__libc_argv attribute_hidden;
-#ifdef SHARED
-/* Locally stored program arguments. */
-extern int __dlfcn_argc attribute_hidden;
-extern char **__dlfcn_argv attribute_hidden;
-#else
-# define __dlfcn_argc __libc_argc
-# define __dlfcn_argv __libc_argv
-#endif
-
-
/* Now define the internal interfaces. */
/* Use RTLD_NOW here because:
@@ -101,14 +91,6 @@ libc_hidden_proto (_dl_vsym)
extern int _dlerror_run (void (*operate) (void *), void *args);
libc_hidden_proto (_dlerror_run)
-#ifdef SHARED
-# define DL_CALLER_DECL /* Nothing */
-# define DL_CALLER RETURN_ADDRESS (0)
-#else
-# define DL_CALLER_DECL , void *dl_caller
-# define DL_CALLER dl_caller
-#endif
-
struct dlfcn_hook
{
void *(*dlopen) (const char *file, int mode, void *dl_caller);
diff --git a/malloc/Makefile b/malloc/Makefile
index 857e2ebbd9..149dc7471f 100644
--- a/malloc/Makefile
+++ b/malloc/Makefile
@@ -244,9 +244,6 @@ $(objpfx)memusage: memusage.sh
&& rm -f $@ && mv $@.new $@ && chmod +x $@
-# The implementation uses `dlsym'
-$(objpfx)libmemusage.so: $(libdl)
-
# Extra dependencies
$(foreach o,$(all-object-suffixes),$(objpfx)malloc$(o)): arena.c hooks.c
diff --git a/misc/Makefile b/misc/Makefile
index 38dad737f2..c103b6bff4 100644
--- a/misc/Makefile
+++ b/misc/Makefile
@@ -158,5 +158,3 @@ tst-allocate_once-ENV = MALLOC_TRACE=$(objpfx)tst-allocate_once.mtrace
$(objpfx)tst-allocate_once-mem.out: $(objpfx)tst-allocate_once.out
$(common-objpfx)malloc/mtrace $(objpfx)tst-allocate_once.mtrace > $@; \
$(evaluate-test)
-
-$(objpfx)tst-gethostid: $(libdl)
diff --git a/nptl/Makefile b/nptl/Makefile
index 9a5628b751..f7d7a2c7e2 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -497,7 +497,6 @@ $(objpfx)tst-stack3-mem.out: $(objpfx)tst-stack3.out
$(evaluate-test)
generated += tst-stack3-mem.out tst-stack3.mtrace
-$(objpfx)tst-stack4: $(libdl)
tst-stack4mod.sos=$(shell for i in 0 1 2 3 4 5 6 7 8 9 10 \
11 12 13 14 15 16 17 18 19; do \
for j in 0 1 2 3 4 5 6 7 8 9 10 \
@@ -513,11 +512,9 @@ clean:
$(objpfx)tst-cleanup4: $(objpfx)tst-cleanup4aux.o
$(objpfx)tst-cleanupx4: $(objpfx)tst-cleanupx4aux.o
-$(objpfx)tst-tls3: $(libdl)
LDFLAGS-tst-tls3 = -rdynamic
$(objpfx)tst-tls3.out: $(objpfx)tst-tls3mod.so
-$(objpfx)tst-tls3-malloc: $(libdl)
LDFLAGS-tst-tls3-malloc = -rdynamic
$(objpfx)tst-tls3-malloc.out: $(objpfx)tst-tls3mod.so
@@ -535,8 +532,6 @@ $(objpfx)tst-tls6.out: tst-tls6.sh $(objpfx)tst-tls5 \
$(evaluate-test)
endif
-$(objpfx)tst-dlsym1: $(libdl)
-
ifeq (yes,$(build-shared))
librt = $(common-objpfx)rt/librt.so
else
@@ -550,14 +545,12 @@ LDLIBS-tst-cancel24 = -Wl,--no-as-needed -lstdc++
LDLIBS-tst-cancel24-static = $(LDLIBS-tst-cancel24)
ifeq ($(build-shared),yes)
-$(objpfx)tst-unload: $(libdl)
generated += multidir.mk tst-tls6.out
endif
tst-exec4-ARGS = $(host-test-program-cmd)
-$(objpfx)tst-execstack: $(libdl)
$(objpfx)tst-execstack.out: $(objpfx)tst-execstack-mod.so
LDFLAGS-tst-execstack = -Wl,-z,noexecstack
CFLAGS-tst-execstack-mod.c += -Wno-trampolines
diff --git a/nss/Makefile b/nss/Makefile
index 71fbe583bf..9682a31e20 100644
--- a/nss/Makefile
+++ b/nss/Makefile
@@ -181,10 +181,5 @@ ifeq (yes,$(have-thread-library))
$(objpfx)tst-cancel-getpwuid_r: $(shared-thread-library)
endif
-$(objpfx)tst-nss-files-hosts-erange: $(libdl)
-$(objpfx)tst-nss-files-hosts-multi: $(libdl)
-$(objpfx)tst-nss-files-hosts-getent: $(libdl)
-$(objpfx)tst-nss-files-alias-leak: $(libdl)
$(objpfx)tst-nss-files-alias-leak.out: $(objpfx)/libnss_files.so
-$(objpfx)tst-nss-files-alias-truncated: $(libdl)
$(objpfx)tst-nss-files-alias-truncated.out: $(objpfx)/libnss_files.so
diff --git a/resolv/Makefile b/resolv/Makefile
index fb19c93026..3fbc320ee1 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -149,7 +149,7 @@ $(objpfx)libnss_dns.so: $(objpfx)libresolv.so
# The asynchronous name lookup code needs the thread library.
$(objpfx)libanl.so: $(shared-thread-library)
-$(objpfx)tst-res_hconf_reorder: $(libdl) $(shared-thread-library)
+$(objpfx)tst-res_hconf_reorder: $(shared-thread-library)
tst-res_hconf_reorder-ENV = RESOLV_REORDER=on
$(objpfx)tst-leaks: $(objpfx)libresolv.so
@@ -173,12 +173,11 @@ $(objpfx)mtrace-tst-resolv-res_ninit.out: $(objpfx)tst-resolv-res_ninit.out
$(objpfx)tst-bug18665-tcp: $(objpfx)libresolv.so $(shared-thread-library)
$(objpfx)tst-bug18665: $(objpfx)libresolv.so $(shared-thread-library)
-$(objpfx)tst-resolv-ai_idn: \
- $(libdl) $(objpfx)libresolv.so $(shared-thread-library)
+$(objpfx)tst-resolv-ai_idn: $(objpfx)libresolv.so $(shared-thread-library)
$(objpfx)tst-resolv-ai_idn-latin1: \
- $(libdl) $(objpfx)libresolv.so $(shared-thread-library)
+ $(objpfx)libresolv.so $(shared-thread-library)
$(objpfx)tst-resolv-ai_idn-nolibidn2: \
- $(libdl) $(objpfx)libresolv.so $(shared-thread-library)
+ $(objpfx)libresolv.so $(shared-thread-library)
$(objpfx)tst-resolv-ai_idn.out: $(gen-locales)
$(objpfx)tst-resolv-ai_idn-latin1.out: $(gen-locales)
$(objpfx)tst-resolv-ai_idn-nolibidn2.out: \
@@ -187,22 +186,20 @@ $(objpfx)tst-resolv-basic: $(objpfx)libresolv.so $(shared-thread-library)
$(objpfx)tst-resolv-binary: $(objpfx)libresolv.so $(shared-thread-library)
$(objpfx)tst-resolv-edns: $(objpfx)libresolv.so $(shared-thread-library)
$(objpfx)tst-resolv-network: $(objpfx)libresolv.so $(shared-thread-library)
-$(objpfx)tst-resolv-res_init: $(libdl) $(objpfx)libresolv.so
+$(objpfx)tst-resolv-res_init: $(objpfx)libresolv.so
$(objpfx)tst-resolv-res_init-multi: $(objpfx)libresolv.so \
$(shared-thread-library)
-$(objpfx)tst-resolv-res_init-thread: $(libdl) $(objpfx)libresolv.so \
+$(objpfx)tst-resolv-res_init-thread: $(objpfx)libresolv.so \
$(shared-thread-library)
$(objpfx)tst-resolv-nondecimal: $(objpfx)libresolv.so $(shared-thread-library)
$(objpfx)tst-resolv-qtypes: $(objpfx)libresolv.so $(shared-thread-library)
$(objpfx)tst-resolv-rotate: $(objpfx)libresolv.so $(shared-thread-library)
$(objpfx)tst-resolv-search: $(objpfx)libresolv.so $(shared-thread-library)
$(objpfx)tst-resolv-trailing: $(objpfx)libresolv.so $(shared-thread-library)
-$(objpfx)tst-resolv-threads: \
- $(libdl) $(objpfx)libresolv.so $(shared-thread-library)
+$(objpfx)tst-resolv-threads: $(objpfx)libresolv.so $(shared-thread-library)
$(objpfx)tst-resolv-txnid-collision: $(objpfx)libresolv.a \
$(static-thread-library)
-$(objpfx)tst-resolv-canonname: \
- $(libdl) $(objpfx)libresolv.so $(shared-thread-library)
+$(objpfx)tst-resolv-canonname: $(objpfx)libresolv.so $(shared-thread-library)
$(objpfx)tst-resolv-trustad: $(objpfx)libresolv.so $(shared-thread-library)
$(objpfx)tst-ns_name: $(objpfx)libresolv.so
diff --git a/stdlib/Makefile b/stdlib/Makefile
index ec30011b4c..7c15549caf 100644
--- a/stdlib/Makefile
+++ b/stdlib/Makefile
@@ -106,7 +106,7 @@ LDLIBS-test-cxa_atexit-race2 = $(shared-thread-library)
LDLIBS-test-on_exit-race = $(shared-thread-library)
LDLIBS-tst-canon-bz26341 = $(shared-thread-library)
-LDLIBS-test-dlclose-exit-race = $(shared-thread-library) $(libdl)
+LDLIBS-test-dlclose-exit-race = $(shared-thread-library)
LDFLAGS-test-dlclose-exit-race = $(LDFLAGS-rdynamic)
LDLIBS-test-dlclose-exit-race-helper.so = $(libsupport) $(shared-thread-library)
@@ -233,10 +233,10 @@ $(objpfx)tst-strtod-nan-sign: $(libm)
tst-tls-atexit-lib.so-no-z-defs = yes
test-dlclose-exit-race-helper.so-no-z-defs = yes
-$(objpfx)tst-tls-atexit: $(shared-thread-library) $(libdl)
+$(objpfx)tst-tls-atexit: $(shared-thread-library)
$(objpfx)tst-tls-atexit.out: $(objpfx)tst-tls-atexit-lib.so
-$(objpfx)tst-tls-atexit-nodelete: $(shared-thread-library) $(libdl)
+$(objpfx)tst-tls-atexit-nodelete: $(shared-thread-library)
$(objpfx)tst-tls-atexit-nodelete.out: $(objpfx)tst-tls-atexit-lib.so
$(objpfx)tst-setcontext3.out: tst-setcontext3.sh $(objpfx)tst-setcontext3
@@ -244,5 +244,3 @@ $(objpfx)tst-setcontext3.out: tst-setcontext3.sh $(objpfx)tst-setcontext3
'$(run-program-env)' '$(test-program-prefix-after-env)' \
$(common-objpfx)stdlib/; \
$(evaluate-test)
-
-$(objpfx)tst-makecontext: $(libdl)
diff --git a/string/Makefile b/string/Makefile
index d17626ed39..f0fce2a0b8 100644
--- a/string/Makefile
+++ b/string/Makefile
@@ -80,7 +80,6 @@ xtests = tst-strcoll-overflow
# This test needs libdl.
ifeq (yes,$(build-shared))
tests += test-strerror-errno
-LDLIBS-test-strerror-errno = $(libdl)
endif
ifeq ($(run-built-tests),yes)
diff --git a/sysdeps/mips/Makefile b/sysdeps/mips/Makefile
index 150518bc6d..d770e59fc9 100644
--- a/sysdeps/mips/Makefile
+++ b/sysdeps/mips/Makefile
@@ -64,7 +64,6 @@ fpabi_list=$(subst $(space),$(comma),$(patsubst tst-abi-%mod,o_%,\
CPPFLAGS-tst-abi-interlink.c += -DFPABI_LIST=$(fpabi_list)
CPPFLAGS-tst-abi-interlink.c += -DFPABI_COUNT=$(words $(fpabi-modules-names))
CPPFLAGS-tst-abi-interlink.c += -DFPABI_NATIVE=o_fp$(o32-fpabi)
-$(objpfx)tst-abi-interlink: $(libdl)
$(objpfx)tst-abi-interlink.out: $(patsubst %,$(objpfx)%.so,\
$(fpabi-modules-names))
endif
diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile
index bca642f438..e4690a7bc4 100644
--- a/sysdeps/pthread/Makefile
+++ b/sysdeps/pthread/Makefile
@@ -203,7 +203,7 @@ CFLAGS-tst-pt-align3.c += $(stack-align-test-flags)
tst-umask1-ARGS = $(objpfx)tst-umask1.temp
-$(objpfx)tst-atfork2: $(libdl) $(shared-thread-library)
+$(objpfx)tst-atfork2: $(shared-thread-library)
LDFLAGS-tst-atfork2 = -rdynamic
tst-atfork2-ENV = MALLOC_TRACE=$(objpfx)tst-atfork2.mtrace
$(objpfx)tst-atfork2mod.so: $(shared-thread-library)
@@ -236,7 +236,7 @@ LDFLAGS-tst-_res1mod2.so = -Wl,-soname,tst-_res1mod2.so
$(objpfx)tst-_res1: $(objpfx)tst-_res1mod1.so $(objpfx)tst-_res1mod2.so \
$(shared-thread-library)
-$(objpfx)tst-pt-tls4: $(libdl) $(shared-thread-library)
+$(objpfx)tst-pt-tls4: $(shared-thread-library)
$(objpfx)tst-pt-tls4.out: $(objpfx)tst-tls4moda.so $(objpfx)tst-tls4modb.so
generated += tst-atfork2.mtrace
@@ -260,7 +260,7 @@ CFLAGS-tst-oncex4.c += -fexceptions
CFLAGS-tst-oncey3.c += -fno-exceptions -fno-asynchronous-unwind-tables
CFLAGS-tst-oncey4.c += -fno-exceptions -fno-asynchronous-unwind-tables
-$(objpfx)tst-join7: $(libdl) $(shared-thread-library)
+$(objpfx)tst-join7: $(shared-thread-library)
$(objpfx)tst-join7.out: $(objpfx)tst-join7mod.so
$(objpfx)tst-join7mod.so: $(shared-thread-library)
LDFLAGS-tst-join7mod.so = -Wl,-soname,tst-join7mod.so
diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile
index aa016f7b5a..346ec491b3 100644
--- a/sysdeps/x86/Makefile
+++ b/sysdeps/x86/Makefile
@@ -51,7 +51,6 @@ CFLAGS-tst-isa-level-mod-1-v4.c += -DINCLUDE_X86_ISA_LEVEL \
-DISA_LEVEL=0xf \
-march=x86-64
-$(objpfx)tst-isa-level-1: $(libdl)
$(objpfx)tst-isa-level-1.out: $(objpfx)tst-isa-level-mod-1-baseline.so \
$(objpfx)tst-isa-level-mod-1-v2.so \
$(objpfx)tst-isa-level-mod-1-v3.so \
@@ -162,38 +161,30 @@ $(objpfx)tst-cet-legacy-1: $(objpfx)tst-cet-legacy-mod-1.so \
$(objpfx)tst-cet-legacy-mod-2.so
$(objpfx)tst-cet-legacy-1a: $(objpfx)tst-cet-legacy-mod-1.so \
$(objpfx)tst-cet-legacy-mod-2.so
-$(objpfx)tst-cet-legacy-2: $(objpfx)tst-cet-legacy-mod-2.so $(libdl)
+$(objpfx)tst-cet-legacy-2: $(objpfx)tst-cet-legacy-mod-2.so
$(objpfx)tst-cet-legacy-2.out: $(objpfx)tst-cet-legacy-mod-1.so
-$(objpfx)tst-cet-legacy-2a: $(objpfx)tst-cet-legacy-mod-2.so $(libdl)
+$(objpfx)tst-cet-legacy-2a: $(objpfx)tst-cet-legacy-mod-2.so
$(objpfx)tst-cet-legacy-2a.out: $(objpfx)tst-cet-legacy-mod-1.so
-$(objpfx)tst-cet-legacy-4: $(libdl)
$(objpfx)tst-cet-legacy-4.out: $(objpfx)tst-cet-legacy-mod-4.so
-$(objpfx)tst-cet-legacy-5a: $(libdl)
$(objpfx)tst-cet-legacy-5a.out: $(objpfx)tst-cet-legacy-mod-5a.so \
$(objpfx)tst-cet-legacy-mod-5b.so
$(objpfx)tst-cet-legacy-mod-5a.so: $(objpfx)tst-cet-legacy-mod-5c.so
$(objpfx)tst-cet-legacy-mod-5b.so: $(objpfx)tst-cet-legacy-mod-5c.so
-$(objpfx)tst-cet-legacy-6a: $(libdl)
$(objpfx)tst-cet-legacy-6a.out: $(objpfx)tst-cet-legacy-mod-6a.so \
$(objpfx)tst-cet-legacy-mod-6b.so
$(objpfx)tst-cet-legacy-mod-6a.so: $(objpfx)tst-cet-legacy-mod-6c.so
$(objpfx)tst-cet-legacy-mod-6b.so: $(objpfx)tst-cet-legacy-mod-6c.so
LDFLAGS-tst-cet-legacy-mod-6c.so = -Wl,--enable-new-dtags,-z,nodelete
ifneq (no,$(have-tunables))
-$(objpfx)tst-cet-legacy-4a: $(libdl)
$(objpfx)tst-cet-legacy-4a.out: $(objpfx)tst-cet-legacy-mod-4.so
tst-cet-legacy-4a-ENV = GLIBC_TUNABLES=glibc.cpu.x86_shstk=permissive
-$(objpfx)tst-cet-legacy-4b: $(libdl)
$(objpfx)tst-cet-legacy-4b.out: $(objpfx)tst-cet-legacy-mod-4.so
tst-cet-legacy-4b-ENV = GLIBC_TUNABLES=glibc.cpu.x86_shstk=on
-$(objpfx)tst-cet-legacy-4c: $(libdl)
$(objpfx)tst-cet-legacy-4c.out: $(objpfx)tst-cet-legacy-mod-4.so
tst-cet-legacy-4c-ENV = GLIBC_TUNABLES=glibc.cpu.x86_shstk=off
-$(objpfx)tst-cet-legacy-5b: $(libdl)
$(objpfx)tst-cet-legacy-5b.out: $(objpfx)tst-cet-legacy-mod-5a.so \
$(objpfx)tst-cet-legacy-mod-5b.so
tst-cet-legacy-5b-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=-IBT,-SHSTK
-$(objpfx)tst-cet-legacy-6b: $(libdl)
$(objpfx)tst-cet-legacy-6b.out: $(objpfx)tst-cet-legacy-mod-6a.so \
$(objpfx)tst-cet-legacy-mod-6b.so
tst-cet-legacy-6b-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=-IBT,-SHSTK
--
2.31.1
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH 14/16] dlfcn: Cleanups after -ldl is no longer required
2021-05-31 14:12 ` [PATCH 14/16] dlfcn: Cleanups after -ldl is no longer required Florian Weimer
@ 2021-06-02 18:08 ` Adhemerval Zanella
0 siblings, 0 replies; 39+ messages in thread
From: Adhemerval Zanella @ 2021-06-02 18:08 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 31/05/2021 11:12, Florian Weimer via Libc-alpha wrote:
> This commit removes the ELF constructor and internal variables from
> dlfcn, and adjusts the test suite not to use $(libdl). The libdl.so
> symbolic link is no longer installed.
>
> Moving the dlfcn object file to libdl-shared-only-routines ensures
> that libdl.a is empty.
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> Makeconfig | 6 --
> dlfcn/Makefile | 40 +++------
> dlfcn/dlfcn.c | 18 ----
> elf/Makefile | 172 +++++++--------------------------------
> htl/Makefile | 1 -
> iconvdata/Makefile | 1 -
> include/dlfcn.h | 18 ----
> malloc/Makefile | 3 -
> misc/Makefile | 2 -
> nptl/Makefile | 7 --
> nss/Makefile | 5 --
> resolv/Makefile | 19 ++---
> stdlib/Makefile | 8 +-
> string/Makefile | 1 -
> sysdeps/mips/Makefile | 1 -
> sysdeps/pthread/Makefile | 6 +-
> sysdeps/x86/Makefile | 13 +--
> 17 files changed, 56 insertions(+), 265 deletions(-)
>
> diff --git a/Makeconfig b/Makeconfig
> index 1d5e45926c..c3496452b6 100644
> --- a/Makeconfig
> +++ b/Makeconfig
> @@ -1255,12 +1255,6 @@ endif
> endif # build-shared
>
>
> -ifeq ($(build-shared),yes)
> -libdl = $(common-objpfx)dlfcn/libdl.so$(libdl.so-version)
> -else
> -libdl = $(common-objpfx)dlfcn/libdl.a
> -endif
> -
> ifeq ($(build-shared),yes)
> libm = $(common-objpfx)math/libm.so$(libm.so-version)
> libmvec = $(common-objpfx)mathvec/libmvec.so$(libmvec.so-version)
Ok.
> diff --git a/dlfcn/Makefile b/dlfcn/Makefile
> index a471d86071..4d17f770a1 100644
> --- a/dlfcn/Makefile
> +++ b/dlfcn/Makefile
> @@ -22,9 +22,7 @@ include ../Makeconfig
> headers := bits/dlfcn.h dlfcn.h
> extra-libs := libdl
> libdl-routines := dlfcn
> -routines := $(patsubst %,s%,$(filter-out dlfcn,$(libdl-routines)))
> -elide-routines.os := $(routines)
> -routines += \
> +routines = \
> dladdr \
> dladdr1 \
> dlclose \
Ok.
> @@ -38,9 +36,16 @@ routines += \
>
> extra-libs-others := libdl
>
> +libdl-shared-only-routines += dlfcn
> +
> +# Pretend that libdl.so is a linker script, so that the symbolic
> +# link is not installed.
> +install-lib-ldscripts = libdl.so
> +$(inst_libdir)/libdl.so:
> +
> ifeq ($(build-shared),yes)
> routines += dlopenold
> -shared-only-routines := dlopenold dlfcn
> +shared-only-routines := dlopenold
> endif
>
> ifeq (yes,$(build-shared))
Ok.
> @@ -87,77 +92,54 @@ ifeq ($(build-shared),yes)
> tests: $(test-modules)
> endif
>
> -$(objpfx)glrefmain: $(libdl)
> $(objpfx)glrefmain.out: $(objpfx)glrefmain \
> $(objpfx)glreflib1.so $(objpfx)glreflib2.so
>
> -$(objpfx)failtest: $(libdl)
> $(objpfx)failtest.out: $(objpfx)failtestmod.so
>
> -$(objpfx)tst-dladdr: $(libdl)
> $(objpfx)tst-dladdr.out: $(objpfx)glreflib1.so
>
> -$(objpfx)tst-dlinfo: $(libdl)
> $(objpfx)tst-dlinfo.out: $(objpfx)glreflib3.so
> LDFLAGS-glreflib3.so = -Wl,-rpath,:
>
> LDFLAGS-default = $(LDFLAGS-rdynamic)
> -$(objpfx)default: $(libdl) $(objpfx)defaultmod1.so $(objpfx)defaultmod2.so
> -$(objpfx)defaultmod1.so: $(libdl)
> +$(objpfx)default: $(objpfx)defaultmod1.so $(objpfx)defaultmod2.so
> LDFLAGS-defaultmod2.so = $(LDFLAGS-Bsymbolic)
> -$(objpfx)defaultmod2.so: $(libdl)
>
> -$(objpfx)errmsg1: $(libdl)
> $(objpfx)errmsg1.out: $(objpfx)errmsg1 $(objpfx)errmsg1mod.so
>
> -$(objpfx)tstatexit: $(libdl)
> $(objpfx)tstatexit.out: $(objpfx)tstatexit $(objpfx)modatexit.so
>
> -$(objpfx)tstcxaatexit: $(libdl)
> $(objpfx)tstcxaatexit.out: $(objpfx)tstcxaatexit $(objpfx)modcxaatexit.so
>
> -$(objpfx)tststatic: $(objpfx)libdl.a
> $(objpfx)tststatic.out: $(objpfx)tststatic $(objpfx)modstatic.so
>
> -$(objpfx)tststatic2: $(objpfx)libdl.a
> $(objpfx)tststatic2.out: $(objpfx)tststatic2 $(objpfx)modstatic.so \
> $(objpfx)modstatic2.so
>
> -$(objpfx)modstatic2.so: $(libdl)
> -
> -$(objpfx)tststatic3: $(objpfx)libdl.a
> $(objpfx)tststatic3.out: $(objpfx)tststatic3 $(objpfx)modstatic3.so
>
> -$(objpfx)tststatic4: $(objpfx)libdl.a
> $(objpfx)tststatic4.out: $(objpfx)tststatic4 $(objpfx)modstatic3.so
>
> -$(objpfx)tststatic5: $(objpfx)libdl.a
> $(objpfx)tststatic5.out: $(objpfx)tststatic5 $(objpfx)modstatic5.so
>
> -$(objpfx)bug-dlopen1: $(libdl)
> -
> -$(objpfx)bug-dlsym1: $(libdl) $(objpfx)bug-dlsym1-lib2.so
> +$(objpfx)bug-dlsym1: $(objpfx)bug-dlsym1-lib2.so
> $(objpfx)bug-dlsym1.out: $(objpfx)bug-dlsym1-lib1.so \
> $(objpfx)bug-dlsym1-lib2.so
> $(objpfx)bug-dlsym1-lib1.so: $(objpfx)bug-dlsym1-lib2.so
>
> -$(objpfx)bug-atexit1: $(libdl)
> $(objpfx)bug-atexit1.out: $(objpfx)bug-atexit1-lib.so
>
> -$(objpfx)bug-atexit2: $(libdl)
> $(objpfx)bug-atexit2.out: $(objpfx)bug-atexit2-lib.so
>
> ifneq (,$(CXX))
> LDLIBS-bug-atexit3-lib.so = -lstdc++ -lgcc_eh
> $(objpfx)bug-atexit3-lib.so: $(libsupport)
> -$(objpfx)bug-atexit3: $(libdl)
> $(objpfx)bug-atexit3.out: $(objpfx)bug-atexit3-lib.so
> endif
>
> $(objpfx)bug-dl-leaf: $(objpfx)bug-dl-leaf-lib.so
> $(objpfx)bug-dl-leaf.out: $(objpfx)bug-dl-leaf-lib-cb.so
> -$(objpfx)bug-dl-leaf-lib.so: $(libdl)
> $(objpfx)bug-dl-leaf-lib-cb.so: $(objpfx)bug-dl-leaf-lib.so
>
> -$(objpfx)tst-rec-dlopen: $(libdl)
> $(objpfx)tst-rec-dlopen.out: $(objpfx)moddummy1.so $(objpfx)moddummy2.so
Ok.
> diff --git a/dlfcn/dlfcn.c b/dlfcn/dlfcn.c
> index ef750bc27a..e7fa01ecf5 100644
> --- a/dlfcn/dlfcn.c
> +++ b/dlfcn/dlfcn.c
> @@ -19,24 +19,6 @@
> #include <dlfcn.h>
> #include <shlib-compat.h>
>
> -int __dlfcn_argc attribute_hidden;
> -char **__dlfcn_argv attribute_hidden;
> -
> -
> -static void
> -init (int argc, char *argv[])
> -{
> - __dlfcn_argc = argc;
> - __dlfcn_argv = argv;
> -}
> -
> -static void (*const init_array []) (int argc, char *argv[])
> - __attribute__ ((section (".init_array"), aligned (sizeof (void *))))
> - __attribute_used__ =
> -{
> - init
> -};
> -
> /* The remainder of this file is used to keep specific symbol versions
> occupied, so that ld does not generate weak symbol version
> definitions. */
Ok.
> diff --git a/elf/Makefile b/elf/Makefile
> index 0ec736bb0f..e9788d3d4f 100644
> --- a/elf/Makefile
> +++ b/elf/Makefile
> @@ -673,8 +673,6 @@ $(objpfx)ldd: ldd.bash.in $(common-objpfx)soversions.mk \
> chmod 555 $@.new
> mv -f $@.new $@
>
> -$(objpfx)sprof: $(libdl)
> -
> $(objpfx)sln: $(sln-modules:%=$(objpfx)%.o)
>
> $(objpfx)ldconfig: $(ldconfig-modules:%=$(objpfx)%.o)
Ok.
> @@ -699,28 +697,21 @@ include $(patsubst %,$(..)libof-iterator.mk,$(cpp-srcs-left))
> test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names))))
> generated += $(addsuffix .so,$(strip $(modules-names)))
>
> -$(objpfx)testobj1_1.so: $(objpfx)testobj1.so $(libdl)
> -$(objpfx)testobj2.so: $(objpfx)testobj1.so $(libdl)
> -$(objpfx)testobj3.so: $(libdl)
> -$(objpfx)testobj4.so: $(libdl)
> -$(objpfx)testobj5.so: $(libdl)
> -$(objpfx)testobj6.so: $(objpfx)testobj1.so $(objpfx)testobj2.so $(libdl)
> +$(objpfx)testobj1_1.so: $(objpfx)testobj1.so
> +$(objpfx)testobj2.so: $(objpfx)testobj1.so
> +$(objpfx)testobj6.so: $(objpfx)testobj1.so $(objpfx)testobj2.so
> $(objpfx)failobj.so: $(objpfx)testobj6.so
> $(objpfx)dep1.so: $(objpfx)dep2.so $(objpfx)dep4.so
> $(objpfx)dep2.so: $(objpfx)dep3.so $(objpfx)dep4.so
> $(objpfx)dep4.so: $(objpfx)dep3.so
> $(objpfx)nodelmod3.so: $(objpfx)nodelmod4.so
> -$(objpfx)nextmod1.so: $(libdl)
> -$(objpfx)neededobj1.so: $(libdl)
> -$(objpfx)neededobj2.so: $(objpfx)neededobj1.so $(libdl)
> -$(objpfx)neededobj3.so: $(objpfx)neededobj1.so $(objpfx)neededobj2.so $(libdl)
> +$(objpfx)neededobj2.so: $(objpfx)neededobj1.so
> +$(objpfx)neededobj3.so: $(objpfx)neededobj1.so $(objpfx)neededobj2.so
> $(objpfx)neededobj4.so: $(objpfx)neededobj1.so $(objpfx)neededobj2.so \
> - $(objpfx)neededobj3.so $(libdl)
> + $(objpfx)neededobj3.so
> $(objpfx)neededobj6.so: $(objpfx)neededobj5.so
> $(objpfx)unload2mod.so: $(objpfx)unload2dep.so
> -$(objpfx)ltglobmod2.so: $(libdl)
> $(objpfx)firstobj.so: $(shared-thread-library)
> -$(objpfx)globalmod1.so: $(libdl)
> $(objpfx)reldep4mod1.so: $(objpfx)reldep4mod3.so
> $(objpfx)reldep4mod2.so: $(objpfx)reldep4mod4.so
> $(objpfx)dblloadmod1.so: $(objpfx)dblloadmod3.so
> @@ -750,14 +741,9 @@ $(objpfx)unload3mod2.so: $(objpfx)unload3mod3.so
> $(objpfx)unload3mod3.so: $(objpfx)unload3mod4.so
> $(objpfx)unload4mod1.so: $(objpfx)unload4mod2.so $(objpfx)unload4mod3.so
> $(objpfx)unload4mod2.so: $(objpfx)unload4mod4.so $(objpfx)unload4mod3.so
> -$(objpfx)unload6mod1.so: $(libdl)
> -$(objpfx)unload6mod2.so: $(libdl)
> -$(objpfx)unload6mod3.so: $(libdl)
> -$(objpfx)unload7mod1.so: $(libdl)
> $(objpfx)unload7mod2.so: $(objpfx)unload7mod1.so
> $(objpfx)unload8mod1.so: $(objpfx)unload8mod2.so
> $(objpfx)unload8mod2.so: $(objpfx)unload8mod3.so
> -$(objpfx)unload8mod3.so: $(libdl)
> $(objpfx)tst-initordera2.so: $(objpfx)tst-initordera1.so
> $(objpfx)tst-initorderb2.so: $(objpfx)tst-initorderb1.so $(objpfx)tst-initordera2.so
> $(objpfx)tst-initordera3.so: $(objpfx)tst-initorderb2.so $(objpfx)tst-initorderb1.so
Ok.
> @@ -766,8 +752,6 @@ $(objpfx)tst-initorder: $(objpfx)tst-initordera4.so $(objpfx)tst-initordera1.so
> $(objpfx)tst-null-argv: $(objpfx)tst-null-argv-lib.so
> $(objpfx)tst-tlsalign: $(objpfx)tst-tlsalign-lib.so
> $(objpfx)tst-nodelete-opened.out: $(objpfx)tst-nodelete-opened-lib.so
> -$(objpfx)tst-nodelete-opened: $(libdl)
> -$(objpfx)tst-noload: $(libdl)
>
> $(objpfx)tst-tlsalign-extern: $(objpfx)tst-tlsalign-vars.o
> $(objpfx)tst-tlsalign-extern-static: $(objpfx)tst-tlsalign-vars.o
> @@ -842,30 +826,25 @@ ifeq ($(build-shared),yes)
> tests: $(test-modules)
> endif
>
> -$(objpfx)loadtest: $(libdl)
> LDFLAGS-loadtest = -rdynamic
>
> $(objpfx)loadtest.out: $(test-modules)
>
> -$(objpfx)neededtest: $(libdl)
> $(objpfx)neededtest.out: $(objpfx)neededobj1.so $(objpfx)neededobj2.so \
> $(objpfx)neededobj3.so
>
> -$(objpfx)neededtest2: $(libdl)
> $(objpfx)neededtest2.out: $(objpfx)neededobj1.so $(objpfx)neededobj2.so \
> $(objpfx)neededobj3.so
>
> -$(objpfx)neededtest3: $(libdl)
> $(objpfx)neededtest3.out: $(objpfx)neededobj1.so $(objpfx)neededobj2.so \
> $(objpfx)neededobj3.so $(objpfx)neededobj4.so
>
> -$(objpfx)neededtest4: $(libdl) $(objpfx)neededobj1.so
> +$(objpfx)neededtest4: $(objpfx)neededobj1.so
> $(objpfx)neededtest4.out: $(objpfx)neededobj5.so $(objpfx)neededobj6.so
>
> -$(objpfx)restest1: $(objpfx)testobj1.so $(objpfx)testobj1_1.so $(libdl)
> +$(objpfx)restest1: $(objpfx)testobj1.so $(objpfx)testobj1_1.so
> LDFLAGS-restest1 = -rdynamic
>
> -$(objpfx)restest2: $(libdl)
> LDFLAGS-restest2 = -rdynamic
>
> $(objpfx)restest1.out: $(test-modules)
> @@ -877,31 +856,24 @@ $(objpfx)preloadtest.out: $(preloadtest-preloads:%=$(objpfx)%.so)
> preloadtest-ENV = \
> LD_PRELOAD=$(subst $(empty) ,:,$(strip $(preloadtest-preloads:=.so)))
>
> -$(objpfx)loadfail: $(libdl)
> LDFLAGS-loadfail = -rdynamic
>
> $(objpfx)loadfail.out: $(objpfx)failobj.so
>
> -$(objpfx)multiload: $(libdl)
> LDFLAGS-multiload = -rdynamic
> CFLAGS-multiload.c += -DOBJDIR=\"$(elf-objpfx)\"
>
> $(objpfx)multiload.out: $(objpfx)testobj1.so
>
> -$(objpfx)origtest: $(libdl)
> LDFLAGS-origtest = -rdynamic
> $(objpfx)origtest.out: $(objpfx)testobj1.so
>
> ifeq ($(have-thread-library),yes)
> -$(objpfx)resolvfail: $(libdl) $(shared-thread-library)
> -else
> -$(objpfx)resolvfail: $(libdl)
> +$(objpfx)resolvfail: $(shared-thread-library)
> endif
>
> -$(objpfx)constload1: $(libdl)
> $(objpfx)constload1.out: $(objpfx)constload2.so $(objpfx)constload3.so
>
> -$(objpfx)circleload1: $(libdl)
> $(objpfx)circleload1.out: $(objpfx)circlemod1.so \
> $(objpfx)circlemod1a.so
>
Ok.
> @@ -920,7 +892,7 @@ $(objpfx)vismain: $(addprefix $(objpfx),vismod1.so vismod2.so)
> $(objpfx)vismain.out: $(addprefix $(objpfx),vismod3.so)
> vismain-ENV = LD_PRELOAD=$(addprefix $(objpfx),vismod3.so)
>
> -$(objpfx)noload: $(objpfx)testobj1.so $(libdl)
> +$(objpfx)noload: $(objpfx)testobj1.so
> LDFLAGS-noload = -rdynamic -Wl,--no-as-needed
> $(objpfx)noload.out: $(objpfx)testobj5.so
>
> @@ -932,16 +904,13 @@ noload-ENV = MALLOC_TRACE=$(objpfx)noload.mtrace
> LDFLAGS-nodelete = -rdynamic
> LDFLAGS-nodelmod1.so = -Wl,--enable-new-dtags,-z,nodelete
> LDFLAGS-nodelmod4.so = -Wl,--enable-new-dtags,-z,nodelete
> -$(objpfx)nodelete: $(libdl)
> $(objpfx)nodelete.out: $(objpfx)nodelmod1.so $(objpfx)nodelmod2.so \
> $(objpfx)nodelmod3.so
>
> LDFLAGS-nodlopenmod.so = -Wl,--enable-new-dtags,-z,nodlopen
> -$(objpfx)nodlopen: $(libdl)
> $(objpfx)nodlopen.out: $(objpfx)nodlopenmod.so
>
> $(objpfx)nodlopenmod2.so: $(objpfx)nodlopenmod.so
> -$(objpfx)nodlopen2: $(libdl)
> $(objpfx)nodlopen2.out: $(objpfx)nodlopenmod2.so
>
> $(objpfx)filtmod1.so: $(objpfx)filtmod1.os $(objpfx)filtmod2.so
> @@ -954,31 +923,23 @@ $(objpfx)filter: $(objpfx)filtmod1.so
> # This does not link against libc.
> CFLAGS-filtmod1.c += $(no-stack-protector)
>
> -$(objpfx)unload: $(libdl)
> $(objpfx)unload.out: $(objpfx)unloadmod.so
>
> -$(objpfx)reldep: $(libdl)
> $(objpfx)reldep.out: $(objpfx)reldepmod1.so $(objpfx)reldepmod2.so
>
> -$(objpfx)reldep2: $(libdl)
> $(objpfx)reldep2.out: $(objpfx)reldepmod1.so $(objpfx)reldepmod3.so
>
> -$(objpfx)reldep3: $(libdl)
> $(objpfx)reldep3.out: $(objpfx)reldepmod1.so $(objpfx)reldepmod4.so
>
> -$(objpfx)reldep4: $(libdl)
> $(objpfx)reldep4.out: $(objpfx)reldep4mod1.so $(objpfx)reldep4mod2.so
>
> -$(objpfx)next: $(objpfx)nextmod1.so $(objpfx)nextmod2.so $(libdl)
> +$(objpfx)next: $(objpfx)nextmod1.so $(objpfx)nextmod2.so
> LDFLAGS-next = -Wl,--no-as-needed
>
> -$(objpfx)unload2: $(libdl)
> $(objpfx)unload2.out: $(objpfx)unload2mod.so $(objpfx)unload2dep.so
>
> -$(objpfx)lateglobal: $(libdl)
> $(objpfx)lateglobal.out: $(objpfx)ltglobmod1.so $(objpfx)ltglobmod2.so
>
> -$(objpfx)tst-pathopt: $(libdl)
> $(objpfx)tst-pathopt.out: tst-pathopt.sh $(objpfx)tst-pathopt \
> $(objpfx)pathoptobj.so
> $(SHELL) $< $(common-objpfx) '$(test-wrapper-env)' \
> @@ -998,55 +959,40 @@ $(objpfx)tst-rtld-preload.out: tst-rtld-preload.sh $(objpfx)ld.so \
> '$(rpath-link)' '$(tst-rtld-preload-OBJS)' > $@; \
> $(evaluate-test)
>
> -$(objpfx)initfirst: $(libdl)
> $(objpfx)initfirst.out: $(objpfx)firstobj.so
>
> $(objpfx)global: $(objpfx)globalmod1.so
> $(objpfx)global.out: $(objpfx)reldepmod1.so
>
> -$(objpfx)dblload: $(libdl)
> $(objpfx)dblload.out: $(objpfx)dblloadmod1.so $(objpfx)dblloadmod2.so
>
> -$(objpfx)dblunload: $(libdl)
> $(objpfx)dblunload.out: $(objpfx)dblloadmod1.so $(objpfx)dblloadmod2.so
>
> -$(objpfx)reldep5: $(libdl)
> $(objpfx)reldep5.out: $(objpfx)reldepmod5.so $(objpfx)reldepmod6.so
>
> -$(objpfx)reldep6: $(libdl)
> $(objpfx)reldep6.out: $(objpfx)reldep6mod3.so $(objpfx)reldep6mod4.so
>
> -$(objpfx)reldep7: $(libdl)
> $(objpfx)reldep7.out: $(objpfx)reldep7mod1.so $(objpfx)reldep7mod2.so
>
> -$(objpfx)reldep8: $(libdl)
> $(objpfx)reldep8.out: $(objpfx)reldep8mod3.so
>
> LDFLAGS-nodel2mod2.so = -Wl,--enable-new-dtags,-z,nodelete
> -$(objpfx)nodelete2: $(libdl)
> $(objpfx)nodelete2.out: $(objpfx)nodel2mod3.so
>
> -$(objpfx)reldep9: $(libdl)
> $(objpfx)reldep9.out: $(objpfx)reldep9mod3.so
>
> $(objpfx)tst-tls3: $(objpfx)tst-tlsmod1.so
>
> -$(objpfx)tst-tls4: $(libdl)
> $(objpfx)tst-tls4.out: $(objpfx)tst-tlsmod2.so
>
> -$(objpfx)tst-tls5: $(libdl)
> $(objpfx)tst-tls5.out: $(objpfx)tst-tlsmod2.so
>
> -$(objpfx)tst-tls6: $(libdl)
> $(objpfx)tst-tls6.out: $(objpfx)tst-tlsmod2.so
>
> -$(objpfx)tst-tls7: $(libdl)
> $(objpfx)tst-tls7.out: $(objpfx)tst-tlsmod3.so
>
> -$(objpfx)tst-tls8: $(libdl)
> $(objpfx)tst-tls8.out: $(objpfx)tst-tlsmod3.so $(objpfx)tst-tlsmod4.so
>
> -$(objpfx)tst-tls9: $(libdl)
> $(objpfx)tst-tls9.out: $(objpfx)tst-tlsmod5.so $(objpfx)tst-tlsmod6.so
>
> $(objpfx)tst-tls10: $(objpfx)tst-tlsmod8.so $(objpfx)tst-tlsmod7.so
> @@ -1055,67 +1001,53 @@ $(objpfx)tst-tls11: $(objpfx)tst-tlsmod10.so $(objpfx)tst-tlsmod9.so
>
> $(objpfx)tst-tls12: $(objpfx)tst-tlsmod12.so $(objpfx)tst-tlsmod11.so
>
> -$(objpfx)tst-tls13: $(libdl)
> $(objpfx)tst-tls13.out: $(objpfx)tst-tlsmod13a.so
>
> -$(objpfx)tst-tls14: $(objpfx)tst-tlsmod14a.so $(libdl)
> +$(objpfx)tst-tls14: $(objpfx)tst-tlsmod14a.so
> $(objpfx)tst-tls14.out: $(objpfx)tst-tlsmod14b.so
>
> -$(objpfx)tst-tls15: $(libdl)
> $(objpfx)tst-tls15.out: $(objpfx)tst-tlsmod15a.so $(objpfx)tst-tlsmod15b.so
>
> -$(objpfx)tst-tls-dlinfo: $(libdl)
> $(objpfx)tst-tls-dlinfo.out: $(objpfx)tst-tlsmod2.so
>
>
>
> -$(objpfx)tst-tls16: $(libdl)
> $(objpfx)tst-tls16.out: $(objpfx)tst-tlsmod16a.so $(objpfx)tst-tlsmod16b.so
>
> -$(objpfx)tst-tls17: $(libdl)
> $(objpfx)tst-tls17.out: $(objpfx)tst-tlsmod17b.so
> $(patsubst %,$(objpfx)%.os,$(tlsmod17a-modules)): $(objpfx)tst-tlsmod17a%.os: tst-tlsmod17a.c
> $(compile-command.c) -DN=$*
> $(patsubst %,$(objpfx)%.so,$(tlsmod17a-modules)): $(objpfx)tst-tlsmod17a%.so: $(objpfx)ld.so
> $(objpfx)tst-tlsmod17b.so: $(patsubst %,$(objpfx)%.so,$(tlsmod17a-modules))
>
> -$(objpfx)tst-tls18: $(libdl)
> $(objpfx)tst-tls18.out: $(patsubst %,$(objpfx)%.so,$(tlsmod18a-modules))
> $(patsubst %,$(objpfx)%.os,$(tlsmod18a-modules)): $(objpfx)tst-tlsmod18a%.os : tst-tlsmod18a.c
> $(compile-command.c) -DN=$*
> $(patsubst %,$(objpfx)%.so,$(tlsmod18a-modules)): $(objpfx)tst-tlsmod18a%.so: $(objpfx)ld.so
>
> -$(objpfx)tst-tls19: $(libdl)
> $(objpfx)tst-tls19.out: $(objpfx)tst-tls19mod1.so
>
> CFLAGS-tst-align.c += $(stack-align-test-flags)
> CFLAGS-tst-align2.c += $(stack-align-test-flags)
> CFLAGS-tst-alignmod.c += $(stack-align-test-flags)
> CFLAGS-tst-alignmod2.c += $(stack-align-test-flags)
> -$(objpfx)tst-align: $(libdl)
> $(objpfx)tst-align.out: $(objpfx)tst-alignmod.so
> $(objpfx)tst-align2: $(objpfx)tst-alignmod2.so
>
> -$(objpfx)unload3: $(libdl)
> $(objpfx)unload3.out: $(objpfx)unload3mod1.so $(objpfx)unload3mod2.so \
> $(objpfx)unload3mod3.so $(objpfx)unload3mod4.so
>
> -$(objpfx)unload4: $(libdl)
> $(objpfx)unload4.out: $(objpfx)unload4mod1.so $(objpfx)unload4mod3.so
>
> -$(objpfx)unload5: $(libdl)
> $(objpfx)unload5.out: $(objpfx)unload3mod1.so $(objpfx)unload3mod2.so \
> $(objpfx)unload3mod3.so $(objpfx)unload3mod4.so
>
> -$(objpfx)unload6: $(libdl)
> $(objpfx)unload6.out: $(objpfx)unload6mod1.so $(objpfx)unload6mod2.so \
> $(objpfx)unload6mod3.so
>
> -$(objpfx)unload7: $(libdl)
> $(objpfx)unload7.out: $(objpfx)unload7mod1.so $(objpfx)unload7mod2.so
> unload7-ENV = MALLOC_PERTURB_=85
>
> -$(objpfx)unload8: $(libdl)
> $(objpfx)unload8.out: $(objpfx)unload8mod1.so $(objpfx)unload8mod1x.so
>
> ifdef libdl
Ok.
> @@ -1124,7 +1056,6 @@ $(objpfx)tst-tls9-static.out: $(objpfx)tst-tlsmod5.so $(objpfx)tst-tlsmod6.so
> endif
>
> ifeq ($(have-z-execstack),yes)
> -$(objpfx)tst-execstack: $(libdl)
> $(objpfx)tst-execstack.out: $(objpfx)tst-execstack-mod.so
> CPPFLAGS-tst-execstack.c += -DUSE_PTHREADS=0
> LDFLAGS-tst-execstack = -Wl,-z,noexecstack
> @@ -1159,7 +1090,6 @@ $(objpfx)tst-array3-cmp.out: tst-array1.exp $(objpfx)tst-array3.out
> cmp $^ > $@; \
> $(evaluate-test)
>
> -$(objpfx)tst-array4: $(libdl)
> $(objpfx)tst-array4.out: $(objpfx)tst-array2dep.so
> $(objpfx)tst-array4-cmp.out: tst-array4.exp $(objpfx)tst-array4.out
> cmp $^ > $@; \
> @@ -1180,7 +1110,6 @@ CFLAGS-tst-pie2.c += $(pie-ccflag)
>
> $(objpfx)tst-piemod1.so: $(libsupport)
> $(objpfx)tst-pie1: $(objpfx)tst-piemod1.so
> -$(objpfx)tst-dlopen-pie: $(libdl)
> $(objpfx)tst-dlopen-pie.out: $(objpfx)tst-pie1
>
> ifeq (yes,$(build-shared))
> @@ -1239,7 +1168,6 @@ $(objpfx)check-wx-segment.out: $(..)scripts/check-wx-segment.py \
> $(evaluate-test)
> generated += check-wx-segment.out
>
> -$(objpfx)tst-dlmodcount: $(libdl)
> $(objpfx)tst-dlmodcount.out: $(test-modules)
>
> $(all-built-dso:=.jmprel): %.jmprel: % Makefile
> @@ -1292,38 +1220,31 @@ $(objpfx)check-initfini.out: $(..)scripts/check-initfini.awk \
> $(evaluate-test)
> generated += check-initfini.out
>
> -$(objpfx)tst-dlopenrpathmod.so: $(libdl)
> -$(objpfx)tst-dlopenrpath: $(objpfx)tst-dlopenrpathmod.so $(libdl)
> +$(objpfx)tst-dlopenrpath: $(objpfx)tst-dlopenrpathmod.so
> CFLAGS-tst-dlopenrpath.c += -DPFX=\"$(objpfx)\"
> LDFLAGS-tst-dlopenrpathmod.so += -Wl,-rpath,\$$ORIGIN/test-subdir
> $(objpfx)tst-dlopenrpath.out: $(objpfx)firstobj.so
>
> $(objpfx)tst-deep1mod2.so: $(objpfx)tst-deep1mod3.so
> -$(objpfx)tst-deep1: $(libdl) $(objpfx)tst-deep1mod1.so
> +$(objpfx)tst-deep1: $(objpfx)tst-deep1mod1.so
> $(objpfx)tst-deep1.out: $(objpfx)tst-deep1mod2.so
> LDFLAGS-tst-deep1 += -rdynamic
> tst-deep1mod3.so-no-z-defs = yes
>
> -$(objpfx)tst-dlmopen1mod.so: $(libdl)
> -$(objpfx)tst-dlmopen1: $(libdl)
> $(objpfx)tst-dlmopen1.out: $(objpfx)tst-dlmopen1mod.so
>
> -$(objpfx)tst-dlmopen2: $(libdl)
> $(objpfx)tst-dlmopen2.out: $(objpfx)tst-dlmopen1mod.so
>
> -$(objpfx)tst-dlmopen3: $(libdl)
> $(objpfx)tst-dlmopen3.out: $(objpfx)tst-dlmopen1mod.so
>
> $(objpfx)tst-audit1.out: $(objpfx)tst-auditmod1.so
> tst-audit1-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so
>
> -$(objpfx)tst-audit2: $(libdl)
> $(objpfx)tst-audit2.out: $(objpfx)tst-auditmod1.so $(objpfx)tst-auditmod9b.so
> # Prevent GCC-5 from translating a malloc/memset pair into calloc
> CFLAGS-tst-audit2.c += -fno-builtin
> tst-audit2-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so
>
> -$(objpfx)tst-audit9: $(libdl)
> $(objpfx)tst-audit9.out: $(objpfx)tst-auditmod9a.so $(objpfx)tst-auditmod9b.so
> tst-audit9-ENV = LD_AUDIT=$(objpfx)tst-auditmod9a.so
>
Ok.
> @@ -1331,10 +1252,8 @@ $(objpfx)tst-audit8: $(libm)
> $(objpfx)tst-audit8.out: $(objpfx)tst-auditmod1.so
> tst-audit8-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so
>
> -$(objpfx)tst-global1: $(libdl)
> $(objpfx)tst-global1.out: $(objpfx)testobj6.so $(objpfx)testobj2.so
>
> -$(objpfx)order2: $(libdl)
> $(objpfx)order2.out: $(objpfx)order2mod1.so $(objpfx)order2mod2.so
> $(objpfx)order2-cmp.out: $(objpfx)order2.out
> (echo "12345" | cmp $< -) > $@; \
> @@ -1355,7 +1274,6 @@ tst-ptrguard1-ARGS = --command "$(host-test-program-cmd) --child"
> CFLAGS-tst-ptrguard1-static.c += -DPTRGUARD_LOCAL
> tst-ptrguard1-static-ARGS = --command "$(objpfx)tst-ptrguard1-static --child"
>
> -$(objpfx)tst-leaks1: $(libdl)
> $(objpfx)tst-leaks1-mem.out: $(objpfx)tst-leaks1.out
> $(common-objpfx)malloc/mtrace $(objpfx)tst-leaks1.mtrace > $@; \
> $(evaluate-test)
> @@ -1368,24 +1286,19 @@ $(objpfx)tst-leaks1-static-mem.out: $(objpfx)tst-leaks1-static.out
> tst-leaks1-ENV = MALLOC_TRACE=$(objpfx)tst-leaks1.mtrace
> tst-leaks1-static-ENV = MALLOC_TRACE=$(objpfx)tst-leaks1-static.mtrace
>
> -$(objpfx)tst-addr1: $(libdl)
> -
> -$(objpfx)tst-thrlock: $(libdl) $(shared-thread-library)
> +$(objpfx)tst-thrlock: $(shared-thread-library)
>
> tst-tst-dlopen-tlsmodid-no-pie = yes
> -$(objpfx)tst-dlopen-tlsmodid: $(libdl) $(shared-thread-library)
> +$(objpfx)tst-dlopen-tlsmodid: $(shared-thread-library)
> $(objpfx)tst-dlopen-tlsmodid.out: $(objpfx)tst-dlopen-self
> CFLAGS-tst-dlopen-tlsmodid-pie.c += $(pie-ccflag)
> -$(objpfx)tst-dlopen-tlsmodid-pie: $(libdl) $(shared-thread-library)
> +$(objpfx)tst-dlopen-tlsmodid-pie: $(shared-thread-library)
> $(objpfx)tst-dlopen-tlsmodid-pie.out: $(objpfx)tst-dlopen-self-pie
> -$(objpfx)tst-dlopen-tlsmodid-container: $(libdl) $(shared-thread-library)
> +$(objpfx)tst-dlopen-tlsmodid-container: $(shared-thread-library)
> LDFLAGS-tst-dlopen-tlsmodid-container += -Wl,-rpath,\$$ORIGIN
>
> tst-tst-dlopen-self-no-pie = yes
> -$(objpfx)tst-dlopen-self: $(libdl)
> CFLAGS-tst-dlopen-self-pie.c += $(pie-ccflag)
> -$(objpfx)tst-dlopen-self-pie: $(libdl)
> -$(objpfx)tst-dlopen-self-container: $(libdl)
> LDFLAGS-tst-dlopen-self-container += -Wl,-rpath,\$$ORIGIN
>
> CFLAGS-ifuncmain1pic.c += $(pic-ccflag)
> @@ -1437,7 +1350,6 @@ $(objpfx)ifuncmain2pic: $(addprefix $(objpfx),ifuncdep2pic.o)
> $(objpfx)ifuncmain2static: $(addprefix $(objpfx),ifuncdep2.o)
> $(objpfx)ifuncmain2picstatic: $(addprefix $(objpfx),ifuncdep2pic.o)
>
> -$(objpfx)ifuncmain3: $(libdl)
> $(objpfx)ifuncmain3.out: $(objpfx)ifuncmod3.so
>
> $(objpfx)ifuncmain5: $(addprefix $(objpfx),ifuncmod5.so)
> @@ -1461,19 +1373,17 @@ $(objpfx)tst-ifunc-fault-bindnow.out: $(objpfx)tst-ifunc-fault-bindnow \
> $(objpfx)ld.so
> $(tst-ifunc-fault-script)
>
> -$(objpfx)tst-unique1: $(libdl)
> $(objpfx)tst-unique1.out: $(objpfx)tst-unique1mod1.so \
> $(objpfx)tst-unique1mod2.so
>
> -$(objpfx)tst-unique2: $(libdl) $(objpfx)tst-unique2mod1.so
> +$(objpfx)tst-unique2: $(objpfx)tst-unique2mod1.so
> $(objpfx)tst-unique2.out: $(objpfx)tst-unique2mod2.so
>
> -$(objpfx)tst-unique3: $(libdl) $(objpfx)tst-unique3lib.so
> +$(objpfx)tst-unique3: $(objpfx)tst-unique3lib.so
> $(objpfx)tst-unique3.out: $(objpfx)tst-unique3lib2.so
>
> $(objpfx)tst-unique4: $(objpfx)tst-unique4lib.so
>
> -$(objpfx)tst-nodelete: $(libdl)
> $(objpfx)tst-nodelete.out: $(objpfx)tst-nodelete-uniquemod.so \
> $(objpfx)tst-nodelete-rtldmod.so \
> $(objpfx)tst-nodelete-zmod.so
> @@ -1481,7 +1391,6 @@ $(objpfx)tst-nodelete.out: $(objpfx)tst-nodelete-uniquemod.so \
> LDFLAGS-tst-nodelete = -rdynamic
> LDFLAGS-tst-nodelete-zmod.so = -Wl,--enable-new-dtags,-z,nodelete
>
> -$(objpfx)tst-nodelete2: $(libdl)
> $(objpfx)tst-nodelete2.out: $(objpfx)tst-nodelete2mod.so
>
> LDFLAGS-tst-nodelete2 = -rdynamic
> @@ -1509,7 +1418,6 @@ $(objpfx)tst-initorder2-cmp.out: tst-initorder2.exp $(objpfx)tst-initorder2.out
> cmp $^ > $@; \
> $(evaluate-test)
>
> -$(objpfx)tst-relsort1: $(libdl)
> $(objpfx)tst-relsort1mod1.so: $(libm) $(objpfx)tst-relsort1mod2.so
> $(objpfx)tst-relsort1mod2.so: $(libm)
> $(objpfx)tst-relsort1.out: $(objpfx)tst-relsort1mod1.so \
> @@ -1529,13 +1437,11 @@ $(objpfx)tst-unused-dep-cmp.out: $(objpfx)tst-unused-dep.out
> $(evaluate-test)
>
> $(objpfx)tst-audit11.out: $(objpfx)tst-auditmod11.so $(objpfx)tst-audit11mod1.so
> -$(objpfx)tst-audit11: $(libdl)
> tst-audit11-ENV = LD_AUDIT=$(objpfx)tst-auditmod11.so
> $(objpfx)tst-audit11mod1.so: $(objpfx)tst-audit11mod2.so
> LDFLAGS-tst-audit11mod2.so = -Wl,--version-script=tst-audit11mod2.map,-soname,tst-audit11mod2.so
>
> $(objpfx)tst-audit12.out: $(objpfx)tst-auditmod12.so $(objpfx)tst-audit12mod1.so $(objpfx)tst-audit12mod3.so
> -$(objpfx)tst-audit12: $(libdl)
> tst-audit12-ENV = LD_AUDIT=$(objpfx)tst-auditmod12.so
> $(objpfx)tst-audit12mod1.so: $(objpfx)tst-audit12mod2.so
> LDFLAGS-tst-audit12mod2.so = -Wl,--version-script=tst-audit12mod2.map
> @@ -1585,13 +1491,11 @@ $(objpfx)tst-sonamemove-link: $(objpfx)tst-sonamemove-linkmod1.so
> $(objpfx)tst-sonamemove-link.out: \
> $(objpfx)tst-sonamemove-runmod1.so \
> $(objpfx)tst-sonamemove-runmod2.so
> -$(objpfx)tst-sonamemove-dlopen: $(libdl)
> $(objpfx)tst-sonamemove-dlopen.out: \
> $(objpfx)tst-sonamemove-runmod1.so \
> $(objpfx)tst-sonamemove-runmod2.so
>
> -$(objpfx)tst-dlmopen-dlerror: $(libdl)
> -$(objpfx)tst-dlmopen-dlerror-mod.so: $(libdl) $(libsupport)
> +$(objpfx)tst-dlmopen-dlerror-mod.so: $(libsupport)
> $(objpfx)tst-dlmopen-dlerror.out: $(objpfx)tst-dlmopen-dlerror-mod.so
>
> # Override -z defs, so that we can reference an undefined symbol.
> @@ -1602,7 +1506,6 @@ LDFLAGS-tst-latepthreadmod.so = \
> # function this_function_is_not_defined.
> CFLAGS-tst-latepthreadmod.c += -fno-optimize-sibling-calls
> $(objpfx)tst-latepthreadmod.so: $(shared-thread-library)
> -$(objpfx)tst-latepthread: $(libdl)
> $(objpfx)tst-latepthread.out: $(objpfx)tst-latepthreadmod.so
>
> # The test modules are parameterized by preprocessor macros.
> @@ -1610,7 +1513,7 @@ $(patsubst %,$(objpfx)%.os,$(tst-tls-many-dynamic-modules)): \
> $(objpfx)tst-tls-manydynamic%mod.os : tst-tls-manydynamicmod.c
> $(compile-command.c) \
> -DNAME=tls_global_$* -DSETTER=set_value_$* -DGETTER=get_value_$*
> -$(objpfx)tst-tls-manydynamic: $(libdl) $(shared-thread-library)
> +$(objpfx)tst-tls-manydynamic: $(shared-thread-library)
> $(objpfx)tst-tls-manydynamic.out: \
> $(patsubst %,$(objpfx)%.so,$(tst-tls-many-dynamic-modules))
>
> @@ -1626,8 +1529,6 @@ $(objpfx)tst-ldconfig-X.out : tst-ldconfig-X.sh $(objpfx)ldconfig
> '$(run-program-env)' > $@; \
> $(evaluate-test)
>
> -$(objpfx)tst-dlsym-error: $(libdl)
> -
> # Test static linking of all the libraries we can possibly link
> # together. Note that in some configurations this may be less than the
> # complete list of libraries we build but we try to maxmimize this list.
> @@ -1661,7 +1562,6 @@ endif
> # The application depends on the DSO, and the DSO loads the plugin.
> # The plugin also depends on the DSO. This creates the circular
> # dependency via dlopen that we're testing to make sure works.
> -$(objpfx)tst-nodelete-dlclose-dso.so: $(libdl)
> $(objpfx)tst-nodelete-dlclose-plugin.so: $(objpfx)tst-nodelete-dlclose-dso.so
> $(objpfx)tst-nodelete-dlclose: $(objpfx)tst-nodelete-dlclose-dso.so
> $(objpfx)tst-nodelete-dlclose.out: $(objpfx)tst-nodelete-dlclose-dso.so \
> @@ -1670,7 +1570,6 @@ $(objpfx)tst-nodelete-dlclose.out: $(objpfx)tst-nodelete-dlclose-dso.so \
> tst-env-setuid-ENV = MALLOC_CHECK_=2 MALLOC_MMAP_THRESHOLD_=4096 \
> LD_HWCAP_MASK=0x1
>
> -$(objpfx)tst-debug1: $(libdl)
> $(objpfx)tst-debug1.out: $(objpfx)tst-debug1mod1.so
>
> $(objpfx)tst-debug1mod1.so: $(objpfx)testobj1.so
> @@ -1692,8 +1591,7 @@ $(objpfx)tst-absolute-zero: $(objpfx)tst-absolute-zero-lib.so
>
> # Both the main program and the DSO for tst-libc_dlvsym need to link
> # against libdl.
> -$(objpfx)tst-libc_dlvsym: $(libdl)
> -$(objpfx)tst-libc_dlvsym-dso.so: $(libsupport) $(libdl)
> +$(objpfx)tst-libc_dlvsym-dso.so: $(libsupport)
> $(objpfx)tst-libc_dlvsym.out: $(objpfx)tst-libc_dlvsym-dso.so
> $(objpfx)tst-libc_dlvsym-static: $(common-objpfx)dlfcn/libdl.a
> tst-libc_dlvsym-static-ENV = \
> @@ -1711,7 +1609,6 @@ $(objpfx)tst-unwind-ctor: $(objpfx)tst-unwind-ctor-lib.so
>
> CFLAGS-tst-unwind-main.c += -funwind-tables -DUSE_PTHREADS=0
>
> -$(objpfx)tst-initfinilazyfail: $(libdl)
> $(objpfx)tst-initfinilazyfail.out: \
> $(objpfx)tst-initlazyfailmod.so $(objpfx)tst-finilazyfailmod.so
> # Override -z defs, so that we can reference an undefined symbol.
> @@ -1721,7 +1618,6 @@ LDFLAGS-tst-initlazyfailmod.so = \
> LDFLAGS-tst-finilazyfailmod.so = \
> -Wl,-z,lazy -Wl,--unresolved-symbols=ignore-all
>
> -$(objpfx)tst-dlopenfail: $(libdl)
> $(objpfx)tst-dlopenfail.out: \
> $(objpfx)tst-dlopenfailmod1.so $(objpfx)tst-dlopenfailmod2.so
> # Order matters here. tst-dlopenfaillinkmod.so's soname ensures a
> @@ -1733,7 +1629,6 @@ $(objpfx)tst-dlopenfailmod1.so: \
> $(shared-thread-library) $(objpfx)tst-dlopenfaillinkmod.so
> LDFLAGS-tst-dlopenfaillinkmod.so = -Wl,-soname,tst-dlopenfail-missingmod.so
> $(objpfx)tst-dlopenfailmod2.so: $(objpfx)tst-dlopenfailnodelmod.so
> -$(objpfx)tst-dlopenfail-2: $(libdl)
> $(objpfx)tst-dlopenfail-2.out: \
> $(objpfx)tst-dlopenfailmod1.so $(objpfx)tst-dlopenfailmod2.so \
> $(objpfx)tst-dlopenfailmod3.so
> @@ -1745,7 +1640,6 @@ LDFLAGS-tst-dlopenfailnodelmod.so = \
> # tst-dlopenfailnodelmod.so uses them for error reporting.
> LDFLAGS-tst-dlopenfail = -Wl,-E
>
> -$(objpfx)tst-dlopen-nodelete-reloc: $(libdl)
> $(objpfx)tst-dlopen-nodelete-reloc.out: \
> $(objpfx)tst-dlopen-nodelete-reloc-mod1.so \
> $(objpfx)tst-dlopen-nodelete-reloc-mod2.so \
> @@ -1774,8 +1668,6 @@ $(objpfx)tst-dlopen-nodelete-reloc-mod5.so: \
> LDFLAGS-tst-dlopen-nodelete-reloc-mod5.so = -Wl,-z,nodelete,--no-as-needed
> tst-dlopen-nodelete-reloc-mod5.so-no-z-defs = yes
> tst-dlopen-nodelete-reloc-mod7.so-no-z-defs = yes
> -$(objpfx)tst-dlopen-nodelete-reloc-mod8.so: $(libdl)
> -$(objpfx)tst-dlopen-nodelete-reloc-mod10.so: $(libdl)
> tst-dlopen-nodelete-reloc-mod11.so-no-z-defs = yes
> $(objpfx)tst-dlopen-nodelete-reloc-mod13.so: \
> $(objpfx)tst-dlopen-nodelete-reloc-mod12.so
> @@ -1791,21 +1683,18 @@ $(objpfx)tst-dlopen-nodelete-reloc-mod17.so: \
> LDFLAGS-tst-dlopen-nodelete-reloc-mod17.so = -Wl,--no-as-needed
>
> $(objpfx)tst-ldconfig-ld_so_conf-update.out: $(objpfx)tst-ldconfig-ld-mod.so
> -$(objpfx)tst-ldconfig-ld_so_conf-update: $(libdl)
>
> LDFLAGS-tst-filterobj-flt.so = -Wl,--filter=$(objpfx)tst-filterobj-filtee.so
> $(objpfx)tst-filterobj: $(objpfx)tst-filterobj-flt.so
> -$(objpfx)tst-filterobj-dlopen: $(libdl)
> $(objpfx)tst-filterobj.out: $(objpfx)tst-filterobj-filtee.so
> $(objpfx)tst-filterobj-dlopen.out: $(objpfx)tst-filterobj-filtee.so
>
> LDFLAGS-tst-filterobj-aux.so = -Wl,--auxiliary=$(objpfx)tst-filterobj-filtee.so
> $(objpfx)tst-auxobj: $(objpfx)tst-filterobj-aux.so
> -$(objpfx)tst-auxobj-dlopen: $(libdl)
> $(objpfx)tst-auxobj.out: $(objpfx)tst-filterobj-filtee.so
> $(objpfx)tst-auxobj-dlopen.out: $(objpfx)tst-filterobj-filtee.so
>
> -$(objpfx)tst-single_threaded: $(objpfx)tst-single_threaded-mod1.so $(libdl)
> +$(objpfx)tst-single_threaded: $(objpfx)tst-single_threaded-mod1.so
> $(objpfx)tst-single_threaded.out: \
> $(objpfx)tst-single_threaded-mod2.so $(objpfx)tst-single_threaded-mod3.so
> $(objpfx)tst-single_threaded-static-dlopen: \
> @@ -1813,13 +1702,13 @@ $(objpfx)tst-single_threaded-static-dlopen: \
> $(objpfx)tst-single_threaded-static-dlopen.out: \
> $(objpfx)tst-single_threaded-mod2.so
> $(objpfx)tst-single_threaded-pthread: \
> - $(objpfx)tst-single_threaded-mod1.so $(libdl) $(shared-thread-library)
> + $(objpfx)tst-single_threaded-mod1.so $(shared-thread-library)
> $(objpfx)tst-single_threaded-pthread.out: \
> $(objpfx)tst-single_threaded-mod2.so $(objpfx)tst-single_threaded-mod3.so \
> $(objpfx)tst-single_threaded-mod4.so
> $(objpfx)tst-single_threaded-pthread-static: $(static-thread-library)
>
> -$(objpfx)tst-tls-ie: $(libdl) $(shared-thread-library)
> +$(objpfx)tst-tls-ie: $(shared-thread-library)
> $(objpfx)tst-tls-ie.out: \
> $(objpfx)tst-tls-ie-mod0.so \
> $(objpfx)tst-tls-ie-mod1.so \
> @@ -1829,7 +1718,7 @@ $(objpfx)tst-tls-ie.out: \
> $(objpfx)tst-tls-ie-mod5.so \
> $(objpfx)tst-tls-ie-mod6.so
>
> -$(objpfx)tst-tls-ie-dlmopen: $(libdl) $(shared-thread-library)
> +$(objpfx)tst-tls-ie-dlmopen: $(shared-thread-library)
> $(objpfx)tst-tls-ie-dlmopen.out: \
> $(objpfx)tst-tls-ie-mod0.so \
> $(objpfx)tst-tls-ie-mod1.so \
> @@ -1839,8 +1728,6 @@ $(objpfx)tst-tls-ie-dlmopen.out: \
> $(objpfx)tst-tls-ie-mod5.so \
> $(objpfx)tst-tls-ie-mod6.so
>
> -$(objpfx)tst-tls-surplus: $(libdl)
> -
> $(objpfx)argv0test.out: tst-rtld-argv0.sh $(objpfx)ld.so \
> $(objpfx)argv0test
> $(SHELL) $< $(objpfx)ld.so $(objpfx)argv0test \
> @@ -1896,7 +1783,6 @@ $(objpfx)tst-glibc-hwcaps-prepend.out: \
> # Like tst-glibc-hwcaps-prepend, but uses a container and loads the
> # library via ld.so.cache. Test setup is contained in the test
> # itself.
> -$(objpfx)tst-glibc-hwcaps-prepend-cache: $(libdl)
> $(objpfx)tst-glibc-hwcaps-prepend-cache.out: \
> $(objpfx)tst-glibc-hwcaps-prepend-cache $(objpfx)libmarkermod1-1.so \
> $(objpfx)libmarkermod1-2.so $(objpfx)libmarkermod1-3.so
> @@ -1941,12 +1827,12 @@ $(objpfx)tst-rtld-help.out: $(objpfx)ld.so
>
> # Reuses tst-tls-many-dynamic-modules
> tst-tls20mod-bad.so-no-z-defs = yes
> -$(objpfx)tst-tls20: $(libdl) $(shared-thread-library)
> +$(objpfx)tst-tls20: $(shared-thread-library)
> $(objpfx)tst-tls20.out: $(objpfx)tst-tls20mod-bad.so \
> $(tst-tls-many-dynamic-modules:%=$(objpfx)%.so)
>
> # Reuses tst-tls-many-dynamic-modules
> -$(objpfx)tst-tls21: $(libdl) $(shared-thread-library)
> +$(objpfx)tst-tls21: $(shared-thread-library)
> $(objpfx)tst-tls21.out: $(objpfx)tst-tls21mod.so
> $(objpfx)tst-tls21mod.so: $(tst-tls-many-dynamic-modules:%=$(objpfx)%.so)
>
Ok.
> diff --git a/htl/Makefile b/htl/Makefile
> index 4c5767b04c..8c5ad3c5de 100644
> --- a/htl/Makefile
> +++ b/htl/Makefile
> @@ -215,7 +215,6 @@ $(addprefix $(objpfx), \
> $(tests-nolibpthread), \
> $(tests) $(tests-internal) $(xtests) $(test-srcs) $(tests-container))): \
> $(objpfx)libpthread.so
> -$(objpfx)tst-unload: $(libdl)
> # $(objpfx)../libc.so is used instead of $(common-objpfx)libc.so,
> # since otherwise libpthread.so comes before libc.so when linking.
> $(addprefix $(objpfx), $(tests-reverse)): \
Ok.
> diff --git a/iconvdata/Makefile b/iconvdata/Makefile
> index 55c527a5f7..6eeb92f4b3 100644
> --- a/iconvdata/Makefile
> +++ b/iconvdata/Makefile
> @@ -307,7 +307,6 @@ $(objpfx)bug-iconv1.out: $(objpfx)gconv-modules \
> $(addprefix $(objpfx),$(modules.so))
> $(objpfx)bug-iconv2.out: $(objpfx)gconv-modules \
> $(addprefix $(objpfx),$(modules.so))
> -$(objpfx)bug-iconv3: $(libdl)
> $(objpfx)bug-iconv3.out: $(objpfx)gconv-modules \
> $(addprefix $(objpfx),$(modules.so))
> $(objpfx)bug-iconv5.out: $(objpfx)gconv-modules \
Ok.
> diff --git a/include/dlfcn.h b/include/dlfcn.h
> index 4274eddbc9..711bbb0f12 100644
> --- a/include/dlfcn.h
> +++ b/include/dlfcn.h
> @@ -19,16 +19,6 @@
> extern int __libc_argc attribute_hidden;
> extern char **__libc_argv attribute_hidden;
>
> -#ifdef SHARED
> -/* Locally stored program arguments. */
> -extern int __dlfcn_argc attribute_hidden;
> -extern char **__dlfcn_argv attribute_hidden;
> -#else
> -# define __dlfcn_argc __libc_argc
> -# define __dlfcn_argv __libc_argv
> -#endif
> -
> -
> /* Now define the internal interfaces. */
>
> /* Use RTLD_NOW here because:
Ok.
> @@ -101,14 +91,6 @@ libc_hidden_proto (_dl_vsym)
> extern int _dlerror_run (void (*operate) (void *), void *args);
> libc_hidden_proto (_dlerror_run)
>
> -#ifdef SHARED
> -# define DL_CALLER_DECL /* Nothing */
> -# define DL_CALLER RETURN_ADDRESS (0)
> -#else
> -# define DL_CALLER_DECL , void *dl_caller
> -# define DL_CALLER dl_caller
> -#endif
> -
> struct dlfcn_hook
> {
> void *(*dlopen) (const char *file, int mode, void *dl_caller);
Ok.
> diff --git a/malloc/Makefile b/malloc/Makefile
> index 857e2ebbd9..149dc7471f 100644
> --- a/malloc/Makefile
> +++ b/malloc/Makefile
> @@ -244,9 +244,6 @@ $(objpfx)memusage: memusage.sh
> && rm -f $@ && mv $@.new $@ && chmod +x $@
>
>
> -# The implementation uses `dlsym'
> -$(objpfx)libmemusage.so: $(libdl)
> -
> # Extra dependencies
> $(foreach o,$(all-object-suffixes),$(objpfx)malloc$(o)): arena.c hooks.c
>
Ok.
> diff --git a/misc/Makefile b/misc/Makefile
> index 38dad737f2..c103b6bff4 100644
> --- a/misc/Makefile
> +++ b/misc/Makefile
> @@ -158,5 +158,3 @@ tst-allocate_once-ENV = MALLOC_TRACE=$(objpfx)tst-allocate_once.mtrace
> $(objpfx)tst-allocate_once-mem.out: $(objpfx)tst-allocate_once.out
> $(common-objpfx)malloc/mtrace $(objpfx)tst-allocate_once.mtrace > $@; \
> $(evaluate-test)
> -
> -$(objpfx)tst-gethostid: $(libdl)
Ok.
> diff --git a/nptl/Makefile b/nptl/Makefile
> index 9a5628b751..f7d7a2c7e2 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -497,7 +497,6 @@ $(objpfx)tst-stack3-mem.out: $(objpfx)tst-stack3.out
> $(evaluate-test)
> generated += tst-stack3-mem.out tst-stack3.mtrace
>
> -$(objpfx)tst-stack4: $(libdl)
> tst-stack4mod.sos=$(shell for i in 0 1 2 3 4 5 6 7 8 9 10 \
> 11 12 13 14 15 16 17 18 19; do \
> for j in 0 1 2 3 4 5 6 7 8 9 10 \
> @@ -513,11 +512,9 @@ clean:
> $(objpfx)tst-cleanup4: $(objpfx)tst-cleanup4aux.o
> $(objpfx)tst-cleanupx4: $(objpfx)tst-cleanupx4aux.o
>
> -$(objpfx)tst-tls3: $(libdl)
> LDFLAGS-tst-tls3 = -rdynamic
> $(objpfx)tst-tls3.out: $(objpfx)tst-tls3mod.so
>
> -$(objpfx)tst-tls3-malloc: $(libdl)
> LDFLAGS-tst-tls3-malloc = -rdynamic
> $(objpfx)tst-tls3-malloc.out: $(objpfx)tst-tls3mod.so
>
> @@ -535,8 +532,6 @@ $(objpfx)tst-tls6.out: tst-tls6.sh $(objpfx)tst-tls5 \
> $(evaluate-test)
> endif
>
> -$(objpfx)tst-dlsym1: $(libdl)
> -
> ifeq (yes,$(build-shared))
> librt = $(common-objpfx)rt/librt.so
> else
> @@ -550,14 +545,12 @@ LDLIBS-tst-cancel24 = -Wl,--no-as-needed -lstdc++
> LDLIBS-tst-cancel24-static = $(LDLIBS-tst-cancel24)
>
> ifeq ($(build-shared),yes)
> -$(objpfx)tst-unload: $(libdl)
>
> generated += multidir.mk tst-tls6.out
> endif
>
> tst-exec4-ARGS = $(host-test-program-cmd)
>
> -$(objpfx)tst-execstack: $(libdl)
> $(objpfx)tst-execstack.out: $(objpfx)tst-execstack-mod.so
> LDFLAGS-tst-execstack = -Wl,-z,noexecstack
> CFLAGS-tst-execstack-mod.c += -Wno-trampolines
Ok.
> diff --git a/nss/Makefile b/nss/Makefile
> index 71fbe583bf..9682a31e20 100644
> --- a/nss/Makefile
> +++ b/nss/Makefile
> @@ -181,10 +181,5 @@ ifeq (yes,$(have-thread-library))
> $(objpfx)tst-cancel-getpwuid_r: $(shared-thread-library)
> endif
>
> -$(objpfx)tst-nss-files-hosts-erange: $(libdl)
> -$(objpfx)tst-nss-files-hosts-multi: $(libdl)
> -$(objpfx)tst-nss-files-hosts-getent: $(libdl)
> -$(objpfx)tst-nss-files-alias-leak: $(libdl)
> $(objpfx)tst-nss-files-alias-leak.out: $(objpfx)/libnss_files.so
> -$(objpfx)tst-nss-files-alias-truncated: $(libdl)
> $(objpfx)tst-nss-files-alias-truncated.out: $(objpfx)/libnss_files.so
Ok.
> diff --git a/resolv/Makefile b/resolv/Makefile
> index fb19c93026..3fbc320ee1 100644
> --- a/resolv/Makefile
> +++ b/resolv/Makefile
> @@ -149,7 +149,7 @@ $(objpfx)libnss_dns.so: $(objpfx)libresolv.so
> # The asynchronous name lookup code needs the thread library.
> $(objpfx)libanl.so: $(shared-thread-library)
>
> -$(objpfx)tst-res_hconf_reorder: $(libdl) $(shared-thread-library)
> +$(objpfx)tst-res_hconf_reorder: $(shared-thread-library)
> tst-res_hconf_reorder-ENV = RESOLV_REORDER=on
>
> $(objpfx)tst-leaks: $(objpfx)libresolv.so
> @@ -173,12 +173,11 @@ $(objpfx)mtrace-tst-resolv-res_ninit.out: $(objpfx)tst-resolv-res_ninit.out
>
> $(objpfx)tst-bug18665-tcp: $(objpfx)libresolv.so $(shared-thread-library)
> $(objpfx)tst-bug18665: $(objpfx)libresolv.so $(shared-thread-library)
> -$(objpfx)tst-resolv-ai_idn: \
> - $(libdl) $(objpfx)libresolv.so $(shared-thread-library)
> +$(objpfx)tst-resolv-ai_idn: $(objpfx)libresolv.so $(shared-thread-library)
> $(objpfx)tst-resolv-ai_idn-latin1: \
> - $(libdl) $(objpfx)libresolv.so $(shared-thread-library)
> + $(objpfx)libresolv.so $(shared-thread-library)
> $(objpfx)tst-resolv-ai_idn-nolibidn2: \
> - $(libdl) $(objpfx)libresolv.so $(shared-thread-library)
> + $(objpfx)libresolv.so $(shared-thread-library)
> $(objpfx)tst-resolv-ai_idn.out: $(gen-locales)
> $(objpfx)tst-resolv-ai_idn-latin1.out: $(gen-locales)
> $(objpfx)tst-resolv-ai_idn-nolibidn2.out: \
> @@ -187,22 +186,20 @@ $(objpfx)tst-resolv-basic: $(objpfx)libresolv.so $(shared-thread-library)
> $(objpfx)tst-resolv-binary: $(objpfx)libresolv.so $(shared-thread-library)
> $(objpfx)tst-resolv-edns: $(objpfx)libresolv.so $(shared-thread-library)
> $(objpfx)tst-resolv-network: $(objpfx)libresolv.so $(shared-thread-library)
> -$(objpfx)tst-resolv-res_init: $(libdl) $(objpfx)libresolv.so
> +$(objpfx)tst-resolv-res_init: $(objpfx)libresolv.so
> $(objpfx)tst-resolv-res_init-multi: $(objpfx)libresolv.so \
> $(shared-thread-library)
> -$(objpfx)tst-resolv-res_init-thread: $(libdl) $(objpfx)libresolv.so \
> +$(objpfx)tst-resolv-res_init-thread: $(objpfx)libresolv.so \
> $(shared-thread-library)
> $(objpfx)tst-resolv-nondecimal: $(objpfx)libresolv.so $(shared-thread-library)
> $(objpfx)tst-resolv-qtypes: $(objpfx)libresolv.so $(shared-thread-library)
> $(objpfx)tst-resolv-rotate: $(objpfx)libresolv.so $(shared-thread-library)
> $(objpfx)tst-resolv-search: $(objpfx)libresolv.so $(shared-thread-library)
> $(objpfx)tst-resolv-trailing: $(objpfx)libresolv.so $(shared-thread-library)
> -$(objpfx)tst-resolv-threads: \
> - $(libdl) $(objpfx)libresolv.so $(shared-thread-library)
> +$(objpfx)tst-resolv-threads: $(objpfx)libresolv.so $(shared-thread-library)
> $(objpfx)tst-resolv-txnid-collision: $(objpfx)libresolv.a \
> $(static-thread-library)
> -$(objpfx)tst-resolv-canonname: \
> - $(libdl) $(objpfx)libresolv.so $(shared-thread-library)
> +$(objpfx)tst-resolv-canonname: $(objpfx)libresolv.so $(shared-thread-library)
> $(objpfx)tst-resolv-trustad: $(objpfx)libresolv.so $(shared-thread-library)
>
> $(objpfx)tst-ns_name: $(objpfx)libresolv.so
Ok.
> diff --git a/stdlib/Makefile b/stdlib/Makefile
> index ec30011b4c..7c15549caf 100644
> --- a/stdlib/Makefile
> +++ b/stdlib/Makefile
> @@ -106,7 +106,7 @@ LDLIBS-test-cxa_atexit-race2 = $(shared-thread-library)
> LDLIBS-test-on_exit-race = $(shared-thread-library)
> LDLIBS-tst-canon-bz26341 = $(shared-thread-library)
>
> -LDLIBS-test-dlclose-exit-race = $(shared-thread-library) $(libdl)
> +LDLIBS-test-dlclose-exit-race = $(shared-thread-library)
> LDFLAGS-test-dlclose-exit-race = $(LDFLAGS-rdynamic)
> LDLIBS-test-dlclose-exit-race-helper.so = $(libsupport) $(shared-thread-library)
>
> @@ -233,10 +233,10 @@ $(objpfx)tst-strtod-nan-sign: $(libm)
> tst-tls-atexit-lib.so-no-z-defs = yes
> test-dlclose-exit-race-helper.so-no-z-defs = yes
>
> -$(objpfx)tst-tls-atexit: $(shared-thread-library) $(libdl)
> +$(objpfx)tst-tls-atexit: $(shared-thread-library)
> $(objpfx)tst-tls-atexit.out: $(objpfx)tst-tls-atexit-lib.so
>
> -$(objpfx)tst-tls-atexit-nodelete: $(shared-thread-library) $(libdl)
> +$(objpfx)tst-tls-atexit-nodelete: $(shared-thread-library)
> $(objpfx)tst-tls-atexit-nodelete.out: $(objpfx)tst-tls-atexit-lib.so
>
> $(objpfx)tst-setcontext3.out: tst-setcontext3.sh $(objpfx)tst-setcontext3
> @@ -244,5 +244,3 @@ $(objpfx)tst-setcontext3.out: tst-setcontext3.sh $(objpfx)tst-setcontext3
> '$(run-program-env)' '$(test-program-prefix-after-env)' \
> $(common-objpfx)stdlib/; \
> $(evaluate-test)
> -
> -$(objpfx)tst-makecontext: $(libdl)
Ok.
> diff --git a/string/Makefile b/string/Makefile
> index d17626ed39..f0fce2a0b8 100644
> --- a/string/Makefile
> +++ b/string/Makefile
> @@ -80,7 +80,6 @@ xtests = tst-strcoll-overflow
> # This test needs libdl.
> ifeq (yes,$(build-shared))
> tests += test-strerror-errno
> -LDLIBS-test-strerror-errno = $(libdl)
> endif
>
> ifeq ($(run-built-tests),yes)
Ok.
> diff --git a/sysdeps/mips/Makefile b/sysdeps/mips/Makefile
> index 150518bc6d..d770e59fc9 100644
> --- a/sysdeps/mips/Makefile
> +++ b/sysdeps/mips/Makefile
> @@ -64,7 +64,6 @@ fpabi_list=$(subst $(space),$(comma),$(patsubst tst-abi-%mod,o_%,\
> CPPFLAGS-tst-abi-interlink.c += -DFPABI_LIST=$(fpabi_list)
> CPPFLAGS-tst-abi-interlink.c += -DFPABI_COUNT=$(words $(fpabi-modules-names))
> CPPFLAGS-tst-abi-interlink.c += -DFPABI_NATIVE=o_fp$(o32-fpabi)
> -$(objpfx)tst-abi-interlink: $(libdl)
> $(objpfx)tst-abi-interlink.out: $(patsubst %,$(objpfx)%.so,\
> $(fpabi-modules-names))
> endif
Ok.
> diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile
> index bca642f438..e4690a7bc4 100644
> --- a/sysdeps/pthread/Makefile
> +++ b/sysdeps/pthread/Makefile
> @@ -203,7 +203,7 @@ CFLAGS-tst-pt-align3.c += $(stack-align-test-flags)
>
> tst-umask1-ARGS = $(objpfx)tst-umask1.temp
>
> -$(objpfx)tst-atfork2: $(libdl) $(shared-thread-library)
> +$(objpfx)tst-atfork2: $(shared-thread-library)
> LDFLAGS-tst-atfork2 = -rdynamic
> tst-atfork2-ENV = MALLOC_TRACE=$(objpfx)tst-atfork2.mtrace
> $(objpfx)tst-atfork2mod.so: $(shared-thread-library)
> @@ -236,7 +236,7 @@ LDFLAGS-tst-_res1mod2.so = -Wl,-soname,tst-_res1mod2.so
> $(objpfx)tst-_res1: $(objpfx)tst-_res1mod1.so $(objpfx)tst-_res1mod2.so \
> $(shared-thread-library)
>
> -$(objpfx)tst-pt-tls4: $(libdl) $(shared-thread-library)
> +$(objpfx)tst-pt-tls4: $(shared-thread-library)
> $(objpfx)tst-pt-tls4.out: $(objpfx)tst-tls4moda.so $(objpfx)tst-tls4modb.so
>
> generated += tst-atfork2.mtrace
> @@ -260,7 +260,7 @@ CFLAGS-tst-oncex4.c += -fexceptions
> CFLAGS-tst-oncey3.c += -fno-exceptions -fno-asynchronous-unwind-tables
> CFLAGS-tst-oncey4.c += -fno-exceptions -fno-asynchronous-unwind-tables
>
> -$(objpfx)tst-join7: $(libdl) $(shared-thread-library)
> +$(objpfx)tst-join7: $(shared-thread-library)
> $(objpfx)tst-join7.out: $(objpfx)tst-join7mod.so
> $(objpfx)tst-join7mod.so: $(shared-thread-library)
> LDFLAGS-tst-join7mod.so = -Wl,-soname,tst-join7mod.so
Ok.
> diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile
> index aa016f7b5a..346ec491b3 100644
> --- a/sysdeps/x86/Makefile
> +++ b/sysdeps/x86/Makefile
> @@ -51,7 +51,6 @@ CFLAGS-tst-isa-level-mod-1-v4.c += -DINCLUDE_X86_ISA_LEVEL \
> -DISA_LEVEL=0xf \
> -march=x86-64
>
> -$(objpfx)tst-isa-level-1: $(libdl)
> $(objpfx)tst-isa-level-1.out: $(objpfx)tst-isa-level-mod-1-baseline.so \
> $(objpfx)tst-isa-level-mod-1-v2.so \
> $(objpfx)tst-isa-level-mod-1-v3.so \
> @@ -162,38 +161,30 @@ $(objpfx)tst-cet-legacy-1: $(objpfx)tst-cet-legacy-mod-1.so \
> $(objpfx)tst-cet-legacy-mod-2.so
> $(objpfx)tst-cet-legacy-1a: $(objpfx)tst-cet-legacy-mod-1.so \
> $(objpfx)tst-cet-legacy-mod-2.so
> -$(objpfx)tst-cet-legacy-2: $(objpfx)tst-cet-legacy-mod-2.so $(libdl)
> +$(objpfx)tst-cet-legacy-2: $(objpfx)tst-cet-legacy-mod-2.so
> $(objpfx)tst-cet-legacy-2.out: $(objpfx)tst-cet-legacy-mod-1.so
> -$(objpfx)tst-cet-legacy-2a: $(objpfx)tst-cet-legacy-mod-2.so $(libdl)
> +$(objpfx)tst-cet-legacy-2a: $(objpfx)tst-cet-legacy-mod-2.so
> $(objpfx)tst-cet-legacy-2a.out: $(objpfx)tst-cet-legacy-mod-1.so
> -$(objpfx)tst-cet-legacy-4: $(libdl)
> $(objpfx)tst-cet-legacy-4.out: $(objpfx)tst-cet-legacy-mod-4.so
> -$(objpfx)tst-cet-legacy-5a: $(libdl)
> $(objpfx)tst-cet-legacy-5a.out: $(objpfx)tst-cet-legacy-mod-5a.so \
> $(objpfx)tst-cet-legacy-mod-5b.so
> $(objpfx)tst-cet-legacy-mod-5a.so: $(objpfx)tst-cet-legacy-mod-5c.so
> $(objpfx)tst-cet-legacy-mod-5b.so: $(objpfx)tst-cet-legacy-mod-5c.so
> -$(objpfx)tst-cet-legacy-6a: $(libdl)
> $(objpfx)tst-cet-legacy-6a.out: $(objpfx)tst-cet-legacy-mod-6a.so \
> $(objpfx)tst-cet-legacy-mod-6b.so
> $(objpfx)tst-cet-legacy-mod-6a.so: $(objpfx)tst-cet-legacy-mod-6c.so
> $(objpfx)tst-cet-legacy-mod-6b.so: $(objpfx)tst-cet-legacy-mod-6c.so
> LDFLAGS-tst-cet-legacy-mod-6c.so = -Wl,--enable-new-dtags,-z,nodelete
> ifneq (no,$(have-tunables))
> -$(objpfx)tst-cet-legacy-4a: $(libdl)
> $(objpfx)tst-cet-legacy-4a.out: $(objpfx)tst-cet-legacy-mod-4.so
> tst-cet-legacy-4a-ENV = GLIBC_TUNABLES=glibc.cpu.x86_shstk=permissive
> -$(objpfx)tst-cet-legacy-4b: $(libdl)
> $(objpfx)tst-cet-legacy-4b.out: $(objpfx)tst-cet-legacy-mod-4.so
> tst-cet-legacy-4b-ENV = GLIBC_TUNABLES=glibc.cpu.x86_shstk=on
> -$(objpfx)tst-cet-legacy-4c: $(libdl)
> $(objpfx)tst-cet-legacy-4c.out: $(objpfx)tst-cet-legacy-mod-4.so
> tst-cet-legacy-4c-ENV = GLIBC_TUNABLES=glibc.cpu.x86_shstk=off
> -$(objpfx)tst-cet-legacy-5b: $(libdl)
> $(objpfx)tst-cet-legacy-5b.out: $(objpfx)tst-cet-legacy-mod-5a.so \
> $(objpfx)tst-cet-legacy-mod-5b.so
> tst-cet-legacy-5b-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=-IBT,-SHSTK
> -$(objpfx)tst-cet-legacy-6b: $(libdl)
> $(objpfx)tst-cet-legacy-6b.out: $(objpfx)tst-cet-legacy-mod-6a.so \
> $(objpfx)tst-cet-legacy-mod-6b.so
> tst-cet-legacy-6b-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=-IBT,-SHSTK
>
Ok.
^ permalink raw reply [flat|nested] 39+ messages in thread
* [PATCH v2 15/16] dlfcn: Eliminate GLIBC_PRIVATE dependency from tststatic2
2021-05-31 14:10 [PATCH v3 00/16] Move libdl into libc Florian Weimer
` (13 preceding siblings ...)
2021-05-31 14:12 ` [PATCH 14/16] dlfcn: Cleanups after -ldl is no longer required Florian Weimer
@ 2021-05-31 14:12 ` Florian Weimer
2021-06-02 18:09 ` Adhemerval Zanella
2021-05-31 14:12 ` [PATCH 16/16] dlfcn: Rework static dlopen hooks Florian Weimer
15 siblings, 1 reply; 39+ messages in thread
From: Florian Weimer @ 2021-05-31 14:12 UTC (permalink / raw)
To: libc-alpha
The test appears to use _dlfcn_hook@@GLIBC_PRIVATE as a way to
test dlvsym without having to know the appropriate symbol version.
With <first-versions.h>, we can use a public symbol and the symbol
version at which it was defined first.
---
dlfcn/modstatic2.c | 10 +++++++++-
dlfcn/tststatic2.c | 10 +++++++++-
2 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/dlfcn/modstatic2.c b/dlfcn/modstatic2.c
index 9b5aae8b9f..02d561a7b0 100644
--- a/dlfcn/modstatic2.c
+++ b/dlfcn/modstatic2.c
@@ -4,6 +4,7 @@
#include <stdlib.h>
#include <string.h>
#include <gnu/lib-names.h>
+#include <first-versions.h>
int test (FILE *out, int a);
@@ -117,11 +118,18 @@ test (FILE *out, int a)
exit (1);
}
- if (dlvsym (handle2, "_dlfcn_hook", "GLIBC_PRIVATE") == NULL)
+ /* _exit is very unlikely to receive a second symbol version. */
+ void *exit_ptr = dlvsym (handle2, "_exit", FIRST_VERSION_libc__exit_STRING);
+ if (exit_ptr == NULL)
{
fprintf (out, "dlvsym: %s\n", dlerror ());
exit (1);
}
+ if (exit_ptr != dlsym (handle2, "_exit"))
+ {
+ fprintf (out, "dlvsym for _exit does not match dlsym\n");
+ exit (1);
+ }
void *(*dlsymfn) (void *, const char *);
dlsymfn = dlsym (handle2, "dlsym");
diff --git a/dlfcn/tststatic2.c b/dlfcn/tststatic2.c
index f8cd5a964b..5d8a7831b2 100644
--- a/dlfcn/tststatic2.c
+++ b/dlfcn/tststatic2.c
@@ -4,6 +4,7 @@
#include <stdlib.h>
#include <string.h>
#include <gnu/lib-names.h>
+#include <first-versions.h>
static int
do_test (void)
@@ -115,11 +116,18 @@ do_test (void)
exit (1);
}
- if (dlvsym (handle2, "_dlfcn_hook", "GLIBC_PRIVATE") == NULL)
+ /* _exit is very unlikely to receive a second symbol version. */
+ void *exit_ptr = dlvsym (handle2, "_exit", FIRST_VERSION_libc__exit_STRING);
+ if (exit_ptr == NULL)
{
printf ("dlvsym: %s\n", dlerror ());
exit (1);
}
+ if (exit_ptr != dlsym (handle2, "_exit"))
+ {
+ printf ("dlvsym for _exit does not match dlsym\n");
+ exit (1);
+ }
void *(*dlsymfn) (void *, const char *);
dlsymfn = dlsym (handle2, "dlsym");
--
2.31.1
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH v2 15/16] dlfcn: Eliminate GLIBC_PRIVATE dependency from tststatic2
2021-05-31 14:12 ` [PATCH v2 15/16] dlfcn: Eliminate GLIBC_PRIVATE dependency from tststatic2 Florian Weimer
@ 2021-06-02 18:09 ` Adhemerval Zanella
0 siblings, 0 replies; 39+ messages in thread
From: Adhemerval Zanella @ 2021-06-02 18:09 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 31/05/2021 11:12, Florian Weimer via Libc-alpha wrote:
> The test appears to use _dlfcn_hook@@GLIBC_PRIVATE as a way to
> test dlvsym without having to know the appropriate symbol version.
> With <first-versions.h>, we can use a public symbol and the symbol
> version at which it was defined first.
Right, I think by including the <first-versions.h> there is no need
to make it an internal test.
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> dlfcn/modstatic2.c | 10 +++++++++-
> dlfcn/tststatic2.c | 10 +++++++++-
> 2 files changed, 18 insertions(+), 2 deletions(-)
>
> diff --git a/dlfcn/modstatic2.c b/dlfcn/modstatic2.c
> index 9b5aae8b9f..02d561a7b0 100644
> --- a/dlfcn/modstatic2.c
> +++ b/dlfcn/modstatic2.c
> @@ -4,6 +4,7 @@
> #include <stdlib.h>
> #include <string.h>
> #include <gnu/lib-names.h>
> +#include <first-versions.h>
>
> int test (FILE *out, int a);
>
> @@ -117,11 +118,18 @@ test (FILE *out, int a)
> exit (1);
> }
>
> - if (dlvsym (handle2, "_dlfcn_hook", "GLIBC_PRIVATE") == NULL)
> + /* _exit is very unlikely to receive a second symbol version. */
> + void *exit_ptr = dlvsym (handle2, "_exit", FIRST_VERSION_libc__exit_STRING);
> + if (exit_ptr == NULL)
> {
> fprintf (out, "dlvsym: %s\n", dlerror ());
> exit (1);
> }
> + if (exit_ptr != dlsym (handle2, "_exit"))
> + {
> + fprintf (out, "dlvsym for _exit does not match dlsym\n");
> + exit (1);
> + }
>
> void *(*dlsymfn) (void *, const char *);
> dlsymfn = dlsym (handle2, "dlsym");
Ok.
> diff --git a/dlfcn/tststatic2.c b/dlfcn/tststatic2.c
> index f8cd5a964b..5d8a7831b2 100644
> --- a/dlfcn/tststatic2.c
> +++ b/dlfcn/tststatic2.c
> @@ -4,6 +4,7 @@
> #include <stdlib.h>
> #include <string.h>
> #include <gnu/lib-names.h>
> +#include <first-versions.h>
>
> static int
> do_test (void)
> @@ -115,11 +116,18 @@ do_test (void)
> exit (1);
> }
>
> - if (dlvsym (handle2, "_dlfcn_hook", "GLIBC_PRIVATE") == NULL)
> + /* _exit is very unlikely to receive a second symbol version. */
> + void *exit_ptr = dlvsym (handle2, "_exit", FIRST_VERSION_libc__exit_STRING);
> + if (exit_ptr == NULL)
> {
> printf ("dlvsym: %s\n", dlerror ());
> exit (1);
> }
> + if (exit_ptr != dlsym (handle2, "_exit"))
> + {
> + printf ("dlvsym for _exit does not match dlsym\n");
> + exit (1);
> + }
>
> void *(*dlsymfn) (void *, const char *);
> dlsymfn = dlsym (handle2, "dlsym");
>
Ok.
^ permalink raw reply [flat|nested] 39+ messages in thread
* [PATCH 16/16] dlfcn: Rework static dlopen hooks
2021-05-31 14:10 [PATCH v3 00/16] Move libdl into libc Florian Weimer
` (14 preceding siblings ...)
2021-05-31 14:12 ` [PATCH v2 15/16] dlfcn: Eliminate GLIBC_PRIVATE dependency from tststatic2 Florian Weimer
@ 2021-05-31 14:12 ` Florian Weimer
2021-06-02 19:18 ` Adhemerval Zanella
15 siblings, 1 reply; 39+ messages in thread
From: Florian Weimer @ 2021-05-31 14:12 UTC (permalink / raw)
To: libc-alpha
Consolidate all hooks structures into a single one. There are
no static dlopen ABI concerns because glibc 2.34 already comes
with substantial ABI-incompatible chagnes in this area. (Static
dlopen requires the exact same dynamic glibc version that was used
for static linking.)
The new approach uses a pointer to the hooks structure into
_rtld_global_ro and initalizes it in __rtld_static_init. This avoids
a back-and-forth with various callback functions.
---
dlfcn/dladdr.c | 2 +-
dlfcn/dladdr1.c | 2 +-
dlfcn/dlclose.c | 2 +-
dlfcn/dlerror.c | 32 +----------------
dlfcn/dlinfo.c | 2 +-
dlfcn/dlmopen.c | 10 ++----
dlfcn/dlopen.c | 10 ++----
dlfcn/dlopenold.c | 2 +-
dlfcn/dlsym.c | 2 +-
dlfcn/dlvsym.c | 3 +-
elf/Versions | 1 -
elf/dl-libc.c | 73 ++++----------------------------------
elf/rtld_static_init.c | 18 ++++++++++
include/dlfcn.h | 31 ++++++++--------
sysdeps/generic/ldsodefs.h | 3 ++
15 files changed, 54 insertions(+), 139 deletions(-)
diff --git a/dlfcn/dladdr.c b/dlfcn/dladdr.c
index 3ef1b7f0b6..1cc305f0c4 100644
--- a/dlfcn/dladdr.c
+++ b/dlfcn/dladdr.c
@@ -25,7 +25,7 @@ __dladdr (const void *address, Dl_info *info)
{
#ifdef SHARED
if (!rtld_active ())
- return _dlfcn_hook->dladdr (address, info);
+ return GLRO (dl_dlfcn_hook)->dladdr (address, info);
#endif
return _dl_addr (address, info, NULL, NULL);
}
diff --git a/dlfcn/dladdr1.c b/dlfcn/dladdr1.c
index 203d6398e4..78560dbac2 100644
--- a/dlfcn/dladdr1.c
+++ b/dlfcn/dladdr1.c
@@ -25,7 +25,7 @@ __dladdr1 (const void *address, Dl_info *info, void **extra, int flags)
{
#ifdef SHARED
if (!rtld_active ())
- return _dlfcn_hook->dladdr1 (address, info, extra, flags);
+ return GLRO (dl_dlfcn_hook)->dladdr1 (address, info, extra, flags);
#endif
switch (flags)
diff --git a/dlfcn/dlclose.c b/dlfcn/dlclose.c
index 4d5d307ab1..6a013a81bb 100644
--- a/dlfcn/dlclose.c
+++ b/dlfcn/dlclose.c
@@ -25,7 +25,7 @@ __dlclose (void *handle)
{
#ifdef SHARED
if (!rtld_active ())
- return _dlfcn_hook->dlclose (handle);
+ return GLRO (dl_dlfcn_hook)->dlclose (handle);
#endif
return _dlerror_run (GLRO (dl_close), handle) ? -1 : 0;
diff --git a/dlfcn/dlerror.c b/dlfcn/dlerror.c
index 3df8602f4d..d0194a7cef 100644
--- a/dlfcn/dlerror.c
+++ b/dlfcn/dlerror.c
@@ -33,7 +33,7 @@ __dlerror (void)
{
# ifdef SHARED
if (!rtld_active ())
- return _dlfcn_hook->dlerror ();
+ return GLRO (dl_dlfcn_hook)->dlerror ();
# endif
struct dl_action_result *result = __libc_dlerror_result;
@@ -197,33 +197,3 @@ _dlerror_run (void (*operate) (void *), void *args)
}
}
libc_hidden_def (_dlerror_run)
-
-#ifdef SHARED
-struct dlfcn_hook *_dlfcn_hook __attribute__((nocommon));
-libc_hidden_data_def (_dlfcn_hook)
-
-#else /* !SHARED */
-
-static struct dlfcn_hook _dlfcn_hooks =
- {
- .dlopen = __dlopen,
- .dlclose = __dlclose,
- .dlsym = __dlsym,
- .dlvsym = __dlvsym,
- .dlerror = __dlerror,
- .dladdr = __dladdr,
- .dladdr1 = __dladdr1,
- .dlinfo = __dlinfo,
- .dlmopen = __dlmopen
- };
-
-void
-__libc_register_dlfcn_hook (struct link_map *map)
-{
- struct dlfcn_hook **hook;
-
- hook = (struct dlfcn_hook **) __libc_dlsym_private (map, "_dlfcn_hook");
- if (hook != NULL)
- *hook = &_dlfcn_hooks;
-}
-#endif /* !SHARED */
diff --git a/dlfcn/dlinfo.c b/dlfcn/dlinfo.c
index 15fcbc5dc1..c6f9a1da09 100644
--- a/dlfcn/dlinfo.c
+++ b/dlfcn/dlinfo.c
@@ -90,7 +90,7 @@ int
___dlinfo (void *handle, int request, void *arg)
{
if (!rtld_active ())
- return _dlfcn_hook->dlinfo (handle, request, arg);
+ return GLRO (dl_dlfcn_hook)->dlinfo (handle, request, arg);
else
return dlinfo_implementation (handle, request, arg);
}
diff --git a/dlfcn/dlmopen.c b/dlfcn/dlmopen.c
index ae42814bbf..c171c8953d 100644
--- a/dlfcn/dlmopen.c
+++ b/dlfcn/dlmopen.c
@@ -81,7 +81,7 @@ void *
___dlmopen (Lmid_t nsid, const char *file, int mode)
{
if (!rtld_active ())
- return _dlfcn_hook->dlmopen (nsid, file, mode, RETURN_ADDRESS (0));
+ return GLRO (dl_dlfcn_hook)->dlmopen (nsid, file, mode, RETURN_ADDRESS (0));
else
return dlmopen_implementation (nsid, file, mode, RETURN_ADDRESS (0));
}
@@ -101,13 +101,7 @@ __dlmopen (Lmid_t nsid, const char *file, int mode, void *dl_caller)
void *
___dlmopen (Lmid_t nsid, const char *file, int mode)
{
- struct link_map *l = __dlmopen (nsid, file, mode, RETURN_ADDRESS (0));
- if (l != NULL)
- {
- __libc_register_dl_open_hook (l);
- __libc_register_dlfcn_hook (l);
- }
- return l;
+ return __dlmopen (nsid, file, mode, RETURN_ADDRESS (0));
}
weak_alias (___dlmopen, dlmopen)
static_link_warning (dlmopen)
diff --git a/dlfcn/dlopen.c b/dlfcn/dlopen.c
index afdc113efb..e04b374b82 100644
--- a/dlfcn/dlopen.c
+++ b/dlfcn/dlopen.c
@@ -76,7 +76,7 @@ void *
___dlopen (const char *file, int mode)
{
if (!rtld_active ())
- return _dlfcn_hook->dlopen (file, mode, RETURN_ADDRESS (0));
+ return GLRO (dl_dlfcn_hook)->dlopen (file, mode, RETURN_ADDRESS (0));
else
return dlopen_implementation (file, mode, RETURN_ADDRESS (0));
}
@@ -96,13 +96,7 @@ __dlopen (const char *file, int mode, void *dl_caller)
void *
___dlopen (const char *file, int mode)
{
- struct link_map *l = __dlopen (file, mode, RETURN_ADDRESS (0));
- if (l != NULL)
- {
- __libc_register_dl_open_hook (l);
- __libc_register_dlfcn_hook (l);
- }
- return l;
+ return __dlopen (file, mode, RETURN_ADDRESS (0));
}
weak_alias (___dlopen, dlopen)
static_link_warning (dlopen)
diff --git a/dlfcn/dlopenold.c b/dlfcn/dlopenold.c
index 0fe5f24cc5..9115501ac1 100644
--- a/dlfcn/dlopenold.c
+++ b/dlfcn/dlopenold.c
@@ -71,7 +71,7 @@ __dlopen_nocheck (const char *file, int mode)
args.mode = mode;
if (!rtld_active ())
- return _dlfcn_hook->dlopen (file, mode, RETURN_ADDRESS (0));
+ return GLRO (dl_dlfcn_hook)->dlopen (file, mode, RETURN_ADDRESS (0));
return _dlerror_run (dlopen_doit, &args) ? NULL : args.new;
}
diff --git a/dlfcn/dlsym.c b/dlfcn/dlsym.c
index 6b03b7b7ab..43044cf7bb 100644
--- a/dlfcn/dlsym.c
+++ b/dlfcn/dlsym.c
@@ -63,7 +63,7 @@ void *
___dlsym (void *handle, const char *name)
{
if (!rtld_active ())
- return _dlfcn_hook->dlsym (handle, name, RETURN_ADDRESS (0));
+ return GLRO (dl_dlfcn_hook)->dlsym (handle, name, RETURN_ADDRESS (0));
else
return dlsym_implementation (handle, name, RETURN_ADDRESS (0));
}
diff --git a/dlfcn/dlvsym.c b/dlfcn/dlvsym.c
index de6b340647..9b76f9afa5 100644
--- a/dlfcn/dlvsym.c
+++ b/dlfcn/dlvsym.c
@@ -66,7 +66,8 @@ void *
___dlvsym (void *handle, const char *name, const char *version)
{
if (!rtld_active ())
- return _dlfcn_hook->dlvsym (handle, name, version, RETURN_ADDRESS (0));
+ return GLRO (dl_dlfcn_hook)->dlvsym (handle, name, version,
+ RETURN_ADDRESS (0));
else
return dlvsym_implementation (handle, name, version, RETURN_ADDRESS (0));
}
diff --git a/elf/Versions b/elf/Versions
index be88c48e6d..a12d64e8db 100644
--- a/elf/Versions
+++ b/elf/Versions
@@ -23,7 +23,6 @@ libc {
GLIBC_PRIVATE {
# functions used in other libraries
_dl_addr;
- _dl_open_hook; _dl_open_hook2;
_dl_sym; _dl_vsym;
__libc_dlclose; __libc_dlopen_mode; __libc_dlsym; __libc_dlvsym;
__libc_early_init;
diff --git a/elf/dl-libc.c b/elf/dl-libc.c
index ed551f6e56..3ac2a0645f 100644
--- a/elf/dl-libc.c
+++ b/elf/dl-libc.c
@@ -126,32 +126,7 @@ do_dlclose (void *ptr)
GLRO(dl_close) ((struct link_map *) ptr);
}
-/* This code is to support __libc_dlopen from __libc_dlopen'ed shared
- libraries. We need to ensure the statically linked __libc_dlopen
- etc. functions are used instead of the dynamically loaded. */
-struct dl_open_hook
-{
- void *(*dlopen_mode) (const char *name, int mode);
- void *(*dlsym) (void *map, const char *name);
- int (*dlclose) (void *map);
- void *(*dlvsym) (void *map, const char *name, const char *version);
-};
-
-#ifdef SHARED
-extern struct dl_open_hook *_dl_open_hook;
-libc_hidden_proto (_dl_open_hook);
-struct dl_open_hook *_dl_open_hook __attribute__ ((nocommon));
-libc_hidden_data_def (_dl_open_hook);
-
-/* The dlvsym member was added retroactively to struct dl_open_hook.
- Static applications which have it will set _dl_open_hook2 in
- addition to _dl_open_hook. */
-extern struct dl_open_hook *_dl_open_hook2;
-libc_hidden_proto (_dl_open_hook2);
-struct dl_open_hook *_dl_open_hook2 __attribute__ ((nocommon));
-libc_hidden_data_def (_dl_open_hook2);
-
-#else
+#ifndef SHARED
static void
do_dlsym_private (void *ptr)
{
@@ -169,14 +144,6 @@ do_dlsym_private (void *ptr)
args->map->l_scope, &vers, 0, 0, NULL);
args->loadbase = l;
}
-
-static struct dl_open_hook _dl_open_hook =
- {
- .dlopen_mode = __libc_dlopen_mode,
- .dlsym = __libc_dlsym,
- .dlclose = __libc_dlclose,
- .dlvsym = __libc_dlvsym,
- };
#endif
/* ... and these functions call dlerror_run. */
@@ -191,16 +158,9 @@ __libc_dlopen_mode (const char *name, int mode)
#ifdef SHARED
if (!rtld_active ())
- return _dl_open_hook->dlopen_mode (name, mode);
- return (dlerror_run (do_dlopen, &args) ? NULL : (void *) args.map);
-#else
- if (dlerror_run (do_dlopen, &args))
- return NULL;
-
- __libc_register_dl_open_hook (args.map);
- __libc_register_dlfcn_hook (args.map);
- return (void *) args.map;
+ return GLRO (dl_dlfcn_hook)->libc_dlopen_mode (name, mode);
#endif
+ return (dlerror_run (do_dlopen, &args) ? NULL : (void *) args.map);
}
libc_hidden_def (__libc_dlopen_mode)
@@ -216,21 +176,6 @@ __libc_dlsym_private (struct link_map *map, const char *name)
return DL_SYMBOL_ADDRESS (sargs.loadbase, sargs.ref);
return NULL;
}
-
-void
-__libc_register_dl_open_hook (struct link_map *map)
-{
- struct dl_open_hook **hook;
-
- hook = (struct dl_open_hook **) __libc_dlsym_private (map, "_dl_open_hook");
- if (hook != NULL)
- *hook = &_dl_open_hook;
-
- /* For dlvsym support. */
- hook = (struct dl_open_hook **) __libc_dlsym_private (map, "_dl_open_hook2");
- if (hook != NULL)
- *hook = &_dl_open_hook;
-}
#endif
void *
@@ -242,7 +187,7 @@ __libc_dlsym (void *map, const char *name)
#ifdef SHARED
if (!rtld_active ())
- return _dl_open_hook->dlsym (map, name);
+ return GLRO (dl_dlfcn_hook)->libc_dlsym (map, name);
#endif
return (dlerror_run (do_dlsym, &args) ? NULL
: (void *) (DL_SYMBOL_ADDRESS (args.loadbase, args.ref)));
@@ -257,13 +202,7 @@ __libc_dlvsym (void *map, const char *name, const char *version)
{
#ifdef SHARED
if (!rtld_active ())
- {
- /* The static application is too old and does not provide the
- dlvsym hook. */
- if (_dl_open_hook2 == NULL)
- return NULL;
- return _dl_open_hook2->dlvsym (map, name, version);
- }
+ return GLRO (dl_dlfcn_hook)->libc_dlvsym (map, name, version);
#endif
struct do_dlvsym_args args;
@@ -287,7 +226,7 @@ __libc_dlclose (void *map)
{
#ifdef SHARED
if (!rtld_active ())
- return _dl_open_hook->dlclose (map);
+ return GLRO (dl_dlfcn_hook)->libc_dlclose (map);
#endif
return dlerror_run (do_dlclose, map);
}
diff --git a/elf/rtld_static_init.c b/elf/rtld_static_init.c
index 42efecfbff..3f8abb6800 100644
--- a/elf/rtld_static_init.c
+++ b/elf/rtld_static_init.c
@@ -25,6 +25,23 @@
#include <rtld_static_init.h>
+static const struct dlfcn_hook _dlfcn_hook =
+ {
+ .dlopen = __dlopen,
+ .dlclose = __dlclose,
+ .dlsym = __dlsym,
+ .dlvsym = __dlvsym,
+ .dlerror = __dlerror,
+ .dladdr = __dladdr,
+ .dladdr1 = __dladdr1,
+ .dlinfo = __dlinfo,
+ .dlmopen = __dlmopen,
+ .libc_dlopen_mode = __libc_dlopen_mode,
+ .libc_dlsym = __libc_dlsym,
+ .libc_dlvsym = __libc_dlvsym,
+ .libc_dlclose = __libc_dlclose,
+ };
+
void
__rtld_static_init (struct link_map *map)
{
@@ -45,6 +62,7 @@ __rtld_static_init (struct link_map *map)
extern __typeof (dl->_dl_clktck) _dl_clktck attribute_hidden;
dl->_dl_clktck = _dl_clktck;
#endif
+ dl->_dl_dlfcn_hook = &_dlfcn_hook;
extern __typeof (dl->_dl_hwcap) _dl_hwcap attribute_hidden;
dl->_dl_hwcap = _dl_hwcap;
extern __typeof (dl->_dl_hwcap2) _dl_hwcap2 attribute_hidden;
diff --git a/include/dlfcn.h b/include/dlfcn.h
index 711bbb0f12..d4440c567e 100644
--- a/include/dlfcn.h
+++ b/include/dlfcn.h
@@ -91,8 +91,12 @@ libc_hidden_proto (_dl_vsym)
extern int _dlerror_run (void (*operate) (void *), void *args);
libc_hidden_proto (_dlerror_run)
+/* This structure is used to make the outer (statically linked)
+ implementation of dlopen and related functions to the inner libc
+ after static dlopen, via the GLRO (dl_dlfcn_hook) pointer. */
struct dlfcn_hook
{
+ /* Public interfaces. */
void *(*dlopen) (const char *file, int mode, void *dl_caller);
int (*dlclose) (void *handle);
void *(*dlsym) (void *handle, const char *name, void *dl_caller);
@@ -104,15 +108,17 @@ struct dlfcn_hook
void **extra_info, int flags);
int (*dlinfo) (void *handle, int request, void *arg);
void *(*dlmopen) (Lmid_t nsid, const char *file, int mode, void *dl_caller);
- void *pad[4];
-};
-extern struct dlfcn_hook *_dlfcn_hook;
-libc_hidden_proto (_dlfcn_hook)
+ /* Internal interfaces. */
+ void* (*libc_dlopen_mode) (const char *__name, int __mode);
+ void* (*libc_dlsym) (void *map, const char *name);
+ void* (*libc_dlvsym) (void *map, const char *name, const char *version);
+ int (*libc_dlclose) (void *map);
+};
-/* Note: These prototypes are for initializing _dflcn_hook in static
- libraries. Internal calls in glibc should use the __libc_dl*
- functions defined in elf/dl-libc.c instead. */
+/* Note: These prototypes are for initializing _dlfcn_hook in static
+ builds; see __rtld_static_init. Internal calls in glibc should use
+ the __libc_dl* functions defined in elf/dl-libc.c instead. */
extern void *__dlopen (const char *file, int mode, void *caller);
extern void *__dlmopen (Lmid_t nsid, const char *file, int mode,
@@ -125,16 +131,7 @@ extern int __dladdr (const void *address, Dl_info *info);
extern int __dladdr1 (const void *address, Dl_info *info,
void **extra_info, int flags);
extern int __dlinfo (void *handle, int request, void *arg);
-
-#ifndef SHARED
-struct link_map;
-extern void * __libc_dlsym_private (struct link_map *map, const char *name)
- attribute_hidden;
-extern void __libc_register_dl_open_hook (struct link_map *map)
- attribute_hidden;
-extern void __libc_register_dlfcn_hook (struct link_map *map)
- attribute_hidden;
-#endif
+extern char *__dlerror (void);
#endif
#endif
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index e383aa1dc3..176394de4d 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -687,6 +687,9 @@ struct rtld_global_ro
int (*_dl_discover_osversion) (void);
#endif
+ /* Dynamic linker operations used after static dlopen. */
+ const struct dlfcn_hook *_dl_dlfcn_hook;
+
/* List of auditing interfaces. */
struct audit_ifaces *_dl_audit;
unsigned int _dl_naudit;
--
2.31.1
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH 16/16] dlfcn: Rework static dlopen hooks
2021-05-31 14:12 ` [PATCH 16/16] dlfcn: Rework static dlopen hooks Florian Weimer
@ 2021-06-02 19:18 ` Adhemerval Zanella
0 siblings, 0 replies; 39+ messages in thread
From: Adhemerval Zanella @ 2021-06-02 19:18 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 31/05/2021 11:12, Florian Weimer via Libc-alpha wrote:
> Consolidate all hooks structures into a single one. There are
> no static dlopen ABI concerns because glibc 2.34 already comes
> with substantial ABI-incompatible chagnes in this area. (Static
Typo 'chagnes'.
> dlopen requires the exact same dynamic glibc version that was used
> for static linking.)
>
> The new approach uses a pointer to the hooks structure into
> _rtld_global_ro and initalizes it in __rtld_static_init. This avoids
> a back-and-forth with various callback functions.
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> dlfcn/dladdr.c | 2 +-
> dlfcn/dladdr1.c | 2 +-
> dlfcn/dlclose.c | 2 +-
> dlfcn/dlerror.c | 32 +----------------
> dlfcn/dlinfo.c | 2 +-
> dlfcn/dlmopen.c | 10 ++----
> dlfcn/dlopen.c | 10 ++----
> dlfcn/dlopenold.c | 2 +-
> dlfcn/dlsym.c | 2 +-
> dlfcn/dlvsym.c | 3 +-
> elf/Versions | 1 -
> elf/dl-libc.c | 73 ++++----------------------------------
> elf/rtld_static_init.c | 18 ++++++++++
> include/dlfcn.h | 31 ++++++++--------
> sysdeps/generic/ldsodefs.h | 3 ++
> 15 files changed, 54 insertions(+), 139 deletions(-)
>
> diff --git a/dlfcn/dladdr.c b/dlfcn/dladdr.c
> index 3ef1b7f0b6..1cc305f0c4 100644
> --- a/dlfcn/dladdr.c
> +++ b/dlfcn/dladdr.c
> @@ -25,7 +25,7 @@ __dladdr (const void *address, Dl_info *info)
> {
> #ifdef SHARED
> if (!rtld_active ())
> - return _dlfcn_hook->dladdr (address, info);
> + return GLRO (dl_dlfcn_hook)->dladdr (address, info);
> #endif
> return _dl_addr (address, info, NULL, NULL);
> }
Ok.
> diff --git a/dlfcn/dladdr1.c b/dlfcn/dladdr1.c
> index 203d6398e4..78560dbac2 100644
> --- a/dlfcn/dladdr1.c
> +++ b/dlfcn/dladdr1.c
> @@ -25,7 +25,7 @@ __dladdr1 (const void *address, Dl_info *info, void **extra, int flags)
> {
> #ifdef SHARED
> if (!rtld_active ())
> - return _dlfcn_hook->dladdr1 (address, info, extra, flags);
> + return GLRO (dl_dlfcn_hook)->dladdr1 (address, info, extra, flags);
> #endif
>
> switch (flags)
Ok.
> diff --git a/dlfcn/dlclose.c b/dlfcn/dlclose.c
> index 4d5d307ab1..6a013a81bb 100644
> --- a/dlfcn/dlclose.c
> +++ b/dlfcn/dlclose.c
> @@ -25,7 +25,7 @@ __dlclose (void *handle)
> {
> #ifdef SHARED
> if (!rtld_active ())
> - return _dlfcn_hook->dlclose (handle);
> + return GLRO (dl_dlfcn_hook)->dlclose (handle);
> #endif
>
> return _dlerror_run (GLRO (dl_close), handle) ? -1 : 0;
Ok.
> diff --git a/dlfcn/dlerror.c b/dlfcn/dlerror.c
> index 3df8602f4d..d0194a7cef 100644
> --- a/dlfcn/dlerror.c
> +++ b/dlfcn/dlerror.c
> @@ -33,7 +33,7 @@ __dlerror (void)
> {
> # ifdef SHARED
> if (!rtld_active ())
> - return _dlfcn_hook->dlerror ();
> + return GLRO (dl_dlfcn_hook)->dlerror ();
> # endif
>
> struct dl_action_result *result = __libc_dlerror_result;
> @@ -197,33 +197,3 @@ _dlerror_run (void (*operate) (void *), void *args)
> }
> }
> libc_hidden_def (_dlerror_run)
> -
> -#ifdef SHARED
> -struct dlfcn_hook *_dlfcn_hook __attribute__((nocommon));
> -libc_hidden_data_def (_dlfcn_hook)
> -
> -#else /* !SHARED */
> -
> -static struct dlfcn_hook _dlfcn_hooks =
> - {
> - .dlopen = __dlopen,
> - .dlclose = __dlclose,
> - .dlsym = __dlsym,
> - .dlvsym = __dlvsym,
> - .dlerror = __dlerror,
> - .dladdr = __dladdr,
> - .dladdr1 = __dladdr1,
> - .dlinfo = __dlinfo,
> - .dlmopen = __dlmopen
> - };
> -
> -void
> -__libc_register_dlfcn_hook (struct link_map *map)
> -{
> - struct dlfcn_hook **hook;
> -
> - hook = (struct dlfcn_hook **) __libc_dlsym_private (map, "_dlfcn_hook");
> - if (hook != NULL)
> - *hook = &_dlfcn_hooks;
> -}
> -#endif /* !SHARED */
Ok.
> diff --git a/dlfcn/dlinfo.c b/dlfcn/dlinfo.c
> index 15fcbc5dc1..c6f9a1da09 100644
> --- a/dlfcn/dlinfo.c
> +++ b/dlfcn/dlinfo.c
> @@ -90,7 +90,7 @@ int
> ___dlinfo (void *handle, int request, void *arg)
> {
> if (!rtld_active ())
> - return _dlfcn_hook->dlinfo (handle, request, arg);
> + return GLRO (dl_dlfcn_hook)->dlinfo (handle, request, arg);
> else
> return dlinfo_implementation (handle, request, arg);
> }
Ok.
> diff --git a/dlfcn/dlmopen.c b/dlfcn/dlmopen.c
> index ae42814bbf..c171c8953d 100644
> --- a/dlfcn/dlmopen.c
> +++ b/dlfcn/dlmopen.c
> @@ -81,7 +81,7 @@ void *
> ___dlmopen (Lmid_t nsid, const char *file, int mode)
> {
> if (!rtld_active ())
> - return _dlfcn_hook->dlmopen (nsid, file, mode, RETURN_ADDRESS (0));
> + return GLRO (dl_dlfcn_hook)->dlmopen (nsid, file, mode, RETURN_ADDRESS (0));
> else
> return dlmopen_implementation (nsid, file, mode, RETURN_ADDRESS (0));
> }
> @@ -101,13 +101,7 @@ __dlmopen (Lmid_t nsid, const char *file, int mode, void *dl_caller)
> void *
> ___dlmopen (Lmid_t nsid, const char *file, int mode)
> {
> - struct link_map *l = __dlmopen (nsid, file, mode, RETURN_ADDRESS (0));
> - if (l != NULL)
> - {
> - __libc_register_dl_open_hook (l);
> - __libc_register_dlfcn_hook (l);
> - }
> - return l;
> + return __dlmopen (nsid, file, mode, RETURN_ADDRESS (0));
> }
> weak_alias (___dlmopen, dlmopen)
> static_link_warning (dlmopen)
Ok.
> diff --git a/dlfcn/dlopen.c b/dlfcn/dlopen.c
> index afdc113efb..e04b374b82 100644
> --- a/dlfcn/dlopen.c
> +++ b/dlfcn/dlopen.c
> @@ -76,7 +76,7 @@ void *
> ___dlopen (const char *file, int mode)
> {
> if (!rtld_active ())
> - return _dlfcn_hook->dlopen (file, mode, RETURN_ADDRESS (0));
> + return GLRO (dl_dlfcn_hook)->dlopen (file, mode, RETURN_ADDRESS (0));
> else
> return dlopen_implementation (file, mode, RETURN_ADDRESS (0));
> }
> @@ -96,13 +96,7 @@ __dlopen (const char *file, int mode, void *dl_caller)
> void *
> ___dlopen (const char *file, int mode)
> {
> - struct link_map *l = __dlopen (file, mode, RETURN_ADDRESS (0));
> - if (l != NULL)
> - {
> - __libc_register_dl_open_hook (l);
> - __libc_register_dlfcn_hook (l);
> - }
> - return l;
> + return __dlopen (file, mode, RETURN_ADDRESS (0));
> }
> weak_alias (___dlopen, dlopen)
> static_link_warning (dlopen)
Ok.
> diff --git a/dlfcn/dlopenold.c b/dlfcn/dlopenold.c
> index 0fe5f24cc5..9115501ac1 100644
> --- a/dlfcn/dlopenold.c
> +++ b/dlfcn/dlopenold.c
> @@ -71,7 +71,7 @@ __dlopen_nocheck (const char *file, int mode)
> args.mode = mode;
>
> if (!rtld_active ())
> - return _dlfcn_hook->dlopen (file, mode, RETURN_ADDRESS (0));
> + return GLRO (dl_dlfcn_hook)->dlopen (file, mode, RETURN_ADDRESS (0));
>
> return _dlerror_run (dlopen_doit, &args) ? NULL : args.new;
> }
Ok.
> diff --git a/dlfcn/dlsym.c b/dlfcn/dlsym.c
> index 6b03b7b7ab..43044cf7bb 100644
> --- a/dlfcn/dlsym.c
> +++ b/dlfcn/dlsym.c
> @@ -63,7 +63,7 @@ void *
> ___dlsym (void *handle, const char *name)
> {
> if (!rtld_active ())
> - return _dlfcn_hook->dlsym (handle, name, RETURN_ADDRESS (0));
> + return GLRO (dl_dlfcn_hook)->dlsym (handle, name, RETURN_ADDRESS (0));
> else
> return dlsym_implementation (handle, name, RETURN_ADDRESS (0));
> }
Ok.
> diff --git a/dlfcn/dlvsym.c b/dlfcn/dlvsym.c
> index de6b340647..9b76f9afa5 100644
> --- a/dlfcn/dlvsym.c
> +++ b/dlfcn/dlvsym.c
> @@ -66,7 +66,8 @@ void *
> ___dlvsym (void *handle, const char *name, const char *version)
> {
> if (!rtld_active ())
> - return _dlfcn_hook->dlvsym (handle, name, version, RETURN_ADDRESS (0));
> + return GLRO (dl_dlfcn_hook)->dlvsym (handle, name, version,
> + RETURN_ADDRESS (0));
> else
> return dlvsym_implementation (handle, name, version, RETURN_ADDRESS (0));
> }
Ok.
> diff --git a/elf/Versions b/elf/Versions
> index be88c48e6d..a12d64e8db 100644
> --- a/elf/Versions
> +++ b/elf/Versions
> @@ -23,7 +23,6 @@ libc {
> GLIBC_PRIVATE {
> # functions used in other libraries
> _dl_addr;
> - _dl_open_hook; _dl_open_hook2;
> _dl_sym; _dl_vsym;
> __libc_dlclose; __libc_dlopen_mode; __libc_dlsym; __libc_dlvsym;
> __libc_early_init;
Ok.
> diff --git a/elf/dl-libc.c b/elf/dl-libc.c
> index ed551f6e56..3ac2a0645f 100644
> --- a/elf/dl-libc.c
> +++ b/elf/dl-libc.c
> @@ -126,32 +126,7 @@ do_dlclose (void *ptr)
> GLRO(dl_close) ((struct link_map *) ptr);
> }
>
> -/* This code is to support __libc_dlopen from __libc_dlopen'ed shared
> - libraries. We need to ensure the statically linked __libc_dlopen
> - etc. functions are used instead of the dynamically loaded. */
> -struct dl_open_hook
> -{
> - void *(*dlopen_mode) (const char *name, int mode);
> - void *(*dlsym) (void *map, const char *name);
> - int (*dlclose) (void *map);
> - void *(*dlvsym) (void *map, const char *name, const char *version);
> -};
> -
> -#ifdef SHARED
> -extern struct dl_open_hook *_dl_open_hook;
> -libc_hidden_proto (_dl_open_hook);
> -struct dl_open_hook *_dl_open_hook __attribute__ ((nocommon));
> -libc_hidden_data_def (_dl_open_hook);
> -
> -/* The dlvsym member was added retroactively to struct dl_open_hook.
> - Static applications which have it will set _dl_open_hook2 in
> - addition to _dl_open_hook. */
> -extern struct dl_open_hook *_dl_open_hook2;
> -libc_hidden_proto (_dl_open_hook2);
> -struct dl_open_hook *_dl_open_hook2 __attribute__ ((nocommon));
> -libc_hidden_data_def (_dl_open_hook2);
> -
> -#else
> +#ifndef SHARED
> static void
> do_dlsym_private (void *ptr)
> {
> @@ -169,14 +144,6 @@ do_dlsym_private (void *ptr)
> args->map->l_scope, &vers, 0, 0, NULL);
> args->loadbase = l;
> }
> -
> -static struct dl_open_hook _dl_open_hook =
> - {
> - .dlopen_mode = __libc_dlopen_mode,
> - .dlsym = __libc_dlsym,
> - .dlclose = __libc_dlclose,
> - .dlvsym = __libc_dlvsym,
> - };
> #endif
>
> /* ... and these functions call dlerror_run. */
Ok.
> @@ -191,16 +158,9 @@ __libc_dlopen_mode (const char *name, int mode)
>
> #ifdef SHARED
> if (!rtld_active ())
> - return _dl_open_hook->dlopen_mode (name, mode);
> - return (dlerror_run (do_dlopen, &args) ? NULL : (void *) args.map);
> -#else
> - if (dlerror_run (do_dlopen, &args))
> - return NULL;
> -
> - __libc_register_dl_open_hook (args.map);
> - __libc_register_dlfcn_hook (args.map);
> - return (void *) args.map;
> + return GLRO (dl_dlfcn_hook)->libc_dlopen_mode (name, mode);
> #endif
> + return (dlerror_run (do_dlopen, &args) ? NULL : (void *) args.map);
I think you don not need the extra parentheses here.
> }
> libc_hidden_def (__libc_dlopen_mode)
>
Ok.
> @@ -216,21 +176,6 @@ __libc_dlsym_private (struct link_map *map, const char *name)
> return DL_SYMBOL_ADDRESS (sargs.loadbase, sargs.ref);
> return NULL;
> }
> -
> -void
> -__libc_register_dl_open_hook (struct link_map *map)
> -{
> - struct dl_open_hook **hook;
> -
> - hook = (struct dl_open_hook **) __libc_dlsym_private (map, "_dl_open_hook");
> - if (hook != NULL)
> - *hook = &_dl_open_hook;
> -
> - /* For dlvsym support. */
> - hook = (struct dl_open_hook **) __libc_dlsym_private (map, "_dl_open_hook2");
> - if (hook != NULL)
> - *hook = &_dl_open_hook;
> -}
> #endif
>
> void *
Ok.
> @@ -242,7 +187,7 @@ __libc_dlsym (void *map, const char *name)
>
> #ifdef SHARED
> if (!rtld_active ())
> - return _dl_open_hook->dlsym (map, name);
> + return GLRO (dl_dlfcn_hook)->libc_dlsym (map, name);
> #endif
> return (dlerror_run (do_dlsym, &args) ? NULL
> : (void *) (DL_SYMBOL_ADDRESS (args.loadbase, args.ref)));
> @@ -257,13 +202,7 @@ __libc_dlvsym (void *map, const char *name, const char *version)
> {
> #ifdef SHARED
> if (!rtld_active ())
> - {
> - /* The static application is too old and does not provide the
> - dlvsym hook. */
> - if (_dl_open_hook2 == NULL)
> - return NULL;
> - return _dl_open_hook2->dlvsym (map, name, version);
> - }
> + return GLRO (dl_dlfcn_hook)->libc_dlvsym (map, name, version);
> #endif
>
> struct do_dlvsym_args args;
Ok.
> @@ -287,7 +226,7 @@ __libc_dlclose (void *map)
> {
> #ifdef SHARED
> if (!rtld_active ())
> - return _dl_open_hook->dlclose (map);
> + return GLRO (dl_dlfcn_hook)->libc_dlclose (map);
> #endif
> return dlerror_run (do_dlclose, map);
> }
Ok.
> diff --git a/elf/rtld_static_init.c b/elf/rtld_static_init.c
> index 42efecfbff..3f8abb6800 100644
> --- a/elf/rtld_static_init.c
> +++ b/elf/rtld_static_init.c
> @@ -25,6 +25,23 @@
>
> #include <rtld_static_init.h>
>
> +static const struct dlfcn_hook _dlfcn_hook =
> + {
> + .dlopen = __dlopen,
> + .dlclose = __dlclose,
> + .dlsym = __dlsym,
> + .dlvsym = __dlvsym,
> + .dlerror = __dlerror,
> + .dladdr = __dladdr,
> + .dladdr1 = __dladdr1,
> + .dlinfo = __dlinfo,
> + .dlmopen = __dlmopen,
> + .libc_dlopen_mode = __libc_dlopen_mode,
> + .libc_dlsym = __libc_dlsym,
> + .libc_dlvsym = __libc_dlvsym,
> + .libc_dlclose = __libc_dlclose,
> + };
> +
> void
> __rtld_static_init (struct link_map *map)
> {
> @@ -45,6 +62,7 @@ __rtld_static_init (struct link_map *map)
> extern __typeof (dl->_dl_clktck) _dl_clktck attribute_hidden;
> dl->_dl_clktck = _dl_clktck;
> #endif
> + dl->_dl_dlfcn_hook = &_dlfcn_hook;
> extern __typeof (dl->_dl_hwcap) _dl_hwcap attribute_hidden;
> dl->_dl_hwcap = _dl_hwcap;
> extern __typeof (dl->_dl_hwcap2) _dl_hwcap2 attribute_hidden;
Ok.
> diff --git a/include/dlfcn.h b/include/dlfcn.h
> index 711bbb0f12..d4440c567e 100644
> --- a/include/dlfcn.h
> +++ b/include/dlfcn.h
> @@ -91,8 +91,12 @@ libc_hidden_proto (_dl_vsym)
> extern int _dlerror_run (void (*operate) (void *), void *args);
> libc_hidden_proto (_dlerror_run)
>
> +/* This structure is used to make the outer (statically linked)
> + implementation of dlopen and related functions to the inner libc
> + after static dlopen, via the GLRO (dl_dlfcn_hook) pointer. */
> struct dlfcn_hook
> {
> + /* Public interfaces. */
> void *(*dlopen) (const char *file, int mode, void *dl_caller);
> int (*dlclose) (void *handle);
> void *(*dlsym) (void *handle, const char *name, void *dl_caller);
> @@ -104,15 +108,17 @@ struct dlfcn_hook
> void **extra_info, int flags);
> int (*dlinfo) (void *handle, int request, void *arg);
> void *(*dlmopen) (Lmid_t nsid, const char *file, int mode, void *dl_caller);
> - void *pad[4];
> -};
>
> -extern struct dlfcn_hook *_dlfcn_hook;
> -libc_hidden_proto (_dlfcn_hook)
> + /* Internal interfaces. */
> + void* (*libc_dlopen_mode) (const char *__name, int __mode);
> + void* (*libc_dlsym) (void *map, const char *name);
> + void* (*libc_dlvsym) (void *map, const char *name, const char *version);
> + int (*libc_dlclose) (void *map);
> +};
Ok.
>
> -/* Note: These prototypes are for initializing _dflcn_hook in static
> - libraries. Internal calls in glibc should use the __libc_dl*
> - functions defined in elf/dl-libc.c instead. */
> +/* Note: These prototypes are for initializing _dlfcn_hook in static
> + builds; see __rtld_static_init. Internal calls in glibc should use
> + the __libc_dl* functions defined in elf/dl-libc.c instead. */
>
> extern void *__dlopen (const char *file, int mode, void *caller);
> extern void *__dlmopen (Lmid_t nsid, const char *file, int mode,
> @@ -125,16 +131,7 @@ extern int __dladdr (const void *address, Dl_info *info);
> extern int __dladdr1 (const void *address, Dl_info *info,
> void **extra_info, int flags);
> extern int __dlinfo (void *handle, int request, void *arg);
> -
> -#ifndef SHARED
> -struct link_map;
> -extern void * __libc_dlsym_private (struct link_map *map, const char *name)
> - attribute_hidden;
> -extern void __libc_register_dl_open_hook (struct link_map *map)
> - attribute_hidden;
> -extern void __libc_register_dlfcn_hook (struct link_map *map)
> - attribute_hidden;
> -#endif
> +extern char *__dlerror (void);
>
> #endif
> #endif
Ok.
> diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
> index e383aa1dc3..176394de4d 100644
> --- a/sysdeps/generic/ldsodefs.h
> +++ b/sysdeps/generic/ldsodefs.h
> @@ -687,6 +687,9 @@ struct rtld_global_ro
> int (*_dl_discover_osversion) (void);
> #endif
>
> + /* Dynamic linker operations used after static dlopen. */
> + const struct dlfcn_hook *_dl_dlfcn_hook;
> +
> /* List of auditing interfaces. */
> struct audit_ifaces *_dl_audit;
> unsigned int _dl_naudit;
>
Ok.
^ permalink raw reply [flat|nested] 39+ messages in thread