about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2006-09-05 06:47:43 +0000
committerJakub Jelinek <jakub@redhat.com>2006-09-05 06:47:43 +0000
commitfcaea48fef6d82c56461654248e97d0816431d2e (patch)
treec57e973a9eae75380ec45186a474b5b8cc590c70
parent4c7854d1dce24e8cc344f1da81fca01ee7f01804 (diff)
downloadglibc-cvs/fedora-glibc-2_4_90-29.tar.gz
glibc-cvs/fedora-glibc-2_4_90-29.tar.xz
glibc-cvs/fedora-glibc-2_4_90-29.zip
Updated to fedora-glibc-20060905T0633 cvs/fedora-glibc-2_4_90-29
-rw-r--r--ChangeLog16
-rw-r--r--Makerules8
-rw-r--r--elf/do-lookup.h2
-rw-r--r--fedora/branch.mk4
-rw-r--r--fedora/glibc.spec.in17
-rw-r--r--resolv/res_init.c5
-rw-r--r--resolv/res_mkquery.c12
7 files changed, 43 insertions, 21 deletions
diff --git a/ChangeLog b/ChangeLog
index 54dc010a07..0852a3cf5a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+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.
+
 2006-08-31  Jakub Jelinek  <jakub@redhat.com>
 
 	* dlfcn/Makefile (LDLIBS-bug-atexit3-lib.so): Add
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
 	{
diff --git a/fedora/branch.mk b/fedora/branch.mk
index 42e132217e..4de2a2c7fc 100644
--- a/fedora/branch.mk
+++ b/fedora/branch.mk
@@ -3,5 +3,5 @@ glibc-branch := fedora
 glibc-base := HEAD
 DIST_BRANCH := devel
 COLLECTION := dist-fc4
-fedora-sync-date := 2006-08-31 18:12 UTC
-fedora-sync-tag := fedora-glibc-20060831T1812
+fedora-sync-date := 2006-09-05 06:33 UTC
+fedora-sync-tag := fedora-glibc-20060905T0633
diff --git a/fedora/glibc.spec.in b/fedora/glibc.spec.in
index 820e98a303..a4a0230bdc 100644
--- a/fedora/glibc.spec.in
+++ b/fedora/glibc.spec.in
@@ -1,4 +1,4 @@
-%define glibcrelease 28
+%define glibcrelease 29
 %define auxarches i586 i686 athlon sparcv9 alphaev6
 %define xenarches i686 athlon
 %ifarch %{xenarches}
@@ -43,7 +43,7 @@ Prereq: basesystem, libgcc
 # For initial glibc bootstraps it can be commented out
 BuildPreReq: gd-devel libpng-devel zlib-devel texinfo, libselinux-devel >= 1.17.10-1
 BuildPreReq: audit-libs-devel >= 1.1.3, sed >= 3.95, libcap-devel, gettext
-BuildPreReq: /bin/ps, /bin/kill
+BuildPreReq: /bin/ps, /bin/kill, /bin/awk
 # This is to ensure that __frame_state_for is exported by glibc
 # will be compatible with egcs 1.x.y
 BuildPreReq: gcc >= 3.2
@@ -1142,7 +1142,7 @@ echo ====================TESTING=========================
 cd build-%{nptl_target_cpu}-linuxnptl
 ( make %{?_smp_mflags} -k check PARALLELMFLAGS=-s 2>&1
   sleep 10s
-  teepid="`ps -eo ppid,pid,command | grep ^${parent}'[ 	]\+[0-9]\+[ 	]\+tee' | cut -d' ' -f2`"
+  teepid="`ps -eo ppid,pid,command | awk '($1 == '${parent}' && $3 ~ /^tee/) { print $2 }'`"
   [ -n "$teepid" ] && kill $teepid
 ) | tee check.log || :
 cd ..
@@ -1151,7 +1151,7 @@ echo ====================TESTING -mno-tls-direct-seg-refs=============
 cd build-%{nptl_target_cpu}-linuxnptl-nosegneg
 ( make -j$numprocs -k check PARALLELMFLAGS=-s 2>&1
   sleep 10s
-  teepid="`ps -eo ppid,pid,command | grep ^${parent}'[ 	]\+[0-9]\+[ 	]\+tee' | cut -d' ' -f2`"
+  teepid="`ps -eo ppid,pid,command | awk '($1 == '${parent}' && $3 ~ /^tee/) { print $2 }'`"
   [ -n "$teepid" ] && kill $teepid
 ) | tee check.log || :
 cd ..
@@ -1448,14 +1448,19 @@ rm -f *.filelist*
 %endif
 
 %changelog
+* Tue Sep  5 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-29
+- randomize resolver query ids before use instead after use (#205113)
+- fix resolver symver checking with DT_GNU_HASH (#204909)
+- put .hash section in glibc libraries at the end of RO segment
+  when .gnu.hash is present
+
 * Thu Aug 31 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-28
 - another malloc doubly linked list corruption problem fix (#204653)
 
 * Thu Aug 31 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-27
 - allow $LIB and $PLATFORM in dlopen parameters even in suid/sgid (#204399)
+- handle $LIB/$PLATFORM in LD_LIBRARY_PATH
 - fix splice prototype (#204530)
-- fix pthread_rwlock_{,try,timed}wrlock to honor reader preference
-  if requested
 
 * Mon Aug 28 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-26
 - real fix for the doubly linked list corruption problem
diff --git a/resolv/res_init.c b/resolv/res_init.c
index f881060d58..b5a03d1883 100644
--- a/resolv/res_init.c
+++ b/resolv/res_init.c
@@ -537,10 +537,7 @@ net_mask(in)		/* XXX - should really use system's version of this */
 
 u_int
 res_randomid(void) {
-	struct timeval now;
-
-	__gettimeofday(&now, NULL);
-	return (0xffff & (now.tv_sec ^ now.tv_usec ^ __getpid()));
+	return 0xffff & __getpid();
 }
 #ifdef _LIBC
 libc_hidden_def (__res_randomid)
diff --git a/resolv/res_mkquery.c b/resolv/res_mkquery.c
index 4d98b8c5e8..fd80569fe2 100644
--- a/resolv/res_mkquery.c
+++ b/resolv/res_mkquery.c
@@ -124,24 +124,20 @@ res_nmkquery(res_state statp,
 	   incremented by one after the initial randomization which
 	   still predictable if the application does multiple
 	   requests.  */
-#if 0
-	hp->id = htons(++statp->id);
-#else
-	hp->id = htons(statp->id);
 	int randombits;
 	do
 	  {
-# ifdef RANDOM_BITS
+#ifdef RANDOM_BITS
 	    RANDOM_BITS (randombits);
-# else
+#else
 	    struct timeval tv;
 	    __gettimeofday (&tv, NULL);
 	    randombits = (tv.tv_sec << 8) ^ tv.tv_usec;
-# endif
+#endif
 	  }
 	while ((randombits & 0xffff) == 0);
 	statp->id = (statp->id + randombits) & 0xffff;
-#endif
+	hp->id = statp->id;
 	hp->opcode = op;
 	hp->rd = (statp->options & RES_RECURSE) != 0;
 	hp->rcode = NOERROR;