[08/16] dlfcn: Move dlsym into libc

Message ID 77264ca540a7972cdd639f610ea1dd0a81b8b8ec.1622469908.git.fweimer@redhat.com
State New
Headers show
Series
  • Move libdl into libc
Related show

Commit Message

Carlos O'Donell via Libc-alpha May 31, 2021, 2:11 p.m.
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

-- 
2.31.1

Comments

Carlos O'Donell via Libc-alpha June 2, 2021, 2:12 p.m. | #1
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.

Patch

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