diff --git a/.gitignore b/.gitignore index 40d3687..499f3e2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/glibc-ports-2.12-54-gbd44238.tar.xz -/glibc-2.13-6-g3321010-fedora.tar.xz -/glibc-2.13-6-g3321010.tar.xz +/glibc-2.13-16-gedf9294-fedora.tar.xz +/glibc-2.13-16-gedf9294.tar.xz +/glibc-ports-2.13.tar.xz diff --git a/glibc-fedora.patch b/glibc-fedora.patch index c978701..1eee646 100644 --- a/glibc-fedora.patch +++ b/glibc-fedora.patch @@ -1,6 +1,45 @@ ---- glibc-2.13-6-g3321010/ChangeLog -+++ glibc-2.13.90-1/ChangeLog -@@ -322,6 +322,11 @@ +--- glibc-2.13-16-gedf9294/ChangeLog ++++ glibc-2.13.90-4/ChangeLog +@@ -82,33 +82,11 @@ + * shadow/sgetspent.c: Check return value of __sgetspent_r instead + of errno. + +-2011-01-19 Ulrich Drepper +- +- [BZ #11724] +- * elf/dl-deps.c (_dl_map_object_deps): Rewrite sorting determining order +- of constructors. +- * elf/dl-fini.c (_dl_sort_fini): Rewrite sorting determining order +- of destructors. +- (_dl_fini): Don't call _dl_sort_fini if there is only one object. +- +- [BZ #11724] +- * elf/Makefile: Add rules to build and run new test. +- * elf/tst-initorder.c: New file. +- * elf/tst-initorder.exp: New file. +- * elf/tst-initordera1.c: New file. +- * elf/tst-initordera2.c: New file. +- * elf/tst-initordera3.c: New file. +- * elf/tst-initordera4.c: New file. +- * elf/tst-initorderb1.c: New file. +- * elf/tst-initorderb2.c: New file. +- * elf/tst-order-a1.c: New file. +- * elf/tst-order-a2.c: New file. +- * elf/tst-order-a3.c: New file. +- * elf/tst-order-a4.c: New file. +- * elf/tst-order-b1.c: New file. +- * elf/tst-order-b2.c: New file. +- * elf/tst-order-main.c: New file. +- New test case by George Gensure . ++2011-02-03 Andreas Schwab ++ ++ * login/programs/pt_chown.c (main): Check for valid file ++ descriptor instead of privileges. Be careful to drop all ++ capabilities when not needed. + + 2010-10-01 Andreas Schwab + +@@ -406,6 +384,11 @@ * sysdeps/unix/sysv/linux/sys/swap.h (SWAP_FLAG_DISCARD): Define. @@ -12,7 +51,7 @@ 2010-11-11 Andreas Schwab * posix/fnmatch_loop.c (NEW_PATTERN): Fix use of alloca. -@@ -685,6 +690,34 @@ +@@ -769,6 +752,34 @@ * sysdeps/unix/sysv/linux/internal_statvfs.c (INTERNAL_STATVFS): Mask out sign-bit copies when constructing f_fsid. @@ -47,7 +86,7 @@ 2010-09-24 Petr Baudis * debug/stack_chk_fail_local.c: Add missing licence exception. -@@ -1476,6 +1509,28 @@ +@@ -1560,6 +1571,32 @@ call returning > 0 value. * sysdeps/unix/sysv/linux/getlogin.c (getlogin): Likewise. @@ -72,11 +111,15 @@ + + * elf/dl-close.c (_dl_close_worker): Reset private search list if + it wasn't used. ++ ++2010-06-21 Andreas Schwab ++ ++ * sysdeps/i386/i686/Makefile: Don't pass -mtune to assembler. + 2010-06-07 Andreas Schwab * dlfcn/Makefile: Remove explicit dependencies on libc.so and -@@ -1528,6 +1583,24 @@ +@@ -1612,6 +1649,24 @@ * hurd/hurd/fd.h (__file_name_lookup_at): Update comment. * sysdeps/mach/hurd/linkat.c (linkat): Pass O_NOLINK in FLAGS. @@ -101,8 +144,8 @@ 2010-05-28 Luis Machado * sysdeps/powerpc/powerpc32/power7/memcpy.S: Exchange srdi for srwi. ---- glibc-2.13-6-g3321010/ChangeLog.15 -+++ glibc-2.13.90-1/ChangeLog.15 +--- glibc-2.13-16-gedf9294/ChangeLog.15 ++++ glibc-2.13.90-4/ChangeLog.15 @@ -477,6 +477,14 @@ 2004-11-26 Jakub Jelinek @@ -168,8 +211,8 @@ 2004-08-30 Roland McGrath * scripts/extract-abilist.awk: If `lastversion' variable defined, omit ---- glibc-2.13-6-g3321010/ChangeLog.16 -+++ glibc-2.13.90-1/ChangeLog.16 +--- glibc-2.13-16-gedf9294/ChangeLog.16 ++++ glibc-2.13.90-4/ChangeLog.16 @@ -2042,6 +2042,9 @@ (__MATHDECL_2): Use __REDIRECT_NTH instead of __REDIRECT followed by __THROW. @@ -223,8 +266,8 @@ 2005-07-28 Thomas Schwinge [BZ #1137] ---- glibc-2.13-6-g3321010/ChangeLog.17 -+++ glibc-2.13.90-1/ChangeLog.17 +--- glibc-2.13-16-gedf9294/ChangeLog.17 ++++ glibc-2.13.90-4/ChangeLog.17 @@ -256,6 +256,12 @@ * Makerules (libc-abis): Fix search for libc-abis in add-ons. @@ -303,8 +346,8 @@ 2006-12-09 Ulrich Drepper [BZ #3632] ---- glibc-2.13-6-g3321010/Makeconfig -+++ glibc-2.13.90-1/Makeconfig +--- glibc-2.13-16-gedf9294/Makeconfig ++++ glibc-2.13.90-4/Makeconfig @@ -789,12 +789,12 @@ endif # The assembler can generate debug information too. ifndef ASFLAGS @@ -321,8 +364,19 @@ ifndef BUILD_CC BUILD_CC = $(CC) ---- glibc-2.13-6-g3321010/csu/Makefile -+++ glibc-2.13.90-1/csu/Makefile +--- glibc-2.13-16-gedf9294/NEWS ++++ glibc-2.13.90-4/NEWS +@@ -9,7 +9,7 @@ Version 2.14 + + * The following bugs are resolved with this release: + +- 11724, 12460 ++ 12460 + + Version 2.13 + +--- glibc-2.13-16-gedf9294/csu/Makefile ++++ glibc-2.13.90-4/csu/Makefile @@ -93,7 +93,8 @@ omit-deps += $(crtstuff) $(crtstuff:%=$(objpfx)%.o): %.o: %.S $(objpfx)defs.h $(compile.S) -g0 $(ASFLAGS-.os) -o $@ @@ -333,8 +387,8 @@ vpath initfini.c $(sysdirs) ---- glibc-2.13-6-g3321010/csu/elf-init.c -+++ glibc-2.13.90-1/csu/elf-init.c +--- glibc-2.13-16-gedf9294/csu/elf-init.c ++++ glibc-2.13.90-4/csu/elf-init.c @@ -63,6 +63,23 @@ extern void (*__init_array_end []) (int, char **, char **) extern void (*__fini_array_start []) (void) attribute_hidden; extern void (*__fini_array_end []) (void) attribute_hidden; @@ -359,8 +413,8 @@ /* These function symbols are provided for the .init/.fini section entry points automagically by the linker. */ ---- glibc-2.13-6-g3321010/debug/tst-chk1.c -+++ glibc-2.13.90-1/debug/tst-chk1.c +--- glibc-2.13-16-gedf9294/debug/tst-chk1.c ++++ glibc-2.13.90-4/debug/tst-chk1.c @@ -17,6 +17,9 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ @@ -389,8 +443,8 @@ # define O 0 # else # define O 1 ---- glibc-2.13-6-g3321010/elf/Makefile -+++ glibc-2.13.90-1/elf/Makefile +--- glibc-2.13-16-gedf9294/elf/Makefile ++++ glibc-2.13.90-4/elf/Makefile @@ -89,6 +89,7 @@ distribute := rtld-Rules \ unload4mod1.c unload4mod2.c unload4mod3.c unload4mod4.c \ unload6mod1.c unload6mod2.c unload6mod3.c \ @@ -399,7 +453,19 @@ tst-audit1.c tst-audit2.c tst-audit3.c tst-audit4.c \ tst-auditmod1.c tst-auditmod3a.c tst-auditmod3b.c \ tst-auditmod4a.c tst-auditmod4b.c \ -@@ -132,6 +133,7 @@ include ../Makeconfig +@@ -118,10 +119,7 @@ distribute := rtld-Rules \ + ifuncmain7.c ifuncmain7pic.c ifuncmain7picstatic.c \ + ifuncmain7pie.c ifuncmain7static.c \ + tst-unique1.c tst-unique1mod1.c tst-unique1mod2.c \ +- tst-unique2.c tst-unique2mod1.c tst-unique2mod2.c \ +- tst-initordera1.c tst-initordera2.c tst-initorderb1.c \ +- tst-initorderb2.c tst-initordera3.c tst-initordera4.c \ +- tst-initorder.c ++ tst-unique2.c tst-unique2mod1.c tst-unique2mod2.c + + CFLAGS-dl-runtime.c = -fexceptions -fasynchronous-unwind-tables + CFLAGS-dl-lookup.c = -fexceptions -fasynchronous-unwind-tables +@@ -132,6 +130,7 @@ include ../Makeconfig ifeq ($(unwind-find-fde),yes) routines += unwind-dw2-fde-glibc shared-only-routines += unwind-dw2-fde-glibc @@ -407,7 +473,7 @@ endif before-compile = $(objpfx)trusted-dirs.h -@@ -198,7 +200,7 @@ tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \ +@@ -198,11 +197,10 @@ tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \ tst-align tst-align2 $(tests-execstack-$(have-z-execstack)) \ tst-dlmodcount tst-dlopenrpath tst-deep1 \ tst-dlmopen1 tst-dlmopen2 tst-dlmopen3 \ @@ -415,26 +481,43 @@ + unload3 unload4 unload5 unload6 unload7 unload8 tst-global1 order2 \ tst-audit1 tst-audit2 \ tst-stackguard1 tst-addr1 tst-thrlock \ - tst-unique1 tst-unique2 \ -@@ -252,6 +254,7 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \ +- tst-unique1 tst-unique2 \ +- tst-initorder ++ tst-unique1 tst-unique2 + # reldep9 + test-srcs = tst-pathopt + tests-execstack-yes = tst-execstack tst-execstack-needed tst-execstack-prog +@@ -252,12 +250,10 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \ unload4mod1 unload4mod2 unload4mod3 unload4mod4 \ unload6mod1 unload6mod2 unload6mod3 \ unload7mod1 unload7mod2 \ + unload8mod1 unload8mod1x unload8mod2 unload8mod3 \ order2mod1 order2mod2 order2mod3 order2mod4 \ tst-unique1mod1 tst-unique1mod2 \ - tst-unique2mod1 tst-unique2mod2 \ -@@ -538,6 +541,9 @@ $(objpfx)unload6mod2.so: $(libdl) +- tst-unique2mod1 tst-unique2mod2 \ +- tst-initordera1 tst-initorderb1 \ +- tst-initordera2 tst-initorderb2 \ +- tst-initordera3 tst-initordera4 ++ tst-unique2mod1 tst-unique2mod2 + ifeq (yes,$(have-initfini-array)) + modules-names += tst-array2dep tst-array5dep + endif +@@ -538,11 +534,9 @@ $(objpfx)unload6mod2.so: $(libdl) $(objpfx)unload6mod3.so: $(libdl) $(objpfx)unload7mod1.so: $(libdl) $(objpfx)unload7mod2.so: $(objpfx)unload7mod1.so +-$(objpfx)tst-initordera2.so: $(objpfx)tst-initordera1.so +-$(objpfx)tst-initorderb2.so: $(objpfx)tst-initorderb1.so $(objpfx)tst-initordera2.so +-$(objpfx)tst-initordera3.so: $(objpfx)tst-initorderb2.so $(objpfx)tst-initorderb1.so +-$(objpfx)tst-initordera4.so: $(objpfx)tst-initordera3.so +-$(objpfx)tst-initorder: $(objpfx)tst-initordera4.so $(objpfx)tst-initordera1.so $(objpfx)tst-initorderb2.so +$(objpfx)unload8mod1.so: $(objpfx)unload8mod2.so +$(objpfx)unload8mod2.so: $(objpfx)unload8mod3.so +$(objpfx)unload8mod3.so: $(libdl) - $(objpfx)tst-initordera2.so: $(objpfx)tst-initordera1.so - $(objpfx)tst-initorderb2.so: $(objpfx)tst-initorderb1.so $(objpfx)tst-initordera2.so - $(objpfx)tst-initordera3.so: $(objpfx)tst-initorderb2.so $(objpfx)tst-initorderb1.so -@@ -844,6 +850,9 @@ $(objpfx)unload7: $(libdl) + + LDFLAGS-tst-tlsmod5.so = -nostdlib + LDFLAGS-tst-tlsmod6.so = -nostdlib +@@ -844,6 +838,9 @@ $(objpfx)unload7: $(libdl) $(objpfx)unload7.out: $(objpfx)unload7mod1.so $(objpfx)unload7mod2.so unload7-ENV = MALLOC_PERTURB_=85 @@ -444,8 +527,21 @@ ifdef libdl $(objpfx)tst-tls9-static: $(common-objpfx)dlfcn/libdl.a $(objpfx)tst-tls9-static.out: $(objpfx)tst-tlsmod5.so $(objpfx)tst-tlsmod6.so ---- glibc-2.13-6-g3321010/elf/dl-close.c -+++ glibc-2.13.90-1/elf/dl-close.c +@@ -1174,12 +1171,6 @@ $(objpfx)tst-unique1.out: $(objpfx)tst-unique1mod1.so \ + $(objpfx)tst-unique2: $(libdl) $(objpfx)tst-unique2mod1.so + $(objpfx)tst-unique2.out: $(objpfx)tst-unique2mod2.so + +-$(objpfx)tst-initorder.out: $(objpfx)tst-initorder +- $(elf-objpfx)${rtld-installed-name} \ +- --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \ +- $< > $@ +- cmp $@ tst-initorder.exp > /dev/null +- + ifeq (yes,$(config-cflags-avx)) + AVX-CFLAGS=-mavx + ifeq (yes,$(config-cflags-novzeroupper)) +--- glibc-2.13-16-gedf9294/elf/dl-close.c ++++ glibc-2.13.90-4/elf/dl-close.c @@ -421,6 +421,13 @@ _dl_close_worker (struct link_map *map) imap->l_scope_max = new_size; @@ -460,8 +556,15 @@ /* The loader is gone, so mark the object as not having one. Note: l_idx != IDX_STILL_USED -> object will be removed. */ ---- glibc-2.13-6-g3321010/elf/dl-deps.c -+++ glibc-2.13.90-1/elf/dl-deps.c +--- glibc-2.13-16-gedf9294/elf/dl-deps.c ++++ glibc-2.13.90-4/elf/dl-deps.c +@@ -1,5 +1,5 @@ + /* Load the dependencies of a mapped object. +- Copyright (C) 1996-2003, 2004, 2005, 2006, 2007, 2010, 2011 ++ Copyright (C) 1996-2003, 2004, 2005, 2006, 2007, 2010 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + @@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *map, nneeded * sizeof needed[0]); atomic_write_barrier (); @@ -470,7 +573,109 @@ } /* If we have no auxiliary objects just go on to the next map. */ -@@ -674,6 +675,7 @@ Filters not supported with LD_TRACE_PRELINKING")); +@@ -591,7 +592,7 @@ Filters not supported with LD_TRACE_PRELINKING")); + /* Need to allocate new array of relocation dependencies. */ + struct link_map_reldeps *l_reldeps; + l_reldeps = malloc (sizeof (*l_reldeps) +- + map->l_reldepsmax ++ + map->l_reldepsmax + * sizeof (struct link_map *)); + if (l_reldeps == NULL) + /* Bad luck, keep the reldeps duplicated between +@@ -616,64 +617,53 @@ Filters not supported with LD_TRACE_PRELINKING")); + /* Now determine the order in which the initialization has to happen. */ + memcpy (l_initfini, map->l_searchlist.r_list, + nlist * sizeof (struct link_map *)); +- + /* We can skip looking for the binary itself which is at the front +- of the search list. */ +- assert (nlist > 1); +- i = 1; +- bool seen[nlist]; +- memset (seen, false, nlist * sizeof (seen[0])); +- while (1) ++ of the search list. Look through the list backward so that circular ++ dependencies are not changing the order. */ ++ for (i = 1; i < nlist; ++i) + { +- /* Keep track of which object we looked at this round. */ +- seen[i] = true; +- struct link_map *thisp = l_initfini[i]; +- +- /* Find the last object in the list for which the current one is +- a dependency and move the current object behind the object +- with the dependency. */ +- unsigned int k = nlist - 1; +- while (k > i) ++ struct link_map *l = map->l_searchlist.r_list[i]; ++ unsigned int j; ++ unsigned int k; ++ ++ /* Find the place in the initfini list where the map is currently ++ located. */ ++ for (j = 1; l_initfini[j] != l; ++j) ++ ; ++ ++ /* Find all object for which the current one is a dependency and ++ move the found object (if necessary) in front. */ ++ for (k = j + 1; k < nlist; ++k) + { +- struct link_map **runp = l_initfini[k]->l_initfini; ++ struct link_map **runp; ++ ++ runp = l_initfini[k]->l_initfini; + if (runp != NULL) +- /* Look through the dependencies of the object. */ +- while (*runp != NULL) +- if (__builtin_expect (*runp++ == thisp, 0)) +- { +- /* Move the current object to the back past the last +- object with it as the dependency. */ +- memmove (&l_initfini[i], &l_initfini[i + 1], +- (k - i) * sizeof (l_initfini[0])); +- l_initfini[k] = thisp; +- +- if (seen[i + 1]) +- { +- ++i; +- goto next_clear; +- } +- +- memmove (&seen[i], &seen[i + 1], (k - i) * sizeof (seen[0])); +- seen[k] = true; +- +- goto next; +- } +- +- --k; +- } ++ { ++ while (*runp != NULL) ++ if (__builtin_expect (*runp++ == l, 0)) ++ { ++ struct link_map *here = l_initfini[k]; + +- if (++i == nlist) +- break; +- next_clear: +- memset (&seen[i], false, (nlist - i) * sizeof (seen[0])); ++ /* Move it now. */ ++ memmove (&l_initfini[j] + 1, &l_initfini[j], ++ (k - j) * sizeof (struct link_map *)); ++ l_initfini[j] = here; + +- next:; +- } ++ /* Don't insert further matches before the last ++ entry moved to the front. */ ++ ++j; + ++ break; ++ } ++ } ++ } ++ } + /* Terminate the list of dependencies. */ l_initfini[nlist] = NULL; atomic_write_barrier (); map->l_initfini = l_initfini; @@ -478,8 +683,186 @@ if (l_reldeps != NULL) { atomic_write_barrier (); ---- glibc-2.13-6-g3321010/elf/dl-init.c -+++ glibc-2.13.90-1/elf/dl-init.c +--- glibc-2.13-16-gedf9294/elf/dl-fini.c ++++ glibc-2.13.90-4/elf/dl-fini.c +@@ -1,6 +1,5 @@ + /* Call the termination functions of loaded shared objects. +- Copyright (C) 1995,96,1998-2002,2004-2005,2009,2011 +- Free Software Foundation, Inc. ++ Copyright (C) 1995,96,1998-2002,2004-2005,2009 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 +@@ -33,84 +32,86 @@ internal_function + _dl_sort_fini (struct link_map *l, struct link_map **maps, size_t nmaps, + char *used, Lmid_t ns) + { +- /* We can skip looking for the binary itself which is at the front +- of the search list for the main namespace. */ +- assert (nmaps > 1); +- unsigned int i = ns == LM_ID_BASE; +- bool seen[nmaps]; +- memset (seen, false, nmaps * sizeof (seen[0])); +- while (1) +- { +- /* Keep track of which object we looked at this round. */ +- seen[i] = true; +- struct link_map *thisp = maps[i]; +- +- /* Do not handle ld.so in secondary namespaces and object which +- are not removed. */ +- if (thisp != thisp->l_real || thisp->l_idx == -1) +- goto skip; +- +- /* Find the last object in the list for which the current one is +- a dependency and move the current object behind the object +- with the dependency. */ +- unsigned int k = nmaps - 1; +- while (k > i) +- { +- struct link_map **runp = maps[k]->l_initfini; +- if (runp != NULL) +- /* Look through the dependencies of the object. */ +- while (*runp != NULL) +- if (__builtin_expect (*runp++ == thisp, 0)) +- { +- move: +- /* Move the current object to the back past the last +- object with it as the dependency. */ +- memmove (&maps[i], &maps[i + 1], +- (k - i) * sizeof (maps[0])); +- maps[k] = thisp; +- +- if (used != NULL) ++ if (ns == LM_ID_BASE) ++ /* The main executable always comes first. */ ++ l = l->l_next; ++ ++ for (; l != NULL; l = l->l_next) ++ /* Do not handle ld.so in secondary namespaces and object which ++ are not removed. */ ++ if (l == l->l_real && l->l_idx != -1) ++ { ++ /* Find the place in the 'maps' array. */ ++ unsigned int j; ++ for (j = ns == LM_ID_BASE ? 1 : 0; maps[j] != l; ++j) ++ assert (j < nmaps); ++ ++ /* Find all object for which the current one is a dependency ++ and move the found object (if necessary) in front. */ ++ for (unsigned int k = j + 1; k < nmaps; ++k) ++ { ++ struct link_map **runp = maps[k]->l_initfini; ++ if (runp != NULL) ++ { ++ while (*runp != NULL) ++ if (*runp == l) + { +- char here_used = used[i]; +- memmove (&used[i], &used[i + 1], +- (k - i) * sizeof (used[0])); +- used[k] = here_used; +- } ++ struct link_map *here = maps[k]; + +- if (seen[i + 1]) +- { +- ++i; +- goto next_clear; +- } ++ /* Move it now. */ ++ memmove (&maps[j] + 1, ++ &maps[j], (k - j) * sizeof (struct link_map *)); ++ maps[j] = here; + +- memmove (&seen[i], &seen[i + 1], (k - i) * sizeof (seen[0])); +- seen[k] = true; ++ if (used != NULL) ++ { ++ char here_used = used[k]; + +- goto next; +- } ++ memmove (&used[j] + 1, ++ &used[j], (k - j) * sizeof (char)); ++ used[j] = here_used; ++ } + +- if (__builtin_expect (maps[k]->l_reldeps != NULL, 0)) +- { +- unsigned int m = maps[k]->l_reldeps->act; +- struct link_map **relmaps = &maps[k]->l_reldeps->list[0]; ++ ++j; + +- /* Look through the relocation dependencies of the object. */ +- while (m-- > 0) +- if (__builtin_expect (relmaps[m] == thisp, 0)) +- goto move; +- } +- +- --k; +- } +- +- skip: +- if (++i == nmaps) +- break; +- next_clear: +- memset (&seen[i], false, (nmaps - i) * sizeof (seen[0])); +- +- next:; +- } ++ break; ++ } ++ else ++ ++runp; ++ } ++ ++ if (__builtin_expect (maps[k]->l_reldeps != NULL, 0)) ++ { ++ unsigned int m = maps[k]->l_reldeps->act; ++ struct link_map **relmaps = &maps[k]->l_reldeps->list[0]; ++ ++ while (m-- > 0) ++ { ++ if (relmaps[m] == l) ++ { ++ struct link_map *here = maps[k]; ++ ++ /* Move it now. */ ++ memmove (&maps[j] + 1, ++ &maps[j], ++ (k - j) * sizeof (struct link_map *)); ++ maps[j] = here; ++ ++ if (used != NULL) ++ { ++ char here_used = used[k]; ++ ++ memmove (&used[j] + 1, ++ &used[j], (k - j) * sizeof (char)); ++ used[j] = here_used; ++ } ++ ++ break; ++ } ++ } ++ } ++ } ++ } + } + + +@@ -195,7 +196,7 @@ _dl_fini (void) + assert (ns == LM_ID_BASE || i == nloaded || i == nloaded - 1); + nmaps = i; + +- if (nmaps > 1) ++ if (nmaps != 0) + /* Now we have to do the sorting. */ + _dl_sort_fini (GL(dl_ns)[ns]._ns_loaded, maps, nmaps, NULL, ns); + +--- glibc-2.13-16-gedf9294/elf/dl-init.c ++++ glibc-2.13.90-4/elf/dl-init.c @@ -24,11 +24,9 @@ /* Type of the initializer. */ typedef void (*init_t) (int, char **, char **); @@ -502,8 +885,8 @@ -#endif } INTDEF (_dl_init) ---- glibc-2.13-6-g3321010/elf/dl-libc.c -+++ glibc-2.13.90-1/elf/dl-libc.c +--- glibc-2.13-16-gedf9294/elf/dl-libc.c ++++ glibc-2.13.90-4/elf/dl-libc.c @@ -265,13 +265,13 @@ libc_freeres_fn (free_mem) for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns) @@ -530,8 +913,8 @@ } if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0 ---- glibc-2.13-6-g3321010/elf/dl-object.c -+++ glibc-2.13.90-1/elf/dl-object.c +--- glibc-2.13-16-gedf9294/elf/dl-object.c ++++ glibc-2.13.90-4/elf/dl-object.c @@ -220,6 +220,9 @@ _dl_new_object (char *realname, const char *libname, int type, out: new->l_origin = origin; @@ -542,8 +925,8 @@ return new; } ---- glibc-2.13-6-g3321010/elf/dl-support.c -+++ glibc-2.13.90-1/elf/dl-support.c +--- glibc-2.13-16-gedf9294/elf/dl-support.c ++++ glibc-2.13.90-4/elf/dl-support.c @@ -81,10 +81,8 @@ unsigned long long _dl_load_adds; create a fake scope containing nothing. */ struct r_scope_elem _dl_initial_searchlist; @@ -555,8 +938,8 @@ /* Random data provided by the kernel. */ void *_dl_random; ---- glibc-2.13-6-g3321010/elf/ldconfig.c -+++ glibc-2.13.90-1/elf/ldconfig.c +--- glibc-2.13-16-gedf9294/elf/ldconfig.c ++++ glibc-2.13.90-4/elf/ldconfig.c @@ -1031,17 +1031,19 @@ search_dirs (void) @@ -638,8 +1021,8 @@ } const char *aux_cache_file = _PATH_LDCONFIG_AUX_CACHE; ---- glibc-2.13-6-g3321010/elf/rtld.c -+++ glibc-2.13.90-1/elf/rtld.c +--- glibc-2.13-16-gedf9294/elf/rtld.c ++++ glibc-2.13.90-4/elf/rtld.c @@ -107,7 +107,6 @@ static struct audit_list struct audit_list *next; } *audit_list; @@ -697,8 +1080,275 @@ if (! prelinked && rtld_multiple_ref) { /* There was an explicit ref to the dynamic linker as a shared lib. ---- glibc-2.13-6-g3321010/elf/tst-stackguard1.c -+++ glibc-2.13.90-1/elf/tst-stackguard1.c +--- glibc-2.13-16-gedf9294/elf/tst-initorder.c ++++ glibc-2.13.90-4//dev/null +@@ -1,7 +0,0 @@ +-#include +- +-int +-main( int argc, char *argv[] ) +-{ +- printf( "main\n" ); +-} +--- glibc-2.13-16-gedf9294/elf/tst-initorder.exp ++++ glibc-2.13.90-4//dev/null +@@ -1,13 +0,0 @@ +-start_a1 +-start_a2 +-start_b1 +-start_b2 +-start_a3 +-start_a4 +-main +-finish_a4 +-finish_a3 +-finish_b2 +-finish_b1 +-finish_a2 +-finish_a1 +--- glibc-2.13-16-gedf9294/elf/tst-initordera1.c ++++ glibc-2.13.90-4//dev/null +@@ -1,16 +0,0 @@ +-#include +- +-extern void start_a1( void ) __attribute__((constructor)); +-extern void finish_a1( void ) __attribute__((destructor)); +- +-void +-start_a1( void ) +-{ +- printf( "start_a1\n" ); +-} +- +-void +-finish_a1( void ) +-{ +- printf( "finish_a1\n" ); +-} +--- glibc-2.13-16-gedf9294/elf/tst-initordera2.c ++++ glibc-2.13.90-4//dev/null +@@ -1,16 +0,0 @@ +-#include +- +-extern void start_a2( void ) __attribute__((constructor)); +-extern void finish_a2( void ) __attribute__((destructor)); +- +-void +-start_a2( void ) +-{ +- printf( "start_a2\n" ); +-} +- +-void +-finish_a2( void ) +-{ +- printf( "finish_a2\n" ); +-} +--- glibc-2.13-16-gedf9294/elf/tst-initordera3.c ++++ glibc-2.13.90-4//dev/null +@@ -1,16 +0,0 @@ +-#include +- +-extern void start_a3( void ) __attribute__((constructor)); +-extern void finish_a3( void ) __attribute__((destructor)); +- +-void +-start_a3( void ) +-{ +- printf( "start_a3\n" ); +-} +- +-void +-finish_a3( void ) +-{ +- printf( "finish_a3\n" ); +-} +--- glibc-2.13-16-gedf9294/elf/tst-initordera4.c ++++ glibc-2.13.90-4//dev/null +@@ -1,16 +0,0 @@ +-#include +- +-extern void start_a4( void ) __attribute__((constructor)); +-extern void finish_a4( void ) __attribute__((destructor)); +- +-void +-start_a4( void ) +-{ +- printf( "start_a4\n" ); +-} +- +-void +-finish_a4( void ) +-{ +- printf( "finish_a4\n" ); +-} +--- glibc-2.13-16-gedf9294/elf/tst-initorderb1.c ++++ glibc-2.13.90-4//dev/null +@@ -1,16 +0,0 @@ +-#include +- +-extern void start_b1( void ) __attribute__((constructor)); +-extern void finish_b1( void ) __attribute__((destructor)); +- +-void +-start_b1( void ) +-{ +- printf( "start_b1\n" ); +-} +- +-void +-finish_b1( void ) +-{ +- printf( "finish_b1\n" ); +-} +--- glibc-2.13-16-gedf9294/elf/tst-initorderb2.c ++++ glibc-2.13.90-4//dev/null +@@ -1,16 +0,0 @@ +-#include +- +-extern void start_b2( void ) __attribute__((constructor)); +-extern void finish_b2( void ) __attribute__((destructor)); +- +-void +-start_b2( void ) +-{ +- printf( "start_b2\n" ); +-} +- +-void +-finish_b2( void ) +-{ +- printf( "finish_b2\n" ); +-} +--- glibc-2.13-16-gedf9294/elf/tst-order-a1.c ++++ glibc-2.13.90-4//dev/null +@@ -1,16 +0,0 @@ +-#include +- +-extern void start_a1( void ) __attribute__((constructor)); +-extern void finish_a1( void ) __attribute__((destructor)); +- +-void +-start_a1( void ) +-{ +- printf( "start_a1\n" ); +-} +- +-void +-finish_a1( void ) +-{ +- printf( "finish_a1\n" ); +-} +--- glibc-2.13-16-gedf9294/elf/tst-order-a2.c ++++ glibc-2.13.90-4//dev/null +@@ -1,16 +0,0 @@ +-#include +- +-extern void start_a2( void ) __attribute__((constructor)); +-extern void finish_a2( void ) __attribute__((destructor)); +- +-void +-start_a2( void ) +-{ +- printf( "start_a2\n" ); +-} +- +-void +-finish_a2( void ) +-{ +- printf( "finish_a2\n" ); +-} +--- glibc-2.13-16-gedf9294/elf/tst-order-a3.c ++++ glibc-2.13.90-4//dev/null +@@ -1,16 +0,0 @@ +-#include +- +-extern void start_a3( void ) __attribute__((constructor)); +-extern void finish_a3( void ) __attribute__((destructor)); +- +-void +-start_a3( void ) +-{ +- printf( "start_a3\n" ); +-} +- +-void +-finish_a3( void ) +-{ +- printf( "finish_a3\n" ); +-} +--- glibc-2.13-16-gedf9294/elf/tst-order-a4.c ++++ glibc-2.13.90-4//dev/null +@@ -1,16 +0,0 @@ +-#include +- +-extern void start_a4( void ) __attribute__((constructor)); +-extern void finish_a4( void ) __attribute__((destructor)); +- +-void +-start_a4( void ) +-{ +- printf( "start_a4\n" ); +-} +- +-void +-finish_a4( void ) +-{ +- printf( "finish_a4\n" ); +-} +--- glibc-2.13-16-gedf9294/elf/tst-order-b1.c ++++ glibc-2.13.90-4//dev/null +@@ -1,16 +0,0 @@ +-#include +- +-extern void start_b1( void ) __attribute__((constructor)); +-extern void finish_b1( void ) __attribute__((destructor)); +- +-void +-start_b1( void ) +-{ +- printf( "start_b1\n" ); +-} +- +-void +-finish_b1( void ) +-{ +- printf( "finish_b1\n" ); +-} +--- glibc-2.13-16-gedf9294/elf/tst-order-b2.c ++++ glibc-2.13.90-4//dev/null +@@ -1,16 +0,0 @@ +-#include +- +-extern void start_b2( void ) __attribute__((constructor)); +-extern void finish_b2( void ) __attribute__((destructor)); +- +-void +-start_b2( void ) +-{ +- printf( "start_b2\n" ); +-} +- +-void +-finish_b2( void ) +-{ +- printf( "finish_b2\n" ); +-} +--- glibc-2.13-16-gedf9294/elf/tst-order-main.c ++++ glibc-2.13.90-4//dev/null +@@ -1,10 +0,0 @@ +-#include +-#include +-#include +- +-int +-main( int argc, char *argv[] ) +-{ +- printf( "main\n" ); +- exit(EXIT_SUCCESS); +-} +--- glibc-2.13-16-gedf9294/elf/tst-stackguard1.c ++++ glibc-2.13.90-4/elf/tst-stackguard1.c @@ -160,17 +160,21 @@ do_test (void) the 16 runs, something is very wrong. */ int ndifferences = 0; @@ -723,8 +1373,8 @@ { puts ("stack guard canaries are not randomized enough"); puts ("nor equal to the default canary value"); ---- glibc-2.13-6-g3321010/elf/unload8.c -+++ glibc-2.13.90-1/elf/unload8.c +--- glibc-2.13-16-gedf9294/elf/unload8.c ++++ glibc-2.13.90-4/elf/unload8.c @@ -0,0 +1,33 @@ +#include +#include @@ -759,8 +1409,8 @@ + + return 0; +} ---- glibc-2.13-6-g3321010/elf/unload8mod1.c -+++ glibc-2.13.90-1/elf/unload8mod1.c +--- glibc-2.13-16-gedf9294/elf/unload8mod1.c ++++ glibc-2.13.90-4/elf/unload8mod1.c @@ -0,0 +1,7 @@ +extern void mod2 (void); + @@ -769,12 +1419,12 @@ +{ + mod2 (); +} ---- glibc-2.13-6-g3321010/elf/unload8mod1x.c -+++ glibc-2.13.90-1/elf/unload8mod1x.c +--- glibc-2.13-16-gedf9294/elf/unload8mod1x.c ++++ glibc-2.13.90-4/elf/unload8mod1x.c @@ -0,0 +1 @@ +int mod1x; ---- glibc-2.13-6-g3321010/elf/unload8mod2.c -+++ glibc-2.13.90-1/elf/unload8mod2.c +--- glibc-2.13-16-gedf9294/elf/unload8mod2.c ++++ glibc-2.13.90-4/elf/unload8mod2.c @@ -0,0 +1,7 @@ +extern void mod3 (void); + @@ -783,8 +1433,8 @@ +{ + mod3 (); +} ---- glibc-2.13-6-g3321010/elf/unload8mod3.c -+++ glibc-2.13.90-1/elf/unload8mod3.c +--- glibc-2.13-16-gedf9294/elf/unload8mod3.c ++++ glibc-2.13.90-4/elf/unload8mod3.c @@ -0,0 +1,27 @@ +#include +#include @@ -813,16 +1463,16 @@ + + atexit (mod3_fini); +} ---- glibc-2.13-6-g3321010/include/bits/stdlib-ldbl.h -+++ glibc-2.13.90-1/include/bits/stdlib-ldbl.h +--- glibc-2.13-16-gedf9294/include/bits/stdlib-ldbl.h ++++ glibc-2.13.90-4/include/bits/stdlib-ldbl.h @@ -0,0 +1 @@ +#include ---- glibc-2.13-6-g3321010/include/bits/wchar-ldbl.h -+++ glibc-2.13.90-1/include/bits/wchar-ldbl.h +--- glibc-2.13-16-gedf9294/include/bits/wchar-ldbl.h ++++ glibc-2.13.90-4/include/bits/wchar-ldbl.h @@ -0,0 +1 @@ +#include ---- glibc-2.13-6-g3321010/include/features.h -+++ glibc-2.13.90-1/include/features.h +--- glibc-2.13-16-gedf9294/include/features.h ++++ glibc-2.13.90-4/include/features.h @@ -309,8 +309,13 @@ #endif @@ -839,8 +1489,8 @@ # define __USE_FORTIFY_LEVEL 2 # else # define __USE_FORTIFY_LEVEL 1 ---- glibc-2.13-6-g3321010/include/link.h -+++ glibc-2.13.90-1/include/link.h +--- glibc-2.13-16-gedf9294/include/link.h ++++ glibc-2.13.90-4/include/link.h @@ -192,6 +192,9 @@ struct link_map during LD_TRACE_PRELINKING=1 contains any DT_SYMBOLIC @@ -851,16 +1501,16 @@ /* Collected information about own RPATH directories. */ struct r_search_path_struct l_rpath_dirs; ---- glibc-2.13-6-g3321010/include/sys/resource.h -+++ glibc-2.13.90-1/include/sys/resource.h +--- glibc-2.13-16-gedf9294/include/sys/resource.h ++++ glibc-2.13.90-4/include/sys/resource.h @@ -13,4 +13,5 @@ extern int __getrusage (enum __rusage_who __who, struct rusage *__usage) extern int __setrlimit (enum __rlimit_resource __resource, const struct rlimit *__rlimits); +libc_hidden_proto (__getrlimit) #endif ---- glibc-2.13-6-g3321010/inet/Makefile -+++ glibc-2.13.90-1/inet/Makefile +--- glibc-2.13-16-gedf9294/inet/Makefile ++++ glibc-2.13.90-4/inet/Makefile @@ -57,6 +57,8 @@ tests := htontest test_ifindex tst-ntoa tst-ether_aton tst-network \ include ../Rules @@ -870,8 +1520,8 @@ ifeq ($(have-thread-library),yes) CFLAGS-gethstbyad_r.c = -DUSE_NSCD=1 -fexceptions ---- glibc-2.13-6-g3321010/intl/locale.alias -+++ glibc-2.13.90-1/intl/locale.alias +--- glibc-2.13-16-gedf9294/intl/locale.alias ++++ glibc-2.13.90-4/intl/locale.alias @@ -57,8 +57,6 @@ korean ko_KR.eucKR korean.euc ko_KR.eucKR ko_KR ko_KR.eucKR @@ -881,8 +1531,8 @@ norwegian nb_NO.ISO-8859-1 nynorsk nn_NO.ISO-8859-1 polish pl_PL.ISO-8859-2 ---- glibc-2.13-6-g3321010/libio/stdio.h -+++ glibc-2.13.90-1/libio/stdio.h +--- glibc-2.13-16-gedf9294/libio/stdio.h ++++ glibc-2.13.90-4/libio/stdio.h @@ -165,10 +165,12 @@ typedef _G_fpos64_t fpos64_t; extern struct _IO_FILE *stdin; /* Standard input stream. */ extern struct _IO_FILE *stdout; /* Standard output stream. */ @@ -896,8 +1546,8 @@ __BEGIN_NAMESPACE_STD /* Remove file FILENAME. */ ---- glibc-2.13-6-g3321010/locale/iso-4217.def -+++ glibc-2.13.90-1/locale/iso-4217.def +--- glibc-2.13-16-gedf9294/locale/iso-4217.def ++++ glibc-2.13.90-4/locale/iso-4217.def @@ -8,6 +8,7 @@ * * !!! The list has to be sorted !!! @@ -989,8 +1639,8 @@ DEFINE_INT_CURR("PYG") /* Paraguay Guarani */ DEFINE_INT_CURR("QAR") /* Qatar Rial */ DEFINE_INT_CURR("ROL") /* Romanian Leu */ ---- glibc-2.13-6-g3321010/locale/programs/locarchive.c -+++ glibc-2.13.90-1/locale/programs/locarchive.c +--- glibc-2.13-16-gedf9294/locale/programs/locarchive.c ++++ glibc-2.13.90-4/locale/programs/locarchive.c @@ -134,7 +134,7 @@ create_archive (const char *archivefname, struct locarhandle *ah) size_t reserved = RESERVE_MMAP_SIZE; int xflags = 0; @@ -1049,8 +1699,8 @@ add_alias (struct locarhandle *ah, const char *alias, bool replace, const char *oldname, uint32_t *locrec_offset_p) { ---- glibc-2.13-6-g3321010/localedata/ChangeLog -+++ glibc-2.13.90-1/localedata/ChangeLog +--- glibc-2.13-16-gedf9294/localedata/ChangeLog ++++ glibc-2.13.90-4/localedata/ChangeLog @@ -1,3 +1,8 @@ +2010-12-08 Andreas Schwab + @@ -1060,8 +1710,8 @@ 2010-05-17 Andreas Schwab * locales/es_CR (LC_ADDRESS): Fix character names in lang_ab. ---- glibc-2.13-6-g3321010/localedata/Makefile -+++ glibc-2.13.90-1/localedata/Makefile +--- glibc-2.13-16-gedf9294/localedata/Makefile ++++ glibc-2.13.90-4/localedata/Makefile @@ -227,6 +227,7 @@ $(INSTALL-SUPPORTED-LOCALES): install-locales-dir echo -n '...'; \ input=`echo $$locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; \ @@ -1070,8 +1720,8 @@ -i locales/$$input -c -f charmaps/$$charset \ $(addprefix --prefix=,$(install_root)) $$locale; \ echo ' done'; \ ---- glibc-2.13-6-g3321010/localedata/SUPPORTED -+++ glibc-2.13.90-1/localedata/SUPPORTED +--- glibc-2.13-16-gedf9294/localedata/SUPPORTED ++++ glibc-2.13.90-4/localedata/SUPPORTED @@ -46,8 +46,8 @@ ar_TN.UTF-8/UTF-8 \ ar_TN/ISO-8859-6 \ ar_YE.UTF-8/UTF-8 \ @@ -1135,8 +1785,8 @@ ug_CN/UTF-8 \ uk_UA.UTF-8/UTF-8 \ uk_UA/KOI8-U \ ---- glibc-2.13-6-g3321010/localedata/locales/cy_GB -+++ glibc-2.13.90-1/localedata/locales/cy_GB +--- glibc-2.13-16-gedf9294/localedata/locales/cy_GB ++++ glibc-2.13.90-4/localedata/locales/cy_GB @@ -248,8 +248,11 @@ mon "";/ d_t_fmt "" d_fmt "" @@ -1151,8 +1801,8 @@ END LC_TIME LC_MESSAGES ---- glibc-2.13-6-g3321010/localedata/locales/en_GB -+++ glibc-2.13.90-1/localedata/locales/en_GB +--- glibc-2.13-16-gedf9294/localedata/locales/en_GB ++++ glibc-2.13.90-4/localedata/locales/en_GB @@ -116,8 +116,8 @@ mon "";/ d_t_fmt "" d_fmt "" @@ -1164,8 +1814,8 @@ date_fmt "/ / " ---- glibc-2.13-6-g3321010/localedata/locales/no_NO -+++ glibc-2.13.90-1/localedata/locales/no_NO +--- glibc-2.13-16-gedf9294/localedata/locales/no_NO ++++ glibc-2.13.90-4/localedata/locales/no_NO @@ -0,0 +1,69 @@ +escape_char / +comment_char % @@ -1236,8 +1886,8 @@ +LC_ADDRESS +copy "nb_NO" +END LC_ADDRESS ---- glibc-2.13-6-g3321010/localedata/locales/zh_TW -+++ glibc-2.13.90-1/localedata/locales/zh_TW +--- glibc-2.13-16-gedf9294/localedata/locales/zh_TW ++++ glibc-2.13.90-4/localedata/locales/zh_TW @@ -1,7 +1,7 @@ comment_char % escape_char / @@ -1265,8 +1915,51 @@ revision "0.2" date "2000-08-02" % ---- glibc-2.13-6-g3321010/malloc/mcheck.c -+++ glibc-2.13.90-1/malloc/mcheck.c +--- glibc-2.13-16-gedf9294/login/programs/pt_chown.c ++++ glibc-2.13.90-4/login/programs/pt_chown.c +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include + #ifdef HAVE_LIBCAP + # include + # include +@@ -143,7 +144,7 @@ main (int argc, char *argv[]) + uid_t uid = getuid (); + int remaining; + +- if (argc == 1 && euid == 0) ++ if (argc == 1 && fcntl (PTY_FILENO, F_GETFD) == 0) + { + #ifdef HAVE_LIBCAP + /* Drop privileges. */ +@@ -176,6 +177,13 @@ main (int argc, char *argv[]) + + /* We aren't going to be using privileges, so drop them right now. */ + setuid (uid); ++#ifdef HAVE_LIBCAP ++ cap_t caps = cap_init (); ++ if (caps == NULL) ++ error (1, errno, "cap_init"); ++ cap_set_proc (caps); ++ cap_free (caps); ++#endif + + /* Set locale via LC_ALL. */ + setlocale (LC_ALL, ""); +@@ -195,9 +203,5 @@ main (int argc, char *argv[]) + return EXIT_FAILURE; + } + +- /* Check if we are properly installed. */ +- if (euid != 0) +- error (FAIL_EXEC, 0, gettext ("needs to be installed setuid `root'")); +- + return EXIT_SUCCESS; + } +--- glibc-2.13-16-gedf9294/malloc/mcheck.c ++++ glibc-2.13.90-4/malloc/mcheck.c @@ -25,10 +25,26 @@ # include # include @@ -1343,8 +2036,8 @@ old_free_hook = __free_hook; __free_hook = freehook; ---- glibc-2.13-6-g3321010/manual/libc.texinfo -+++ glibc-2.13.90-1/manual/libc.texinfo +--- glibc-2.13-16-gedf9294/manual/libc.texinfo ++++ glibc-2.13.90-4/manual/libc.texinfo @@ -5,7 +5,7 @@ @c setchapternewpage odd @@ -1354,8 +2047,8 @@ @direntry * Libc: (libc). C library. @end direntry ---- glibc-2.13-6-g3321010/misc/sys/cdefs.h -+++ glibc-2.13.90-1/misc/sys/cdefs.h +--- glibc-2.13-16-gedf9294/misc/sys/cdefs.h ++++ glibc-2.13.90-4/misc/sys/cdefs.h @@ -132,7 +132,10 @@ #define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) #define __bos0(ptr) __builtin_object_size (ptr, 0) @@ -1399,8 +2092,8 @@ # define __va_arg_pack() __builtin_va_arg_pack () # define __va_arg_pack_len() __builtin_va_arg_pack_len () #endif ---- glibc-2.13-6-g3321010/nis/Makefile -+++ glibc-2.13.90-1/nis/Makefile +--- glibc-2.13-16-gedf9294/nis/Makefile ++++ glibc-2.13.90-4/nis/Makefile @@ -69,6 +69,8 @@ libnss_nisplus-inhibit-o = $(filter-out .os,$(object-suffixes)) include ../Rules @@ -1410,8 +2103,8 @@ $(objpfx)libnss_compat.so: $(objpfx)libnsl.so$(libnsl.so-version) $(objpfx)libnss_nis.so: $(objpfx)libnsl.so$(libnsl.so-version) \ ---- glibc-2.13-6-g3321010/nis/nss -+++ glibc-2.13.90-1/nis/nss +--- glibc-2.13-16-gedf9294/nis/nss ++++ glibc-2.13.90-4/nis/nss @@ -25,7 +25,7 @@ # memory with every getXXent() call. Otherwise each getXXent() call # might result into a network communication with the server to get @@ -1421,8 +2114,8 @@ # # ADJUNCT_AS_SHADOW # If set to TRUE, the passwd routines in the NIS NSS module will not ---- glibc-2.13-6-g3321010/nptl/ChangeLog -+++ glibc-2.13.90-1/nptl/ChangeLog +--- glibc-2.13-16-gedf9294/nptl/ChangeLog ++++ glibc-2.13.90-4/nptl/ChangeLog @@ -3991,6 +3991,15 @@ Use __sigfillset. Document that sigfillset does the right thing wrt to SIGSETXID. @@ -1463,8 +2156,8 @@ 2003-07-25 Jakub Jelinek * tst-cancel17.c (do_test): Check if aio_cancel failed. ---- glibc-2.13-6-g3321010/nptl/Makefile -+++ glibc-2.13.90-1/nptl/Makefile +--- glibc-2.13-16-gedf9294/nptl/Makefile ++++ glibc-2.13.90-4/nptl/Makefile @@ -342,7 +342,8 @@ endif extra-objs += $(crti-objs) $(crtn-objs) omit-deps += crti crtn @@ -1497,8 +2190,8 @@ else $(addprefix $(objpfx),$(tests) $(test-srcs)): $(objpfx)libpthread.a endif ---- glibc-2.13-6-g3321010/nptl/Versions -+++ glibc-2.13.90-1/nptl/Versions +--- glibc-2.13-16-gedf9294/nptl/Versions ++++ glibc-2.13.90-4/nptl/Versions @@ -30,6 +30,7 @@ libc { __libc_alloca_cutoff; # Internal libc interface to libpthread @@ -1507,8 +2200,8 @@ } } ---- glibc-2.13-6-g3321010/nptl/allocatestack.c -+++ glibc-2.13.90-1/nptl/allocatestack.c +--- glibc-2.13-16-gedf9294/nptl/allocatestack.c ++++ glibc-2.13.90-4/nptl/allocatestack.c @@ -994,7 +994,16 @@ setxid_mark_thread (struct xid_command *cmdp, struct pthread *t) /* If the thread is exiting right now, ignore it. */ @@ -1527,8 +2220,8 @@ } while (atomic_compare_and_exchange_bool_acq (&t->cancelhandling, ch | SETXID_BITMASK, ch)); ---- glibc-2.13-6-g3321010/nptl/nptl-init.c -+++ glibc-2.13.90-1/nptl/nptl-init.c +--- glibc-2.13-16-gedf9294/nptl/nptl-init.c ++++ glibc-2.13.90-4/nptl/nptl-init.c @@ -396,7 +396,7 @@ __pthread_initialize_minimal_internal (void) /* Determine the default allowed stack size. This is the size used in case the user does not specify one. */ @@ -1538,8 +2231,8 @@ || limit.rlim_cur == RLIM_INFINITY) /* The system limit is not usable. Use an architecture-specific default. */ ---- glibc-2.13-6-g3321010/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h -+++ glibc-2.13.90-1/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h +--- glibc-2.13-16-gedf9294/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h ++++ glibc-2.13.90-4/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h @@ -189,4 +189,7 @@ /* Typed memory objects are not available. */ #define _POSIX_TYPED_MEMORY_OBJECTS -1 @@ -1548,8 +2241,8 @@ +#define _XOPEN_STREAMS -1 + #endif /* bits/posix_opt.h */ ---- glibc-2.13-6-g3321010/nptl/sysdeps/unix/sysv/linux/i386/Versions -+++ glibc-2.13.90-1/nptl/sysdeps/unix/sysv/linux/i386/Versions +--- glibc-2.13-16-gedf9294/nptl/sysdeps/unix/sysv/linux/i386/Versions ++++ glibc-2.13.90-4/nptl/sysdeps/unix/sysv/linux/i386/Versions @@ -0,0 +1,6 @@ +libc { + GLIBC_PRIVATE { @@ -1557,8 +2250,8 @@ + __uname; + } +} ---- glibc-2.13-6-g3321010/nptl/sysdeps/unix/sysv/linux/i386/smp.h -+++ glibc-2.13.90-1/nptl/sysdeps/unix/sysv/linux/i386/smp.h +--- glibc-2.13-16-gedf9294/nptl/sysdeps/unix/sysv/linux/i386/smp.h ++++ glibc-2.13.90-4/nptl/sysdeps/unix/sysv/linux/i386/smp.h @@ -37,7 +37,7 @@ is_smp_system (void) char *cp; @@ -1568,8 +2261,8 @@ cp = u.uts.version; else { ---- glibc-2.13-6-g3321010/nptl/sysdeps/unix/sysv/linux/kernel-features.h -+++ glibc-2.13.90-1/nptl/sysdeps/unix/sysv/linux/kernel-features.h +--- glibc-2.13-16-gedf9294/nptl/sysdeps/unix/sysv/linux/kernel-features.h ++++ glibc-2.13.90-4/nptl/sysdeps/unix/sysv/linux/kernel-features.h @@ -0,0 +1,6 @@ +#include_next + @@ -1577,8 +2270,8 @@ +#ifndef __ASSUME_CLONE_THREAD_FLAGS +# define __ASSUME_CLONE_THREAD_FLAGS 1 +#endif ---- glibc-2.13-6-g3321010/nptl/tst-stackguard1.c -+++ glibc-2.13.90-1/nptl/tst-stackguard1.c +--- glibc-2.13-16-gedf9294/nptl/tst-stackguard1.c ++++ glibc-2.13.90-4/nptl/tst-stackguard1.c @@ -190,17 +190,21 @@ do_test (void) the 16 runs, something is very wrong. */ int ndifferences = 0; @@ -1603,8 +2296,8 @@ { puts ("stack guard canaries are not randomized enough"); puts ("nor equal to the default canary value"); ---- glibc-2.13-6-g3321010/nscd/nscd.conf -+++ glibc-2.13.90-1/nscd/nscd.conf +--- glibc-2.13-16-gedf9294/nscd/nscd.conf ++++ glibc-2.13.90-4/nscd/nscd.conf @@ -33,7 +33,7 @@ # logfile /var/log/nscd.log # threads 4 @@ -1614,8 +2307,8 @@ # stat-user somebody debug-level 0 # reload-count 5 ---- glibc-2.13-6-g3321010/nscd/nscd.init -+++ glibc-2.13.90-1/nscd/nscd.init +--- glibc-2.13-16-gedf9294/nscd/nscd.init ++++ glibc-2.13.90-4/nscd/nscd.init @@ -9,6 +9,7 @@ # slow naming services like NIS, NIS+, LDAP, or hesiod. # processname: /usr/sbin/nscd @@ -1692,8 +2385,8 @@ ;; *) echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}" ---- glibc-2.13-6-g3321010/nss/Makefile -+++ glibc-2.13.90-1/nss/Makefile +--- glibc-2.13-16-gedf9294/nss/Makefile ++++ glibc-2.13.90-4/nss/Makefile @@ -75,6 +75,7 @@ endif include ../Rules @@ -1702,8 +2395,8 @@ ifeq (yes,$(build-static-nss)) $(objpfx)getent: $(objpfx)libnss_files.a ---- glibc-2.13-6-g3321010/nss/nss_files/files-XXX.c -+++ glibc-2.13.90-1/nss/nss_files/files-XXX.c +--- glibc-2.13-16-gedf9294/nss/nss_files/files-XXX.c ++++ glibc-2.13.90-4/nss/nss_files/files-XXX.c @@ -1,5 +1,5 @@ /* Common code for file-based databases in nss_files module. - Copyright (C) 1996-1999,2001,2002,2004,2007,2008 @@ -1720,8 +2413,8 @@ int parse_result; if (buflen < sizeof *data + 2) ---- glibc-2.13-6-g3321010/posix/Makefile -+++ glibc-2.13.90-1/posix/Makefile +--- glibc-2.13-16-gedf9294/posix/Makefile ++++ glibc-2.13.90-4/posix/Makefile @@ -325,15 +325,8 @@ $(inst_libexecdir)/getconf: $(inst_bindir)/getconf \ mv -f $@/$$spec.new $@/$$spec; \ done < $(objpfx)getconf.speclist @@ -1742,8 +2435,8 @@ + | sed -n -e '/START_OF_STRINGS/,$${/\(POSIX_V[67]\|_XBS5\)_/{s/^[^"]*"//;s/".*$$//;p}}' \ + > $@.new mv -f $@.new $@ ---- glibc-2.13-6-g3321010/posix/gai.conf -+++ glibc-2.13.90-1/posix/gai.conf +--- glibc-2.13-16-gedf9294/posix/gai.conf ++++ glibc-2.13.90-4/posix/gai.conf @@ -41,7 +41,7 @@ # # precedence @@ -1768,8 +2461,8 @@ #scopev4 ::ffff:0.0.0.0/96 14 +# +# This is what the Red Hat setting currently uses. ---- glibc-2.13-6-g3321010/posix/getconf.speclist.h -+++ glibc-2.13.90-1/posix/getconf.speclist.h +--- glibc-2.13-16-gedf9294/posix/getconf.speclist.h ++++ glibc-2.13.90-4/posix/getconf.speclist.h @@ -0,0 +1,39 @@ +#include +const char *START_OF_STRINGS = @@ -1810,8 +2503,8 @@ +"XBS5_LPBIG_OFFBIG" +#endif +""; ---- glibc-2.13-6-g3321010/posix/regcomp.c -+++ glibc-2.13.90-1/posix/regcomp.c +--- glibc-2.13-16-gedf9294/posix/regcomp.c ++++ glibc-2.13.90-4/posix/regcomp.c @@ -2745,40 +2745,29 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, /* Local function for parse_bracket_exp used in _LIBC environement. @@ -1943,8 +2636,8 @@ { /* No valid character, treat it as a normal character. */ ---- glibc-2.13-6-g3321010/resolv/Makefile -+++ glibc-2.13.90-1/resolv/Makefile +--- glibc-2.13-16-gedf9294/resolv/Makefile ++++ glibc-2.13.90-4/resolv/Makefile @@ -77,6 +77,7 @@ CPPFLAGS += -Dgethostbyname=res_gethostbyname \ -Dgetnetbyaddr=res_getnetbyaddr @@ -1953,8 +2646,8 @@ # The BIND code elicits some harmless warnings. +cflags += -Wno-strict-prototypes -Wno-write-strings ---- glibc-2.13-6-g3321010/resource/getrlimit.c -+++ glibc-2.13.90-1/resource/getrlimit.c +--- glibc-2.13-16-gedf9294/resource/getrlimit.c ++++ glibc-2.13.90-4/resource/getrlimit.c @@ -28,6 +28,7 @@ __getrlimit (enum __rlimit_resource resource, struct rlimit *rlimits) __set_errno (ENOSYS); return -1; @@ -1963,8 +2656,8 @@ weak_alias (__getrlimit, getrlimit) stub_warning (getrlimit) ---- glibc-2.13-6-g3321010/stdio-common/vfprintf.c -+++ glibc-2.13.90-1/stdio-common/vfprintf.c +--- glibc-2.13-16-gedf9294/stdio-common/vfprintf.c ++++ glibc-2.13.90-4/stdio-common/vfprintf.c @@ -1160,41 +1160,9 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap) else if (!is_long && spec != L_('S')) \ { \ @@ -2010,8 +2703,8 @@ else \ len = strlen (string); \ } \ ---- glibc-2.13-6-g3321010/streams/Makefile -+++ glibc-2.13.90-1/streams/Makefile +--- glibc-2.13-16-gedf9294/streams/Makefile ++++ glibc-2.13.90-4/streams/Makefile @@ -21,7 +21,7 @@ # subdir := streams @@ -2021,8 +2714,8 @@ routines = isastream getmsg getpmsg putmsg putpmsg fattach fdetach include ../Rules ---- glibc-2.13-6-g3321010/sunrpc/Makefile -+++ glibc-2.13.90-1/sunrpc/Makefile +--- glibc-2.13-16-gedf9294/sunrpc/Makefile ++++ glibc-2.13.90-4/sunrpc/Makefile @@ -129,6 +129,10 @@ CFLAGS-openchild.c = -fexceptions CPPFLAGS += -D_RPC_THREAD_SAFE_ @@ -2034,8 +2727,8 @@ include ../Rules $(objpfx)rpcgen: $(addprefix $(objpfx),$(rpcgen-objs)) \ ---- glibc-2.13-6-g3321010/sysdeps/generic/dl-cache.h -+++ glibc-2.13.90-1/sysdeps/generic/dl-cache.h +--- glibc-2.13-16-gedf9294/sysdeps/generic/dl-cache.h ++++ glibc-2.13.90-4/sysdeps/generic/dl-cache.h @@ -36,6 +36,14 @@ # define add_system_dir(dir) add_dir (dir) #endif @@ -2051,8 +2744,8 @@ #define CACHEMAGIC "ld.so-1.7.0" /* libc5 and glibc 2.0/2.1 use the same format. For glibc 2.2 another ---- glibc-2.13-6-g3321010/sysdeps/i386/Makefile -+++ glibc-2.13.90-1/sysdeps/i386/Makefile +--- glibc-2.13-16-gedf9294/sysdeps/i386/Makefile ++++ glibc-2.13.90-4/sysdeps/i386/Makefile @@ -2,6 +2,8 @@ # Every i386 port in use uses gas syntax (I think). asm-CPPFLAGS += -DGAS_SYNTAX @@ -2077,8 +2770,30 @@ endif ifeq ($(subdir),elf) ---- glibc-2.13-6-g3321010/sysdeps/i386/i686/multiarch/strspn.S -+++ glibc-2.13.90-1/sysdeps/i386/i686/multiarch/strspn.S +--- glibc-2.13-16-gedf9294/sysdeps/i386/i686/Makefile ++++ glibc-2.13.90-4/sysdeps/i386/i686/Makefile +@@ -9,19 +9,3 @@ stack-align-test-flags += -msse + ifeq ($(subdir),string) + sysdep_routines += cacheinfo + endif +- +-ifeq (yes,$(config-asflags-i686)) +-CFLAGS-.o += -Wa,-mtune=i686 +-CFLAGS-.os += -Wa,-mtune=i686 +-CFLAGS-.op += -Wa,-mtune=i686 +-CFLAGS-.og += -Wa,-mtune=i686 +-CFLAGS-.ob += -Wa,-mtune=i686 +-CFLAGS-.oS += -Wa,-mtune=i686 +- +-ASFLAGS-.o += -Wa,-mtune=i686 +-ASFLAGS-.os += -Wa,-mtune=i686 +-ASFLAGS-.op += -Wa,-mtune=i686 +-ASFLAGS-.og += -Wa,-mtune=i686 +-ASFLAGS-.ob += -Wa,-mtune=i686 +-ASFLAGS-.oS += -Wa,-mtune=i686 +-endif +--- glibc-2.13-16-gedf9294/sysdeps/i386/i686/multiarch/strspn.S ++++ glibc-2.13.90-4/sysdeps/i386/i686/multiarch/strspn.S @@ -76,8 +76,8 @@ END(strspn) # define ENTRY(name) \ .type __strspn_ia32, @function; \ @@ -2090,8 +2805,8 @@ CALL_MCOUNT # undef END # define END(name) \ ---- glibc-2.13-6-g3321010/sysdeps/ia64/Makefile -+++ glibc-2.13.90-1/sysdeps/ia64/Makefile +--- glibc-2.13-16-gedf9294/sysdeps/ia64/Makefile ++++ glibc-2.13.90-4/sysdeps/ia64/Makefile @@ -12,8 +12,8 @@ elide-routines.os += hp-timing ifeq (yes,$(build-shared)) @@ -2103,8 +2818,8 @@ endif endif ---- glibc-2.13-6-g3321010/sysdeps/ia64/ia64libgcc.S -+++ glibc-2.13.90-1/sysdeps/ia64/ia64libgcc.S +--- glibc-2.13-16-gedf9294/sysdeps/ia64/ia64libgcc.S ++++ glibc-2.13.90-4/sysdeps/ia64/ia64libgcc.S @@ -1,350 +0,0 @@ -/* From the Intel IA-64 Optimization Guide, choose the minimum latency - alternative. */ @@ -2456,8 +3171,8 @@ - .symver ___multi3, __multi3@GLIBC_2.2 - -#endif ---- glibc-2.13-6-g3321010/sysdeps/ia64/libgcc-compat.c -+++ glibc-2.13.90-1/sysdeps/ia64/libgcc-compat.c +--- glibc-2.13-16-gedf9294/sysdeps/ia64/libgcc-compat.c ++++ glibc-2.13.90-4/sysdeps/ia64/libgcc-compat.c @@ -0,0 +1,84 @@ +/* pre-.hidden libgcc compatibility + Copyright (C) 2002 Free Software Foundation, Inc. @@ -2543,16 +3258,16 @@ +symbol_version (INTUSE (__multi3), __multi3, GLIBC_2.2); + +#endif ---- glibc-2.13-6-g3321010/sysdeps/mach/hurd/getrlimit.c -+++ glibc-2.13.90-1/sysdeps/mach/hurd/getrlimit.c +--- glibc-2.13-16-gedf9294/sysdeps/mach/hurd/getrlimit.c ++++ glibc-2.13.90-4/sysdeps/mach/hurd/getrlimit.c @@ -44,4 +44,5 @@ __getrlimit (enum __rlimit_resource resource, struct rlimit *rlimits) return 0; } +libc_hidden_def (__getrlimit) weak_alias (__getrlimit, getrlimit) ---- glibc-2.13-6-g3321010/sysdeps/posix/getaddrinfo.c -+++ glibc-2.13.90-1/sysdeps/posix/getaddrinfo.c +--- glibc-2.13-16-gedf9294/sysdeps/posix/getaddrinfo.c ++++ glibc-2.13.90-4/sysdeps/posix/getaddrinfo.c @@ -1101,10 +1101,12 @@ static const struct scopeentry /* Link-local addresses: scope 2. */ { { { 169, 254, 0, 0 } }, htonl_c (0xffff0000), 2 }, @@ -2566,8 +3281,8 @@ /* Default: scope 14. */ { { { 0, 0, 0, 0 } }, htonl_c (0x00000000), 14 } }; ---- glibc-2.13-6-g3321010/sysdeps/powerpc/powerpc64/Makefile -+++ glibc-2.13.90-1/sysdeps/powerpc/powerpc64/Makefile +--- glibc-2.13-16-gedf9294/sysdeps/powerpc/powerpc64/Makefile ++++ glibc-2.13.90-4/sysdeps/powerpc/powerpc64/Makefile @@ -30,6 +30,7 @@ ifneq ($(elf),no) # we use -fpic instead which is much better. CFLAGS-initfini.s += -fpic -O1 @@ -2576,16 +3291,16 @@ endif ifeq ($(subdir),elf) ---- glibc-2.13-6-g3321010/sysdeps/powerpc/powerpc64/elf/Makefile -+++ glibc-2.13.90-1/sysdeps/powerpc/powerpc64/elf/Makefile +--- glibc-2.13-16-gedf9294/sysdeps/powerpc/powerpc64/elf/Makefile ++++ glibc-2.13.90-4/sysdeps/powerpc/powerpc64/elf/Makefile @@ -9,3 +9,5 @@ CFLAGS-rtld-mempcpy.os = $(no-special-regs) CFLAGS-rtld-memmove.os = $(no-special-regs) CFLAGS-rtld-memchr.os = $(no-special-regs) CFLAGS-rtld-strnlen.os = $(no-special-regs) + +CFLAGS-gmon-start.c = -fno-strict-aliasing ---- glibc-2.13-6-g3321010/sysdeps/unix/nice.c -+++ glibc-2.13.90-1/sysdeps/unix/nice.c +--- glibc-2.13-16-gedf9294/sysdeps/unix/nice.c ++++ glibc-2.13.90-4/sysdeps/unix/nice.c @@ -42,7 +42,12 @@ nice (int incr) __set_errno (save); } @@ -2600,8 +3315,8 @@ if (result == -1) { if (errno == EACCES) ---- glibc-2.13-6-g3321010/sysdeps/unix/sysv/linux/check_pf.c -+++ glibc-2.13.90-1/sysdeps/unix/sysv/linux/check_pf.c +--- glibc-2.13-16-gedf9294/sysdeps/unix/sysv/linux/check_pf.c ++++ glibc-2.13.90-4/sysdeps/unix/sysv/linux/check_pf.c @@ -27,13 +27,10 @@ #include #include @@ -2617,8 +3332,8 @@ #ifndef IFA_F_HOMEADDRESS # define IFA_F_HOMEADDRESS 0 ---- glibc-2.13-6-g3321010/sysdeps/unix/sysv/linux/dl-osinfo.h -+++ glibc-2.13.90-1/sysdeps/unix/sysv/linux/dl-osinfo.h +--- glibc-2.13-16-gedf9294/sysdeps/unix/sysv/linux/dl-osinfo.h ++++ glibc-2.13.90-4/sysdeps/unix/sysv/linux/dl-osinfo.h @@ -17,10 +17,13 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ @@ -2666,8 +3381,8 @@ } else #endif ---- glibc-2.13-6-g3321010/sysdeps/unix/sysv/linux/futimesat.c -+++ glibc-2.13.90-1/sysdeps/unix/sysv/linux/futimesat.c +--- glibc-2.13-16-gedf9294/sysdeps/unix/sysv/linux/futimesat.c ++++ glibc-2.13.90-4/sysdeps/unix/sysv/linux/futimesat.c @@ -37,14 +37,14 @@ futimesat (fd, file, tvp) { int result; @@ -2710,8 +3425,8 @@ { size_t filelen = strlen (file); if (__builtin_expect (filelen == 0, 0)) ---- glibc-2.13-6-g3321010/sysdeps/unix/sysv/linux/getpagesize.c -+++ glibc-2.13.90-1/sysdeps/unix/sysv/linux/getpagesize.c +--- glibc-2.13-16-gedf9294/sysdeps/unix/sysv/linux/getpagesize.c ++++ glibc-2.13.90-4/sysdeps/unix/sysv/linux/getpagesize.c @@ -28,7 +28,7 @@ int __getpagesize () @@ -2721,8 +3436,8 @@ assert (GLRO(dl_pagesize) != 0); return GLRO(dl_pagesize); #else ---- glibc-2.13-6-g3321010/sysdeps/unix/sysv/linux/i386/dl-cache.h -+++ glibc-2.13.90-1/sysdeps/unix/sysv/linux/i386/dl-cache.h +--- glibc-2.13-16-gedf9294/sysdeps/unix/sysv/linux/i386/dl-cache.h ++++ glibc-2.13.90-4/sysdeps/unix/sysv/linux/i386/dl-cache.h @@ -0,0 +1,59 @@ +/* Support for reading /etc/ld.so.cache files written by Linux ldconfig. + Copyright (C) 2004 Free Software Foundation, Inc. @@ -2783,16 +3498,16 @@ + } while (0) + +#include_next ---- glibc-2.13-6-g3321010/sysdeps/unix/sysv/linux/i386/getrlimit.c -+++ glibc-2.13.90-1/sysdeps/unix/sysv/linux/i386/getrlimit.c +--- glibc-2.13-16-gedf9294/sysdeps/unix/sysv/linux/i386/getrlimit.c ++++ glibc-2.13.90-4/sysdeps/unix/sysv/linux/i386/getrlimit.c @@ -79,4 +79,5 @@ __new_getrlimit (enum __rlimit_resource resource, struct rlimit *rlimits) } weak_alias (__new_getrlimit, __getrlimit); +libc_hidden_weak (__getrlimit) versioned_symbol (libc, __new_getrlimit, getrlimit, GLIBC_2_2); ---- glibc-2.13-6-g3321010/sysdeps/unix/sysv/linux/ia64/dl-cache.h -+++ glibc-2.13.90-1/sysdeps/unix/sysv/linux/ia64/dl-cache.h +--- glibc-2.13-16-gedf9294/sysdeps/unix/sysv/linux/ia64/dl-cache.h ++++ glibc-2.13.90-4/sysdeps/unix/sysv/linux/ia64/dl-cache.h @@ -22,4 +22,31 @@ #define _dl_cache_check_flags(flags) \ ((flags) == _DL_CACHE_DEFAULT_ID) @@ -2825,29 +3540,29 @@ + } while (0) + #include_next ---- glibc-2.13-6-g3321010/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c -+++ glibc-2.13.90-1/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c +--- glibc-2.13-16-gedf9294/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c ++++ glibc-2.13.90-4/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c @@ -0,0 +1,5 @@ +#ifdef IS_IN_ldconfig +#include +#else +#include +#endif ---- glibc-2.13-6-g3321010/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h -+++ glibc-2.13.90-1/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h +--- glibc-2.13-16-gedf9294/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h ++++ glibc-2.13.90-4/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h @@ -0,0 +1,5 @@ +#ifdef IS_IN_ldconfig +#include +#else +#include +#endif ---- glibc-2.13-6-g3321010/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed -+++ glibc-2.13.90-1/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed +--- glibc-2.13-16-gedf9294/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed ++++ glibc-2.13.90-4/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed @@ -1 +1 @@ -s_^\(RTLDLIST=\)\([^ ]*\)-ia64\(\.so\.[0-9.]*\)[ ]*$_\1"\2-ia64\3 \2\3"_ +s_^\(RTLDLIST=\)\([^ ]*\)-ia64\(\.so\.[0-9.]*\)[ ]*$_\1"\2-ia64\3 /emul/ia32-linux\2\3"_ ---- glibc-2.13-6-g3321010/sysdeps/unix/sysv/linux/netlinkaccess.h -+++ glibc-2.13.90-1/sysdeps/unix/sysv/linux/netlinkaccess.h +--- glibc-2.13-16-gedf9294/sysdeps/unix/sysv/linux/netlinkaccess.h ++++ glibc-2.13.90-4/sysdeps/unix/sysv/linux/netlinkaccess.h @@ -25,6 +25,24 @@ #include @@ -2873,8 +3588,8 @@ struct netlink_res { ---- glibc-2.13-6-g3321010/sysdeps/unix/sysv/linux/paths.h -+++ glibc-2.13.90-1/sysdeps/unix/sysv/linux/paths.h +--- glibc-2.13-16-gedf9294/sysdeps/unix/sysv/linux/paths.h ++++ glibc-2.13.90-4/sysdeps/unix/sysv/linux/paths.h @@ -62,7 +62,7 @@ #define _PATH_TTY "/dev/tty" #define _PATH_UNIX "/boot/vmlinux" @@ -2884,8 +3599,8 @@ #define _PATH_WTMP "/var/log/wtmp" /* Provide trailing slash, since mostly used for building pathnames. */ ---- glibc-2.13-6-g3321010/sysdeps/unix/sysv/linux/tcsetattr.c -+++ glibc-2.13.90-1/sysdeps/unix/sysv/linux/tcsetattr.c +--- glibc-2.13-16-gedf9294/sysdeps/unix/sysv/linux/tcsetattr.c ++++ glibc-2.13.90-4/sysdeps/unix/sysv/linux/tcsetattr.c @@ -49,6 +49,7 @@ tcsetattr (fd, optional_actions, termios_p) { struct __kernel_termios k_termios; @@ -2931,8 +3646,8 @@ + return retval; } libc_hidden_def (tcsetattr) ---- glibc-2.13-6-g3321010/timezone/zic.c -+++ glibc-2.13.90-1/timezone/zic.c +--- glibc-2.13-16-gedf9294/timezone/zic.c ++++ glibc-2.13.90-4/timezone/zic.c @@ -1921,7 +1921,7 @@ const int zonecount; if (stdrp != NULL && stdrp->r_hiyear == 2037) return; diff --git a/glibc-nopl.patch b/glibc-nopl.patch deleted file mode 100644 index 67cf0da..0000000 --- a/glibc-nopl.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- glibc-2.13/sysdeps/i386/i686/Makefile -+++ glibc-2.13-1/sysdeps/i386/i686/Makefile -@@ -9,19 +9,3 @@ stack-align-test-flags += -msse - ifeq ($(subdir),string) - sysdep_routines += cacheinfo - endif -- --ifeq (yes,$(config-asflags-i686)) --CFLAGS-.o += -Wa,-mtune=i686 --CFLAGS-.os += -Wa,-mtune=i686 --CFLAGS-.op += -Wa,-mtune=i686 --CFLAGS-.og += -Wa,-mtune=i686 --CFLAGS-.ob += -Wa,-mtune=i686 --CFLAGS-.oS += -Wa,-mtune=i686 -- --ASFLAGS-.o += -Wa,-mtune=i686 --ASFLAGS-.os += -Wa,-mtune=i686 --ASFLAGS-.op += -Wa,-mtune=i686 --ASFLAGS-.og += -Wa,-mtune=i686 --ASFLAGS-.ob += -Wa,-mtune=i686 --ASFLAGS-.oS += -Wa,-mtune=i686 --endif diff --git a/glibc.spec b/glibc.spec index 75db71b..a5b41e7 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,6 +1,6 @@ -%define glibcsrcdir glibc-2.13-6-g3321010 +%define glibcsrcdir glibc-2.13-16-gedf9294 %define glibcversion 2.13.90 -%define glibcportsdir glibc-ports-2.12-54-gbd44238 +%define glibcportsdir glibc-ports-2.13 ### glibc.spec.in follows: %define run_glibc_tests 1 %define auxarches athlon alphaev6 @@ -18,13 +18,14 @@ %define buildpower6 0 %endif %define rtkaioarches %{ix86} x86_64 ia64 ppc ppc64 s390 s390x -%define debuginfocommonarches alpha alphaev6 +%define biarcharches %{ix86} x86_64 ppc ppc64 +%define debuginfocommonarches %{biarcharches} alpha alphaev6 %define multiarcharches ppc ppc64 %{ix86} x86_64 %{sparc} Summary: The GNU libc libraries Name: glibc Version: %{glibcversion} -Release: 3 +Release: 4 # GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries. # Things that are linked directly into dynamically linked programs # and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional @@ -38,7 +39,6 @@ Source1: %{?glibc_release_url}%{glibcportsdir}.tar.xz Source2: %{glibcsrcdir}-fedora.tar.xz Patch0: %{name}-fedora.patch Patch1: %{name}-ia64-lib64.patch -Patch2: %{name}-nopl.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Obsoletes: glibc-profile < 2.4 Provides: ldconfig @@ -252,7 +252,6 @@ rm -rf %{glibcportsdir} %patch1 -p1 %endif %endif -%patch2 -p1 # A lot of programs still misuse memcpy when they have to use # memmove. The memcpy implementation below is not tolerant at @@ -795,12 +794,12 @@ eu-readelf -hS $RPM_BUILD_ROOT/usr/bin/getconf $RPM_BUILD_ROOT/usr/libexec/getco find_debuginfo_args='--strict-build-id -g' %ifarch %{debuginfocommonarches} find_debuginfo_args="$find_debuginfo_args \ - -l common.filelist -l utils.filelist -l nscd.filelist \ + -l common.filelist -l utils.filelist -l nscd.filelist -p '.*/sbin/.*' \ -o debuginfocommon.filelist \ -l rpm.filelist -l nosegneg.filelist \ " %endif -/usr/lib/rpm/find-debuginfo.sh $find_debuginfo_args -o debuginfo.filelist +eval /usr/lib/rpm/find-debuginfo.sh "$find_debuginfo_args" -o debuginfo.filelist list_debug_archives() { @@ -810,6 +809,17 @@ list_debug_archives() %ifarch %{debuginfocommonarches} +sed -i '\#^%{_prefix}/src/debug/#d' debuginfocommon.filelist +find $RPM_BUILD_ROOT%{_prefix}/src/debug \ + \( -type d -printf '%%%%dir ' \) , \ + -printf '%{_prefix}/src/debug/%%P\n' > debuginfocommon.sources + +%ifarch %{biarcharches} + +cat debuginfocommon.sources >> debuginfo.filelist + +%else + %ifarch %{ix86} %define basearch i686 %endif @@ -820,11 +830,6 @@ list_debug_archives() %define basearch sparc %endif -sed -i '\#^%{_prefix}/src/debug/#d' debuginfocommon.filelist -find $RPM_BUILD_ROOT%{_prefix}/src/debug \ - \( -type d -printf '%%%%dir ' \) , \ - -printf '%{_prefix}/src/debug/%%P\n' > debuginfocommon.sources - # auxarches get only these few source files auxarches_debugsources=\ '/(generic|linux|%{basearch}|nptl(_db)?)/|/%{glibcsrcdir}/build|/dl-osinfo\.h' @@ -834,6 +839,8 @@ egrep "$auxarches_debugsources" debuginfocommon.sources >> debuginfo.filelist egrep -v "$auxarches_debugsources" \ debuginfocommon.sources >> debuginfocommon.filelist +%endif + list_debug_archives >> debuginfocommon.filelist %endif @@ -990,7 +997,7 @@ rm -f *.filelist* %attr(0644,root,root) %verify(not md5 size mtime mode) %ghost %config(missingok,noreplace) %{_prefix}/lib/locale/locale-archive %dir %attr(755,root,root) /etc/default %verify(not md5 size mtime) %config(noreplace) /etc/default/nss -%attr(4711,root,root) %{_prefix}/libexec/pt_chown +%attr(755,root,root) %caps(cap_chown,cap_fowner=pe) %{_prefix}/libexec/pt_chown %doc documentation/* %files -f devel.filelist devel @@ -1036,11 +1043,17 @@ rm -f *.filelist* %endif %changelog -* Tue Feb 08 2011 Fedora Release Engineering - 2.13.90-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Mon Feb 7 2011 Jan Kratochvil - 2.13.90-2 -- Put back the assembler "workaround" - to disable the nopl instruction. +* Mon Feb 14 2011 Andreas Schwab - 2.13.90-4 +- Update from master + - Update sysdeps/unix/sysv/linux/sparc/bits/socket.h + - Synchronize generic bits/sched.h cpu_set_t with Linux implementation + - Schedule nscd cache pruning more accurately from re-added values + - Fix passing symbol value to pltexit callbacks when ld.so auditing + - Fix range error handling in sgetspent +- Revert "Fix ordering of DSO constructors and destructors" (#673014) +- Create debuginfo-common on biarch archs +- Reinstall assembler workaround. +- Replace setuid by file capabilities (#646469) * Tue Jan 25 2011 Andreas Schwab - 2.13.90-1 - Update from master diff --git a/sources b/sources index 8fafd7a..7f34c66 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -11e71635dabc55410f7100fcd18fd47f glibc-2.13-6-g3321010-fedora.tar.xz -66c4127428843137291cb14fe0a19345 glibc-2.13-6-g3321010.tar.xz -62a6f9e2a8d2afb66f7672a2b9a6315c glibc-ports-2.12-54-gbd44238.tar.xz +54251e6ea0a9268973157551d4c3acf5 glibc-2.13-16-gedf9294-fedora.tar.xz +2601e9177188d796377966af34a8b246 glibc-2.13-16-gedf9294.tar.xz +e6e1643aab186f1b1176420f173fc790 glibc-ports-2.13.tar.xz