From: Marek Polacek Date: Wed, 29 Feb 2012 14:28:38 +0000 (+0100) Subject: Always set l_used for vDSO. X-Git-Tag: glibc-2.16-tps~914 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1f393a11f65dcaa1952bdcaf0317a65a5f8aff9d;p=thirdparty%2Fglibc.git Always set l_used for vDSO. --- diff --git a/ChangeLog b/ChangeLog index 6bc32be30ac..069bbc3e0f0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2012-02-29 Marek Polacek + + [BZ #13706] + * elf/rtld.c (dl_main): Always set l_used to 1 for vDSO. + * elf/Makefile: Add rules to run tst-unused-dep.out. + 2012-02-28 David S. Miller * sysdeps/sparc/sparc32/fpu/w_sqrt.S: New file. diff --git a/NEWS b/NEWS index d68ae66d818..06e7242e512 100644 --- a/NEWS +++ b/NEWS @@ -13,7 +13,7 @@ Version 2.16 5993, 6884, 6907, 9739, 9902, 10110, 10140, 10210, 11174, 11322, 11365, 11494, 12047, 13058, 13525, 13526, 13527, 13528, 13529, 13530, 13531, 13532, 13533, 13547, 13551, 13552, 13553, 13555, 13559, 13583, 13618, - 13637, 13695, 13704, 13738 + 13637, 13695, 13704, 13706, 13738 * ISO C11 support: diff --git a/elf/Makefile b/elf/Makefile index 8234ba7a514..25ffc5765bd 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -1203,3 +1203,14 @@ $(objpfx)tst-relsort1mod1.so: $(libm) $(objpfx)tst-relsort1mod2.so $(objpfx)tst-relsort1mod2.so: $(libm) $(objpfx)tst-relsort1.out: $(objpfx)tst-relsort1mod1.so \ $(objpfx)tst-relsort1mod2.so + +tests: $(objpfx)tst-unused-dep.out + +$(objpfx)tst-unused-dep.out: $(objpfx)testobj1.so + LD_TRACE_LOADED_OBJECTS=1 \ + LD_DEBUG=unused \ + LD_PRELOAD= \ + $(elf-objpfx)${rtld-installed-name} \ + --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \ + $< > $@ + cmp $@ /dev/null > /dev/null diff --git a/elf/rtld.c b/elf/rtld.c index 2e4f97ffed5..3e15447f7a5 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -1,5 +1,5 @@ /* Run time dynamic linker. - Copyright (C) 1995-2010, 2011 Free Software Foundation, Inc. + Copyright (C) 1995-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -1375,6 +1375,9 @@ of this helper program; chances are you did not intend to run this program.\n\ _dl_setup_hash (l); l->l_relocated = 1; + /* The vDSO is always used. */ + l->l_used = 1; + /* Initialize l_local_scope to contain just this map. This allows the use of dl_lookup_symbol_x to resolve symbols within the vdso. So we create a single entry list pointing to l_real as its only