aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2012-10-20 16:16:59 -0700
committerH.J. Lu <hjl.tools@gmail.com>2012-10-20 16:16:59 -0700
commitf2eed205244da988934624b02f52a9acdcef568e (patch)
tree2cc3ac2f4993c4bd6d383ed8a4e822e78ec634a5
parent335e6931e2b77627f4bc2eb007c5e15e8dbdeb98 (diff)
downloadglibc-f2eed205244da988934624b02f52a9acdcef568e.zip
glibc-f2eed205244da988934624b02f52a9acdcef568e.tar.gz
glibc-f2eed205244da988934624b02f52a9acdcef568e.tar.bz2
Check the main application only if SHARED is defined
-rw-r--r--ChangeLog12
-rw-r--r--NEWS2
-rw-r--r--elf/Makefile11
-rw-r--r--elf/dl-open.c2
-rw-r--r--elf/tst-leaks1-static.c1
5 files changed, 25 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 07e9602..b3d3c14 100644
--- 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
--- 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
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"