[glibc/f14/master] 2.12.90-13

Andreas Schwab schwab at fedoraproject.org
Mon Sep 27 14:49:25 UTC 2010


commit 26ee51a75764602585725a993236054ef65887c2
Author: Andreas Schwab <schwab at redhat.com>
Date:   Mon Sep 27 16:48:52 2010 +0200

    2.12.90-13

 .gitignore         |    6 +-
 glibc-fedora.patch |  673 ++++++++++++++++++++++++++++++++++++++--------------
 glibc.spec         |   24 ++-
 sources            |    6 +-
 4 files changed, 520 insertions(+), 189 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 00400bc..51a21ac 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,3 @@
-/glibc-ports-2.12-26-gcf64098.tar.xz
-/glibc-2.12-149-gc044aa7-fedora.tar.xz
-/glibc-2.12-149-gc044aa7.tar.xz
+/glibc-2.12-163-g315970f-fedora.tar.xz
+/glibc-2.12-163-g315970f.tar.xz
+/glibc-ports-2.12-31-g6c14d67.tar.xz
diff --git a/glibc-fedora.patch b/glibc-fedora.patch
index 7f887cc..59bb166 100644
--- a/glibc-fedora.patch
+++ b/glibc-fedora.patch
@@ -1,6 +1,36 @@
---- glibc-2.12-149-gc044aa7/ChangeLog
-+++ glibc-2.12.90-11/ChangeLog
-@@ -1,3 +1,10 @@
+--- glibc-2.12-163-g315970f/ChangeLog
++++ glibc-2.12.90-13/ChangeLog
+@@ -1,3 +1,26 @@
++2010-09-27  Andreas Schwab  <schwab at redhat.com>
++
++	* include/link.h (struct link_map): Add l_free_initfini.
++	* elf/dl-deps.c (_dl_map_object_deps): Set it when assigning
++	l_initfini.
++	* elf/rtld.c (dl_main): Clear it on all objects loaded on startup.
++	* elf/dl-libc.c (free_mem): Free l_initfini if l_free_initfini is
++	set.
++
++	[BZ #11561]
++	* posix/regcomp.c (parse_bracket_exp): When looking up collating
++	elements compare against the byte sequence of it, not its name.
++
++	[BZ #6530]
++	* stdio-common/vfprintf.c (process_string_arg): Revert 2000-07-22
++	change.
++
++	* nss/nss_files/files-XXX.c (internal_getent): Declare linebuflen
++	as size_t.
++
++	* sysdeps/i386/i686/multiarch/strspn.S (ENTRY): Add missing
++	backslash.
++
+ 2010-09-24  Petr Baudis <pasky at suse.cz>
+ 
+ 	* debug/stack_chk_fail_local.c: Add missing licence exception.
+@@ -60,6 +83,13 @@
+ 
+ 	* resolv/res_init.c (__res_vinit): Count the default server we added.
+ 
 +2010-09-13  Andreas Schwab  <schwab at redhat.com>
 +
 +	* Makeconfig (sysd-rules-patterns): Add rtld-%:rtld-%.
@@ -11,7 +41,7 @@
  2010-09-08  Chung-Lin Tang  <cltang at codesourcery.com>
  	    Ulrich Drepper  <drepper at redhat.com>
  
-@@ -736,6 +743,32 @@
+@@ -798,6 +828,32 @@
  	call returning > 0 value.
  	* sysdeps/unix/sysv/linux/getlogin.c (getlogin): Likewise.
  
@@ -44,7 +74,7 @@
  2010-06-07  Andreas Schwab  <schwab at redhat.com>
  
  	* dlfcn/Makefile: Remove explicit dependencies on libc.so and
-@@ -788,6 +821,24 @@
+@@ -850,6 +906,24 @@
  	* hurd/hurd/fd.h (__file_name_lookup_at): Update comment.
  	* sysdeps/mach/hurd/linkat.c (linkat): Pass O_NOLINK in FLAGS.
  
@@ -69,8 +99,8 @@
  2010-05-28  Luis Machado  <luisgpm at br.ibm.com>
  
  	* sysdeps/powerpc/powerpc32/power7/memcpy.S: Exchange srdi for srwi.
---- glibc-2.12-149-gc044aa7/ChangeLog.15
-+++ glibc-2.12.90-11/ChangeLog.15
+--- glibc-2.12-163-g315970f/ChangeLog.15
++++ glibc-2.12.90-13/ChangeLog.15
 @@ -477,6 +477,14 @@
  
  2004-11-26  Jakub Jelinek  <jakub at redhat.com>
@@ -136,8 +166,8 @@
  2004-08-30  Roland McGrath  <roland at frob.com>
  
  	* scripts/extract-abilist.awk: If `lastversion' variable defined, omit
---- glibc-2.12-149-gc044aa7/ChangeLog.16
-+++ glibc-2.12.90-11/ChangeLog.16
+--- glibc-2.12-163-g315970f/ChangeLog.16
++++ glibc-2.12.90-13/ChangeLog.16
 @@ -2042,6 +2042,9 @@
  	(__MATHDECL_2): Use __REDIRECT_NTH instead of __REDIRECT
  	followed by __THROW.
@@ -191,8 +221,8 @@
  2005-07-28  Thomas Schwinge  <schwinge at nic-nac-project.de>
  
  	[BZ #1137]
---- glibc-2.12-149-gc044aa7/ChangeLog.17
-+++ glibc-2.12.90-11/ChangeLog.17
+--- glibc-2.12-163-g315970f/ChangeLog.17
++++ glibc-2.12.90-13/ChangeLog.17
 @@ -256,6 +256,12 @@
  
  	* Makerules (libc-abis): Fix search for libc-abis in add-ons.
@@ -277,8 +307,8 @@
  2006-12-09  Ulrich Drepper  <drepper at redhat.com>
  
  	[BZ #3632]
---- glibc-2.12-149-gc044aa7/Makeconfig
-+++ glibc-2.12.90-11/Makeconfig
+--- glibc-2.12-163-g315970f/Makeconfig
++++ glibc-2.12.90-13/Makeconfig
 @@ -789,12 +789,12 @@ endif
  # The assembler can generate debug information too.
  ifndef ASFLAGS
@@ -315,8 +345,8 @@
  
  endif # Makeconfig not yet included
  
---- glibc-2.12-149-gc044aa7/csu/Makefile
-+++ glibc-2.12.90-11/csu/Makefile
+--- glibc-2.12-163-g315970f/csu/Makefile
++++ glibc-2.12.90-13/csu/Makefile
 @@ -93,7 +93,8 @@ omit-deps += $(crtstuff)
  $(crtstuff:%=$(objpfx)%.o): %.o: %.S $(objpfx)defs.h
  	$(compile.S) -g0 $(ASFLAGS-.os) -o $@
@@ -327,8 +357,8 @@
  
  vpath initfini.c $(sysdirs)
  
---- glibc-2.12-149-gc044aa7/csu/elf-init.c
-+++ glibc-2.12.90-11/csu/elf-init.c
+--- glibc-2.12-163-g315970f/csu/elf-init.c
++++ glibc-2.12.90-13/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;
@@ -353,8 +383,8 @@
  
  /* These function symbols are provided for the .init/.fini section entry
     points automagically by the linker.  */
---- glibc-2.12-149-gc044aa7/debug/tst-chk1.c
-+++ glibc-2.12.90-11/debug/tst-chk1.c
+--- glibc-2.12-163-g315970f/debug/tst-chk1.c
++++ glibc-2.12.90-13/debug/tst-chk1.c
 @@ -17,6 +17,9 @@
     Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
     02111-1307 USA.  */
@@ -383,8 +413,8 @@
  #  define O 0
  # else
  #  define O 1
---- glibc-2.12-149-gc044aa7/elf/Makefile
-+++ glibc-2.12.90-11/elf/Makefile
+--- glibc-2.12-163-g315970f/elf/Makefile
++++ glibc-2.12.90-13/elf/Makefile
 @@ -89,6 +89,7 @@ distribute	:= rtld-Rules \
  		   unload4mod1.c unload4mod2.c unload4mod3.c unload4mod4.c \
  		   unload6mod1.c unload6mod2.c unload6mod3.c \
@@ -438,8 +468,8 @@
  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.12-149-gc044aa7/elf/dl-close.c
-+++ glibc-2.12.90-11/elf/dl-close.c
+--- glibc-2.12-163-g315970f/elf/dl-close.c
++++ glibc-2.12.90-13/elf/dl-close.c
 @@ -421,6 +421,13 @@ _dl_close_worker (struct link_map *map)
  
  	      imap->l_scope_max = new_size;
@@ -454,8 +484,26 @@
  
  	  /* The loader is gone, so mark the object as not having one.
  	     Note: l_idx != IDX_STILL_USED -> object will be removed.  */
---- glibc-2.12-149-gc044aa7/elf/dl-init.c
-+++ glibc-2.12.90-11/elf/dl-init.c
+--- glibc-2.12-163-g315970f/elf/dl-deps.c
++++ glibc-2.12.90-13/elf/dl-deps.c
+@@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *map,
+ 		  nneeded * sizeof needed[0]);
+ 	  atomic_write_barrier ();
+ 	  l->l_initfini = l_initfini;
++	  l->l_free_initfini = 1;
+ 	}
+ 
+       /* If we have no auxiliary objects just go on to the next map.  */
+@@ -662,6 +663,7 @@ Filters not supported with LD_TRACE_PRELINKING"));
+   l_initfini[nlist] = NULL;
+   atomic_write_barrier ();
+   map->l_initfini = l_initfini;
++  map->l_free_initfini = 1;
+   if (l_reldeps != NULL)
+     {
+       atomic_write_barrier ();
+--- glibc-2.12-163-g315970f/elf/dl-init.c
++++ glibc-2.12.90-13/elf/dl-init.c
 @@ -24,11 +24,9 @@
  /* Type of the initializer.  */
  typedef void (*init_t) (int, char **, char **);
@@ -478,8 +526,36 @@
 -#endif
  }
  INTDEF (_dl_init)
---- glibc-2.12-149-gc044aa7/elf/dl-support.c
-+++ glibc-2.12.90-11/elf/dl-support.c
+--- glibc-2.12-163-g315970f/elf/dl-libc.c
++++ glibc-2.12.90-13/elf/dl-libc.c
+@@ -265,13 +265,13 @@ libc_freeres_fn (free_mem)
+ 
+   for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns)
+     {
+-      /* Remove all additional names added to the objects.  */
+       for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next)
+ 	{
+ 	  struct libname_list *lnp = l->l_libname->next;
+ 
+ 	  l->l_libname->next = NULL;
+ 
++	  /* Remove all additional names added to the objects.  */
+ 	  while (lnp != NULL)
+ 	    {
+ 	      struct libname_list *old = lnp;
+@@ -279,6 +279,10 @@ libc_freeres_fn (free_mem)
+ 	      if (! old->dont_free)
+ 		free (old);
+ 	    }
++
++	  /* Free the initfini dependency list.  */
++	  if (l->l_free_initfini)
++	    free (l->l_initfini);
+ 	}
+ 
+       if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0
+--- glibc-2.12-163-g315970f/elf/dl-support.c
++++ glibc-2.12.90-13/elf/dl-support.c
 @@ -80,10 +80,8 @@ unsigned long long _dl_load_adds;
     create a fake scope containing nothing.  */
  struct r_scope_elem _dl_initial_searchlist;
@@ -491,8 +567,8 @@
  
  /* Random data provided by the kernel.  */
  void *_dl_random;
---- glibc-2.12-149-gc044aa7/elf/ldconfig.c
-+++ glibc-2.12.90-11/elf/ldconfig.c
+--- glibc-2.12-163-g315970f/elf/ldconfig.c
++++ glibc-2.12.90-13/elf/ldconfig.c
 @@ -1031,17 +1031,19 @@ search_dirs (void)
  
  
@@ -574,8 +650,8 @@
      }
  
    const char *aux_cache_file = _PATH_LDCONFIG_AUX_CACHE;
---- glibc-2.12-149-gc044aa7/elf/rtld-Rules
-+++ glibc-2.12.90-11/elf/rtld-Rules
+--- glibc-2.12-163-g315970f/elf/rtld-Rules
++++ glibc-2.12.90-13/elf/rtld-Rules
 @@ -93,6 +93,12 @@ else
  # These are the basic compilation rules corresponding to the Makerules ones.
  # The sysd-rules generated makefile already defines pattern rules for rtld-%
@@ -599,8 +675,8 @@
  $(objpfx)rtld-%.os: $(objpfx)%.S $(before-compile); $(compile-command.S)
  $(objpfx)rtld-%.os: $(objpfx)%.s $(before-compile); $(compile-command.s)
  $(objpfx)rtld-%.os: $(objpfx)%.c $(before-compile); $(compile-command.c)
---- glibc-2.12-149-gc044aa7/elf/rtld.c
-+++ glibc-2.12.90-11/elf/rtld.c
+--- glibc-2.12-163-g315970f/elf/rtld.c
++++ glibc-2.12.90-13/elf/rtld.c
 @@ -106,7 +106,6 @@ static struct audit_list
    struct audit_list *next;
  } *audit_list;
@@ -628,8 +704,16 @@
  
    if (*user_entry == (ElfW(Addr)) ENTRY_POINT)
      {
---- glibc-2.12-149-gc044aa7/elf/tst-stackguard1.c
-+++ glibc-2.12.90-11/elf/tst-stackguard1.c
+@@ -2244,6 +2240,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
+ 	      lnp->dont_free = 1;
+ 	      lnp = lnp->next;
+ 	    }
++	  l->l_free_initfini = 0;
+ 
+ 	  if (l != &GL(dl_rtld_map))
+ 	    _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,
+--- glibc-2.12-163-g315970f/elf/tst-stackguard1.c
++++ glibc-2.12.90-13/elf/tst-stackguard1.c
 @@ -160,17 +160,21 @@ do_test (void)
       the 16 runs, something is very wrong.  */
    int ndifferences = 0;
@@ -654,8 +738,8 @@
      {
        puts ("stack guard canaries are not randomized enough");
        puts ("nor equal to the default canary value");
---- glibc-2.12-149-gc044aa7/elf/unload8.c
-+++ glibc-2.12.90-11/elf/unload8.c
+--- glibc-2.12-163-g315970f/elf/unload8.c
++++ glibc-2.12.90-13/elf/unload8.c
 @@ -0,0 +1,33 @@
 +#include <dlfcn.h>
 +#include <stdio.h>
@@ -690,8 +774,8 @@
 +
 +  return 0;
 +}
---- glibc-2.12-149-gc044aa7/elf/unload8mod1.c
-+++ glibc-2.12.90-11/elf/unload8mod1.c
+--- glibc-2.12-163-g315970f/elf/unload8mod1.c
++++ glibc-2.12.90-13/elf/unload8mod1.c
 @@ -0,0 +1,7 @@
 +extern void mod2 (void);
 +
@@ -700,12 +784,12 @@
 +{
 +  mod2 ();
 +}
---- glibc-2.12-149-gc044aa7/elf/unload8mod1x.c
-+++ glibc-2.12.90-11/elf/unload8mod1x.c
+--- glibc-2.12-163-g315970f/elf/unload8mod1x.c
++++ glibc-2.12.90-13/elf/unload8mod1x.c
 @@ -0,0 +1 @@
 +int mod1x;
---- glibc-2.12-149-gc044aa7/elf/unload8mod2.c
-+++ glibc-2.12.90-11/elf/unload8mod2.c
+--- glibc-2.12-163-g315970f/elf/unload8mod2.c
++++ glibc-2.12.90-13/elf/unload8mod2.c
 @@ -0,0 +1,7 @@
 +extern void mod3 (void);
 +
@@ -714,8 +798,8 @@
 +{
 +  mod3 ();
 +}
---- glibc-2.12-149-gc044aa7/elf/unload8mod3.c
-+++ glibc-2.12.90-11/elf/unload8mod3.c
+--- glibc-2.12-163-g315970f/elf/unload8mod3.c
++++ glibc-2.12.90-13/elf/unload8mod3.c
 @@ -0,0 +1,27 @@
 +#include <dlfcn.h>
 +#include <stdio.h>
@@ -744,16 +828,16 @@
 +
 +  atexit (mod3_fini);
 +}
---- glibc-2.12-149-gc044aa7/include/bits/stdlib-ldbl.h
-+++ glibc-2.12.90-11/include/bits/stdlib-ldbl.h
+--- glibc-2.12-163-g315970f/include/bits/stdlib-ldbl.h
++++ glibc-2.12.90-13/include/bits/stdlib-ldbl.h
 @@ -0,0 +1 @@
 +#include <stdlib/bits/stdlib-ldbl.h>
---- glibc-2.12-149-gc044aa7/include/bits/wchar-ldbl.h
-+++ glibc-2.12.90-11/include/bits/wchar-ldbl.h
+--- glibc-2.12-163-g315970f/include/bits/wchar-ldbl.h
++++ glibc-2.12.90-13/include/bits/wchar-ldbl.h
 @@ -0,0 +1 @@
 +#include <wcsmbs/bits/wchar-ldbl.h>
---- glibc-2.12-149-gc044aa7/include/features.h
-+++ glibc-2.12.90-11/include/features.h
+--- glibc-2.12-163-g315970f/include/features.h
++++ glibc-2.12.90-13/include/features.h
 @@ -308,8 +308,13 @@
  #endif
  
@@ -770,16 +854,28 @@
  #  define __USE_FORTIFY_LEVEL 2
  # else
  #  define __USE_FORTIFY_LEVEL 1
---- glibc-2.12-149-gc044aa7/include/sys/resource.h
-+++ glibc-2.12.90-11/include/sys/resource.h
+--- glibc-2.12-163-g315970f/include/link.h
++++ glibc-2.12.90-13/include/link.h
+@@ -192,6 +192,9 @@ struct link_map
+ 						 during LD_TRACE_PRELINKING=1
+ 						 contains any DT_SYMBOLIC
+ 						 libraries.  */
++    unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be
++				       freed, ie. not allocated with
++				       the dummy malloc in ld.so.  */
+ 
+     /* Collected information about own RPATH directories.  */
+     struct r_search_path_struct l_rpath_dirs;
+--- glibc-2.12-163-g315970f/include/sys/resource.h
++++ glibc-2.12.90-13/include/sys/resource.h
 @@ -12,4 +12,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.12-149-gc044aa7/inet/Makefile
-+++ glibc-2.12.90-11/inet/Makefile
+--- glibc-2.12-163-g315970f/inet/Makefile
++++ glibc-2.12.90-13/inet/Makefile
 @@ -57,6 +57,8 @@ tests := htontest test_ifindex tst-ntoa tst-ether_aton tst-network \
  
  include ../Rules
@@ -789,8 +885,8 @@
  ifeq ($(have-thread-library),yes)
  
  CFLAGS-gethstbyad_r.c = -DUSE_NSCD=1 -fexceptions
---- glibc-2.12-149-gc044aa7/intl/locale.alias
-+++ glibc-2.12.90-11/intl/locale.alias
+--- glibc-2.12-163-g315970f/intl/locale.alias
++++ glibc-2.12.90-13/intl/locale.alias
 @@ -57,8 +57,6 @@ korean		ko_KR.eucKR
  korean.euc 	ko_KR.eucKR
  ko_KR		ko_KR.eucKR
@@ -800,8 +896,8 @@
  norwegian       nb_NO.ISO-8859-1
  nynorsk		nn_NO.ISO-8859-1
  polish          pl_PL.ISO-8859-2
---- glibc-2.12-149-gc044aa7/libio/stdio.h
-+++ glibc-2.12.90-11/libio/stdio.h
+--- glibc-2.12-163-g315970f/libio/stdio.h
++++ glibc-2.12.90-13/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.  */
@@ -815,8 +911,8 @@
  
  __BEGIN_NAMESPACE_STD
  /* Remove file FILENAME.  */
---- glibc-2.12-149-gc044aa7/locale/iso-4217.def
-+++ glibc-2.12.90-11/locale/iso-4217.def
+--- glibc-2.12-163-g315970f/locale/iso-4217.def
++++ glibc-2.12.90-13/locale/iso-4217.def
 @@ -8,6 +8,7 @@
   *
   * !!! The list has to be sorted !!!
@@ -908,8 +1004,8 @@
  DEFINE_INT_CURR("PYG")		/* Paraguay Guarani  */
  DEFINE_INT_CURR("QAR")		/* Qatar Rial  */
  DEFINE_INT_CURR("ROL")		/* Romanian Leu  */
---- glibc-2.12-149-gc044aa7/locale/programs/locarchive.c
-+++ glibc-2.12.90-11/locale/programs/locarchive.c
+--- glibc-2.12-163-g315970f/locale/programs/locarchive.c
++++ glibc-2.12.90-13/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;
@@ -968,8 +1064,8 @@
  add_alias (struct locarhandle *ah, const char *alias, bool replace,
  	   const char *oldname, uint32_t *locrec_offset_p)
  {
---- glibc-2.12-149-gc044aa7/localedata/Makefile
-+++ glibc-2.12.90-11/localedata/Makefile
+--- glibc-2.12-163-g315970f/localedata/Makefile
++++ glibc-2.12.90-13/localedata/Makefile
 @@ -227,6 +227,7 @@ $(INSTALL-SUPPORTED-LOCALES): install-locales-dir
  	echo -n '...'; \
  	input=`echo $$locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; \
@@ -978,8 +1074,8 @@
  		     -i locales/$$input -c -f charmaps/$$charset \
  		     $(addprefix --prefix=,$(install_root)) $$locale; \
  	echo ' done'; \
---- glibc-2.12-149-gc044aa7/localedata/SUPPORTED
-+++ glibc-2.12.90-11/localedata/SUPPORTED
+--- glibc-2.12-163-g315970f/localedata/SUPPORTED
++++ glibc-2.12.90-13/localedata/SUPPORTED
 @@ -85,6 +85,7 @@ cy_GB.UTF-8/UTF-8 \
  cy_GB/ISO-8859-14 \
  da_DK.UTF-8/UTF-8 \
@@ -1021,8 +1117,8 @@
  ta_IN/UTF-8 \
  te_IN/UTF-8 \
  tg_TJ.UTF-8/UTF-8 \
---- glibc-2.12-149-gc044aa7/localedata/locales/cy_GB
-+++ glibc-2.12.90-11/localedata/locales/cy_GB
+--- glibc-2.12-163-g315970f/localedata/locales/cy_GB
++++ glibc-2.12.90-13/localedata/locales/cy_GB
 @@ -248,8 +248,11 @@ mon         "<U0049><U006F><U006E><U0061><U0077><U0072>";/
  d_t_fmt     "<U0044><U0079><U0064><U0064><U0020><U0025><U0041><U0020><U0025><U0064><U0020><U006d><U0069><U0073><U0020><U0025><U0042><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
  d_fmt       "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0079>"
@@ -1037,8 +1133,8 @@
  END LC_TIME
  
  LC_MESSAGES
---- glibc-2.12-149-gc044aa7/localedata/locales/en_GB
-+++ glibc-2.12.90-11/localedata/locales/en_GB
+--- glibc-2.12-163-g315970f/localedata/locales/en_GB
++++ glibc-2.12.90-13/localedata/locales/en_GB
 @@ -116,8 +116,8 @@ mon         "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
  d_t_fmt     "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
  d_fmt       "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
@@ -1050,8 +1146,8 @@
  date_fmt	"<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
  <U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
  <U0025><U005A><U0020><U0025><U0059>"
---- glibc-2.12-149-gc044aa7/localedata/locales/no_NO
-+++ glibc-2.12.90-11/localedata/locales/no_NO
+--- glibc-2.12-163-g315970f/localedata/locales/no_NO
++++ glibc-2.12.90-13/localedata/locales/no_NO
 @@ -0,0 +1,69 @@
 +escape_char	/
 +comment_char    %
@@ -1122,8 +1218,8 @@
 +LC_ADDRESS
 +copy "nb_NO"
 +END LC_ADDRESS
---- glibc-2.12-149-gc044aa7/localedata/locales/zh_TW
-+++ glibc-2.12.90-11/localedata/locales/zh_TW
+--- glibc-2.12-163-g315970f/localedata/locales/zh_TW
++++ glibc-2.12.90-13/localedata/locales/zh_TW
 @@ -1,7 +1,7 @@
  comment_char %
  escape_char /
@@ -1151,8 +1247,8 @@
  revision   "0.2"
  date       "2000-08-02"
  %
---- glibc-2.12-149-gc044aa7/malloc/mcheck.c
-+++ glibc-2.12.90-11/malloc/mcheck.c
+--- glibc-2.12-163-g315970f/malloc/mcheck.c
++++ glibc-2.12.90-13/malloc/mcheck.c
 @@ -24,9 +24,25 @@
  # include <mcheck.h>
  # include <stdint.h>
@@ -1228,8 +1324,8 @@
  
        old_free_hook = __free_hook;
        __free_hook = freehook;
---- glibc-2.12-149-gc044aa7/manual/libc.texinfo
-+++ glibc-2.12.90-11/manual/libc.texinfo
+--- glibc-2.12-163-g315970f/manual/libc.texinfo
++++ glibc-2.12.90-13/manual/libc.texinfo
 @@ -5,7 +5,7 @@
  @c setchapternewpage odd
  
@@ -1239,8 +1335,8 @@
  @direntry
  * Libc: (libc).                 C library.
  @end direntry
---- glibc-2.12-149-gc044aa7/misc/sys/cdefs.h
-+++ glibc-2.12.90-11/misc/sys/cdefs.h
+--- glibc-2.12-163-g315970f/misc/sys/cdefs.h
++++ glibc-2.12.90-13/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)
@@ -1284,8 +1380,8 @@
  # define __va_arg_pack() __builtin_va_arg_pack ()
  # define __va_arg_pack_len() __builtin_va_arg_pack_len ()
  #endif
---- glibc-2.12-149-gc044aa7/nis/Makefile
-+++ glibc-2.12.90-11/nis/Makefile
+--- glibc-2.12-163-g315970f/nis/Makefile
++++ glibc-2.12.90-13/nis/Makefile
 @@ -69,6 +69,8 @@ libnss_nisplus-inhibit-o = $(filter-out .os,$(object-suffixes))
  
  include ../Rules
@@ -1295,8 +1391,8 @@
  
  $(objpfx)libnss_compat.so: $(objpfx)libnsl.so$(libnsl.so-version)
  $(objpfx)libnss_nis.so: $(objpfx)libnsl.so$(libnsl.so-version) \
---- glibc-2.12-149-gc044aa7/nis/nss
-+++ glibc-2.12.90-11/nis/nss
+--- glibc-2.12-163-g315970f/nis/nss
++++ glibc-2.12.90-13/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
@@ -1306,9 +1402,9 @@
  #
  # ADJUNCT_AS_SHADOW
  #  If set to TRUE, the passwd routines in the NIS NSS module will not
---- glibc-2.12-149-gc044aa7/nptl/ChangeLog
-+++ glibc-2.12.90-11/nptl/ChangeLog
-@@ -3952,6 +3952,15 @@
+--- glibc-2.12-163-g315970f/nptl/ChangeLog
++++ glibc-2.12.90-13/nptl/ChangeLog
+@@ -3958,6 +3958,15 @@
  	Use __sigfillset.  Document that sigfillset does the right thing wrt
  	to SIGSETXID.
  
@@ -1324,7 +1420,7 @@
  2005-07-11  Jakub Jelinek  <jakub at redhat.com>
  
  	[BZ #1102]
-@@ -4688,6 +4697,11 @@
+@@ -4694,6 +4703,11 @@
  	Move definition inside libpthread, libc, librt check.  Provide
  	definition for rtld.
  
@@ -1336,7 +1432,7 @@
  2004-09-02  Ulrich Drepper  <drepper at redhat.com>
  
  	* sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp.
-@@ -6762,6 +6776,11 @@
+@@ -6768,6 +6782,11 @@
  
  	* Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules).
  
@@ -1348,8 +1444,8 @@
  2003-07-25  Jakub Jelinek  <jakub at redhat.com>
  
  	* tst-cancel17.c (do_test): Check if aio_cancel failed.
---- glibc-2.12-149-gc044aa7/nptl/Makefile
-+++ glibc-2.12.90-11/nptl/Makefile
+--- glibc-2.12-163-g315970f/nptl/Makefile
++++ glibc-2.12.90-13/nptl/Makefile
 @@ -342,7 +342,8 @@ endif
  extra-objs += $(crti-objs) $(crtn-objs)
  omit-deps += crti crtn
@@ -1382,8 +1478,8 @@
  else
  $(addprefix $(objpfx),$(tests) $(test-srcs)): $(objpfx)libpthread.a
  endif
---- glibc-2.12-149-gc044aa7/nptl/Versions
-+++ glibc-2.12.90-11/nptl/Versions
+--- glibc-2.12-163-g315970f/nptl/Versions
++++ glibc-2.12.90-13/nptl/Versions
 @@ -29,6 +29,7 @@ libc {
    GLIBC_PRIVATE {
      # Internal libc interface to libpthread
@@ -1392,8 +1488,8 @@
    }
  }
  
---- glibc-2.12-149-gc044aa7/nptl/allocatestack.c
-+++ glibc-2.12.90-11/nptl/allocatestack.c
+--- glibc-2.12-163-g315970f/nptl/allocatestack.c
++++ glibc-2.12.90-13/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.  */
@@ -1412,8 +1508,8 @@
      }
    while (atomic_compare_and_exchange_bool_acq (&t->cancelhandling,
  					       ch | SETXID_BITMASK, ch));
