summaryrefslogtreecommitdiff
path: root/ldso/libdl/libdl.c
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2011-07-09 14:06:52 +0200
committerCarmelo Amoroso <carmelo.amoroso@st.com>2011-07-25 09:09:03 +0200
commit3d5cec4ff704c2dec151f3cdbcc426d746d37fcc (patch)
tree81210e286c1fb3a86f7c4dcbc9d9e29319c39903 /ldso/libdl/libdl.c
parent63e61626c1e052c55d76861b771eda6602a14477 (diff)
libdl: add option for controlling dl_cleanup
When debugging memory leaks with Valgrind, it is required that dynamically loaded shared objects are not unloaded when a process exits, otherwise symbols from those files aren't correctly resolved in allocation traces. This patch adds the LDSO_NO_CLEANUP configuration option to control this behaviour. Signed-off-by: Richard Braun <rbraun@sceen.net> Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
Diffstat (limited to 'ldso/libdl/libdl.c')
-rw-r--r--ldso/libdl/libdl.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/ldso/libdl/libdl.c b/ldso/libdl/libdl.c
index 4ecd1c55e..2c8dfbb79 100644
--- a/ldso/libdl/libdl.c
+++ b/ldso/libdl/libdl.c
@@ -260,6 +260,7 @@ remove_slotinfo(size_t idx, struct dtv_slotinfo_list *listp, size_t disp,
}
#endif
+#ifndef __LDSO_NO_CLEANUP__
void dl_cleanup(void) __attribute__ ((destructor));
void dl_cleanup(void)
{
@@ -270,6 +271,7 @@ void dl_cleanup(void)
do_dlclose(h, 1);
}
}
+#endif
static ptrdiff_t _dl_build_local_scope (struct elf_resolve **list,
struct elf_resolve *map)