summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@uclibc-ng.org>2018-04-14 18:32:18 +0100
committerWaldemar Brodkorb <wbx@uclibc-ng.org>2018-04-17 18:15:58 +0100
commit0c8cc6e7ebfcdbcce8b06d284a74addbc7ba1c99 (patch)
tree59903a017f0e82ecafdcb026341bb62579dbb780
parent07dfe7c86bd61382098b2ef74afe49ab6ac598c3 (diff)
libdl: remove LDSO_NO_CLEANUP
-rw-r--r--extra/Configs/Config.in11
-rw-r--r--ldso/libdl/Makefile.in4
-rw-r--r--ldso/libdl/libdl.c13
3 files changed, 0 insertions, 28 deletions
diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in
index fcaa1a7fa..74439038f 100644
--- a/extra/Configs/Config.in
+++ b/extra/Configs/Config.in
@@ -470,17 +470,6 @@ config LDSO_LD_LIBRARY_PATH
If unsure, simply say Y here.
-config LDSO_NO_CLEANUP
- bool "Disable automatic unloading of dynamically loaded shared objects"
- depends on HAVE_SHARED
- help
- If you need complete allocation traces when debugging memory leaks
- using Valgrind in a process that dynamically loads shared objects,
- then answer Y here. Unlike glibc, uClibc unloads all dynamically
- loaded shared objects when a process exits, which prevents Valgrind
- from correctly resolving the symbols from the unloaded shared objects.
- Unless you know you need this, you should answer N.
-
config UCLIBC_CTOR_DTOR
bool
default y
diff --git a/ldso/libdl/Makefile.in b/ldso/libdl/Makefile.in
index 3fd8a6cd1..3111e26be 100644
--- a/ldso/libdl/Makefile.in
+++ b/ldso/libdl/Makefile.in
@@ -20,10 +20,6 @@ CFLAGS-libdl.c := -DLDSO_ELFINTERP=\"$(TARGET_ARCH)/elfinterp.c\"
LDFLAGS-$(UCLIBC_FORMAT_DSBT_ELF)-libdl.so := -Wl,--dsbt-index=3
LDFLAGS-libdl.so := $(LDFLAGS)
-ifeq ($(LDSO_NO_CLEANUP),)
-LDFLAGS-libdl.so += -Wl,-fini,$(SYMBOL_PREFIX)dl_cleanup
-endif
-
LIBS-libdl.so := $(LIBS) $(ldso)
libdl_DIR := $(top_srcdir)ldso/libdl
diff --git a/ldso/libdl/libdl.c b/ldso/libdl/libdl.c
index d102a48ab..5c52f0687 100644
--- a/ldso/libdl/libdl.c
+++ b/ldso/libdl/libdl.c
@@ -270,19 +270,6 @@ remove_slotinfo(size_t idx, struct dtv_slotinfo_list *listp, size_t disp,
}
#endif
-#ifndef __LDSO_NO_CLEANUP__
-void dl_cleanup(void) attribute_hidden __attribute__ ((destructor));
-void dl_cleanup(void)
-{
- struct dyn_elf *h, *n;
-
- for (h = _dl_handles; h; h = n) {
- n = h->next_handle;
- do_dlclose(h, 1);
- }
-}
-#endif
-
static ptrdiff_t _dl_build_local_scope (struct elf_resolve **list,
struct elf_resolve *map)
{