elf: Make more functions available for binding during dlclose (bug 30425)
commitd0f07f7df8d9758c838674b70144ac73bcbd1634
authorFlorian Weimer <fweimer@redhat.com>
Tue, 30 May 2023 11:25:50 +0000 (30 13:25 +0200)
committerFlorian Weimer <fweimer@redhat.com>
Tue, 30 May 2023 11:25:50 +0000 (30 13:25 +0200)
treebf73fe79a9c8491aa6646a5b194c57e20b6a0871
parent3eed5f3a1ee356969afb403a1cf18d06f8d2d98a
elf: Make more functions available for binding during dlclose (bug 30425)

Previously, after destructors for a DSO have been invoked, ld.so refused
to bind against that DSO in all cases.  Relax this restriction somewhat
if the referencing object is itself a DSO that is being unloaded.  This
assumes that the symbol reference is not going to be stored anywhere.

The situation in the test case can arise fairly easily with C++ and
objects that are built with different optimization levels and therefore
define different functions with vague linkage.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
elf/Makefile
elf/dl-lookup.c
elf/tst-dlclose-lazy-mod1.c [new file with mode: 0644]
elf/tst-dlclose-lazy-mod2.c [new file with mode: 0644]
elf/tst-dlclose-lazy.c [new file with mode: 0644]