glibc/dlfcn
Florian Weimer 78b31cc834 elf: Partially initialize ld.so after static dlopen (bug 20802)
After static dlopen, a copy of ld.so is loaded into the inner
namespace, but that copy is not initialized at all.  Some
architectures run into serious problems as result, which is why the
_dl_var_init mechanism was invented.  With libpthread moving into
libc and parts into ld.so, more architectures impacted, so it makes
sense to switch to a generic mechanism which performs the partial
initialization.

As a result, getauxval now works after static dlopen (bug 20802).

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
2021-05-17 10:06:57 +02:00
..
Makefile
Versions
bug-atexit1-lib.c
bug-atexit1.c
bug-atexit2-lib.c
bug-atexit2.c
bug-atexit3-lib.cc
bug-atexit3.c
bug-dl-leaf-lib-cb.c
bug-dl-leaf-lib.c
bug-dl-leaf.c
bug-dlopen1.c
bug-dlsym1-lib1.c
bug-dlsym1-lib2.c
bug-dlsym1.c
default.c
defaultmod1.c
defaultmod2.c
dladdr.c
dladdr1.c
dlclose.c
dlerror.c
dlerror.h
dlfcn.c
dlfcn.h
dlinfo.c
dlmopen.c
dlopen.c
dlopenold.c
dlsym.c
dlvsym.c
errmsg1.c
errmsg1mod.c
failtest.c
failtestmod.c
glreflib1.c
glreflib2.c
glreflib3.c
glrefmain.c
libc_dlerror_result.c
modatexit.c
modcxaatexit.c
moddummy1.c
moddummy2.c
modstatic.c
modstatic2.c
modstatic3.c
modstatic5.c
sdladdr.c
sdladdr1.c
sdlclose.c
sdlerror.c
sdlfreeres.c
sdlinfo.c
sdlmopen.c
sdlopen.c
sdlsym.c
sdlvsym.c
tst-dladdr.c
tst-dlinfo.c
tst-rec-dlopen.c
tstatexit.c
tstcxaatexit.c
tststatic.c
tststatic2.c
tststatic3.c
tststatic4.c
tststatic5.c elf: Partially initialize ld.so after static dlopen (bug 20802) 2021-05-17 10:06:57 +02:00