* Makerules (shlib.lds): If have-hash-style, put .hash section cvs/fedora-glibc-20060905T0633
authorUlrich Drepper <drepper@redhat.com>
Tue, 5 Sep 2006 02:02:55 +0000 (02:02 +0000)
committerUlrich Drepper <drepper@redhat.com>
Tue, 5 Sep 2006 02:02:55 +0000 (02:02 +0000)
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>

ChangeLog
Makerules
elf/do-lookup.h

index 644f5ce..0852a3c 100644 (file)
--- 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.
index f50f7a4..b0be86b 100644 (file)
--- 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) \
index f40ab9d..2585d83 100644 (file)
@@ -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
        {