From fcaea48fef6d82c56461654248e97d0816431d2e Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 5 Sep 2006 06:47:43 +0000 Subject: Updated to fedora-glibc-20060905T0633 --- ChangeLog | 16 ++++++++++++++++ Makerules | 8 +++++++- elf/do-lookup.h | 2 ++ fedora/branch.mk | 4 ++-- fedora/glibc.spec.in | 17 +++++++++++------ resolv/res_init.c | 5 +---- resolv/res_mkquery.c | 12 ++++-------- 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 + + * Makerules (shlib.lds): If have-hash-style, put .hash section + at the end of the RO segment. + +2006-09-04 Ulrich Drepper + + * elf/do-lookup.h (do_lookup_x): Initialize symidx in case the new + style hash table format is used. + +2006-09-04 Jakub Jelinek + + * 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 * 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 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 2.4.90-28 - another malloc doubly linked list corruption problem fix (#204653) * Thu Aug 31 2006 Jakub Jelinek 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 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; -- cgit 1.4.1