summaryrefslogtreecommitdiff
path: root/elf
diff options
context:
space:
mode:
Diffstat (limited to 'elf')
-rw-r--r--elf/Makefile11
-rw-r--r--elf/dl-open.c2
-rw-r--r--elf/tst-leaks1-static.c1
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"