From f2eed205244da988934624b02f52a9acdcef568e Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sat, 20 Oct 2012 16:16:59 -0700 Subject: Check the main application only if SHARED is defined --- elf/Makefile | 11 +++++++++-- elf/dl-open.c | 2 ++ elf/tst-leaks1-static.c | 1 + 3 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 elf/tst-leaks1-static.c (limited to 'elf') diff --git a/elf/Makefile b/elf/Makefile index e91c3b4..dde9409 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -119,7 +119,8 @@ tests = tst-tls1 tst-tls2 tst-tls9 tst-leaks1 ifeq (yes,$(have-initfini-array)) tests += tst-array1 tst-array2 tst-array3 tst-array4 tst-array5 endif -tests-static = tst-tls1-static tst-tls2-static tst-stackguard1-static +tests-static = tst-tls1-static tst-tls2-static tst-stackguard1-static \ + tst-leaks1-static ifeq (yes,$(build-shared)) tests-static += tst-tls9-static tst-tls9-static-ENV = \ @@ -161,7 +162,8 @@ endif endif endif ifeq ($(cross-compiling),no) -tests: $(objpfx)tst-leaks1-mem $(objpfx)noload-mem +tests: $(objpfx)tst-leaks1-mem $(objpfx)tst-leaks1-static-mem \ + $(objpfx)noload-mem endif tlsmod17a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 tlsmod18a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 @@ -1051,7 +1053,12 @@ $(objpfx)tst-leaks1: $(libdl) $(objpfx)tst-leaks1-mem: $(objpfx)tst-leaks1.out $(common-objpfx)malloc/mtrace $(objpfx)tst-leaks1.mtrace > $@ +$(objpfx)tst-leaks1-static: $(common-objpfx)dlfcn/libdl.a +$(objpfx)tst-leaks1-static-mem: $(objpfx)tst-leaks1-static.out + $(common-objpfx)malloc/mtrace $(objpfx)tst-leaks1-static.mtrace > $@ + tst-leaks1-ENV = MALLOC_TRACE=$(objpfx)tst-leaks1.mtrace +tst-leaks1-static-ENV = MALLOC_TRACE=$(objpfx)tst-leaks1-static.mtrace $(objpfx)tst-addr1: $(libdl) diff --git a/elf/dl-open.c b/elf/dl-open.c index 5149e57..9c39a34 100644 --- a/elf/dl-open.c +++ b/elf/dl-open.c @@ -189,9 +189,11 @@ dl_open_worker (void *a) { const void *caller_dlopen = args->caller_dlopen; +#ifdef SHARED /* We have to find out from which object the caller is calling. By default we assume this is the main application. */ call_map = GL(dl_ns)[LM_ID_BASE]._ns_loaded; +#endif struct link_map *l; for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns) diff --git a/elf/tst-leaks1-static.c b/elf/tst-leaks1-static.c new file mode 100644 index 0000000..b956d66 --- /dev/null +++ b/elf/tst-leaks1-static.c @@ -0,0 +1 @@ +#include "tst-leaks1.c" -- cgit v1.1