---- glibc-2.12-149-gc044aa7/nptl/nptl-init.c
-+++ glibc-2.12.90-11/nptl/nptl-init.c
+--- glibc-2.12-163-g315970f/nptl/nptl-init.c
++++ glibc-2.12.90-13/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.  */
@@ -1423,8 +1519,8 @@
        || limit.rlim_cur == RLIM_INFINITY)
      /* The system limit is not usable.  Use an architecture-specific
         default.  */
---- glibc-2.12-149-gc044aa7/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
-+++ glibc-2.12.90-11/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
+--- glibc-2.12-163-g315970f/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
++++ glibc-2.12.90-13/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
@@ -1433,8 +1529,8 @@
 +#define _XOPEN_STREAMS	-1
 +
  #endif /* bits/posix_opt.h */
---- glibc-2.12-149-gc044aa7/nptl/sysdeps/unix/sysv/linux/i386/Versions
-+++ glibc-2.12.90-11/nptl/sysdeps/unix/sysv/linux/i386/Versions
+--- glibc-2.12-163-g315970f/nptl/sysdeps/unix/sysv/linux/i386/Versions
++++ glibc-2.12.90-13/nptl/sysdeps/unix/sysv/linux/i386/Versions
 @@ -0,0 +1,6 @@
 +libc {
 +  GLIBC_PRIVATE {
@@ -1442,8 +1538,8 @@
 +    __uname;
 +  }
 +}
