Check the main application only if SHARED is defined
authorH.J. Lu <hjl.tools@gmail.com>
Sat, 20 Oct 2012 23:16:59 +0000 (16:16 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Sat, 20 Oct 2012 23:16:59 +0000 (16:16 -0700)
ChangeLog
NEWS
elf/Makefile
elf/dl-open.c
elf/tst-leaks1-static.c [new file with mode: 0644]

index 07e9602..b3d3c14 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2012-10-20  H.J. Lu  <hongjiu.lu@intel.com>
+
+       [BZ #14683]
+       * elf/Makefile (tests-static): Add tst-leaks1-static.
+       (tests): Also depend on $(objpfx)tst-leaks1-static-mem.
+       ($(objpfx)tst-leaks1-static): New rule.
+       ($(objpfx)tst-leaks1-static-mem): Likewise.
+       (tst-leaks1-static-ENV): New macro.
+       * elf/dl-open.c (dl_open_worker): Check the main application
+       only if SHARED is defined.
+       * elf/tst-leaks1-static.c: New file.
+
 2012-10-20  Andreas Jaeger  <aj@suse.de>
 
        * sysdeps/unix/sysv/linux/bits/fcntl-linux.h: New file, contains
diff --git a/NEWS b/NEWS
index fd3f6e5..0e10112 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -16,7 +16,7 @@ Version 2.17
   14328, 14331, 14336, 14337, 14347, 14349, 14376, 14417, 14459, 14476,
   14477, 14505, 14510, 14516, 14518, 14519, 14530, 14532, 14538, 14543,
   14544, 14545, 14557, 14562, 14568, 14576, 14579, 14583, 14587, 14602,
-  14621, 14638, 14645, 14648, 14652, 14660, 14661, 14694, 14716.
+  14621, 14638, 14645, 14648, 14652, 14660, 14661, 14683, 14694, 14716.
 
 * Support for STT_GNU_IFUNC symbols added for s390 and s390x.
   Optimized versions of memcpy, memset, and memcmp added for System z10 and
index e91c3b4..dde9409 100644 (file)
@@ -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)
 
index 5149e57..9c39a34 100644 (file)
@@ -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 (file)
index 0000000..b956d66
--- /dev/null
@@ -0,0 +1 @@
+#include "tst-leaks1.c"