glibc/dlfcn
Florian Weimer 5d28a8962d elf: Add _dl_find_object function
It can be used to speed up the libgcc unwinder, and the internal
_dl_find_dso_for_object function (which is used for caller
identification in dlopen and related functions, and in dladdr).

_dl_find_object is in the internal namespace due to bug 28503.
If libgcc switches to _dl_find_object, this namespace issue will
be fixed.  It is located in libc for two reasons: it is necessary
to forward the call to the static libc after static dlopen, and
there is a link ordering issue with -static-libgcc and libgcc_eh.a
because libc.so is not a linker script that includes ld.so in the
glibc build tree (so that GCC's internal -lc after libgcc_eh.a does
not pick up ld.so).

It is necessary to do the i386 customization in the
sysdeps/x86/bits/dl_find_object.h header shared with x86-64 because
otherwise, multilib installations are broken.

The implementation uses software transactional memory, as suggested
by Torvald Riegel.  Two copies of the supporting data structures are
used, also achieving full async-signal-safety.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
2021-12-28 22:52:56 +01:00
..
bug-atexit1-lib.c [BZ #1158] 2005-09-28 00:14:50 +00:00
bug-atexit1.c Prefer https for Sourceware links 2017-11-16 11:49:26 +05:30
bug-atexit2-lib.c [BZ #1158] 2005-09-28 00:14:50 +00:00
bug-atexit2.c Prefer https for Sourceware links 2017-11-16 11:49:26 +05:30
bug-atexit3-lib.cc support: Introduce new subdirectory for test infrastructure 2016-12-09 08:18:27 +01:00
bug-atexit3.c * dlfcn/Makefile: Add rules to build and run bug-atexit3. 2006-07-27 01:31:43 +00:00
bug-dl-leaf-lib-cb.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
bug-dl-leaf-lib.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
bug-dl-leaf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
bug-dlopen1.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
bug-dlsym1-lib1.c
bug-dlsym1-lib2.c
bug-dlsym1.c
default.c Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
defaultmod1.c
defaultmod2.c
dladdr1.c dlfcn: Rework static dlopen hooks 2021-06-03 09:12:05 +02:00
dladdr.c dlfcn: Rework static dlopen hooks 2021-06-03 09:12:05 +02:00
dlclose.c dlfcn: Rework static dlopen hooks 2021-06-03 09:12:05 +02:00
dlerror.c elf: Clean up GLIBC_PRIVATE exports of internal libdl symbols 2021-07-07 08:41:24 +02:00
dlerror.h dlfcn: dlerror needs to call free from the base namespace [BZ #24773] 2021-04-21 19:49:51 +02:00
dlfcn.h elf: Add _dl_find_object function 2021-12-28 22:52:56 +01:00
dlinfo.c dlfcn: Rework static dlopen hooks 2021-06-03 09:12:05 +02:00
dlmopen.c dlfcn: Rework static dlopen hooks 2021-06-03 09:12:05 +02:00
dlopen.c dlfcn: Rework static dlopen hooks 2021-06-03 09:12:05 +02:00
dlopenold.c dlfcn: Rework static dlopen hooks 2021-06-03 09:12:05 +02:00
dlsym.c dlfcn: Rework static dlopen hooks 2021-06-03 09:12:05 +02:00
dlvsym.c dlfcn: Rework static dlopen hooks 2021-06-03 09:12:05 +02:00
errmsg1.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
errmsg1mod.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
failtest.c
failtestmod.c Fix dlfcn/failtestmod.c warning. 2014-11-27 16:00:08 +00:00
glreflib1.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
glreflib2.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
glreflib3.c [BZ #4775, BZ #4776] 2007-07-12 18:17:11 +00:00
glrefmain.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
libc_dlerror_result.c dlfcn: dlerror needs to call free from the base namespace [BZ #24773] 2021-04-21 19:49:51 +02:00
libdl-compat.c dlfcn: Cleanups after -ldl is no longer required 2021-06-03 09:11:45 +02:00
Makefile elf: Add _dl_find_object function 2021-12-28 22:52:56 +01:00
modatexit.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
modcxaatexit.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
moddummy1.c Fix recursive dlopen. 2015-01-21 01:51:10 -05:00
moddummy2.c Fix recursive dlopen. 2015-01-21 01:51:10 -05:00
modstatic2.c dlfcn: Eliminate GLIBC_PRIVATE dependency from tststatic2 2021-06-03 09:12:05 +02:00
modstatic3.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
modstatic5.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
modstatic.c
sdlfreeres.c libc: Extend __libc_freeres framework (Bug 23329). 2018-06-29 22:39:06 -04:00
tst-dladdr.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
tst-dlinfo.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-rec-dlopen.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tstatexit.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tstcxaatexit.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tststatic2.c dlfcn: Eliminate GLIBC_PRIVATE dependency from tststatic2 2021-06-03 09:12:05 +02:00
tststatic3.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tststatic4.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tststatic5.c elf: Partially initialize ld.so after static dlopen (bug 20802) 2021-05-17 10:06:57 +02:00
tststatic.c Convert dlfcn/tststatic to use test-skeleton. 2015-03-27 12:55:25 -07:00
Versions dlfcn: Move dlopen into libc 2021-06-03 08:26:04 +02:00