diff --git a/ChangeLog b/ChangeLog index 07e9602470..b3d3c1458e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2012-10-20 H.J. Lu + + [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 * sysdeps/unix/sysv/linux/bits/fcntl-linux.h: New file, contains diff --git a/NEWS b/NEWS index fd3f6e52da..0e10112a35 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 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"