diff options
author | Waldemar Brodkorb <wbx@uclibc-ng.org> | 2018-04-14 18:32:18 +0100 |
---|---|---|
committer | Waldemar Brodkorb <wbx@uclibc-ng.org> | 2018-04-17 18:15:58 +0100 |
commit | 0c8cc6e7ebfcdbcce8b06d284a74addbc7ba1c99 (patch) | |
tree | 59903a017f0e82ecafdcb026341bb62579dbb780 | |
parent | 07dfe7c86bd61382098b2ef74afe49ab6ac598c3 (diff) |
libdl: remove LDSO_NO_CLEANUP
-rw-r--r-- | extra/Configs/Config.in | 11 | ||||
-rw-r--r-- | ldso/libdl/Makefile.in | 4 | ||||
-rw-r--r-- | ldso/libdl/libdl.c | 13 |
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) { |