diff options
Diffstat (limited to 'elf')
-rw-r--r-- | elf/Makefile | 11 | ||||
-rw-r--r-- | elf/dl-open.c | 2 | ||||
-rw-r--r-- | elf/tst-leaks1-static.c | 1 |
3 files changed, 12 insertions, 2 deletions
diff --git a/elf/Makefile b/elf/Makefile index e91c3b428d..dde94091c7 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 5149e578b1..9c39a34a4b 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 0000000000..b956d66905 --- /dev/null +++ b/elf/tst-leaks1-static.c @@ -0,0 +1 @@ +#include "tst-leaks1.c" |