diff options
author | Marek Polacek <polacek@redhat.com> | 2012-02-29 15:28:38 +0100 |
---|---|---|
committer | Marek Polacek <polacek@redhat.com> | 2012-02-29 15:28:38 +0100 |
commit | 1f393a11f65dcaa1952bdcaf0317a65a5f8aff9d (patch) | |
tree | 67b875bd55f952e59411163c3fb47706b97d2b76 /elf | |
parent | 8847f0377003fbfe9cbe951ce9f8717d74f26247 (diff) | |
download | glibc-1f393a11f65dcaa1952bdcaf0317a65a5f8aff9d.tar.gz |
Always set l_used for vDSO.
Diffstat (limited to 'elf')
-rw-r--r-- | elf/Makefile | 11 | ||||
-rw-r--r-- | elf/rtld.c | 5 |
2 files changed, 15 insertions, 1 deletions
diff --git a/elf/Makefile b/elf/Makefile index 8234ba7a51..25ffc5765b 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 2e4f97ffed..3e15447f7a 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 |