---- glibc-2.12-149-gc044aa7/nptl/sysdeps/unix/sysv/linux/i386/smp.h
-+++ glibc-2.12.90-11/nptl/sysdeps/unix/sysv/linux/i386/smp.h
+--- glibc-2.12-163-g315970f/nptl/sysdeps/unix/sysv/linux/i386/smp.h
++++ glibc-2.12.90-13/nptl/sysdeps/unix/sysv/linux/i386/smp.h
 @@ -37,7 +37,7 @@ is_smp_system (void)
    char *cp;
  
@@ -1453,8 +1549,8 @@
      cp = u.uts.version;
    else
      {
---- glibc-2.12-149-gc044aa7/nptl/sysdeps/unix/sysv/linux/kernel-features.h
-+++ glibc-2.12.90-11/nptl/sysdeps/unix/sysv/linux/kernel-features.h
+--- glibc-2.12-163-g315970f/nptl/sysdeps/unix/sysv/linux/kernel-features.h
++++ glibc-2.12.90-13/nptl/sysdeps/unix/sysv/linux/kernel-features.h
 @@ -0,0 +1,6 @@
 +#include_next <kernel-features.h>
 +
@@ -1462,8 +1558,8 @@
 +#ifndef __ASSUME_CLONE_THREAD_FLAGS
 +# define __ASSUME_CLONE_THREAD_FLAGS	1
 +#endif
---- glibc-2.12-149-gc044aa7/nptl/tst-stackguard1.c
-+++ glibc-2.12.90-11/nptl/tst-stackguard1.c
+--- glibc-2.12-163-g315970f/nptl/tst-stackguard1.c
++++ glibc-2.12.90-13/nptl/tst-stackguard1.c
 @@ -190,17 +190,21 @@ do_test (void)
       the 16 runs, something is very wrong.  */
    int ndifferences = 0;
@@ -1488,8 +1584,8 @@
      {
        puts ("stack guard canaries are not randomized enough");
        puts ("nor equal to the default canary value");
---- glibc-2.12-149-gc044aa7/nscd/nscd.conf
-+++ glibc-2.12.90-11/nscd/nscd.conf
+--- glibc-2.12-163-g315970f/nscd/nscd.conf
++++ glibc-2.12.90-13/nscd/nscd.conf
 @@ -33,7 +33,7 @@
  #	logfile			/var/log/nscd.log
  #	threads			4
@@ -1499,8 +1595,8 @@
  #	stat-user		somebody
  	debug-level		0
  #	reload-count		5
---- glibc-2.12-149-gc044aa7/nscd/nscd.init
-+++ glibc-2.12.90-11/nscd/nscd.init
+--- glibc-2.12-163-g315970f/nscd/nscd.init
++++ glibc-2.12.90-13/nscd/nscd.init
 @@ -9,6 +9,7 @@
  #		slow naming services like NIS, NIS+, LDAP, or hesiod.
  # processname: /usr/sbin/nscd
@@ -1577,8 +1673,8 @@
  	;;
      *)
  	echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"
---- glibc-2.12-149-gc044aa7/nss/Makefile
-+++ glibc-2.12.90-11/nss/Makefile
+--- glibc-2.12-163-g315970f/nss/Makefile
++++ glibc-2.12.90-13/nss/Makefile
 @@ -75,6 +75,7 @@ endif
  
  include ../Rules
@@ -1587,8 +1683,26 @@
  
  ifeq (yes,$(build-static-nss))
  $(objpfx)getent: $(objpfx)libnss_files.a
---- glibc-2.12-149-gc044aa7/posix/Makefile
-+++ glibc-2.12.90-11/posix/Makefile
+--- glibc-2.12-163-g315970f/nss/nss_files/files-XXX.c
++++ glibc-2.12.90-13/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
++   Copyright (C) 1996-1999,2001,2002,2004,2007,2008,2010
+    Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+ 
+@@ -190,7 +190,7 @@ internal_getent (struct STRUCTURE *result,
+ {
+   char *p;
+   struct parser_data *data = (void *) buffer;
+-  int linebuflen = buffer + buflen - data->linebuffer;
++  size_t linebuflen = buffer + buflen - data->linebuffer;
+   int parse_result;
+ 
+   if (buflen < sizeof *data + 2)
+--- glibc-2.12-163-g315970f/posix/Makefile
++++ glibc-2.12.90-13/posix/Makefile
 @@ -313,15 +313,8 @@ $(inst_libexecdir)/getconf: $(inst_bindir)/getconf \
  	  mv -f $@/$$spec.new $@/$$spec; \
  	done < $(objpfx)getconf.speclist
@@ -1609,8 +1723,8 @@
 +	  | sed -n -e '/START_OF_STRINGS/,$${/\(POSIX_V[67]\|_XBS5\)_/{s/^[^"]*"//;s/".*$$//;p}}' \
 +	  > $@.new
  	mv -f $@.new $@
---- glibc-2.12-149-gc044aa7/posix/gai.conf
-+++ glibc-2.12.90-11/posix/gai.conf
+--- glibc-2.12-163-g315970f/posix/gai.conf
++++ glibc-2.12.90-13/posix/gai.conf
 @@ -41,7 +41,7 @@
  #
  # precedence  <mask>   <value>
@@ -1635,8 +1749,8 @@
  #scopev4 ::ffff:0.0.0.0/96       14
 +#
 +#    This is what the Red Hat setting currently uses.
---- glibc-2.12-149-gc044aa7/posix/getconf.speclist.h
-+++ glibc-2.12.90-11/posix/getconf.speclist.h
+--- glibc-2.12-163-g315970f/posix/getconf.speclist.h
++++ glibc-2.12.90-13/posix/getconf.speclist.h
 @@ -0,0 +1,39 @@
 +#include <unistd.h>
 +const char *START_OF_STRINGS =
@@ -1677,8 +1791,141 @@
 +"XBS5_LPBIG_OFFBIG"
 +#endif
 +"";
---- glibc-2.12-149-gc044aa7/resolv/Makefile
-+++ glibc-2.12.90-11/resolv/Makefile
+--- glibc-2.12-163-g315970f/posix/regcomp.c
++++ glibc-2.12.90-13/posix/regcomp.c
+@@ -2736,40 +2736,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.
+      Seek the collating symbol entry correspondings to NAME.
+-     Return the index of the symbol in the SYMB_TABLE.  */
++     Return the index of the symbol in the SYMB_TABLE,
++     or -1 if not found.  */
+ 
+   auto inline int32_t
+   __attribute ((always_inline))
+-  seek_collating_symbol_entry (name, name_len)
+-	 const unsigned char *name;
+-	 size_t name_len;
++  seek_collating_symbol_entry (const unsigned char *name, size_t name_len)
+     {
+-      int32_t hash = elem_hash ((const char *) name, name_len);
+-      int32_t elem = hash % table_size;
+-      if (symb_table[2 * elem] != 0)
+-	{
+-	  int32_t second = hash % (table_size - 2) + 1;
+-
+-	  do
+-	    {
+-	      /* First compare the hashing value.  */
+-	      if (symb_table[2 * elem] == hash
+-		  /* Compare the length of the name.  */
+-		  && name_len == extra[symb_table[2 * elem + 1]]
+-		  /* Compare the name.  */
+-		  && memcmp (name, &extra[symb_table[2 * elem + 1] + 1],
+-			     name_len) == 0)
+-		{
+-		  /* Yep, this is the entry.  */
+-		  break;
+-		}
++      int32_t elem;
+ 
+-	      /* Next entry.  */
+-	      elem += second;
+-	    }
+-	  while (symb_table[2 * elem] != 0);
+-	}
+-      return elem;
++      for (elem = 0; elem < table_size; elem++)
++	if (symb_table[2 * elem] != 0)
++	  {
++	    int32_t idx = symb_table[2 * elem + 1];
++	    /* Skip the name of collating element name.  */
++	    idx += 1 + extra[idx];
++	    if (/* Compare the length of the name.  */
++		name_len == extra[idx]
++		/* Compare the name.  */
++		&& memcmp (name, &extra[idx + 1], name_len) == 0)
++	      /* Yep, this is the entry.  */
++	      return elem;
++	  }
++      return -1;
+     }
+ 
+   /* Local function for parse_bracket_exp used in _LIBC environment.
+@@ -2778,8 +2767,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
+ 
+   auto inline unsigned int
+   __attribute ((always_inline))
+-  lookup_collation_sequence_value (br_elem)
+-	 bracket_elem_t *br_elem;
++  lookup_collation_sequence_value (bracket_elem_t *br_elem)
+     {
+       if (br_elem->type == SB_CHAR)
+ 	{
+@@ -2807,7 +2795,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
+ 	      int32_t elem, idx;
+ 	      elem = seek_collating_symbol_entry (br_elem->opr.name,
+ 						  sym_name_len);
+-	      if (symb_table[2 * elem] != 0)
++	      if (elem != -1)
+ 		{
+ 		  /* We found the entry.  */
+ 		  idx = symb_table[2 * elem + 1];
+@@ -2825,7 +2813,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
+ 		  /* Return the collation sequence value.  */
+ 		  return *(unsigned int *) (extra + idx);
+ 		}
+-	      else if (symb_table[2 * elem] == 0 && sym_name_len == 1)
++	      else if (sym_name_len == 1)
+ 		{
+ 		  /* No valid character.  Match it as a single byte
+ 		     character.  */
+@@ -2847,11 +2835,8 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
+ 
+   auto inline reg_errcode_t
+   __attribute ((always_inline))
+-  build_range_exp (sbcset, mbcset, range_alloc, start_elem, end_elem)
+-	 re_charset_t *mbcset;
+-	 int *range_alloc;
+-	 bitset_t sbcset;
+-	 bracket_elem_t *start_elem, *end_elem;
++  build_range_exp (bitset_t sbcset, re_charset_t *mbcset, int *range_alloc,
++		   bracket_elem_t *start_elem, bracket_elem_t *end_elem)
+     {
+       unsigned int ch;
+       uint32_t start_collseq;
+@@ -2930,25 +2915,22 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
+ 
+   auto inline reg_errcode_t
+   __attribute ((always_inline))
+-  build_collating_symbol (sbcset, mbcset, coll_sym_alloc, name)
+-	 re_charset_t *mbcset;
+-	 int *coll_sym_alloc;
+-	 bitset_t sbcset;
+-	 const unsigned char *name;
++  build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset,
++			  int *coll_sym_alloc, const unsigned char *name)
+     {
+       int32_t elem, idx;
+       size_t name_len = strlen ((const char *) name);
+       if (nrules != 0)
+ 	{
+ 	  elem = seek_collating_symbol_entry (name, name_len);
+-	  if (symb_table[2 * elem] != 0)
++	  if (elem != -1)
+ 	    {
+ 	      /* We found the entry.  */
+ 	      idx = symb_table[2 * elem + 1];
+ 	      /* Skip the name of collating element name.  */
+ 	      idx += 1 + extra[idx];
+ 	    }
+-	  else if (symb_table[2 * elem] == 0 && name_len == 1)
++	  else if (name_len == 1)
+ 	    {
+ 	      /* No valid character, treat it as a normal
+ 		 character.  */
+--- glibc-2.12-163-g315970f/resolv/Makefile
++++ glibc-2.12.90-13/resolv/Makefile
 @@ -77,6 +77,7 @@ CPPFLAGS += -Dgethostbyname=res_gethostbyname \
  	    -Dgetnetbyaddr=res_getnetbyaddr
  
@@ -1687,8 +1934,8 @@
  
  # The BIND code elicits some harmless warnings.
  +cflags += -Wno-strict-prototypes -Wno-write-strings
---- glibc-2.12-149-gc044aa7/resource/getrlimit.c
-+++ glibc-2.12.90-11/resource/getrlimit.c
+--- glibc-2.12-163-g315970f/resource/getrlimit.c
++++ glibc-2.12.90-13/resource/getrlimit.c
 @@ -28,6 +28,7 @@ __getrlimit (enum __rlimit_resource resource, struct rlimit *rlimits)
    __set_errno (ENOSYS);
    return -1;
@@ -1697,8 +1944,61 @@
  weak_alias (__getrlimit, getrlimit)
  
  stub_warning (getrlimit)
---- glibc-2.12-149-gc044aa7/streams/Makefile
-+++ glibc-2.12.90-11/streams/Makefile
+--- glibc-2.12-163-g315970f/stdio-common/vfprintf.c
++++ glibc-2.12.90-13/stdio-common/vfprintf.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1991-2008, 2009   Free Software Foundation, Inc.
++/* Copyright (C) 1991-2008, 2009, 2010   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
+@@ -1160,41 +1160,9 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
+ 	else if (!is_long && spec != L_('S'))				      \
+ 	  {								      \
+ 	    if (prec != -1)						      \
+-	      {								      \
+-		/* Search for the end of the string, but don't search past    \
+-		   the length (in bytes) specified by the precision.  Also    \
+-		   don't use incomplete characters.  */			      \
+-		if (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MB_CUR_MAX) == 1)   \
+-		  len = __strnlen (string, prec);			      \
+-		else							      \
+-		  {							      \
+-		    /* In case we have a multibyte character set the	      \
+-		       situation is more complicated.  We must not copy	      \
+-		       bytes at the end which form an incomplete character. */\
+-		    size_t ignore_size = (unsigned) prec > 1024 ? 1024 : prec;\
+-		    wchar_t ignore[ignore_size];			      \
+-		    const char *str2 = string;				      \
+-		    const char *strend = string + prec;			      \
+-		    if (strend < string)				      \
+-		      strend = (const char *) UINTPTR_MAX;		      \
+-									      \
+-		    mbstate_t ps;					      \
+-		    memset (&ps, '\0', sizeof (ps));			      \
+-									      \
+-		    while (str2 != NULL && str2 < strend)		      \
+-		      if (__mbsnrtowcs (ignore, &str2, strend - str2,	      \
+-					ignore_size, &ps) == (size_t) -1)     \
+-			{						      \
+-			  done = -1;					      \
+-			  goto all_done;				      \
+-			}						      \
+-									      \
+-		    if (str2 == NULL)					      \
+-		      len = strlen (string);				      \
+-		    else						      \
+-		      len = str2 - string - (ps.__count & 7);		      \
+-		  }							      \
+-	      }								      \
++	      /* Search for the end of the string, but don't search past      \
++		 the length (in bytes) specified by the precision.  */	      \
++	      len = __strnlen (string, prec);				      \
+ 	    else							      \
+ 	      len = strlen (string);					      \
+ 	  }								      \
+--- glibc-2.12-163-g315970f/streams/Makefile
++++ glibc-2.12.90-13/streams/Makefile
 @@ -21,7 +21,7 @@
  #
  subdir	:= streams
@@ -1708,8 +2008,8 @@
  routines	= isastream getmsg getpmsg putmsg putpmsg fattach fdetach
  
  include ../Rules
---- glibc-2.12-149-gc044aa7/sunrpc/Makefile
-+++ glibc-2.12.90-11/sunrpc/Makefile
+--- glibc-2.12-163-g315970f/sunrpc/Makefile
++++ glibc-2.12.90-13/sunrpc/Makefile
 @@ -129,6 +129,10 @@ CFLAGS-openchild.c = -fexceptions
  
  CPPFLAGS += -D_RPC_THREAD_SAFE_
@@ -1721,8 +2021,8 @@
  include ../Rules
  
  $(objpfx)rpcgen: $(addprefix $(objpfx),$(rpcgen-objs)) \
---- glibc-2.12-149-gc044aa7/sysdeps/generic/dl-cache.h
-+++ glibc-2.12.90-11/sysdeps/generic/dl-cache.h
+--- glibc-2.12-163-g315970f/sysdeps/generic/dl-cache.h
++++ glibc-2.12.90-13/sysdeps/generic/dl-cache.h
 @@ -36,6 +36,14 @@
  # define add_system_dir(dir) add_dir (dir)
  #endif
@@ -1738,8 +2038,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.12-149-gc044aa7/sysdeps/i386/Makefile
-+++ glibc-2.12.90-11/sysdeps/i386/Makefile
+--- glibc-2.12-163-g315970f/sysdeps/i386/Makefile
++++ glibc-2.12.90-13/sysdeps/i386/Makefile
 @@ -2,6 +2,8 @@
  # Every i386 port in use uses gas syntax (I think).
  asm-CPPFLAGS += -DGAS_SYNTAX
@@ -1764,8 +2064,8 @@
  endif
  
  ifeq ($(subdir),elf)
---- glibc-2.12-149-gc044aa7/sysdeps/i386/i686/Makefile
-+++ glibc-2.12.90-11/sysdeps/i386/i686/Makefile
+--- glibc-2.12-163-g315970f/sysdeps/i386/i686/Makefile
++++ glibc-2.12.90-13/sysdeps/i386/i686/Makefile
 @@ -9,19 +9,3 @@ stack-align-test-flags += -msse
  ifeq ($(subdir),string)
  sysdep_routines += cacheinfo
@@ -1786,8 +2086,21 @@
 -ASFLAGS-.ob += -Wa,-mtune=i686
 -ASFLAGS-.oS += -Wa,-mtune=i686
 -endif
---- glibc-2.12-149-gc044aa7/sysdeps/ia64/Makefile
-+++ glibc-2.12.90-11/sysdeps/ia64/Makefile
+--- glibc-2.12-163-g315970f/sysdeps/i386/i686/multiarch/strspn.S
++++ glibc-2.12.90-13/sysdeps/i386/i686/multiarch/strspn.S
+@@ -76,8 +76,8 @@ END(strspn)
+ # define ENTRY(name) \
+ 	.type __strspn_ia32, @function; \
+ 	.globl __strspn_ia32; \
+-	.p2align 4
+-	__strspn_ia32: cfi_startproc; \
++	.p2align 4; \
++__strspn_ia32: cfi_startproc; \
+ 	CALL_MCOUNT
+ # undef END
+ # define END(name) \
+--- glibc-2.12-163-g315970f/sysdeps/ia64/Makefile
++++ glibc-2.12.90-13/sysdeps/ia64/Makefile
 @@ -12,8 +12,8 @@ elide-routines.os += hp-timing
  
  ifeq (yes,$(build-shared))
@@ -1799,8 +2112,8 @@
  endif
  endif
  
---- glibc-2.12-149-gc044aa7/sysdeps/ia64/ia64libgcc.S
-+++ glibc-2.12.90-11/sysdeps/ia64/ia64libgcc.S
+--- glibc-2.12-163-g315970f/sysdeps/ia64/ia64libgcc.S
++++ glibc-2.12.90-13/sysdeps/ia64/ia64libgcc.S
 @@ -1,350 +0,0 @@
 -/* From the Intel IA-64 Optimization Guide, choose the minimum latency
 -   alternative.  */
@@ -2152,8 +2465,8 @@
 -	.symver	___multi3, __multi3 at GLIBC_2.2
 -
 -#endif
---- glibc-2.12-149-gc044aa7/sysdeps/ia64/libgcc-compat.c
-+++ glibc-2.12.90-11/sysdeps/ia64/libgcc-compat.c
+--- glibc-2.12-163-g315970f/sysdeps/ia64/libgcc-compat.c
++++ glibc-2.12.90-13/sysdeps/ia64/libgcc-compat.c
 @@ -0,0 +1,84 @@
 +/* pre-.hidden libgcc compatibility
 +   Copyright (C) 2002 Free Software Foundation, Inc.
@@ -2239,16 +2552,16 @@
 +symbol_version (INTUSE (__multi3), __multi3, GLIBC_2.2);
 +
 +#endif
---- glibc-2.12-149-gc044aa7/sysdeps/mach/hurd/getrlimit.c
-+++ glibc-2.12.90-11/sysdeps/mach/hurd/getrlimit.c
+--- glibc-2.12-163-g315970f/sysdeps/mach/hurd/getrlimit.c
++++ glibc-2.12.90-13/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.12-149-gc044aa7/sysdeps/posix/getaddrinfo.c
-+++ glibc-2.12.90-11/sysdeps/posix/getaddrinfo.c
+--- glibc-2.12-163-g315970f/sysdeps/posix/getaddrinfo.c
++++ glibc-2.12.90-13/sysdeps/posix/getaddrinfo.c
 @@ -1100,10 +1100,12 @@ static const struct scopeentry
      /* Link-local addresses: scope 2.  */
      { { { 169, 254, 0, 0 } }, htonl_c (0xffff0000), 2 },
@@ -2262,8 +2575,8 @@
      /* Default: scope 14.  */
      { { { 0, 0, 0, 0 } }, htonl_c (0x00000000), 14 }
    };
---- glibc-2.12-149-gc044aa7/sysdeps/powerpc/powerpc64/Makefile
-+++ glibc-2.12.90-11/sysdeps/powerpc/powerpc64/Makefile
+--- glibc-2.12-163-g315970f/sysdeps/powerpc/powerpc64/Makefile
++++ glibc-2.12.90-13/sysdeps/powerpc/powerpc64/Makefile
 @@ -30,6 +30,7 @@ ifneq ($(elf),no)
  # we use -fpic instead which is much better.
  CFLAGS-initfini.s += -fpic -O1
@@ -2272,16 +2585,16 @@
  endif
  
  ifeq ($(subdir),elf)
---- glibc-2.12-149-gc044aa7/sysdeps/powerpc/powerpc64/elf/Makefile
-+++ glibc-2.12.90-11/sysdeps/powerpc/powerpc64/elf/Makefile
+--- glibc-2.12-163-g315970f/sysdeps/powerpc/powerpc64/elf/Makefile
++++ glibc-2.12.90-13/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.12-149-gc044aa7/sysdeps/unix/nice.c
-+++ glibc-2.12.90-11/sysdeps/unix/nice.c
+--- glibc-2.12-163-g315970f/sysdeps/unix/nice.c
++++ glibc-2.12.90-13/sysdeps/unix/nice.c
 @@ -42,7 +42,12 @@ nice (int incr)
  	__set_errno (save);
      }
@@ -2296,8 +2609,8 @@
    if (result == -1)
      {
        if (errno == EACCES)
---- glibc-2.12-149-gc044aa7/sysdeps/unix/sysv/linux/check_pf.c
-+++ glibc-2.12.90-11/sysdeps/unix/sysv/linux/check_pf.c
+--- glibc-2.12-163-g315970f/sysdeps/unix/sysv/linux/check_pf.c
++++ glibc-2.12.90-13/sysdeps/unix/sysv/linux/check_pf.c
 @@ -27,13 +27,10 @@
  #include <unistd.h>
  #include <sys/socket.h>
@@ -2313,8 +2626,8 @@
  
  #ifndef IFA_F_HOMEADDRESS
  # define IFA_F_HOMEADDRESS 0
---- glibc-2.12-149-gc044aa7/sysdeps/unix/sysv/linux/dl-osinfo.h
-+++ glibc-2.12.90-11/sysdeps/unix/sysv/linux/dl-osinfo.h
+--- glibc-2.12-163-g315970f/sysdeps/unix/sysv/linux/dl-osinfo.h
++++ glibc-2.12.90-13/sysdeps/unix/sysv/linux/dl-osinfo.h
 @@ -17,10 +17,13 @@
     Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
     02111-1307 USA.  */
@@ -2362,8 +2675,8 @@
      }
    else
  #endif
---- glibc-2.12-149-gc044aa7/sysdeps/unix/sysv/linux/futimesat.c
-+++ glibc-2.12.90-11/sysdeps/unix/sysv/linux/futimesat.c
+--- glibc-2.12-163-g315970f/sysdeps/unix/sysv/linux/futimesat.c
++++ glibc-2.12.90-13/sysdeps/unix/sysv/linux/futimesat.c
 @@ -37,14 +37,14 @@ futimesat (fd, file, tvp)
  {
    int result;
@@ -2406,8 +2719,8 @@
      {
        size_t filelen = strlen (file);
        if (__builtin_expect (filelen == 0, 0))
---- glibc-2.12-149-gc044aa7/sysdeps/unix/sysv/linux/getpagesize.c
-+++ glibc-2.12.90-11/sysdeps/unix/sysv/linux/getpagesize.c
+--- glibc-2.12-163-g315970f/sysdeps/unix/sysv/linux/getpagesize.c
++++ glibc-2.12.90-13/sysdeps/unix/sysv/linux/getpagesize.c
 @@ -28,7 +28,7 @@
  int
  __getpagesize ()
@@ -2417,8 +2730,8 @@
    assert (GLRO(dl_pagesize) != 0);
    return GLRO(dl_pagesize);
  #else
---- glibc-2.12-149-gc044aa7/sysdeps/unix/sysv/linux/i386/dl-cache.h
-+++ glibc-2.12.90-11/sysdeps/unix/sysv/linux/i386/dl-cache.h
+--- glibc-2.12-163-g315970f/sysdeps/unix/sysv/linux/i386/dl-cache.h
++++ glibc-2.12.90-13/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.
@@ -2479,16 +2792,16 @@
 +  } while (0)
 +
 +#include_next <dl-cache.h>
---- glibc-2.12-149-gc044aa7/sysdeps/unix/sysv/linux/i386/getrlimit.c
-+++ glibc-2.12.90-11/sysdeps/unix/sysv/linux/i386/getrlimit.c
+--- glibc-2.12-163-g315970f/sysdeps/unix/sysv/linux/i386/getrlimit.c
++++ glibc-2.12.90-13/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.12-149-gc044aa7/sysdeps/unix/sysv/linux/ia64/dl-cache.h
-+++ glibc-2.12.90-11/sysdeps/unix/sysv/linux/ia64/dl-cache.h
+--- glibc-2.12-163-g315970f/sysdeps/unix/sysv/linux/ia64/dl-cache.h
++++ glibc-2.12.90-13/sysdeps/unix/sysv/linux/ia64/dl-cache.h
 @@ -22,4 +22,31 @@
  #define _dl_cache_check_flags(flags) \
    ((flags) == _DL_CACHE_DEFAULT_ID)
@@ -2521,29 +2834,29 @@
 +  } while (0)
 +
  #include_next <dl-cache.h>
---- glibc-2.12-149-gc044aa7/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c
-+++ glibc-2.12.90-11/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c
+--- glibc-2.12-163-g315970f/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c
++++ glibc-2.12.90-13/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c
 @@ -0,0 +1,5 @@
 +#ifdef IS_IN_ldconfig
 +#include <sysdeps/i386/dl-procinfo.c>
 +#else
 +#include <sysdeps/generic/dl-procinfo.c>
 +#endif
---- glibc-2.12-149-gc044aa7/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h
-+++ glibc-2.12.90-11/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h
+--- glibc-2.12-163-g315970f/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h
++++ glibc-2.12.90-13/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h
 @@ -0,0 +1,5 @@
 +#ifdef IS_IN_ldconfig
 +#include <sysdeps/unix/sysv/linux/i386/dl-procinfo.h>
 +#else
 +#include <sysdeps/generic/dl-procinfo.h>
 +#endif
---- glibc-2.12-149-gc044aa7/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed
-+++ glibc-2.12.90-11/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed
+--- glibc-2.12-163-g315970f/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed
++++ glibc-2.12.90-13/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.12-149-gc044aa7/sysdeps/unix/sysv/linux/netlinkaccess.h
-+++ glibc-2.12.90-11/sysdeps/unix/sysv/linux/netlinkaccess.h
+--- glibc-2.12-163-g315970f/sysdeps/unix/sysv/linux/netlinkaccess.h
++++ glibc-2.12.90-13/sysdeps/unix/sysv/linux/netlinkaccess.h
 @@ -25,6 +25,24 @@
  
  #include <kernel-features.h>
@@ -2569,8 +2882,8 @@
  
  struct netlink_res
  {
---- glibc-2.12-149-gc044aa7/sysdeps/unix/sysv/linux/paths.h
-+++ glibc-2.12.90-11/sysdeps/unix/sysv/linux/paths.h
+--- glibc-2.12-163-g315970f/sysdeps/unix/sysv/linux/paths.h
++++ glibc-2.12.90-13/sysdeps/unix/sysv/linux/paths.h
 @@ -62,7 +62,7 @@
  #define	_PATH_TTY	"/dev/tty"
  #define	_PATH_UNIX	"/boot/vmlinux"
@@ -2580,13 +2893,13 @@
  #define _PATH_WTMP	"/var/log/wtmp"
  
  /* Provide trailing slash, since mostly used for building pathnames. */
---- glibc-2.12-149-gc044aa7/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c
-+++ glibc-2.12.90-11/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c
+--- glibc-2.12-163-g315970f/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c
++++ glibc-2.12.90-13/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c
 @@ -1 +1 @@
 -#include "../../fxstat.c"
 +#include "../../i386/fxstat.c"
---- glibc-2.12-149-gc044aa7/sysdeps/unix/sysv/linux/tcsetattr.c
-+++ glibc-2.12.90-11/sysdeps/unix/sysv/linux/tcsetattr.c
+--- glibc-2.12-163-g315970f/sysdeps/unix/sysv/linux/tcsetattr.c
++++ glibc-2.12.90-13/sysdeps/unix/sysv/linux/tcsetattr.c
 @@ -49,6 +49,7 @@ tcsetattr (fd, optional_actions, termios_p)
  {
    struct __kernel_termios k_termios;
@@ -2632,8 +2945,8 @@
 +  return retval;
  }
  libc_hidden_def (tcsetattr)
---- glibc-2.12-149-gc044aa7/timezone/zic.c
-+++ glibc-2.12.90-11/timezone/zic.c
+--- glibc-2.12-163-g315970f/timezone/zic.c
++++ glibc-2.12.90-13/timezone/zic.c
 @@ -1921,7 +1921,7 @@ const int			zonecount;
  		if (stdrp != NULL && stdrp->r_hiyear == 2037)
  			return;
diff --git a/glibc.spec b/glibc.spec
index 583ce30..3e4a2b6 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -1,6 +1,6 @@
-%define glibcsrcdir glibc-2.12-149-gc044aa7
+%define glibcsrcdir glibc-2.12-163-g315970f
 %define glibcversion 2.12.90
-%define glibcportsdir glibc-ports-2.12-26-gcf64098
+%define glibcportsdir glibc-ports-2.12-31-g6c14d67
 ### glibc.spec.in follows:
 %define run_glibc_tests 1
 %define auxarches athlon alphaev6
@@ -24,7 +24,7 @@
 Summary: The GNU libc libraries
 Name: glibc
 Version: %{glibcversion}
-Release: 12
+Release: 13
 # 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
@@ -1026,6 +1026,24 @@ rm -f *.filelist*
 %endif
 
 %changelog
+* Mon Sep 27 2010 Andreas Schwab <schwab at redhat.com> - 2.12.90-13
+- Update from master
+  - Add two forgotten licence exceptions
+  - getdents64 fallback d_type support
+  - Move freeres function from ld.so to libc.so
+  - Undo feature selection for ftruncate (BZ#12037)
+  - Fix namespace pollution in pthread_cleanup_push
+  - Fix limit detection in x86-64 SSE2 strncasecmp (#632560)
+  - Add support for fanotify_mark on sparc32 and s390
+  - Fix register conflict in s390 ____longjmp_chk (#629970)
+  - Don't try to free rpath strings allocated during startup (#629976)
+  - Actually make it possible to user the default name server
+- Fix memory leak on init/fini dependency list (#632936)
+- Fix handling of collating symbols in regexps (BZ#11561)
+- Don't parse %s format argument as multibyte string (BZ#6530)
+- Fix overflow in nss files parser
+- Fix spurious nop at start of __strspn_ia32
+
 * Wed Sep 15 2010 Dennis Gilmore <dennis at ausil.us> - 2.12.90-12
 - dont build sparcv9v and sparc64v anymore
 
diff --git a/sources b/sources
index a2b6940..d3b246e 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-d6c046b018670c6ef348ce3805fce39b  glibc-2.12-149-gc044aa7-fedora.tar.xz
-6dd02afb4d4281046ee35a3786a45aa6  glibc-2.12-149-gc044aa7.tar.xz
-55e1fb63902af7d5d6c5ab8d647eaa3a  glibc-ports-2.12-26-gcf64098.tar.xz
+1b64b925d1b0965f6a62f36468d9f37c  glibc-2.12-163-g315970f-fedora.tar.xz
+1ce25bd2bfb7fe19892b3bc9ab9ad78a  glibc-2.12-163-g315970f.tar.xz
+863d519df96251c7319dacbc53df1288  glibc-ports-2.12-31-g6c14d67.tar.xz


More information about the scm-commits mailing list