summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2006-09-05 02:02:55 +0000
committerUlrich Drepper <drepper@redhat.com>2006-09-05 02:02:55 +0000
commit71213dc2589554dc8f8061e9b04e80c55d098b6a (patch)
tree9e513edb4f70a4b9f59fc5daee81a85068bff27c
parent03eeff83892d66bd06f85eab3172ab4679273f6e (diff)
* Makerules (shlib.lds): If have-hash-style, put .hash sectioncvs/fedora-glibc-20060905T0633
at the end of the RO segment. 2006-09-04 Ulrich Drepper <drepper@redhat.com> * elf/do-lookup.h (do_lookup_x): Initialize symidx in case the new style hash table format is used. 2006-09-04 Jakub Jelinek <jakub@redhat.com>
-rw-r--r--ChangeLog10
-rw-r--r--Makerules8
-rw-r--r--elf/do-lookup.h2
3 files changed, 19 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 644f5ce837..0852a3cf5a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
2006-09-04 Jakub Jelinek <jakub@redhat.com>
+ * Makerules (shlib.lds): If have-hash-style, put .hash section
+ at the end of the RO segment.
+
+2006-09-04 Ulrich Drepper <drepper@redhat.com>
+
+ * elf/do-lookup.h (do_lookup_x): Initialize symidx in case the new
+ style hash table format is used.
+
+2006-09-04 Jakub Jelinek <jakub@redhat.com>
+
* resolv/res_mkquery.c (res_nmkquery): Set hp->id to statp->id after
randomization rather than before.
* resolv/res_init.c (res_randomid): Don't call gettimeofday here.
diff --git a/Makerules b/Makerules
index f50f7a4884..b0be86b368 100644
--- a/Makerules
+++ b/Makerules
@@ -487,7 +487,13 @@ $(common-objpfx)shlib.lds: $(common-objpfx)config.make $(..)Makerules
-Wl,--verbose 2>&1 | \
sed > $@T \
-e '/^=========/,/^=========/!d;/^=========/d' \
- -e 's/^.*\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \
+ $(if $(filter yes,$(have-hash-style)), \
+ -e 's/^.*\.gnu\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \
+ -e '/^[ ]*\.hash[ ]*:.*$$/{h;d;}' \
+ -e '/DATA_SEGMENT_ALIGN/{H;g}' \
+ , \
+ -e 's/^.*\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \
+ ) \
-e 's/^.*\*(\.dynbss).*$$/& \
PROVIDE(__start___libc_freeres_ptrs = .); \
*(__libc_freeres_ptrs) \
diff --git a/elf/do-lookup.h b/elf/do-lookup.h
index f40ab9d8d4..2585d83005 100644
--- a/elf/do-lookup.h
+++ b/elf/do-lookup.h
@@ -195,6 +195,8 @@ do_lookup_x (const char *undef_name, uint_fast32_t new_hash,
while ((*hasharr++ & 1u) == 0);
}
}
+ /* No symbol found. */
+ symidx = SHN_UNDEF;
}
else
{