]> git.ipfire.org Git - people/amarx/ipfire-3.x.git/commitdiff
glibc: Update to 2.14.90 (development version).
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 4 Jan 2012 23:57:02 +0000 (00:57 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 4 Jan 2012 23:57:02 +0000 (00:57 +0100)
glibc/glibc.nm
glibc/patches/glibc-fedora.patch
glibc/patches/glibc-rh730856.patch [new file with mode: 0644]
glibc/patches/glibc-rh740506.patch [new file with mode: 0644]
glibc/patches/glibc-rh757881.patch [new file with mode: 0644]
glibc/patches/glibc-rh769421.patch [new file with mode: 0644]

index aa405471379df08f87963b8accdff8017f84bab4..3e6093da97b993450b29eb09f780b91428c1c49e 100644 (file)
@@ -4,8 +4,9 @@
 ###############################################################################
 
 name       = glibc
-version    = 2.14.1
+version    = 2.14.90
 release    = 1
+thisapp    = %{name}-2.14-16c6f99
 
 maintainer = Michael Tremer <michael.tremer@ipfire.org>
 groups     = System/Base
@@ -24,25 +25,25 @@ description
 end
 
 # The version of the ports addon.
-ports_version = %{version}
+ports_version = 2.14-c2aeee1
 
 source_dl  = http://ftp.gnu.org/gnu/glibc/
-sources    = %{thisapp}.tar.xz glibc-ports-%{ports_version}.tar.xz
+sources    = %{thisapp}.tar.gz glibc-ports-%{ports_version}.tar.gz
 
 build
        # Optimize glibc for kernel
        OPTIMIZED_KERNEL = 2.6.32
 
        requires
-               audit-devel
-               autoconf
-               automake
-               gettext
+               #audit-devel
+               #autoconf
+               #automake
+               #gettext
                kernel-headers>=%{OPTIMIZED_KERNEL}
                libcap-devel
                libselinux-devel
-               nss-devel
-               texinfo
+               #nss-devel
+               #texinfo
        end
 
        # Build glibc with custom cflags
@@ -154,9 +155,8 @@ build
                --enable-kernel=%{OPTIMIZED_KERNEL} \
                --with-selinux \
                --disable-werror \
-               --enable-experimental-malloc \
-               --enable-bind-now \
-               --enable-nss-crypt
+               --enable-bind-now
+#              --enable-nss-crypt
 
        if "%{DISTRO_ARCH}" == "armv5tel"
                # Disable hardware FP for ARM.
index ac1e0a5a80827cf6ccb65371b8a489e4e0cd9424..1f5298bbe2b6cb643b87f799986fb3fcd789ed46 100644 (file)
@@ -1,8 +1,33 @@
---- glibc-2.14.1/ChangeLog
-+++ glibc-2.14.1-2/ChangeLog
-@@ -200,6 +200,14 @@
-       * malloc/memusage.sh: Fix quoting in message.
-       * debug/xtrace.sh: Likewise.
+diff -Nur a/ChangeLog b/ChangeLog
+--- a/ChangeLog        2011-12-22 16:50:52.000000000 +0000
++++ b/ChangeLog        2011-12-22 18:00:44.158145149 +0000
+@@ -2416,6 +2416,11 @@
+       * sysdeps/mach/hurd/sys/param.h (DEV_BSIZE): New macro.
++2011-09-02  Andreas Schwab  <schwab@redhat.com>
++
++      * nscd/selinux.c (avc_create_thread): Set PR_SET_KEEPCAPS before
++      spawning AVC thread.
++
+ 2011-09-08  Andreas Schwab  <schwab@redhat.com>
+       * elf/dl-load.c (lose): Check for non-null L.
+@@ -2678,6 +2683,11 @@
+       * sysdeps/i386/dl-trampoline.S (_dl_runtime_profile): Fix cfi
+       directive.
++2011-08-31  Andreas Schwab  <schwab@redhat.com>
++
++      * include/link.h (FORCED_DYNAMIC_TLS_OFFSET) [NO_TLS_OFFSET == 0]:
++      Change to -1.
++
+ 2011-08-24  David S. Miller  <davem@davemloft.net>
+       * sysdeps/sparc/sparc64/strcmp.S: Rewrite.
+@@ -3483,6 +3493,14 @@
+       * config.make.in: Likewise.
+       * malloc/Makefile: Likewise.
  
 +2011-06-28  Andreas Schwab  <schwab@redhat.com>
 +
  2011-06-27  Andreas Schwab  <schwab@redhat.com>
  
        * iconvdata/gb18030.c (BODY for TO_LOOP): Fix encoding of non-BMP
-@@ -215,6 +223,10 @@
-       * sysdeps/posix/getaddrinfo.c (gaih_inet): When looking up only IPv6
-       addresses using gethostbyname4_r ignore IPv4 addresses.
+@@ -3614,6 +3632,10 @@
+       * inet/getnetgrent_r.c: Use DL_CALL_FCT in several places.
  
 +2011-06-21  Andreas Schwab  <schwab@redhat.com>
 +
 +      * iconvdata/gb18030.c: Regenerate tables.
 +
- 2011-06-15  Ulrich Drepper  <drepper@gmail.com>
+ 2011-06-20  David S. Miller  <davem@davemloft.net>
  
-       * resolv/res_send.c (__libc_res_nsend): Fix typos in last patch.  We
-@@ -692,6 +704,13 @@
+       * sysdeps/sparc/sparc32/dl-plt.h: Protect against multiple
+@@ -4236,6 +4258,13 @@
        * libio/Makefile (tests): Add bug-fclose1.
        * libio/bug-fclose1.c: New file.
  
@@ -40,7 +65,7 @@
  2011-05-12  Ulrich Drepper  <drepper@gmail.com>
  
        [BZ #12511]
-@@ -969,13 +988,6 @@
+@@ -4513,13 +4542,6 @@
        * stdlib/bug-getcontext.c: New file.
        * stdlib/Makefile: Add rules to build and run bug-getcontext.
  
@@ -54,7 +79,7 @@
  2011-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
  
        * sysdeps/s390/s390-32/elf/start.S (_start): Skip extra zeroes
-@@ -1213,6 +1225,31 @@
+@@ -4757,6 +4779,31 @@
        * sysdeps/unix/sysv/linux/Versions [GLIBC_2.14] (clock_adjtime):
        Export.
  
  2011-03-22  Ulrich Drepper  <drepper@gmail.com>
  
        * sysdeps/unix/sysv/linux/i386/sysconf.c (intel_check_word): Increment
-@@ -1273,6 +1310,16 @@
+@@ -4817,6 +4864,16 @@
        $LDFLAGS and -nostdlib -nostartfiles to linking step.  Change main
        to _start.
  
  2011-03-06  Ulrich Drepper  <drepper@gmail.com>
  
        * elf/dl-load.c (_dl_map_object): If we are looking for the first
-@@ -1327,12 +1374,6 @@
-       * elf/noload.c: Include <memcheck.h>.
-       (main): Call mtrace.  Close all opened handles.
--2011-02-17  Andreas Schwab  <schwab@redhat.com>
--
--      [BZ #12454]
--      * elf/dl-deps.c (_dl_map_object_deps): Signal error early when
--      dependencies are missing.
--
- 2011-02-22  Samuel Thibault  <samuel.thibault@ens-lyon.org>
-       Fix __if_freereq crash: Unlike the generic version which uses free,
-@@ -1489,6 +1530,12 @@
+@@ -5033,6 +5090,12 @@
        * shadow/sgetspent.c: Check return value of __sgetspent_r instead
        of errno.
  
  2011-01-19  Ulrich Drepper  <drepper@gmail.com>
  
        [BZ #11724]
-@@ -2176,6 +2223,26 @@
+@@ -5720,6 +5783,26 @@
        * sysdeps/unix/sysv/linux/internal_statvfs.c (INTERNAL_STATVFS):
        Mask out sign-bit copies when constructing f_fsid.
  
  2010-09-24  Petr Baudis <pasky@suse.cz>
  
        * debug/stack_chk_fail_local.c: Add missing licence exception.
-@@ -2968,6 +3035,17 @@
+@@ -6512,6 +6595,17 @@
        call returning > 0 value.
        * sysdeps/unix/sysv/linux/getlogin.c (getlogin): Likewise.
  
  2010-06-07  Andreas Schwab  <schwab@redhat.com>
  
        * dlfcn/Makefile: Remove explicit dependencies on libc.so and
-@@ -3020,6 +3098,24 @@
+@@ -6564,6 +6658,21 @@
        * hurd/hurd/fd.h (__file_name_lookup_at): Update comment.
        * sysdeps/mach/hurd/linkat.c (linkat): Pass O_NOLINK in FLAGS.
  
 +
 +2010-06-10  Andreas Schwab  <schwab@redhat.com>
 +
-+      * sysdeps/unix/sysv/linux/getpagesize.c: Don't assume AT_PAGESIZE
-+      is always available.
-+
 +      * sysdeps/unix/sysv/linux/i386/Versions: Export __uname under
 +      GLIBC_PRIVATE.
 +      * nptl/Versions: Export __getrlimit under GLIBC_PRIVATE.
  2010-05-28  Luis Machado  <luisgpm@br.ibm.com>
  
        * sysdeps/powerpc/powerpc32/power7/memcpy.S: Exchange srdi for srwi.
---- glibc-2.14.1/ChangeLog.15
-+++ glibc-2.14.1-2/ChangeLog.15
+diff -Nur a/ChangeLog.15 b/ChangeLog.15
+--- a/ChangeLog.15     2011-12-22 16:50:52.000000000 +0000
++++ b/ChangeLog.15     2011-12-22 17:59:24.542119295 +0000
 @@ -477,6 +477,14 @@
  
  2004-11-26  Jakub Jelinek  <jakub@redhat.com>
  2004-08-30  Roland McGrath  <roland@frob.com>
  
        * scripts/extract-abilist.awk: If `lastversion' variable defined, omit
---- glibc-2.14.1/ChangeLog.16
-+++ glibc-2.14.1-2/ChangeLog.16
+diff -Nur a/ChangeLog.16 b/ChangeLog.16
+--- a/ChangeLog.16     2011-12-22 16:50:52.000000000 +0000
++++ b/ChangeLog.16     2011-12-22 17:59:24.545119296 +0000
 @@ -2042,6 +2042,9 @@
        (__MATHDECL_2): Use __REDIRECT_NTH instead of __REDIRECT
        followed by __THROW.
  2006-01-19  Thomas Schwinge  <tschwinge@gnu.org>
  
        * libio/genops.c: Include <stdbool.h>.
---- glibc-2.14.1/ChangeLog.17
-+++ glibc-2.14.1-2/ChangeLog.17
+diff -Nur a/ChangeLog.17 b/ChangeLog.17
+--- a/ChangeLog.17     2011-12-22 16:50:52.000000000 +0000
++++ b/ChangeLog.17     2011-12-22 17:59:24.549119296 +0000
 @@ -256,6 +256,12 @@
  
        * Makerules (libc-abis): Fix search for libc-abis in add-ons.
  2010-04-05  Thomas Schwinge  <thomas@schwinge.name>
  
        * sysdeps/gnu/unwind-resume.c: New, moved from nptl/sysdeps/pthread/.
-@@ -1010,6 +1016,13 @@
-       * sysdeps/x86_64/fpu/fegetenv.c: Likewise
-       * sysdeps/s390/fpu/fegetenv.c: Likewise.  Remove unused headers.
-+2009-10-27  Aurelien Jarno  <aurelien@aurel32.net>
-+
-+      [BZ #10855]
-+      * locale/programs/locarchive.c: use MMAP_SHARED to reserve memory
-+      used later with MMAP_FIXED | MMAP_SHARED to cope with different
-+      alignment restrictions.
-+
- 2010-02-05  H.J. Lu  <hongjiu.lu@intel.com>
-       [BZ #11230]
-@@ -2953,6 +2966,11 @@ d2009-10-30  Ulrich Drepper  <drepper@redhat.com>
+@@ -2953,6 +2959,11 @@
        * sysdeps/generic/ldsodefs.h (struct rtld_global): The map element in
        the unique symbol hash table should not be const.
  
  2009-07-21  Ulrich Drepper  <drepper@redhat.com>
  
        * sysdeps/x86_64/multiarch/strstr.c: Minor cleanups.  Remove
-@@ -3218,6 +3236,11 @@ d2009-10-30  Ulrich Drepper  <drepper@redhat.com>
+@@ -3218,6 +3229,11 @@
        out common code into new function get_common_indeces. Determine
        extended family and model for Intel processors.
  
  2009-06-26  Ulrich Drepper  <drepper@redhat.com>
  
        * resolv/resolv.h: Define RES_SNGLKUPREOP.
-@@ -11818,6 +11841,10 @@ d2009-10-30  Ulrich Drepper  <drepper@redhat.com>
+@@ -11818,6 +11834,10 @@
        [BZ #4368]
        * stdlib/stdlib.h: Remove obsolete part of comment for realpath.
  
  2007-04-16  Ulrich Drepper  <drepper@redhat.com>
  
        [BZ #4364]
-@@ -13075,6 +13102,15 @@ d2009-10-30  Ulrich Drepper  <drepper@redhat.com>
+@@ -13075,6 +13095,15 @@
        separators also if no non-zero digits found.
        * stdlib/Makefile (tests): Add tst-strtod3.
  
  2006-12-09  Ulrich Drepper  <drepper@redhat.com>
  
        [BZ #3632]
---- glibc-2.14.1/Makeconfig
-+++ glibc-2.14.1-2/Makeconfig
-@@ -791,12 +791,12 @@ endif
+diff -Nur a/Makeconfig b/Makeconfig
+--- a/Makeconfig       2011-12-22 16:50:52.000000000 +0000
++++ b/Makeconfig       2011-12-22 17:59:24.551119298 +0000
+@@ -803,12 +803,12 @@
  # The assembler can generate debug information too.
  ifndef ASFLAGS
  ifeq ($(have-cpp-asm-debuginfo),yes)
  
  ifndef BUILD_CC
  BUILD_CC = $(CC)
---- glibc-2.14.1/NEWS
-+++ glibc-2.14.1-2/NEWS
-@@ -27,16 +27,6 @@ Version 2.14
+diff -Nur a/NEWS b/NEWS
+--- a/NEWS     2011-12-22 16:50:52.000000000 +0000
++++ b/NEWS     2011-12-22 17:59:24.552119299 +0000
+@@ -83,16 +83,6 @@
    12724, 12734, 12738, 12746, 12766, 12775, 12777, 12782, 12788, 12792,
    12795, 12811, 12813, 12814, 12841
  
  * New Linux interfaces: clock_adjtime, name_to_handle_at, open_by_handle_at,
    syncfs, setns, sendmmsg
  
---- glibc-2.14.1/config.h.in
-+++ glibc-2.14.1-2/config.h.in
-@@ -204,6 +204,9 @@
+diff -Nur a/config.h.in b/config.h.in
+--- a/config.h.in      2011-12-22 16:50:52.000000000 +0000
++++ b/config.h.in      2011-12-22 17:59:24.552119299 +0000
+@@ -187,6 +187,9 @@
  /* Define if `.ctors' and `.dtors' sections shouldn't be used.  */
  #undef        NO_CTORS_DTORS_SECTIONS
  
  /*
  \f */
  
---- glibc-2.14.1/configure
-+++ glibc-2.14.1-2/configure
-@@ -784,6 +784,7 @@ enable_all_warnings
+diff -Nur a/configure b/configure
+--- a/configure        2011-12-22 18:00:26.275139344 +0000
++++ b/configure        2011-12-22 17:59:24.706119348 +0000
+@@ -791,6 +791,7 @@
+ enable_all_warnings
  enable_multi_arch
- enable_experimental_malloc
  enable_nss_crypt
 +enable_systemtap
  with_cpu
  '
        ac_precious_vars='build_alias
-@@ -1444,6 +1445,7 @@ Optional Features:
-   --enable-experimental-malloc
-                           enable experimental malloc features
+@@ -1450,6 +1451,7 @@
+   --enable-multi-arch     enable single DSO with optimizations for multiple
+                           architectures
    --enable-nss-crypt      enable libcrypt to use nss
 +  --enable-systemtap      enable systemtap static probe points [default=no]
  
  Optional Packages:
    --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-@@ -3823,6 +3825,51 @@ else
+@@ -3804,6 +3806,51 @@
  fi
  
  
  # The way shlib-versions is used to generate soversions.mk uses a
  # fairly simplistic model for name recognition that can't distinguish
  # i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a $host_os
---- glibc-2.14.1/configure.in
-+++ glibc-2.14.1-2/configure.in
-@@ -316,6 +316,29 @@ else
+diff -Nur a/configure.in b/configure.in
+--- a/configure.in     2011-12-22 16:50:52.000000000 +0000
++++ b/configure.in     2011-12-22 17:59:24.555119299 +0000
+@@ -290,6 +290,29 @@
  fi
  AC_SUBST(libc_cv_nss_crypt)
  
  # The way shlib-versions is used to generate soversions.mk uses a
  # fairly simplistic model for name recognition that can't distinguish
  # i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a $host_os
---- glibc-2.14.1/csu/Makefile
-+++ glibc-2.14.1-2/csu/Makefile
-@@ -93,7 +93,8 @@ omit-deps += $(crtstuff)
+diff -Nur a/csu/Makefile b/csu/Makefile
+--- a/csu/Makefile     2011-12-22 16:50:52.000000000 +0000
++++ b/csu/Makefile     2011-12-22 17:59:24.556119299 +0000
+@@ -93,7 +93,8 @@
  $(crtstuff:%=$(objpfx)%.o): %.o: %.S $(objpfx)defs.h
        $(compile.S) -g0 $(ASFLAGS-.os) -o $@
  
  
  vpath initfini.c $(sysdirs)
  
---- glibc-2.14.1/csu/elf-init.c
-+++ glibc-2.14.1-2/csu/elf-init.c
-@@ -63,6 +63,23 @@ extern void (*__init_array_end []) (int, char **, char **)
+diff -Nur a/csu/elf-init.c b/csu/elf-init.c
+--- a/csu/elf-init.c   2011-12-22 16:50:52.000000000 +0000
++++ b/csu/elf-init.c   2011-12-22 17:59:24.557119299 +0000
+@@ -64,6 +64,23 @@
  extern void (*__fini_array_start []) (void) attribute_hidden;
  extern void (*__fini_array_end []) (void) attribute_hidden;
  
  
  /* These function symbols are provided for the .init/.fini section entry
     points automagically by the linker.  */
---- glibc-2.14.1/debug/tst-chk1.c
-+++ glibc-2.14.1-2/debug/tst-chk1.c
+diff -Nur a/debug/tst-chk1.c b/debug/tst-chk1.c
+--- a/debug/tst-chk1.c 2011-12-22 16:50:52.000000000 +0000
++++ b/debug/tst-chk1.c 2011-12-22 17:59:24.557119299 +0000
 @@ -17,6 +17,9 @@
     Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
     02111-1307 USA.  */
  #include <assert.h>
  #include <fcntl.h>
  #include <locale.h>
-@@ -242,7 +245,7 @@ do_test (void)
+@@ -243,7 +246,7 @@
    if (memcmp (a.buf1, "aabcdabcjj", 10))
      FAIL ();
  
    /* The following tests are supposed to crash with -D_FORTIFY_SOURCE=2
       and sufficient GCC support, as the string operations overflow
       from a.buf1 into a.buf2.  */
-@@ -357,7 +360,7 @@ do_test (void)
+@@ -358,7 +361,7 @@
    memset (a.buf1 + 9, 'j', l0 + 2);
    CHK_FAIL_END
  
  #  define O 0
  # else
  #  define O 1
---- glibc-2.14.1/elf/Makefile
-+++ glibc-2.14.1-2/elf/Makefile
-@@ -135,6 +135,7 @@ include ../Makeconfig
+diff -Nur a/elf/Makefile b/elf/Makefile
+--- a/elf/Makefile     2011-12-22 16:50:52.000000000 +0000
++++ b/elf/Makefile     2011-12-22 17:59:24.558119299 +0000
+@@ -135,6 +135,7 @@
  ifeq ($(unwind-find-fde),yes)
  routines += unwind-dw2-fde-glibc
  shared-only-routines += unwind-dw2-fde-glibc
  endif
  
  before-compile  = $(objpfx)trusted-dirs.h
-@@ -504,7 +505,8 @@ CFLAGS-ldconfig.c = $(SYSCONF-FLAGS) -D'LIBDIR="$(libdir)"' \
+@@ -505,7 +506,8 @@
  CFLAGS-dl-cache.c = $(SYSCONF-FLAGS)
  CFLAGS-cache.c = $(SYSCONF-FLAGS)
  
  
  test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names))))
  generated += $(addsuffix .so,$(strip $(modules-names)))
---- glibc-2.14.1/elf/dl-close.c
-+++ glibc-2.14.1-2/elf/dl-close.c
-@@ -119,17 +119,8 @@ _dl_close_worker (struct link_map *map)
+diff -Nur a/elf/dl-close.c b/elf/dl-close.c
+--- a/elf/dl-close.c   2011-12-22 16:50:52.000000000 +0000
++++ b/elf/dl-close.c   2011-12-22 17:59:24.559119299 +0000
+@@ -119,17 +119,8 @@
    if (map->l_direct_opencount > 0 || map->l_type != lt_loaded
        || dl_close_state != not_pending)
      {
  
        /* There are still references to this object.  Do nothing more.  */
        if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0))
---- glibc-2.14.1/elf/dl-deps.c
-+++ glibc-2.14.1-2/elf/dl-deps.c
-@@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *map,
+diff -Nur a/elf/dl-deps.c b/elf/dl-deps.c
+--- a/elf/dl-deps.c    2011-12-22 16:50:52.000000000 +0000
++++ b/elf/dl-deps.c    2011-12-22 17:59:24.559119299 +0000
+@@ -489,6 +489,7 @@
                  nneeded * sizeof needed[0]);
          atomic_write_barrier ();
          l->l_initfini = l_initfini;
        }
  
        /* If we have no auxiliary objects just go on to the next map.  */
-@@ -678,6 +679,7 @@ Filters not supported with LD_TRACE_PRELINKING"));
+@@ -689,6 +690,7 @@
    l_initfini[nlist] = NULL;
    atomic_write_barrier ();
    map->l_initfini = l_initfini;
    if (l_reldeps != NULL)
      {
        atomic_write_barrier ();
-@@ -686,7 +688,7 @@ Filters not supported with LD_TRACE_PRELINKING"));
+@@ -697,7 +699,7 @@
        _dl_scope_free (old_l_reldeps);
      }
    if (old_l_initfini != NULL)
  
    if (errno_reason)
      _dl_signal_error (errno_reason == -1 ? 0 : errno_reason, objname,
---- glibc-2.14.1/elf/dl-init.c
-+++ glibc-2.14.1-2/elf/dl-init.c
+diff -Nur a/elf/dl-init.c b/elf/dl-init.c
+--- a/elf/dl-init.c    2011-12-22 16:50:52.000000000 +0000
++++ b/elf/dl-init.c    2011-12-22 17:59:24.560119299 +0000
 @@ -24,11 +24,9 @@
  /* Type of the initializer.  */
  typedef void (*init_t) (int, char **, char **);
  
  
  static void
-@@ -133,9 +131,7 @@ _dl_init (struct link_map *main_map, int argc, char **argv, char **env)
+@@ -133,9 +131,7 @@
    while (i-- > 0)
      call_init (main_map->l_initfini[i], argc, argv, env);
  
 -#endif
  }
  INTDEF (_dl_init)
---- glibc-2.14.1/elf/dl-libc.c
-+++ glibc-2.14.1-2/elf/dl-libc.c
-@@ -265,13 +265,13 @@ libc_freeres_fn (free_mem)
+diff -Nur a/elf/dl-libc.c b/elf/dl-libc.c
+--- a/elf/dl-libc.c    2011-12-22 16:50:52.000000000 +0000
++++ b/elf/dl-libc.c    2011-12-22 17:59:24.560119299 +0000
+@@ -270,13 +270,13 @@
  
    for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns)
      {
          while (lnp != NULL)
            {
              struct libname_list *old = lnp;
-@@ -279,6 +279,10 @@ libc_freeres_fn (free_mem)
+@@ -284,6 +284,10 @@
              if (! old->dont_free)
                free (old);
            }
        }
  
        if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0
---- glibc-2.14.1/elf/dl-load.c
-+++ glibc-2.14.1-2/elf/dl-load.c
-@@ -250,8 +250,7 @@ is_trusted_path_normalize (const char *path, size_t len)
+diff -Nur a/elf/dl-load.c b/elf/dl-load.c
+--- a/elf/dl-load.c    2011-12-22 16:50:52.000000000 +0000
++++ b/elf/dl-load.c    2011-12-22 17:59:24.561119300 +0000
+@@ -250,8 +250,7 @@
  
  
  static size_t
  {
    size_t len;
    bool is_curly = false;
-@@ -280,12 +279,6 @@ is_dst (const char *start, const char *name, const char *str,
+@@ -280,12 +279,6 @@
           && (!is_path || name[len] != ':'))
      return 0;
  
    return len;
  }
  
-@@ -300,13 +293,10 @@ _dl_dst_count (const char *name, int is_path)
+@@ -300,13 +293,10 @@
      {
        size_t len;
  
        ++cnt;
  
        name = strchr (name + len, '$');
-@@ -339,9 +329,16 @@ _dl_dst_substitute (struct link_map *l, const char *name, char *result,
+@@ -339,9 +329,16 @@
          size_t len;
  
          ++name;
  #ifndef SHARED
              if (l == NULL)
                repl = _dl_get_origin ();
-@@ -352,9 +349,9 @@ _dl_dst_substitute (struct link_map *l, const char *name, char *result,
+@@ -352,9 +349,9 @@
              check_for_trusted = (INTUSE(__libc_enable_secure)
                                   && l->l_type == lt_executable);
            }
            repl = DL_DST_LIB;
  
          if (repl != NULL && repl != (const char *) -1)
-@@ -374,6 +371,7 @@ _dl_dst_substitute (struct link_map *l, const char *name, char *result,
+@@ -374,6 +371,7 @@
                 element, but keep an empty element at the end.  */
              if (wp == result && is_path && *name == ':' && name[1] != '\0')
                ++name;
            }
          else
            /* No DST we recognize.  */
---- glibc-2.14.1/elf/dl-support.c
-+++ glibc-2.14.1-2/elf/dl-support.c
-@@ -81,10 +81,8 @@ unsigned long long _dl_load_adds;
+diff -Nur a/elf/dl-support.c b/elf/dl-support.c
+--- a/elf/dl-support.c 2011-12-22 16:50:52.000000000 +0000
++++ b/elf/dl-support.c 2011-12-22 17:59:24.561119300 +0000
+@@ -82,10 +82,8 @@
     create a fake scope containing nothing.  */
  struct r_scope_elem _dl_initial_searchlist;
  
  
  /* Random data provided by the kernel.  */
  void *_dl_random;
---- glibc-2.14.1/elf/ldconfig.c
-+++ glibc-2.14.1-2/elf/ldconfig.c
-@@ -1034,17 +1034,19 @@ search_dirs (void)
+diff -Nur a/elf/ldconfig.c b/elf/ldconfig.c
+--- a/elf/ldconfig.c   2011-12-22 16:50:52.000000000 +0000
++++ b/elf/ldconfig.c   2011-12-22 17:59:24.562119301 +0000
+@@ -1034,17 +1034,19 @@
  
  
  static void parse_conf_include (const char *config_file, unsigned int lineno,
  
    if (do_chroot && opt_chroot)
      {
-@@ -1105,7 +1107,14 @@ parse_conf (const char *filename, bool do_chroot)
+@@ -1105,7 +1107,14 @@
          cp += 8;
          while ((dir = strsep (&cp, " \t")) != NULL)
            if (dir[0] != '\0')
        }
        else if (!strncasecmp (cp, "hwcap", 5) && isblank (cp[5]))
        {
-@@ -1168,7 +1177,7 @@ parse_conf (const char *filename, bool do_chroot)
+@@ -1168,7 +1177,7 @@
     config files to read.  */
  static void
  parse_conf_include (const char *config_file, unsigned int lineno,
  {
    if (opt_chroot && pattern[0] != '/')
      error (EXIT_FAILURE, 0,
-@@ -1200,7 +1209,7 @@ parse_conf_include (const char *config_file, unsigned int lineno,
+@@ -1200,7 +1209,7 @@
      {
      case 0:
        for (size_t i = 0; i < gl.gl_pathc; ++i)
        globfree64 (&gl);
        break;
  
-@@ -1243,6 +1252,8 @@ main (int argc, char **argv)
+@@ -1243,6 +1252,8 @@
    /* Set the text message domain.  */
    textdomain (_libc_intl_domainname);
  
    /* Parse and process arguments.  */
    int remaining;
    argp_parse (&argp, argc, argv, 0, &remaining, NULL);
-@@ -1352,12 +1363,14 @@ main (int argc, char **argv)
+@@ -1352,12 +1363,14 @@
  
    if (!opt_only_cline)
      {
      }
  
    const char *aux_cache_file = _PATH_LDCONFIG_AUX_CACHE;
---- glibc-2.14.1/elf/ldd.bash.in
-+++ glibc-2.14.1-2/elf/ldd.bash.in
-@@ -167,18 +167,6 @@ warning: you do not have execution permission for" "\`$file'" >&2
+diff -Nur a/elf/ldd.bash.in b/elf/ldd.bash.in
+--- a/elf/ldd.bash.in  2011-12-22 16:50:52.000000000 +0000
++++ b/elf/ldd.bash.in  2011-12-22 17:59:24.563119302 +0000
+@@ -167,18 +167,6 @@
        fi
      done
      case $ret in
      1)
        # This can be a non-ELF binary or no binary at all.
        nonelf "$file" || {
-@@ -186,7 +174,7 @@ warning: you do not have execution permission for" "\`$file'" >&2
+@@ -186,7 +174,7 @@
        result=1
        }
        ;;
        try_trace "$RTLD" "$file" || result=1
        ;;
      *)
---- glibc-2.14.1/elf/rtld-Rules
-+++ glibc-2.14.1-2/elf/rtld-Rules
+diff -Nur a/elf/rtld-Rules b/elf/rtld-Rules
+--- a/elf/rtld-Rules   2011-12-22 16:50:52.000000000 +0000
++++ b/elf/rtld-Rules   2011-12-22 17:59:24.563119302 +0000
 @@ -1,7 +1,7 @@
  # Subroutine makefile for compiling libc modules linked into dynamic linker.
  
  # This file is part of the GNU C Library.
  
  # The GNU C Library is free software; you can redistribute it and/or
-@@ -131,6 +131,6 @@ ifdef rtld-depfiles
+@@ -131,6 +131,6 @@
  endif
  
  # This here is the whole point of all the shenanigans.
 +rtld-CPPFLAGS := -DNOT_IN_libc=1 -DIS_IN_rtld=1 -DIN_LIB=rtld
  
  endif
---- glibc-2.14.1/elf/rtld.c
-+++ glibc-2.14.1-2/elf/rtld.c
-@@ -107,7 +107,6 @@ static struct audit_list
+diff -Nur a/elf/rtld.c b/elf/rtld.c
+--- a/elf/rtld.c       2011-12-22 16:50:52.000000000 +0000
++++ b/elf/rtld.c       2011-12-22 17:59:24.564119303 +0000
+@@ -107,7 +107,6 @@
    struct audit_list *next;
  } *audit_list;
  
  /* Set nonzero during loading and initialization of executable and
     libraries, cleared before the executable's entry point runs.  This
     must not be initialized to nonzero, because the unused dynamic
-@@ -117,7 +116,6 @@ static struct audit_list
+@@ -117,7 +116,6 @@
     never be called.  */
  int _dl_starting_up = 0;
  INTVARDEF(_dl_starting_up)
  
  /* This is the structure which defines all variables global to ld.so
     (except those which cannot be added for some reason).  */
-@@ -923,10 +921,8 @@ dl_main (const ElfW(Phdr) *phdr,
+@@ -929,10 +927,8 @@
    /* Process the environment variable which control the behaviour.  */
    process_envvars (&mode);
  
  
    if (*user_entry == (ElfW(Addr)) ENTRY_POINT)
      {
-@@ -2263,6 +2259,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
+@@ -1397,7 +1393,9 @@
+             char *copy = malloc (len);
+             if (copy == NULL)
+               _dl_fatal_printf ("out of memory\n");
+-            l->l_libname->name = l->l_name = memcpy (copy, dsoname, len);
++            l->l_libname->name = memcpy (copy, dsoname, len);
++            if (GLRO(dl_debug_mask))
++              l->l_name = copy;
+           }
+         /* Add the vDSO to the object list.  */
+@@ -2276,6 +2274,7 @@
              lnp->dont_free = 1;
              lnp = lnp->next;
            }
  
          if (l != &GL(dl_rtld_map))
            _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,
-@@ -2312,7 +2309,6 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
+@@ -2327,7 +2326,6 @@
  
    /* Make sure no new search directories have been added.  */
    assert (GLRO(dl_init_all_dirs) == GL(dl_all_dirs));
    if (! prelinked && rtld_multiple_ref)
      {
        /* There was an explicit ref to the dynamic linker as a shared lib.
---- glibc-2.14.1/extra-lib.mk
-+++ glibc-2.14.1-2/extra-lib.mk
-@@ -101,4 +101,4 @@ ifneq (,$(cpp-srcs-left))
+diff -Nur a/extra-lib.mk b/extra-lib.mk
+--- a/extra-lib.mk     2011-12-22 16:50:52.000000000 +0000
++++ b/extra-lib.mk     2011-12-22 17:59:24.564119303 +0000
+@@ -101,4 +101,4 @@
  include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left))
  endif
  
 -CPPFLAGS-$(lib) := -DNOT_IN_libc=1 -DIS_IN_$(lib)=1
 +CPPFLAGS-$(lib) := -DNOT_IN_libc=1 -DIS_IN_$(lib)=1 -DIN_LIB=$(lib)
---- glibc-2.14.1/include/bits/stdlib-ldbl.h
-+++ glibc-2.14.1-2/include/bits/stdlib-ldbl.h
+diff -Nur a/include/bits/stdlib-ldbl.h b/include/bits/stdlib-ldbl.h
+--- a/include/bits/stdlib-ldbl.h       1970-01-01 00:00:00.000000000 +0000
++++ b/include/bits/stdlib-ldbl.h       2011-12-22 17:59:24.565119304 +0000
 @@ -0,0 +1 @@
 +#include <stdlib/bits/stdlib-ldbl.h>
---- glibc-2.14.1/include/bits/wchar-ldbl.h
-+++ glibc-2.14.1-2/include/bits/wchar-ldbl.h
+diff -Nur a/include/bits/wchar-ldbl.h b/include/bits/wchar-ldbl.h
+--- a/include/bits/wchar-ldbl.h        1970-01-01 00:00:00.000000000 +0000
++++ b/include/bits/wchar-ldbl.h        2011-12-22 17:59:24.565119304 +0000
 @@ -0,0 +1 @@
 +#include <wcsmbs/bits/wchar-ldbl.h>
---- glibc-2.14.1/include/features.h
-+++ glibc-2.14.1-2/include/features.h
+diff -Nur a/include/features.h b/include/features.h
+--- a/include/features.h       2011-12-22 16:50:52.000000000 +0000
++++ b/include/features.h       2011-12-22 17:59:24.565119304 +0000
 @@ -310,8 +310,13 @@
  #endif
  
  #  define __USE_FORTIFY_LEVEL 2
  # else
  #  define __USE_FORTIFY_LEVEL 1
---- glibc-2.14.1/include/libc-symbols.h
-+++ glibc-2.14.1-2/include/libc-symbols.h
-@@ -635,7 +635,7 @@ for linking")
+diff -Nur a/include/libc-symbols.h b/include/libc-symbols.h
+--- a/include/libc-symbols.h   2011-12-22 16:50:52.000000000 +0000
++++ b/include/libc-symbols.h   2011-12-22 17:59:24.566119304 +0000
+@@ -626,7 +626,7 @@
  # define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
  # define libc_hidden_def(name) hidden_def (name)
  # define libc_hidden_weak(name) hidden_weak (name)
  # define libc_hidden_ver(local, name) hidden_ver (local, name)
  # define libc_hidden_data_def(name) hidden_data_def (name)
  # define libc_hidden_data_weak(name) hidden_data_weak (name)
---- glibc-2.14.1/include/link.h
-+++ glibc-2.14.1-2/include/link.h
+diff -Nur a/include/link.h b/include/link.h
+--- a/include/link.h   2011-12-22 16:50:52.000000000 +0000
++++ b/include/link.h   2011-12-22 17:59:24.567119304 +0000
 @@ -1,6 +1,6 @@
  /* Data structure for communication from the run-time dynamic linker for
     loaded ELF shared objects.
     This file is part of the GNU C Library.
  
     The GNU C Library is free software; you can redistribute it and/or
-@@ -192,6 +192,9 @@ struct link_map
+@@ -192,6 +192,9 @@
                                                 during LD_TRACE_PRELINKING=1
                                                 contains any DT_SYMBOLIC
                                                 libraries.  */
  
      /* Collected information about own RPATH directories.  */
      struct r_search_path_struct l_rpath_dirs;
-@@ -240,9 +243,6 @@ struct link_map
+@@ -240,9 +243,6 @@
  
      /* List of object in order of the init and fini calls.  */
      struct link_map **l_initfini;
  
      /* List of the dependencies introduced through symbol binding.  */
      struct link_map_reldeps
---- glibc-2.14.1/include/stap-probe.h
-+++ glibc-2.14.1-2/include/stap-probe.h
+@@ -290,7 +290,7 @@
+ #endif
+ #ifndef FORCED_DYNAMIC_TLS_OFFSET
+ # if NO_TLS_OFFSET == 0
+-#  define FORCED_DYNAMIC_TLS_OFFSET 1
++#  define FORCED_DYNAMIC_TLS_OFFSET -1
+ # elif NO_TLS_OFFSET == -1
+ #  define FORCED_DYNAMIC_TLS_OFFSET -2
+ # else
+diff -Nur a/include/stap-probe.h b/include/stap-probe.h
+--- a/include/stap-probe.h     1970-01-01 00:00:00.000000000 +0000
++++ b/include/stap-probe.h     2011-12-22 17:59:24.567119304 +0000
 @@ -0,0 +1,140 @@
 +/* Macros for defining Systemtap <sys/sdt.h> static probe points.
 +   Copyright (C) 2011 Free Software Foundation, Inc.
 +#endif        /* USE_STAP_PROBE.  */
 +
 +#endif        /* stap-probe.h */
---- glibc-2.14.1/include/sys/resource.h
-+++ glibc-2.14.1-2/include/sys/resource.h
-@@ -13,4 +13,5 @@ extern int __getrusage (enum __rusage_who __who, struct rusage *__usage)
+diff -Nur a/include/sys/resource.h b/include/sys/resource.h
+--- a/include/sys/resource.h   2011-12-22 16:50:52.000000000 +0000
++++ b/include/sys/resource.h   2011-12-22 17:59:24.567119304 +0000
+@@ -13,4 +13,5 @@
  
  extern int __setrlimit (enum __rlimit_resource __resource,
                        const struct rlimit *__rlimits);
 +libc_hidden_proto (__getrlimit)
  #endif
---- glibc-2.14.1/inet/Makefile
-+++ glibc-2.14.1-2/inet/Makefile
-@@ -57,6 +57,8 @@ tests := htontest test_ifindex tst-ntoa tst-ether_aton tst-network \
+diff -Nur a/inet/Makefile b/inet/Makefile
+--- a/inet/Makefile    2011-12-22 16:50:52.000000000 +0000
++++ b/inet/Makefile    2011-12-22 17:59:24.568119304 +0000
+@@ -57,6 +57,8 @@
  
  include ../Rules
  
  ifeq ($(have-thread-library),yes)
  
  CFLAGS-gethstbyad_r.c = -DUSE_NSCD=1 -fexceptions
---- glibc-2.14.1/intl/locale.alias
-+++ glibc-2.14.1-2/intl/locale.alias
-@@ -57,8 +57,6 @@ korean               ko_KR.eucKR
+diff -Nur a/intl/locale.alias b/intl/locale.alias
+--- a/intl/locale.alias        2011-12-22 16:50:52.000000000 +0000
++++ b/intl/locale.alias        2011-12-22 17:59:24.568119304 +0000
+@@ -57,8 +57,6 @@
  korean.euc    ko_KR.eucKR
  ko_KR         ko_KR.eucKR
  lithuanian      lt_LT.ISO-8859-13
  norwegian       nb_NO.ISO-8859-1
  nynorsk               nn_NO.ISO-8859-1
  polish          pl_PL.ISO-8859-2
---- glibc-2.14.1/libio/stdio.h
-+++ glibc-2.14.1-2/libio/stdio.h
-@@ -165,10 +165,12 @@ typedef _G_fpos64_t fpos64_t;
+diff -Nur a/libio/stdio.h b/libio/stdio.h
+--- a/libio/stdio.h    2011-12-22 16:50:52.000000000 +0000
++++ b/libio/stdio.h    2011-12-22 17:59:24.569119304 +0000
+@@ -169,10 +169,12 @@
  extern struct _IO_FILE *stdin;                /* Standard input stream.  */
  extern struct _IO_FILE *stdout;               /* Standard output stream.  */
  extern struct _IO_FILE *stderr;               /* Standard error output stream.  */
  
  __BEGIN_NAMESPACE_STD
  /* Remove file FILENAME.  */
---- glibc-2.14.1/locale/iso-4217.def
-+++ glibc-2.14.1-2/locale/iso-4217.def
+diff -Nur a/locale/iso-4217.def b/locale/iso-4217.def
+--- a/locale/iso-4217.def      2011-12-22 16:50:52.000000000 +0000
++++ b/locale/iso-4217.def      2011-12-22 17:59:24.569119304 +0000
 @@ -8,6 +8,7 @@
   *
   * !!! The list has to be sorted !!!
  DEFINE_INT_CURR("AED")                /* United Arab Emirates Dirham  */
  DEFINE_INT_CURR("AFN")                /* Afghanistan Afgani  */
  DEFINE_INT_CURR("ALL")                /* Albanian Lek  */
-@@ -15,12 +16,14 @@ DEFINE_INT_CURR("AMD")             /* Armenia Dram  */
+@@ -15,12 +16,14 @@
  DEFINE_INT_CURR("ANG")                /* Netherlands Antilles  */
  DEFINE_INT_CURR("AOA")                /* Angolan Kwanza  */
  DEFINE_INT_CURR("ARS")                /* Argentine Peso  */
  DEFINE_INT_CURR("BGN")                /* Bulgarian Lev  */
  DEFINE_INT_CURR("BHD")                /* Bahraini Dinar  */
  DEFINE_INT_CURR("BIF")                /* Burundi Franc  */
-@@ -44,6 +47,7 @@ DEFINE_INT_CURR("CUP")               /* Cuban Peso  */
+@@ -44,6 +47,7 @@
  DEFINE_INT_CURR("CVE")                /* Cape Verde Escudo  */
  DEFINE_INT_CURR("CYP")                /* Cypriot Pound  */
  DEFINE_INT_CURR("CZK")                /* Czech Koruna  */
  DEFINE_INT_CURR("DJF")                /* Djibouti Franc  */
  DEFINE_INT_CURR("DKK")                /* Danish Krone (Faroe Islands, Greenland)  */
  DEFINE_INT_CURR("DOP")                /* Dominican Republic  */
-@@ -51,16 +55,20 @@ DEFINE_INT_CURR("DZD")             /* Algerian Dinar  */
+@@ -51,16 +55,20 @@
  DEFINE_INT_CURR("EEK")                /* Estonian Kroon  */
  DEFINE_INT_CURR("EGP")                /* Egyptian Pound  */
  DEFINE_INT_CURR("ERN")                /* Eritrean Nakfa  */
  DEFINE_INT_CURR("GTQ")                /* Guatemala Quetzal  */
  DEFINE_INT_CURR("GYD")                /* Guyana Dollar  */
  DEFINE_INT_CURR("HKD")                /* Hong Kong Dollar  */
-@@ -69,12 +77,14 @@ DEFINE_INT_CURR("HRK")             /* Croatia Kuna  */
+@@ -69,12 +77,14 @@
  DEFINE_INT_CURR("HTG")                /* Haiti Gourde  */
  DEFINE_INT_CURR("HUF")                /* Hungarian Forint  */
  DEFINE_INT_CURR("IDR")                /* Indonesia Rupiah  */
  DEFINE_INT_CURR("JEP")                /* Jersey Pound  */
  DEFINE_INT_CURR("JMD")                /* Jamaican Dollar  */
  DEFINE_INT_CURR("JOD")                /* Jordanian Dinar  */
-@@ -94,6 +104,7 @@ DEFINE_INT_CURR("LKR")              /* Sri Lankan Rupee  */
+@@ -94,6 +104,7 @@
  DEFINE_INT_CURR("LRD")                /* Liberian Dollar  */
  DEFINE_INT_CURR("LSL")                /* Lesotho Maloti  */
  DEFINE_INT_CURR("LTL")                /* Lithuanian Litas  */
  DEFINE_INT_CURR("LVL")                /* Latvia Lat  */
  DEFINE_INT_CURR("LYD")                /* Libyan Arab Jamahiriya Dinar  */
  DEFINE_INT_CURR("MAD")                /* Moroccan Dirham  */
-@@ -114,6 +125,7 @@ DEFINE_INT_CURR("MZM")             /* Mozambique Metical  */
+@@ -114,6 +125,7 @@
  DEFINE_INT_CURR("NAD")                /* Namibia Dollar  */
  DEFINE_INT_CURR("NGN")                /* Nigeria Naira  */
  DEFINE_INT_CURR("NIO")                /* Nicaragua Cordoba Oro  */
  DEFINE_INT_CURR("NOK")                /* Norwegian Krone  */
  DEFINE_INT_CURR("NPR")                /* Nepalese Rupee  */
  DEFINE_INT_CURR("NZD")                /* New Zealand Dollar  */
-@@ -124,6 +136,7 @@ DEFINE_INT_CURR("PGK")             /* Papau New Guinea Kina  */
+@@ -124,6 +136,7 @@
  DEFINE_INT_CURR("PHP")                /* Philippines Peso  */
  DEFINE_INT_CURR("PKR")                /* Pakistan Rupee  */
  DEFINE_INT_CURR("PLN")                /* Polish Zloty  */
  DEFINE_INT_CURR("PYG")                /* Paraguay Guarani  */
  DEFINE_INT_CURR("QAR")                /* Qatar Rial  */
  DEFINE_INT_CURR("ROL")                /* Romanian Leu  */
---- glibc-2.14.1/locale/programs/locarchive.c
-+++ glibc-2.14.1-2/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;
-   if (total < reserved
--      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON,
-+      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON,
-                      -1, 0)) != MAP_FAILED))
-     xflags = MAP_FIXED;
-   else
-@@ -241,9 +241,9 @@ oldlocrecentcmp (const void *a, const void *b)
+diff -Nur a/locale/programs/locarchive.c b/locale/programs/locarchive.c
+--- a/locale/programs/locarchive.c     2011-12-22 16:50:52.000000000 +0000
++++ b/locale/programs/locarchive.c     2011-12-22 17:59:24.570119304 +0000
+@@ -253,9 +253,9 @@
  /* forward decls for below */
  static uint32_t add_locale (struct locarhandle *ah, const char *name,
                            locale_data_t data, bool replace);
  
  
  static bool
-@@ -396,7 +396,7 @@ enlarge_archive (struct locarhandle *ah, const struct locarhead *head)
-   size_t reserved = RESERVE_MMAP_SIZE;
-   int xflags = 0;
-   if (total < reserved
--      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON,
-+      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON,
-                      -1, 0)) != MAP_FAILED))
-     xflags = MAP_FIXED;
-   else
-@@ -614,7 +614,7 @@ open_archive (struct locarhandle *ah, bool readonly)
-   int xflags = 0;
-   void *p;
-   if (st.st_size < reserved
--      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON,
-+      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON,
-                      -1, 0)) != MAP_FAILED))
-     xflags = MAP_FIXED;
-   else
-@@ -649,7 +649,7 @@ close_archive (struct locarhandle *ah)
+@@ -636,7 +636,7 @@
  #include "../../intl/explodename.c"
  #include "../../intl/l10nflist.c"
  
  insert_name (struct locarhandle *ah,
             const char *name, size_t name_len, bool replace)
  {
-@@ -707,7 +707,7 @@ insert_name (struct locarhandle *ah,
+@@ -694,7 +694,7 @@
    return &namehashtab[idx];
  }
  
  add_alias (struct locarhandle *ah, const char *alias, bool replace,
           const char *oldname, uint32_t *locrec_offset_p)
  {
---- glibc-2.14.1/localedata/ChangeLog
-+++ glibc-2.14.1-2/localedata/ChangeLog
-@@ -1,3 +1,11 @@
+diff -Nur a/localedata/ChangeLog b/localedata/ChangeLog
+--- a/localedata/ChangeLog     2011-12-22 16:50:52.000000000 +0000
++++ b/localedata/ChangeLog     2011-12-22 17:59:24.571119304 +0000
+@@ -64,6 +64,14 @@
+       * tests-mbwc/tst_funcs.h (TST_DECL_VARS, TST_HEAD_LOCALE):
+       Remove unused variable.
 +2011-06-28  Andreas Schwab  <schwab@redhat.com>
 +
 +      * charmaps/GB18030: Correct some entries.
  2011-05-21  Ulrich Drepper  <drepper@gmail.com>
  
        [BZ #12788]
---- glibc-2.14.1/localedata/Makefile
-+++ glibc-2.14.1-2/localedata/Makefile
-@@ -227,6 +227,7 @@ $(INSTALL-SUPPORTED-LOCALES): install-locales-dir
+diff -Nur a/localedata/Makefile b/localedata/Makefile
+--- a/localedata/Makefile      2011-12-22 16:50:52.000000000 +0000
++++ b/localedata/Makefile      2011-12-22 17:59:24.572119304 +0000
+@@ -224,6 +224,7 @@
        echo -n '...'; \
        input=`echo $$locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; \
        $(LOCALEDEF) --alias-file=../intl/locale.alias \
                     -i locales/$$input -c -f charmaps/$$charset \
                     $(addprefix --prefix=,$(install_root)) $$locale; \
        echo ' done'; \
---- glibc-2.14.1/localedata/SUPPORTED
-+++ glibc-2.14.1-2/localedata/SUPPORTED
-@@ -86,6 +86,7 @@ cy_GB.UTF-8/UTF-8 \
+diff -Nur a/localedata/SUPPORTED b/localedata/SUPPORTED
+--- a/localedata/SUPPORTED     2011-12-22 16:50:52.000000000 +0000
++++ b/localedata/SUPPORTED     2011-12-22 17:59:24.572119304 +0000
+@@ -88,6 +88,7 @@
  cy_GB/ISO-8859-14 \
  da_DK.UTF-8/UTF-8 \
  da_DK/ISO-8859-1 \
  de_AT.UTF-8/UTF-8 \
  de_AT/ISO-8859-1 \
  de_AT@euro/ISO-8859-15 \
-@@ -117,6 +118,7 @@ en_DK.UTF-8/UTF-8 \
+@@ -119,6 +120,7 @@
  en_DK/ISO-8859-1 \
  en_GB.UTF-8/UTF-8 \
  en_GB/ISO-8859-1 \
  en_HK.UTF-8/UTF-8 \
  en_HK/ISO-8859-1 \
  en_IE.UTF-8/UTF-8 \
-@@ -132,6 +134,7 @@ en_SG.UTF-8/UTF-8 \
+@@ -134,6 +136,7 @@
  en_SG/ISO-8859-1 \
  en_US.UTF-8/UTF-8 \
  en_US/ISO-8859-1 \
  en_ZA.UTF-8/UTF-8 \
  en_ZA/ISO-8859-1 \
  en_ZM/UTF-8 \
-@@ -313,6 +316,8 @@ nl_NL/ISO-8859-1 \
+@@ -316,6 +319,8 @@
  nl_NL@euro/ISO-8859-15 \
  nn_NO.UTF-8/UTF-8 \
  nn_NO/ISO-8859-1 \
  nr_ZA/UTF-8 \
  nso_ZA/UTF-8 \
  oc_FR.UTF-8/UTF-8 \
-@@ -374,6 +379,7 @@ sv_FI/ISO-8859-1 \
+@@ -377,6 +382,7 @@
  sv_FI@euro/ISO-8859-15 \
  sv_SE.UTF-8/UTF-8 \
  sv_SE/ISO-8859-1 \
  sw_KE/UTF-8 \
  sw_TZ/UTF-8 \
  ta_IN/UTF-8 \
---- glibc-2.14.1/localedata/locales/cy_GB
-+++ glibc-2.14.1-2/localedata/locales/cy_GB
-@@ -248,8 +248,11 @@ mon         "<U0049><U006F><U006E><U0061><U0077><U0072>";/
+diff -Nur a/localedata/locales/cy_GB b/localedata/locales/cy_GB
+--- a/localedata/locales/cy_GB 2011-12-22 16:50:52.000000000 +0000
++++ b/localedata/locales/cy_GB 2011-12-22 17:59:24.573119304 +0000
+@@ -248,8 +248,11 @@
  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>"
  t_fmt       "<U0025><U0054>"
  END LC_TIME
  
  LC_MESSAGES
---- glibc-2.14.1/localedata/locales/en_GB
-+++ glibc-2.14.1-2/localedata/locales/en_GB
-@@ -116,8 +116,8 @@ mon         "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
+diff -Nur a/localedata/locales/en_GB b/localedata/locales/en_GB
+--- a/localedata/locales/en_GB 2011-12-22 16:50:52.000000000 +0000
++++ b/localedata/locales/en_GB 2011-12-22 17:59:24.573119304 +0000
+@@ -116,8 +116,8 @@
  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>"
  t_fmt       "<U0025><U0054>"
  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.14.1/localedata/locales/no_NO
-+++ glibc-2.14.1-2/localedata/locales/no_NO
+diff -Nur a/localedata/locales/no_NO b/localedata/locales/no_NO
+--- a/localedata/locales/no_NO 1970-01-01 00:00:00.000000000 +0000
++++ b/localedata/locales/no_NO 2011-12-22 17:59:24.573119304 +0000
 @@ -0,0 +1,69 @@
 +escape_char   /
 +comment_char    %
 +LC_ADDRESS
 +copy "nb_NO"
 +END LC_ADDRESS
---- glibc-2.14.1/localedata/locales/zh_TW
-+++ glibc-2.14.1-2/localedata/locales/zh_TW
+diff -Nur a/localedata/locales/zh_TW b/localedata/locales/zh_TW
+--- a/localedata/locales/zh_TW 2011-12-22 16:50:52.000000000 +0000
++++ b/localedata/locales/zh_TW 2011-12-22 17:59:24.574119304 +0000
 @@ -1,7 +1,7 @@
  comment_char %
  escape_char /
  % charmap: BIG5-CP950
  %
  % Original Author:
-@@ -17,7 +17,7 @@ escape_char /
+@@ -17,7 +17,7 @@
  % Reference:  http://wwwold.dkuug.dk/JTC1/SC22/WG20/docs/n690.pdf
  
  LC_IDENTIFICATION
  source     ""
  address    ""
  contact    ""
-@@ -25,7 +25,7 @@ email      "bug-glibc-locales@gnu.org"
+@@ -25,7 +25,7 @@
  tel        ""
  fax        ""
  language   "Chinese"
  revision   "0.2"
  date       "2000-08-02"
  %
---- glibc-2.14.1/login/programs/pt_chown.c
-+++ glibc-2.14.1-2/login/programs/pt_chown.c
+diff -Nur a/login/programs/pt_chown.c b/login/programs/pt_chown.c
+--- a/login/programs/pt_chown.c        2011-12-22 16:50:52.000000000 +0000
++++ b/login/programs/pt_chown.c        2011-12-22 17:59:24.574119304 +0000
 @@ -29,6 +29,7 @@
  #include <string.h>
  #include <sys/stat.h>
  #ifdef HAVE_LIBCAP
  # include <sys/capability.h>
  # include <sys/prctl.h>
-@@ -143,7 +144,7 @@ main (int argc, char *argv[])
+@@ -143,7 +144,7 @@
    uid_t uid = getuid ();
    int remaining;
  
      {
  #ifdef HAVE_LIBCAP
    /* Drop privileges.  */
-@@ -176,6 +177,13 @@ main (int argc, char *argv[])
+@@ -176,6 +177,13 @@
  
    /* We aren't going to be using privileges, so drop them right now. */
    setuid (uid);
  
    /* Set locale via LC_ALL.  */
    setlocale (LC_ALL, "");
-@@ -195,9 +203,5 @@ main (int argc, char *argv[])
+@@ -195,9 +203,5 @@
        return EXIT_FAILURE;
      }
  
 -
    return EXIT_SUCCESS;
  }
---- glibc-2.14.1/malloc/mcheck.c
-+++ glibc-2.14.1-2/malloc/mcheck.c
+diff -Nur a/malloc/mcheck.c b/malloc/mcheck.c
+--- a/malloc/mcheck.c  2011-12-22 16:50:52.000000000 +0000
++++ b/malloc/mcheck.c  2011-12-22 17:59:24.575119304 +0000
 @@ -25,10 +25,26 @@
  # include <mcheck.h>
  # include <stdint.h>
  /* Old hook values.  */
  static void (*old_free_hook) (__ptr_t ptr, __const __ptr_t);
  static __ptr_t (*old_malloc_hook) (__malloc_size_t size, const __ptr_t);
-@@ -199,7 +215,7 @@ freehook (__ptr_t ptr, const __ptr_t caller)
+@@ -199,7 +215,7 @@
    if (old_free_hook != NULL)
      (*old_free_hook) (ptr, caller);
    else
    __free_hook = freehook;
  }
  
-@@ -222,7 +238,7 @@ mallochook (__malloc_size_t size, const __ptr_t caller)
+@@ -222,7 +238,7 @@
      hdr = (struct hdr *) (*old_malloc_hook) (sizeof (struct hdr) + size + 1,
                                             caller);
    else
    __malloc_hook = mallochook;
    if (hdr == NULL)
      return NULL;
-@@ -259,7 +275,7 @@ memalignhook (__malloc_size_t alignment, __malloc_size_t size,
+@@ -259,7 +275,7 @@
    if (old_memalign_hook != NULL)
      block = (*old_memalign_hook) (alignment, slop + size + 1, caller);
    else
    __memalign_hook = memalignhook;
    if (block == NULL)
      return NULL;
-@@ -320,8 +336,8 @@ reallochook (__ptr_t ptr, __malloc_size_t size, const __ptr_t caller)
+@@ -320,8 +336,8 @@
                                              sizeof (struct hdr) + size + 1,
                                              caller);
    else
    __free_hook = freehook;
    __malloc_hook = mallochook;
    __memalign_hook = memalignhook;
-@@ -381,8 +397,8 @@ mcheck (func)
+@@ -381,8 +397,8 @@
    if (__malloc_initialized <= 0 && !mcheck_used)
      {
        /* We call malloc() once here to ensure it is initialized.  */
  
        old_free_hook = __free_hook;
        __free_hook = freehook;
---- glibc-2.14.1/manual/libc.texinfo
-+++ glibc-2.14.1-2/manual/libc.texinfo
+diff -Nur a/manual/libc.texinfo b/manual/libc.texinfo
+--- a/manual/libc.texinfo      2011-12-22 16:50:52.000000000 +0000
++++ b/manual/libc.texinfo      2011-12-22 17:59:24.575119304 +0000
 @@ -5,7 +5,7 @@
  @c setchapternewpage odd
  
  @direntry
  * Libc: (libc).                 C library.
  @end direntry
---- glibc-2.14.1/misc/sys/cdefs.h
-+++ glibc-2.14.1-2/misc/sys/cdefs.h
-@@ -132,7 +132,10 @@
+diff -Nur a/misc/sys/cdefs.h b/misc/sys/cdefs.h
+--- a/misc/sys/cdefs.h 2011-12-22 16:50:52.000000000 +0000
++++ b/misc/sys/cdefs.h 2011-12-22 17:59:24.576119305 +0000
+@@ -146,7 +146,10 @@
  #define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)
  #define __bos0(ptr) __builtin_object_size (ptr, 0)
  
  # define __warndecl(name, msg) \
    extern void name (void) __attribute__((__warning__ (msg)))
  # define __warnattr(msg) __attribute__((__warning__ (msg)))
-@@ -291,10 +294,16 @@
+@@ -316,10 +319,16 @@
  
  /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
     inline semantics, unless -fgnu89-inline is used.  */
  #   define __extern_always_inline \
    extern __always_inline __attribute__ ((__gnu_inline__, __artificial__))
  #  else
-@@ -314,7 +323,10 @@
+@@ -339,7 +348,10 @@
  
  /* GCC 4.3 and above allow passing all anonymous arguments of an
     __extern_always_inline function to some other vararg function.  */
  # define __va_arg_pack() __builtin_va_arg_pack ()
  # define __va_arg_pack_len() __builtin_va_arg_pack_len ()
  #endif
---- glibc-2.14.1/nis/Makefile
-+++ glibc-2.14.1-2/nis/Makefile
-@@ -23,9 +23,9 @@ subdir       := nis
+diff -Nur a/nis/Makefile b/nis/Makefile
+--- a/nis/Makefile     2011-12-22 16:50:52.000000000 +0000
++++ b/nis/Makefile     2011-12-22 17:59:24.576119305 +0000
+@@ -23,9 +23,9 @@
  
  aux                   := nis_hash
  
  
  # These are the databases available for the nis (and perhaps later nisplus)
  # service.  This must be a superset of the services in nss.
-@@ -69,6 +69,8 @@ libnss_nisplus-inhibit-o = $(filter-out .os,$(object-suffixes))
+@@ -69,6 +69,8 @@
  
  include ../Rules
  
  
  $(objpfx)libnss_compat.so: $(objpfx)libnsl.so$(libnsl.so-version)
  $(objpfx)libnss_nis.so: $(objpfx)libnsl.so$(libnsl.so-version) \
---- glibc-2.14.1/nis/nss
-+++ glibc-2.14.1-2/nis/nss
+diff -Nur a/nis/nss b/nis/nss
+--- a/nis/nss  2011-12-22 16:50:52.000000000 +0000
++++ b/nis/nss  2011-12-22 17:59:24.577119306 +0000
 @@ -25,7 +25,7 @@
  #  memory with every getXXent() call.  Otherwise each getXXent() call
  #  might result into a network communication with the server to get
  #
  # ADJUNCT_AS_SHADOW
  #  If set to TRUE, the passwd routines in the NIS NSS module will not
---- glibc-2.14.1/nptl/ChangeLog
-+++ glibc-2.14.1-2/nptl/ChangeLog
-@@ -45,6 +45,51 @@
+diff -Nur a/nptl/ChangeLog b/nptl/ChangeLog
+--- a/nptl/ChangeLog   2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/ChangeLog   2011-12-22 17:59:24.579119308 +0000
+@@ -195,6 +195,51 @@
        clearing memory.
        Patch partly by Robert Rex <robert.rex@exasol.com>.
  
  2011-01-19  Roland McGrath  <roland@redhat.com>
  
        * pthread_cond_wait.c (__pthread_cond_wait): Fix comment typo.
-@@ -4774,6 +4819,11 @@
+@@ -4924,6 +4969,11 @@
        Move definition inside libpthread, libc, librt check.  Provide
        definition for rtld.
  
  2004-09-02  Ulrich Drepper  <drepper@redhat.com>
  
        * sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp.
-@@ -6848,6 +6898,11 @@
+@@ -6998,6 +7048,11 @@
  
        * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules).
  
  2003-07-25  Jakub Jelinek  <jakub@redhat.com>
  
        * tst-cancel17.c (do_test): Check if aio_cancel failed.
---- glibc-2.14.1/nptl/DESIGN-systemtap-probes.txt
-+++ glibc-2.14.1-2/nptl/DESIGN-systemtap-probes.txt
+diff -Nur a/nptl/DESIGN-systemtap-probes.txt b/nptl/DESIGN-systemtap-probes.txt
+--- a/nptl/DESIGN-systemtap-probes.txt 1970-01-01 00:00:00.000000000 +0000
++++ b/nptl/DESIGN-systemtap-probes.txt 2011-12-22 17:59:24.580119308 +0000
 @@ -0,0 +1,89 @@
 +Systemtap is a dynamic tracing/instrumenting tool available on Linux. Probes
 +that are not fired at run time have close to zero overhead.
 +            arg1 = condition
 +cond_broadcast - probe for pthread_cond_broadcast
 +               arg1 = condition
---- glibc-2.14.1/nptl/Makefile
-+++ glibc-2.14.1-2/nptl/Makefile
-@@ -342,7 +342,8 @@ endif
+diff -Nur a/nptl/Makefile b/nptl/Makefile
+--- a/nptl/Makefile    2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/Makefile    2011-12-22 17:59:24.580119308 +0000
+@@ -342,7 +342,8 @@
  extra-objs += $(crti-objs) $(crtn-objs)
  omit-deps += crti crtn
  
  endif
  
  CFLAGS-flockfile.c = -D_IO_MTSAFE_IO
-@@ -529,15 +530,19 @@ $(addprefix $(objpfx), \
+@@ -529,15 +530,19 @@
      $(tests) $(xtests) $(test-srcs))): $(objpfx)libpthread.so \
                                       $(objpfx)libpthread_nonshared.a
  $(objpfx)tst-unload: $(common-objpfx)dlfcn/libdl.so
  else
  $(addprefix $(objpfx),$(tests) $(test-srcs)): $(objpfx)libpthread.a
  endif
---- glibc-2.14.1/nptl/Versions
-+++ glibc-2.14.1-2/nptl/Versions
-@@ -30,6 +30,7 @@ libc {
+diff -Nur a/nptl/Versions b/nptl/Versions
+--- a/nptl/Versions    2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/Versions    2011-12-22 17:59:24.581119308 +0000
+@@ -30,6 +30,7 @@
      __libc_alloca_cutoff;
      # Internal libc interface to libpthread
      __libc_dl_error_tsd;
    }
  }
  
---- glibc-2.14.1/nptl/nptl-init.c
-+++ glibc-2.14.1-2/nptl/nptl-init.c
-@@ -415,7 +415,7 @@ __pthread_initialize_minimal_internal (void)
+diff -Nur a/nptl/nptl-init.c b/nptl/nptl-init.c
+--- a/nptl/nptl-init.c 2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/nptl-init.c 2011-12-22 17:59:24.581119308 +0000
+@@ -415,7 +415,7 @@
    /* Determine the default allowed stack size.  This is the size used
       in case the user does not specify one.  */
    struct rlimit limit;
        || limit.rlim_cur == RLIM_INFINITY)
      /* The system limit is not usable.  Use an architecture-specific
         default.  */
---- glibc-2.14.1/nptl/pthread_cond_broadcast.c
-+++ glibc-2.14.1-2/nptl/pthread_cond_broadcast.c
+diff -Nur a/nptl/pthread_cond_broadcast.c b/nptl/pthread_cond_broadcast.c
+--- a/nptl/pthread_cond_broadcast.c    2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/pthread_cond_broadcast.c    2011-12-22 17:59:24.582119308 +0000
 @@ -23,6 +23,7 @@
  #include <lowlevellock.h>
  #include <pthread.h>
  
  #include <shlib-compat.h>
  #include <kernel-features.h>
-@@ -32,6 +33,8 @@ int
+@@ -32,6 +33,8 @@
  __pthread_cond_broadcast (cond)
       pthread_cond_t *cond;
  {
    int pshared = (cond->__data.__mutex == (void *) ~0l)
                ? LLL_SHARED : LLL_PRIVATE;
    /* Make sure we are alone.  */
---- glibc-2.14.1/nptl/pthread_cond_destroy.c
-+++ glibc-2.14.1-2/nptl/pthread_cond_destroy.c
+diff -Nur a/nptl/pthread_cond_destroy.c b/nptl/pthread_cond_destroy.c
+--- a/nptl/pthread_cond_destroy.c      2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/pthread_cond_destroy.c      2011-12-22 17:59:24.582119308 +0000
 @@ -20,6 +20,7 @@
  #include <errno.h>
  #include <shlib-compat.h>
  
  
  int
-@@ -29,6 +30,8 @@ __pthread_cond_destroy (cond)
+@@ -29,6 +30,8 @@
    int pshared = (cond->__data.__mutex == (void *) ~0l)
                ? LLL_SHARED : LLL_PRIVATE;
  
    /* Make sure we are alone.  */
    lll_lock (cond->__data.__lock, pshared);
  
---- glibc-2.14.1/nptl/pthread_cond_init.c
-+++ glibc-2.14.1-2/nptl/pthread_cond_init.c
+diff -Nur a/nptl/pthread_cond_init.c b/nptl/pthread_cond_init.c
+--- a/nptl/pthread_cond_init.c 2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/pthread_cond_init.c 2011-12-22 17:59:24.583119308 +0000
 @@ -20,6 +20,7 @@
  
  #include <shlib-compat.h>
  
  
  int
-@@ -42,6 +43,8 @@ __pthread_cond_init (cond, cond_attr)
+@@ -42,6 +43,8 @@
                          ? NULL : (void *) ~0l);
    cond->__data.__broadcast_seq = 0;
  
    return 0;
  }
  versioned_symbol (libpthread, __pthread_cond_init,
---- glibc-2.14.1/nptl/pthread_cond_signal.c
-+++ glibc-2.14.1-2/nptl/pthread_cond_signal.c
+diff -Nur a/nptl/pthread_cond_signal.c b/nptl/pthread_cond_signal.c
+--- a/nptl/pthread_cond_signal.c       2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/pthread_cond_signal.c       2011-12-22 17:59:24.583119308 +0000
 @@ -26,6 +26,7 @@
  
  #include <shlib-compat.h>
  
  
  int
-@@ -35,6 +36,8 @@ __pthread_cond_signal (cond)
+@@ -35,6 +36,8 @@
    int pshared = (cond->__data.__mutex == (void *) ~0l)
                ? LLL_SHARED : LLL_PRIVATE;
  
    /* Make sure we are alone.  */
    lll_lock (cond->__data.__lock, pshared);
  
---- glibc-2.14.1/nptl/pthread_cond_wait.c
-+++ glibc-2.14.1-2/nptl/pthread_cond_wait.c
+diff -Nur a/nptl/pthread_cond_wait.c b/nptl/pthread_cond_wait.c
+--- a/nptl/pthread_cond_wait.c 2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/pthread_cond_wait.c 2011-12-22 17:59:24.583119308 +0000
 @@ -25,6 +25,7 @@
  #include <pthreadP.h>
  
  
  
  struct _condvar_cleanup_buffer
-@@ -101,6 +102,8 @@ __pthread_cond_wait (cond, mutex)
+@@ -101,6 +102,8 @@
    int pshared = (cond->__data.__mutex == (void *) ~0l)
                ? LLL_SHARED : LLL_PRIVATE;
  
    /* Make sure we are alone.  */
    lll_lock (cond->__data.__lock, pshared);
  
---- glibc-2.14.1/nptl/pthread_create.c
-+++ glibc-2.14.1-2/nptl/pthread_create.c
-@@ -31,6 +31,8 @@
+diff -Nur a/nptl/pthread_create.c b/nptl/pthread_create.c
+--- a/nptl/pthread_create.c    2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/pthread_create.c    2011-12-22 17:59:24.584119309 +0000
+@@ -32,6 +32,8 @@
  
  #include <shlib-compat.h>
  
  
  /* Local function to start thread and handle cleanup.  */
  static int start_thread (void *arg);
-@@ -296,6 +298,8 @@ start_thread (void *arg)
+@@ -300,6 +302,8 @@
          CANCEL_RESET (oldtype);
        }
  
        /* Run the code the user provided.  */
  #ifdef CALL_THREAD_FCT
        THREAD_SETMEM (pd, result, CALL_THREAD_FCT (pd));
-@@ -552,6 +556,8 @@ __pthread_create_2_1 (newthread, attr, start_routine, arg)
+@@ -557,6 +561,8 @@
    /* Pass the descriptor to the caller.  */
    *newthread = (pthread_t) pd;
  
    /* Start the thread.  */
    return create_thread (pd, iattr, STACK_VARIABLES_ARGS);
  }
---- glibc-2.14.1/nptl/pthread_join.c
-+++ glibc-2.14.1-2/nptl/pthread_join.c
+diff -Nur a/nptl/pthread_join.c b/nptl/pthread_join.c
+--- a/nptl/pthread_join.c      2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/pthread_join.c      2011-12-22 17:59:24.585119309 +0000
 @@ -23,6 +23,8 @@
  #include <atomic.h>
  #include "pthreadP.h"
  
  static void
  cleanup (void *arg)
-@@ -55,6 +57,8 @@ pthread_join (threadid, thread_return)
+@@ -55,6 +57,8 @@
    struct pthread *self = THREAD_SELF;
    int result = 0;
  
    /* During the wait we change to asynchronous cancellation.  If we
       are canceled the thread we are waiting for must be marked as
       un-wait-ed for again.  */
-@@ -110,5 +114,7 @@ pthread_join (threadid, thread_return)
+@@ -110,5 +114,7 @@
        __free_tcb (pd);
      }
  
 +
    return result;
  }
---- glibc-2.14.1/nptl/pthread_mutex_destroy.c
-+++ glibc-2.14.1-2/nptl/pthread_mutex_destroy.c
+diff -Nur a/nptl/pthread_mutex_destroy.c b/nptl/pthread_mutex_destroy.c
+--- a/nptl/pthread_mutex_destroy.c     2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/pthread_mutex_destroy.c     2011-12-22 17:59:24.585119309 +0000
 @@ -20,11 +20,15 @@
  #include <errno.h>
  #include "pthreadP.h"
    if ((mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP) == 0
        && mutex->__data.__nusers != 0)
      return EBUSY;
---- glibc-2.14.1/nptl/pthread_mutex_init.c
-+++ glibc-2.14.1-2/nptl/pthread_mutex_init.c
+diff -Nur a/nptl/pthread_mutex_init.c b/nptl/pthread_mutex_init.c
+--- a/nptl/pthread_mutex_init.c        2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/pthread_mutex_init.c        2011-12-22 17:59:24.586119309 +0000
 @@ -24,6 +24,8 @@
  #include <kernel-features.h>
  #include "pthreadP.h"
  static const struct pthread_mutexattr default_attr =
    {
      /* Default is a normal mutex, not shared between processes.  */
-@@ -135,6 +137,8 @@ __pthread_mutex_init (mutex, mutexattr)
+@@ -135,6 +137,8 @@
    // mutex->__spins = 0;      already done by memset
    // mutex->__next = NULL;    already done by memset
  
    return 0;
  }
  strong_alias (__pthread_mutex_init, pthread_mutex_init)
---- glibc-2.14.1/nptl/pthread_mutex_lock.c
-+++ glibc-2.14.1-2/nptl/pthread_mutex_lock.c
+diff -Nur a/nptl/pthread_mutex_lock.c b/nptl/pthread_mutex_lock.c
+--- a/nptl/pthread_mutex_lock.c        2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/pthread_mutex_lock.c        2011-12-22 17:59:24.586119309 +0000
 @@ -24,6 +24,7 @@
  #include <not-cancel.h>
  #include "pthreadP.h"
  
  
  #ifndef LLL_MUTEX_LOCK
-@@ -48,6 +49,9 @@ __pthread_mutex_lock (mutex)
+@@ -48,6 +49,9 @@
    assert (sizeof (mutex->__size) >= sizeof (mutex->__data));
  
    unsigned int type = PTHREAD_MUTEX_TYPE (mutex);
    if (__builtin_expect (type & ~PTHREAD_MUTEX_KIND_MASK_NP, 0))
      return __pthread_mutex_lock_full (mutex);
  
-@@ -127,6 +131,8 @@ __pthread_mutex_lock (mutex)
+@@ -127,6 +131,8 @@
    ++mutex->__data.__nusers;
  #endif
  
    return 0;
  }
  
-@@ -467,6 +473,8 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex)
+@@ -467,6 +473,8 @@
    ++mutex->__data.__nusers;
  #endif
  
    return 0;
  }
  #ifndef __pthread_mutex_lock
---- glibc-2.14.1/nptl/pthread_mutex_timedlock.c
-+++ glibc-2.14.1-2/nptl/pthread_mutex_timedlock.c
+diff -Nur a/nptl/pthread_mutex_timedlock.c b/nptl/pthread_mutex_timedlock.c
+--- a/nptl/pthread_mutex_timedlock.c   2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/pthread_mutex_timedlock.c   2011-12-22 17:59:24.586119309 +0000
 @@ -24,6 +24,8 @@
  #include <lowlevellock.h>
  #include <not-cancel.h>
  
  int
  pthread_mutex_timedlock (mutex, abstime)
-@@ -34,6 +36,8 @@ pthread_mutex_timedlock (mutex, abstime)
+@@ -34,6 +36,8 @@
    pid_t id = THREAD_GETMEM (THREAD_SELF, tid);
    int result = 0;
  
    /* We must not check ABSTIME here.  If the thread does not block
       abstime must not be checked for a valid value.  */
  
-@@ -172,6 +176,8 @@ pthread_mutex_timedlock (mutex, abstime)
+@@ -172,6 +176,8 @@
  
                  ++mutex->__data.__count;
  
                  return 0;
                }
            }
-@@ -242,6 +248,8 @@ pthread_mutex_timedlock (mutex, abstime)
+@@ -242,6 +248,8 @@
  
                ++mutex->__data.__count;
  
                return 0;
              }
          }
-@@ -377,6 +385,8 @@ pthread_mutex_timedlock (mutex, abstime)
+@@ -377,6 +385,8 @@
  
                ++mutex->__data.__count;
  
                return 0;
              }
          }
-@@ -477,6 +487,8 @@ pthread_mutex_timedlock (mutex, abstime)
+@@ -477,6 +487,8 @@
        /* Record the ownership.  */
        mutex->__data.__owner = id;
        ++mutex->__data.__nusers;
      }
  
   out:
---- glibc-2.14.1/nptl/pthread_mutex_unlock.c
-+++ glibc-2.14.1-2/nptl/pthread_mutex_unlock.c
+diff -Nur a/nptl/pthread_mutex_unlock.c b/nptl/pthread_mutex_unlock.c
+--- a/nptl/pthread_mutex_unlock.c      2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/pthread_mutex_unlock.c      2011-12-22 17:59:24.587119309 +0000
 @@ -22,6 +22,7 @@
  #include <stdlib.h>
  #include "pthreadP.h"
  
  static int
  internal_function
-@@ -50,6 +51,9 @@ __pthread_mutex_unlock_usercnt (mutex, decr)
+@@ -50,6 +51,9 @@
  
        /* Unlock.  */
        lll_unlock (mutex->__data.__lock, PTHREAD_MUTEX_PSHARED (mutex));
        return 0;
      }
    else if (__builtin_expect (type == PTHREAD_MUTEX_RECURSIVE_NP, 1))
-@@ -272,6 +276,9 @@ __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr)
+@@ -272,6 +276,9 @@
                        PTHREAD_MUTEX_PSHARED (mutex));
  
        int oldprio = newval >> PTHREAD_MUTEX_PRIO_CEILING_SHIFT;
        return __pthread_tpp_change_priority (oldprio, -1);
  
      default:
-@@ -279,6 +286,7 @@ __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr)
+@@ -279,6 +286,7 @@
        return EINVAL;
      }
  
    return 0;
  }
  
---- glibc-2.14.1/nptl/pthread_rwlock_destroy.c
-+++ glibc-2.14.1-2/nptl/pthread_rwlock_destroy.c
+diff -Nur a/nptl/pthread_rwlock_destroy.c b/nptl/pthread_rwlock_destroy.c
+--- a/nptl/pthread_rwlock_destroy.c    2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/pthread_rwlock_destroy.c    2011-12-22 17:59:24.587119309 +0000
 @@ -18,12 +18,15 @@
     02111-1307 USA.  */
  
    /* Nothing to be done.  For now.  */
    return 0;
  }
---- glibc-2.14.1/nptl/pthread_rwlock_rdlock.c
-+++ glibc-2.14.1-2/nptl/pthread_rwlock_rdlock.c
+diff -Nur a/nptl/pthread_rwlock_rdlock.c b/nptl/pthread_rwlock_rdlock.c
+--- a/nptl/pthread_rwlock_rdlock.c     2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/pthread_rwlock_rdlock.c     2011-12-22 17:59:24.588119309 +0000
 @@ -22,6 +22,7 @@
  #include <lowlevellock.h>
  #include <pthread.h>
  
  
  /* Acquire read lock for RWLOCK.  */
-@@ -31,6 +32,8 @@ __pthread_rwlock_rdlock (rwlock)
+@@ -31,6 +32,8 @@
  {
    int result = 0;
  
    /* Make sure we are alone.  */
    lll_lock (rwlock->__data.__lock, rwlock->__data.__shared);
  
-@@ -49,6 +52,8 @@ __pthread_rwlock_rdlock (rwlock)
+@@ -49,6 +52,8 @@
              --rwlock->__data.__nr_readers;
              result = EAGAIN;
            }
  
          break;
        }
---- glibc-2.14.1/nptl/pthread_rwlock_unlock.c
-+++ glibc-2.14.1-2/nptl/pthread_rwlock_unlock.c
+diff -Nur a/nptl/pthread_rwlock_unlock.c b/nptl/pthread_rwlock_unlock.c
+--- a/nptl/pthread_rwlock_unlock.c     2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/pthread_rwlock_unlock.c     2011-12-22 17:59:24.588119309 +0000
 @@ -22,11 +22,14 @@
  #include <lowlevellock.h>
  #include <pthread.h>
    lll_lock (rwlock->__data.__lock, rwlock->__data.__shared);
    if (rwlock->__data.__writer)
      rwlock->__data.__writer = 0;
---- glibc-2.14.1/nptl/pthread_rwlock_wrlock.c
-+++ glibc-2.14.1-2/nptl/pthread_rwlock_wrlock.c
+diff -Nur a/nptl/pthread_rwlock_wrlock.c b/nptl/pthread_rwlock_wrlock.c
+--- a/nptl/pthread_rwlock_wrlock.c     2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/pthread_rwlock_wrlock.c     2011-12-22 17:59:24.588119309 +0000
 @@ -22,6 +22,7 @@
  #include <lowlevellock.h>
  #include <pthread.h>
  
  
  /* Acquire write lock for RWLOCK.  */
-@@ -31,6 +32,8 @@ __pthread_rwlock_wrlock (rwlock)
+@@ -31,6 +32,8 @@
  {
    int result = 0;
  
    /* Make sure we are alone.  */
    lll_lock (rwlock->__data.__lock, rwlock->__data.__shared);
  
-@@ -41,6 +44,8 @@ __pthread_rwlock_wrlock (rwlock)
+@@ -41,6 +44,8 @@
        {
          /* Mark self as writer.  */
          rwlock->__data.__writer = THREAD_GETMEM (THREAD_SELF, tid);
          break;
        }
  
---- glibc-2.14.1/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
-+++ glibc-2.14.1-2/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
+diff -Nur a/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h b/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
+--- a/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h    2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h    2011-12-22 17:59:24.589119309 +0000
 @@ -189,4 +189,7 @@
  /* Typed memory objects are not available.  */
  #define _POSIX_TYPED_MEMORY_OBJECTS   -1
 +#define _XOPEN_STREAMS        -1
 +
  #endif /* bits/posix_opt.h */
---- glibc-2.14.1/nptl/sysdeps/unix/sysv/linux/i386/Versions
-+++ glibc-2.14.1-2/nptl/sysdeps/unix/sysv/linux/i386/Versions
+diff -Nur a/nptl/sysdeps/unix/sysv/linux/i386/Versions b/nptl/sysdeps/unix/sysv/linux/i386/Versions
+--- a/nptl/sysdeps/unix/sysv/linux/i386/Versions       1970-01-01 00:00:00.000000000 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/i386/Versions       2011-12-22 17:59:24.589119309 +0000
 @@ -0,0 +1,6 @@
 +libc {
 +  GLIBC_PRIVATE {
 +    __uname;
 +  }
 +}
---- glibc-2.14.1/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
-+++ glibc-2.14.1-2/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
+diff -Nur a/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
+--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S    2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S    2011-12-22 17:59:24.589119309 +0000
 @@ -22,6 +22,8 @@
  #include <kernel-features.h>
  #include <lowlevellock.h>
        .text
  
  #ifdef __ASSUME_PRIVATE_FUTEX
-@@ -91,7 +93,8 @@ __lll_lock_wait_private:
+@@ -91,7 +93,8 @@
        cmpl    %edx, %eax      /* NB:   %edx == 2 */
        jne 2f
  
        ENTER_KERNEL
  
  2:    movl    %edx, %eax
---- glibc-2.14.1/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
-+++ glibc-2.14.1-2/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
+diff -Nur a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
+--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S  2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S  2011-12-22 17:59:24.590119310 +0000
 @@ -24,6 +24,7 @@
  #include <kernel-features.h>
  #include <pthread-pi-defines.h>
  
        .text
  
-@@ -49,6 +50,8 @@ __pthread_cond_broadcast:
+@@ -49,6 +50,8 @@
  
        movl    20(%esp), %ebx
  
        /* Get internal lock.  */
        movl    $1, %edx
        xorl    %eax, %eax
---- glibc-2.14.1/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
-+++ glibc-2.14.1-2/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
+diff -Nur a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
+--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S     2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S     2011-12-22 17:59:24.590119310 +0000
 @@ -24,7 +24,7 @@
  #include <kernel-features.h>
  #include <pthread-pi-defines.h>
  
        .text
  
-@@ -45,6 +45,8 @@ __pthread_cond_signal:
+@@ -45,6 +45,8 @@
  
        movl    12(%esp), %edi
  
        /* Get internal lock.  */
        movl    $1, %edx
        xorl    %eax, %eax
---- glibc-2.14.1/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
-+++ glibc-2.14.1-2/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
+diff -Nur a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
+--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S  2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S  2011-12-22 17:59:24.591119311 +0000
 @@ -24,7 +24,7 @@
  #include <pthread-errnos.h>
  #include <pthread-pi-defines.h>
  
        .text
  
-@@ -61,6 +61,8 @@ __pthread_cond_timedwait:
+@@ -61,6 +61,8 @@
        movl    20(%esp), %ebx
        movl    28(%esp), %ebp
  
        cmpl    $1000000000, 4(%ebp)
        movl    $EINVAL, %eax
        jae     18f
---- glibc-2.14.1/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
-+++ glibc-2.14.1-2/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
+diff -Nur a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
+--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S       2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S       2011-12-22 17:59:24.591119311 +0000
 @@ -25,6 +25,7 @@
  #include <pthread-errnos.h>
  #include <pthread-pi-defines.h>
  
  
        .text
-@@ -61,6 +62,8 @@ __pthread_cond_wait:
+@@ -61,6 +62,8 @@
        xorl    %esi, %esi
        movl    20(%esp), %ebx
  
        /* Get internal lock.  */
        movl    $1, %edx
        xorl    %eax, %eax
---- glibc-2.14.1/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
-+++ glibc-2.14.1-2/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
+diff -Nur a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
+--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S   2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S   2011-12-22 17:59:24.592119312 +0000
 @@ -23,6 +23,7 @@
  #include <pthread-errnos.h>
  #include <kernel-features.h>
  
        .text
  
-@@ -41,6 +42,8 @@ __pthread_rwlock_rdlock:
+@@ -41,6 +42,8 @@
        xorl    %esi, %esi
        movl    12(%esp), %ebx
  
        /* Get the lock.  */
        movl    $1, %edx
        xorl    %eax, %eax
---- glibc-2.14.1/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
-+++ glibc-2.14.1-2/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
+diff -Nur a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
+--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S   2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S   2011-12-22 17:59:24.592119312 +0000
 @@ -23,6 +23,7 @@
  #include <pthread-errnos.h>
  #include <kernel-features.h>
  
        .text
  
-@@ -41,6 +42,8 @@ __pthread_rwlock_wrlock:
+@@ -41,6 +42,8 @@
        xorl    %esi, %esi
        movl    12(%esp), %ebx
  
        /* Get the lock.  */
        movl    $1, %edx
        xorl    %eax, %eax
---- glibc-2.14.1/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
-+++ glibc-2.14.1-2/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
+diff -Nur a/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
+--- a/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h 2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h 2011-12-22 17:59:24.593119312 +0000
 @@ -20,6 +20,8 @@
  #ifndef _LOWLEVELLOCK_H
  #define _LOWLEVELLOCK_H       1
  #ifndef __ASSEMBLER__
  # include <time.h>
  # include <sys/param.h>
-@@ -226,6 +228,7 @@ LLL_STUB_UNWIND_INFO_END
+@@ -226,6 +228,7 @@
    do {                                                                              \
      int __ignore;                                                           \
      register __typeof (nr) _nr asm ("edx") = (nr);                          \
      __asm __volatile (LLL_EBX_LOAD                                          \
                      LLL_ENTER_KERNEL                                        \
                      LLL_EBX_LOAD                                            \
---- glibc-2.14.1/nptl/sysdeps/unix/sysv/linux/i386/smp.h
-+++ glibc-2.14.1-2/nptl/sysdeps/unix/sysv/linux/i386/smp.h
-@@ -37,7 +37,7 @@ is_smp_system (void)
+diff -Nur a/nptl/sysdeps/unix/sysv/linux/i386/smp.h b/nptl/sysdeps/unix/sysv/linux/i386/smp.h
+--- a/nptl/sysdeps/unix/sysv/linux/i386/smp.h  2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/i386/smp.h  2011-12-22 17:59:24.593119312 +0000
+@@ -37,7 +37,7 @@
    char *cp;
  
    /* Try reading the number using `sysctl' first.  */
      cp = u.uts.version;
    else
      {
---- glibc-2.14.1/nptl/sysdeps/unix/sysv/linux/kernel-features.h
-+++ glibc-2.14.1-2/nptl/sysdeps/unix/sysv/linux/kernel-features.h
+diff -Nur a/nptl/sysdeps/unix/sysv/linux/kernel-features.h b/nptl/sysdeps/unix/sysv/linux/kernel-features.h
+--- a/nptl/sysdeps/unix/sysv/linux/kernel-features.h   1970-01-01 00:00:00.000000000 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/kernel-features.h   2011-12-22 17:59:24.593119312 +0000
 @@ -0,0 +1,6 @@
 +#include_next <kernel-features.h>
 +
 +#ifndef __ASSUME_CLONE_THREAD_FLAGS
 +# define __ASSUME_CLONE_THREAD_FLAGS  1
 +#endif
---- glibc-2.14.1/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
-+++ glibc-2.14.1-2/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
+diff -Nur a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S       2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S       2011-12-22 17:59:24.594119312 +0000
 @@ -22,6 +22,8 @@
  #include <kernel-features.h>
  #include <lowlevellock.h>
        .text
  
  #ifdef __ASSUME_PRIVATE_FUTEX
-@@ -91,7 +93,8 @@ __lll_lock_wait_private:
+@@ -87,7 +89,8 @@
        cmpl    %edx, %eax      /* NB:   %edx == 2 */
        jne     2f
  
        syscall
  
  2:    movl    %edx, %eax
-@@ -130,7 +133,8 @@ __lll_lock_wait:
+@@ -126,7 +129,8 @@
        cmpl    %edx, %eax      /* NB:   %edx == 2 */
        jne     2f
  
        syscall
  
  2:    movl    %edx, %eax
---- glibc-2.14.1/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
-+++ glibc-2.14.1-2/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
+diff -Nur a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h       2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h       2011-12-22 17:59:24.594119312 +0000
 @@ -20,6 +20,8 @@
  #ifndef _LOWLEVELLOCK_H
  #define _LOWLEVELLOCK_H       1
  #ifndef __ASSEMBLER__
  # include <time.h>
  # include <sys/param.h>
-@@ -227,6 +229,7 @@ LLL_STUB_UNWIND_INFO_END
+@@ -227,6 +229,7 @@
    do {                                                                              \
      int __ignore;                                                           \
      register __typeof (nr) _nr __asm ("edx") = (nr);                        \
      __asm __volatile ("syscall"                                                     \
                      : "=a" (__ignore)                                       \
                      : "0" (SYS_futex), "D" (futex),                         \
---- glibc-2.14.1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
-+++ glibc-2.14.1-2/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
+diff -Nur a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S     2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S     2011-12-22 17:59:24.595119312 +0000
 @@ -25,7 +25,7 @@
  #include <kernel-features.h>
  #include <pthread-pi-defines.h>
        /* Get internal lock.  */
        movl    $1, %esi
        xorl    %eax, %eax
---- glibc-2.14.1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
-+++ glibc-2.14.1-2/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
+diff -Nur a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S        2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S        2011-12-22 17:59:24.595119312 +0000
 @@ -24,6 +24,7 @@
  #include <pthread-pi-defines.h>
  #include <kernel-features.h>
        /* Get internal lock.  */
        movq    %rdi, %r8
        movl    $1, %esi
---- glibc-2.14.1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
-+++ glibc-2.14.1-2/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
+diff -Nur a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S     2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S     2011-12-22 17:59:24.596119312 +0000
 @@ -23,6 +23,7 @@
  #include <lowlevelcond.h>
  #include <pthread-pi-defines.h>
  
  #include <kernel-features.h>
  
-@@ -71,6 +72,8 @@ __pthread_cond_timedwait:
+@@ -68,6 +69,8 @@
        cfi_adjust_cfa_offset(FRAME_SIZE)
        cfi_remember_state
  
        cmpq    $1000000000, 8(%rdx)
        movl    $EINVAL, %eax
        jae     48f
---- glibc-2.14.1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
-+++ glibc-2.14.1-2/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
-@@ -23,6 +23,7 @@
- #include <lowlevelcond.h>
+diff -Nur a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S  2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S  2011-12-22 17:59:24.596119312 +0000
+@@ -24,6 +24,7 @@
  #include <tcb-offsets.h>
  #include <pthread-pi-defines.h>
+ #include <pthread-errnos.h>
 +#include <stap-probe.h>
  
  #include <kernel-features.h>
  
-@@ -65,6 +66,8 @@ __pthread_cond_wait:
+@@ -66,6 +67,8 @@
                    +--------------------------+
        */
  
        cmpq    $-1, dep_mutex(%rdi)
  
                /* Prepare structure passed to cancellation handler.  */
---- glibc-2.14.1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S
-+++ glibc-2.14.1-2/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S
+diff -Nur a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S      2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S      2011-12-22 17:59:24.597119312 +0000
 @@ -22,7 +22,7 @@
  #include <lowlevelrwlock.h>
  #include <pthread-errnos.h>
        xorq    %r10, %r10
  
        /* Get the lock.  */
---- glibc-2.14.1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S
-+++ glibc-2.14.1-2/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S
+diff -Nur a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S      2011-12-22 16:50:52.000000000 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S      2011-12-22 17:59:24.597119312 +0000
 @@ -22,7 +22,7 @@
  #include <lowlevelrwlock.h>
  #include <pthread-errnos.h>
        xorq    %r10, %r10
  
        /* Get the lock.  */
---- glibc-2.14.1/nscd/nscd.conf
-+++ glibc-2.14.1-2/nscd/nscd.conf
+diff -Nur a/nscd/nscd.conf b/nscd/nscd.conf
+--- a/nscd/nscd.conf   2011-12-22 16:50:52.000000000 +0000
++++ b/nscd/nscd.conf   2011-12-22 17:59:24.597119312 +0000
 @@ -33,7 +33,7 @@
  #     logfile                 /var/log/nscd.log
  #     threads                 4
  #     stat-user               somebody
        debug-level             0
  #     reload-count            5
---- glibc-2.14.1/nscd/nscd.init
-+++ glibc-2.14.1-2/nscd/nscd.init
+diff -Nur a/nscd/nscd.init b/nscd/nscd.init
+--- a/nscd/nscd.init   2011-12-22 16:50:52.000000000 +0000
++++ b/nscd/nscd.init   2011-12-22 17:59:24.598119312 +0000
 @@ -9,6 +9,7 @@
  #             slow naming services like NIS, NIS+, LDAP, or hesiod.
  # processname: /usr/sbin/nscd
  
  RETVAL=0
  prog=nscd
-@@ -50,7 +39,7 @@ start () {
+@@ -50,7 +39,7 @@
      [ -d /var/run/nscd ] || mkdir /var/run/nscd
      [ -d /var/db/nscd ] || mkdir /var/db/nscd
      echo -n $"Starting $prog: "
      RETVAL=$?
      echo
      [ $RETVAL -eq 0 ] && touch /var/lock/subsys/nscd
-@@ -83,11 +72,11 @@ restart() {
+@@ -83,11 +72,11 @@
  # See how we were called.
  case "$1" in
      start)
        RETVAL=$?
        ;;
      status)
-@@ -99,14 +88,17 @@ case "$1" in
+@@ -99,14 +88,17 @@
        RETVAL=$?
        ;;
      try-restart | condrestart)
        ;;
      *)
        echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"
---- glibc-2.14.1/nss/Makefile
-+++ glibc-2.14.1-2/nss/Makefile
-@@ -75,6 +75,7 @@ endif
+diff -Nur a/nscd/selinux.c b/nscd/selinux.c
+--- a/nscd/selinux.c   2011-12-22 16:50:52.000000000 +0000
++++ b/nscd/selinux.c   2011-12-22 17:59:24.598119312 +0000
+@@ -270,6 +270,18 @@
+ {
+   int rc;
++#if defined HAVE_LIBAUDIT && defined HAVE_LIBCAP
++  if (server_user != NULL && getuid () == 0)
++    {
++      /* We need to preserve the capabilities in the AVC thread.  */
++      if (prctl (PR_SET_KEEPCAPS, 1) == -1)
++      {
++        dbg_log (_("Failed to set keep-capabilities"));
++        error (EXIT_FAILURE, errno, _("prctl(KEEPCAPS) failed"));
++      }
++    }
++#endif
++
+   rc =
+     pthread_create (&avc_notify_thread, NULL, (void *(*) (void *)) run, NULL);
+   if (rc != 0)
+diff -Nur a/nss/Makefile b/nss/Makefile
+--- a/nss/Makefile     2011-12-22 16:50:52.000000000 +0000
++++ b/nss/Makefile     2011-12-22 17:59:24.599119312 +0000
+@@ -88,6 +88,7 @@
  
  include ../Rules
  
  
  ifeq (yes,$(build-static-nss))
  $(objpfx)getent: $(objpfx)libnss_files.a
---- glibc-2.14.1/nss/nss_files/files-XXX.c
-+++ glibc-2.14.1-2/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,
+diff -Nur a/nss/nss_files/files-XXX.c b/nss/nss_files/files-XXX.c
+--- a/nss/nss_files/files-XXX.c        2011-12-22 16:50:52.000000000 +0000
++++ b/nss/nss_files/files-XXX.c        2011-12-22 17:59:24.599119312 +0000
+@@ -190,7 +190,7 @@
  {
    char *p;
    struct parser_data *data = (void *) buffer;
    int parse_result;
  
    if (buflen < sizeof *data + 2)
---- glibc-2.14.1/posix/Makefile
-+++ glibc-2.14.1-2/posix/Makefile
-@@ -325,15 +325,8 @@ $(inst_libexecdir)/getconf: $(inst_bindir)/getconf \
+diff -Nur a/posix/Makefile b/posix/Makefile
+--- a/posix/Makefile   2011-12-22 16:50:52.000000000 +0000
++++ b/posix/Makefile   2011-12-22 17:59:24.600119312 +0000
+@@ -320,15 +320,8 @@
          mv -f $@/$$spec.new $@/$$spec; \
        done < $(objpfx)getconf.speclist
  
 +        | sed -n -e '/START_OF_STRINGS/,$${/\(POSIX_V[67]\|XBS5\)_/{s/^[^"]*"//;s/".*$$//;p}}' \
 +        > $@.new
        mv -f $@.new $@
---- glibc-2.14.1/posix/gai.conf
-+++ glibc-2.14.1-2/posix/gai.conf
+diff -Nur a/posix/gai.conf b/posix/gai.conf
+--- a/posix/gai.conf   2011-12-22 16:50:52.000000000 +0000
++++ b/posix/gai.conf   2011-12-22 17:59:24.600119312 +0000
 @@ -41,7 +41,7 @@
  #
  # precedence  <mask>   <value>
  #scopev4 ::ffff:0.0.0.0/96       14
 +#
 +#    This is what the Red Hat setting currently uses.
---- glibc-2.14.1/posix/getconf.speclist.h
-+++ glibc-2.14.1-2/posix/getconf.speclist.h
+diff -Nur a/posix/getconf.speclist.h b/posix/getconf.speclist.h
+--- a/posix/getconf.speclist.h 1970-01-01 00:00:00.000000000 +0000
++++ b/posix/getconf.speclist.h 2011-12-22 17:59:24.600119312 +0000
 @@ -0,0 +1,39 @@
 +#include <unistd.h>
 +const char *START_OF_STRINGS =
 +"XBS5_LPBIG_OFFBIG"
 +#endif
 +"";
---- glibc-2.14.1/posix/regcomp.c
-+++ glibc-2.14.1-2/posix/regcomp.c
-@@ -2745,40 +2745,29 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
+diff -Nur a/posix/regcomp.c b/posix/regcomp.c
+--- a/posix/regcomp.c  2011-12-22 16:50:52.000000000 +0000
++++ b/posix/regcomp.c  2011-12-22 17:59:24.601119313 +0000
+@@ -2745,40 +2745,29 @@
  
    /* Local function for parse_bracket_exp used in _LIBC environement.
       Seek the collating symbol entry correspondings to NAME.
 -      if (symb_table[2 * elem] != 0)
 -      {
 -        int32_t second = hash % (table_size - 2) + 1;
--
++      int32_t elem;
 -        do
 -          {
 -            /* First compare the hashing value.  */
 -                /* Yep, this is the entry.  */
 -                break;
 -              }
-+      int32_t elem;
+-
 -            /* Next entry.  */
 -            elem += second;
 -          }
      }
  
    /* Local function for parse_bracket_exp used in _LIBC environment.
-@@ -2787,8 +2776,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
+@@ -2787,8 +2776,7 @@
  
    auto inline unsigned int
    __attribute ((always_inline))
      {
        if (br_elem->type == SB_CHAR)
        {
-@@ -2816,7 +2804,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
+@@ -2816,7 +2804,7 @@
              int32_t elem, idx;
              elem = seek_collating_symbol_entry (br_elem->opr.name,
                                                  sym_name_len);
                {
                  /* We found the entry.  */
                  idx = symb_table[2 * elem + 1];
-@@ -2834,7 +2822,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
+@@ -2834,7 +2822,7 @@
                  /* Return the collation sequence value.  */
                  return *(unsigned int *) (extra + idx);
                }
                {
                  /* No valid character.  Match it as a single byte
                     character.  */
-@@ -2856,11 +2844,8 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
+@@ -2856,11 +2844,8 @@
  
    auto inline reg_errcode_t
    __attribute ((always_inline))
      {
        unsigned int ch;
        uint32_t start_collseq;
-@@ -2939,25 +2924,22 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
+@@ -2939,25 +2924,22 @@
  
    auto inline reg_errcode_t
    __attribute ((always_inline))
            {
              /* No valid character, treat it as a normal
                 character.  */
---- glibc-2.14.1/resolv/Makefile
-+++ glibc-2.14.1-2/resolv/Makefile
-@@ -77,6 +77,7 @@ CPPFLAGS += -Dgethostbyname=res_gethostbyname \
-           -Dgetnetbyaddr=res_getnetbyaddr
+diff -Nur a/resolv/Makefile b/resolv/Makefile
+--- a/resolv/Makefile  2011-12-22 16:50:52.000000000 +0000
++++ b/resolv/Makefile  2011-12-22 17:59:24.602119314 +0000
+@@ -81,6 +81,7 @@
+ CFLAGS-libresolv += -fstack-protector
+ endif
  CFLAGS-res_hconf.c = -fexceptions
 +CFLAGS-res_send.c += -fno-strict-aliasing
  
  # The BIND code elicits some harmless warnings.
  +cflags += -Wno-strict-prototypes -Wno-write-strings
---- glibc-2.14.1/resource/getrlimit.c
-+++ glibc-2.14.1-2/resource/getrlimit.c
-@@ -28,6 +28,7 @@ __getrlimit (enum __rlimit_resource resource, struct rlimit *rlimits)
+diff -Nur a/resource/getrlimit.c b/resource/getrlimit.c
+--- a/resource/getrlimit.c     2011-12-22 16:50:52.000000000 +0000
++++ b/resource/getrlimit.c     2011-12-22 17:59:24.603119315 +0000
+@@ -28,6 +28,7 @@
    __set_errno (ENOSYS);
    return -1;
  }
  weak_alias (__getrlimit, getrlimit)
  
  stub_warning (getrlimit)
---- glibc-2.14.1/scripts/check-local-headers.sh
-+++ glibc-2.14.1-2/scripts/check-local-headers.sh
-@@ -31,6 +31,8 @@ fgrep -v "$includedir/asm" |
- fgrep -v "$includedir/linux" |
- fgrep -v "$includedir/selinux" |
- fgrep -v "$includedir/sys/capability.h" |
-+fgrep -v "$includedir/sys/sdt.h" |
-+fgrep -v "$includedir/sys/sdt-config.h" |
- fgrep -v "$includedir/gd" |
- fgrep -v "$includedir/nss3"; then
-   # If we found a match something is wrong.
---- glibc-2.14.1/stdio-common/vfprintf.c
-+++ glibc-2.14.1-2/stdio-common/vfprintf.c
-@@ -1161,41 +1161,9 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
+diff -Nur a/scripts/check-local-headers.sh b/scripts/check-local-headers.sh
+--- a/scripts/check-local-headers.sh   2011-12-22 16:50:52.000000000 +0000
++++ b/scripts/check-local-headers.sh   2011-12-22 17:59:24.603119315 +0000
+@@ -29,7 +29,7 @@
+ BEGIN {
+   status = 0
+   exclude = "^" includedir \
+-    "/(asm[-/]|linux/|selinux/|gd|nss3/|sys/capability\\.h|libaudit\\.h)"
++    "/(asm[-/]|linux/|selinux/|gd|nss3/|sys/capability\\.h|libaudit\\.h|sys/sdt(-config)?\\.h))"
+ }
+ /^[^ ]/ && $1 ~ /.*:/ { obj = $1 }
+ {
+diff -Nur a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
+--- a/stdio-common/vfprintf.c  2011-12-22 16:50:52.000000000 +0000
++++ b/stdio-common/vfprintf.c  2011-12-22 17:59:24.604119316 +0000
+@@ -1161,41 +1161,9 @@
        else if (!is_long && spec != L_('S'))                                 \
          {                                                                   \
            if (prec != -1)                                                   \
            else                                                              \
              len = strlen (string);                                          \
          }                                                                   \
---- glibc-2.14.1/streams/Makefile
-+++ glibc-2.14.1-2/streams/Makefile
+diff -Nur a/streams/Makefile b/streams/Makefile
+--- a/streams/Makefile 2011-12-22 16:50:52.000000000 +0000
++++ b/streams/Makefile 2011-12-22 17:59:24.605119317 +0000
 @@ -21,7 +21,7 @@
  #
  subdir        := streams
  routines      = isastream getmsg getpmsg putmsg putpmsg fattach fdetach
  
  include ../Rules
---- glibc-2.14.1/sunrpc/Makefile
-+++ glibc-2.14.1-2/sunrpc/Makefile
-@@ -53,7 +53,7 @@ headers-in-tirpc = $(addprefix rpc/,auth.h auth_unix.h clnt.h pmap_clnt.h \
+diff -Nur a/sunrpc/Makefile b/sunrpc/Makefile
+--- a/sunrpc/Makefile  2011-12-22 16:50:52.000000000 +0000
++++ b/sunrpc/Makefile  2011-12-22 17:59:24.605119317 +0000
+@@ -53,7 +53,7 @@
                                    des_crypt.h)
  headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \
                       $(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h
  install-others = $(inst_sysconfdir)/rpc
  generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \
            $(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen
-@@ -152,6 +152,10 @@ CFLAGS-openchild.c = -fexceptions
+@@ -152,6 +152,10 @@
  
  CPPFLAGS += -D_RPC_THREAD_SAFE_
  
  $(objpfx)tst-getmyaddr: $(common-objpfx)linkobj/libc.so
  $(objpfx)tst-xdrmem: $(common-objpfx)linkobj/libc.so
  $(objpfx)tst-xdrmem2: $(common-objpfx)linkobj/libc.so
---- glibc-2.14.1/sysdeps/generic/dl-cache.h
-+++ glibc-2.14.1-2/sysdeps/generic/dl-cache.h
+diff -Nur a/sysdeps/generic/dl-cache.h b/sysdeps/generic/dl-cache.h
+--- a/sysdeps/generic/dl-cache.h       2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/generic/dl-cache.h       2011-12-22 17:59:24.605119317 +0000
 @@ -36,6 +36,14 @@
  # define add_system_dir(dir) add_dir (dir)
  #endif
  #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.14.1/sysdeps/i386/Makefile
-+++ glibc-2.14.1-2/sysdeps/i386/Makefile
+diff -Nur a/sysdeps/i386/Makefile b/sysdeps/i386/Makefile
+--- a/sysdeps/i386/Makefile    2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/i386/Makefile    2011-12-22 17:59:24.606119317 +0000
 @@ -2,6 +2,8 @@
  # Every i386 port in use uses gas syntax (I think).
  asm-CPPFLAGS += -DGAS_SYNTAX
  # The i386 `long double' is a distinct type we support.
  long-double-fcts = yes
  
-@@ -65,6 +67,14 @@ endif
+@@ -68,6 +70,14 @@
  
  ifneq (,$(filter -mno-tls-direct-seg-refs,$(CFLAGS)))
  defines += -DNO_TLS_DIRECT_SEG_REFS
  endif
  
  ifeq ($(subdir),elf)
---- glibc-2.14.1/sysdeps/i386/__longjmp.S
-+++ glibc-2.14.1-2/sysdeps/i386/__longjmp.S
+diff -Nur a/sysdeps/i386/__longjmp.S b/sysdeps/i386/__longjmp.S
+--- a/sysdeps/i386/__longjmp.S 2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/i386/__longjmp.S 2011-12-22 17:59:24.606119317 +0000
 @@ -1,5 +1,5 @@
  /* longjmp for i386.
 -   Copyright (C) 1995-1998,2000,2002,2005,2006,2009
  
        .text
  ENTRY (__longjmp)
-@@ -33,6 +34,7 @@ ENTRY (__longjmp)
+@@ -33,6 +34,7 @@
        movl (JB_SP*4)(%eax), %ecx
        PTR_DEMANGLE (%edx)
        PTR_DEMANGLE (%ecx)
        cfi_def_cfa(%eax, 0)
        cfi_register(%eip, %edx)
        cfi_register(%esp, %ecx)
-@@ -50,6 +52,7 @@ ENTRY (__longjmp)
+@@ -50,6 +52,7 @@
        cfi_restore(%edi)
        cfi_restore(%ebp)
  
        movl 8(%esp), %eax      /* Second argument is return value.  */
        movl %ecx, %esp
  #else
-@@ -57,12 +60,14 @@ ENTRY (__longjmp)
+@@ -57,12 +60,14 @@
        movl 8(%esp), %eax      /* Second argument is return value.  */
        /* Save the return address now.  */
        movl (JB_PC*4)(%ecx), %edx
  #endif
        /* Jump to saved PC.  */
        jmp *%edx
---- glibc-2.14.1/sysdeps/i386/bsd-_setjmp.S
-+++ glibc-2.14.1-2/sysdeps/i386/bsd-_setjmp.S
+diff -Nur a/sysdeps/i386/bsd-_setjmp.S b/sysdeps/i386/bsd-_setjmp.S
+--- a/sysdeps/i386/bsd-_setjmp.S       2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/i386/bsd-_setjmp.S       2011-12-22 17:59:24.606119317 +0000
 @@ -1,5 +1,6 @@
  /* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'.  i386 version.
 -   Copyright (C) 1994-1997,2000-2002,2005, 2006 Free Software Foundation, Inc.
  
  #define PARMS LINKAGE         /* no space for saved regs */
  #define JMPBUF        PARMS
-@@ -47,6 +49,7 @@ ENTRY (BP_SYM (_setjmp))
+@@ -47,6 +49,7 @@
  #endif
        movl %ecx, (JB_SP*4)(%edx)
        movl PCOFF(%esp), %ecx  /* Save PC we are returning to now.  */
  #ifdef PTR_MANGLE
        PTR_MANGLE (%ecx)
  #endif
---- glibc-2.14.1/sysdeps/i386/bsd-setjmp.S
-+++ glibc-2.14.1-2/sysdeps/i386/bsd-setjmp.S
+diff -Nur a/sysdeps/i386/bsd-setjmp.S b/sysdeps/i386/bsd-setjmp.S
+--- a/sysdeps/i386/bsd-setjmp.S        2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/i386/bsd-setjmp.S        2011-12-22 17:59:24.607119317 +0000
 @@ -1,5 +1,6 @@
  /* BSD `setjmp' entry point to `sigsetjmp (..., 1)'.  i386 version.
 -   Copyright (C) 1994-1997,2000,2001,2005, 2006 Free Software Foundation, Inc.
  
  #define PARMS  LINKAGE                /* no space for saved regs */
  #define JMPBUF PARMS
-@@ -49,6 +51,7 @@ ENTRY (BP_SYM (setjmp))
+@@ -49,6 +51,7 @@
  #endif
        movl %ecx, (JB_SP*4)(%eax)
        movl PCOFF(%esp), %ecx  /* Save PC we are returning to now.  */
  #ifdef PTR_MANGLE
        PTR_MANGLE (%ecx)
  #endif
---- glibc-2.14.1/sysdeps/i386/i686/Makefile
-+++ glibc-2.14.1-2/sysdeps/i386/i686/Makefile
-@@ -9,19 +9,3 @@ stack-align-test-flags += -msse
+diff -Nur a/sysdeps/i386/i686/Makefile b/sysdeps/i386/i686/Makefile
+--- a/sysdeps/i386/i686/Makefile       2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/i386/i686/Makefile       2011-12-22 17:59:24.607119317 +0000
+@@ -9,19 +9,3 @@
  ifeq ($(subdir),string)
  sysdep_routines += cacheinfo
  endif
 -ASFLAGS-.ob += -Wa,-mtune=i686
 -ASFLAGS-.oS += -Wa,-mtune=i686
 -endif
---- glibc-2.14.1/sysdeps/i386/setjmp.S
-+++ glibc-2.14.1-2/sysdeps/i386/setjmp.S
+diff -Nur a/sysdeps/i386/setjmp.S b/sysdeps/i386/setjmp.S
+--- a/sysdeps/i386/setjmp.S    2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/i386/setjmp.S    2011-12-22 17:59:24.608119317 +0000
 @@ -1,5 +1,5 @@
  /* setjmp for i386.
 -   Copyright (C) 1995,1996,1997,2000,2001,2005,2006
  
  #define PARMS LINKAGE         /* no space for saved regs */
  #define JMPBUF        PARMS
-@@ -44,6 +45,7 @@ ENTRY (BP_SYM (__sigsetjmp))
+@@ -44,6 +45,7 @@
  #endif
        movl %ecx, (JB_SP*4)(%eax)
        movl PCOFF(%esp), %ecx  /* Save PC we are returning to now.  */
  #ifdef PTR_MANGLE
        PTR_MANGLE (%ecx)
  #endif
---- glibc-2.14.1/sysdeps/ia64/Makefile
-+++ glibc-2.14.1-2/sysdeps/ia64/Makefile
-@@ -12,8 +12,8 @@ elide-routines.os += hp-timing
+diff -Nur a/sysdeps/ia64/Makefile b/sysdeps/ia64/Makefile
+--- a/sysdeps/ia64/Makefile    2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/ia64/Makefile    2011-12-22 17:59:24.608119317 +0000
+@@ -12,8 +12,8 @@
  
  ifeq (yes,$(build-shared))
  # Compatibility
  endif
  endif
  
---- glibc-2.14.1/sysdeps/ia64/ia64libgcc.S
-+++ glibc-2.14.1-2/sysdeps/ia64/ia64libgcc.S
+diff -Nur a/sysdeps/ia64/ia64libgcc.S b/sysdeps/ia64/ia64libgcc.S
+--- a/sysdeps/ia64/ia64libgcc.S        2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/ia64/ia64libgcc.S        1970-01-01 00:00:00.000000000 +0000
 @@ -1,350 +0,0 @@
 -/* From the Intel IA-64 Optimization Guide, choose the minimum latency
 -   alternative.  */
 -      .symver ___multi3, __multi3@GLIBC_2.2
 -
 -#endif
---- glibc-2.14.1/sysdeps/ia64/libgcc-compat.c
-+++ glibc-2.14.1-2/sysdeps/ia64/libgcc-compat.c
+diff -Nur a/sysdeps/ia64/libgcc-compat.c b/sysdeps/ia64/libgcc-compat.c
+--- a/sysdeps/ia64/libgcc-compat.c     1970-01-01 00:00:00.000000000 +0000
++++ b/sysdeps/ia64/libgcc-compat.c     2011-12-22 17:59:24.613119317 +0000
 @@ -0,0 +1,84 @@
 +/* pre-.hidden libgcc compatibility
 +   Copyright (C) 2002 Free Software Foundation, Inc.
 +symbol_version (INTUSE (__multi3), __multi3, GLIBC_2.2);
 +
 +#endif
---- glibc-2.14.1/sysdeps/mach/hurd/getrlimit.c
-+++ glibc-2.14.1-2/sysdeps/mach/hurd/getrlimit.c
-@@ -44,4 +44,5 @@ __getrlimit (enum __rlimit_resource resource, struct rlimit *rlimits)
+diff -Nur a/sysdeps/mach/hurd/getrlimit.c b/sysdeps/mach/hurd/getrlimit.c
+--- a/sysdeps/mach/hurd/getrlimit.c    2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/mach/hurd/getrlimit.c    2011-12-22 17:59:24.613119317 +0000
+@@ -44,4 +44,5 @@
  
    return 0;
  }
 +libc_hidden_def (__getrlimit)
  weak_alias (__getrlimit, getrlimit)
---- glibc-2.14.1/sysdeps/posix/getaddrinfo.c
-+++ glibc-2.14.1-2/sysdeps/posix/getaddrinfo.c
-@@ -565,8 +565,8 @@ gaih_inet (const char *name, const struct gaih_service *service,
+diff -Nur a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
+--- a/sysdeps/posix/getaddrinfo.c      2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/posix/getaddrinfo.c      2011-12-22 17:59:24.615119317 +0000
+@@ -565,8 +565,8 @@
  
          /* If we do not have to look for IPv6 addresses, use
             the simple, old functions, which do not support
 +           IPv6 scope ids, nor retrieving the canonical name.  */
 +        if (req->ai_family == AF_INET && (req->ai_flags & AI_CANONNAME) == 0)
            {
-             int family = req->ai_family;
              size_t tmpbuflen = 512;
-@@ -1115,68 +1115,10 @@ gaih_inet (const char *name, const struct gaih_service *service,
+             assert (tmpbuf == NULL);
+@@ -1105,68 +1105,10 @@
        /* Only the first entry gets the canonical name.  */
        if (at2 == at && (req->ai_flags & AI_CANONNAME) != 0)
          {
  
  #ifdef HAVE_LIBIDN
            if (req->ai_flags & AI_CANONIDN)
-@@ -1191,9 +1133,6 @@ gaih_inet (const char *name, const struct gaih_service *service,
+@@ -1181,9 +1123,6 @@
                int rc = __idna_to_unicode_lzlz (canon, &out, idn_flags);
                if (rc != IDNA_SUCCESS)
                  {
                    if (rc == IDNA_MALLOC_ERROR)
                      result = -EAI_MEMORY;
                    else if (rc == IDNA_DLOPEN_ERROR)
-@@ -1223,17 +1162,11 @@ gaih_inet (const char *name, const struct gaih_service *service,
+@@ -1213,17 +1152,11 @@
                    canon = strdup (canon);
                    if (canon == NULL)
                      {
          }
  
        family = at2->family;
-@@ -1370,10 +1303,12 @@ static const struct scopeentry
+@@ -1360,10 +1293,12 @@
      /* Link-local addresses: scope 2.  */
      { { { 169, 254, 0, 0 } }, htonl_c (0xffff0000), 2 },
      { { { 127, 0, 0, 0 } }, htonl_c (0xff000000), 2 },
      /* Default: scope 14.  */
      { { { 0, 0, 0, 0 } }, htonl_c (0x00000000), 14 }
    };
---- glibc-2.14.1/sysdeps/powerpc/powerpc64/Makefile
-+++ glibc-2.14.1-2/sysdeps/powerpc/powerpc64/Makefile
-@@ -33,6 +33,7 @@ ifneq ($(elf),no)
+diff -Nur a/sysdeps/powerpc/powerpc64/Makefile b/sysdeps/powerpc/powerpc64/Makefile
+--- a/sysdeps/powerpc/powerpc64/Makefile       2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/powerpc/powerpc64/Makefile       2011-12-22 17:59:24.615119317 +0000
+@@ -33,6 +33,7 @@
  # we use -fpic instead which is much better.
  CFLAGS-initfini.s += -fpic -O1
  endif
  endif
  
  ifeq ($(subdir),elf)
---- glibc-2.14.1/sysdeps/powerpc/powerpc64/elf/Makefile
-+++ glibc-2.14.1-2/sysdeps/powerpc/powerpc64/elf/Makefile
-@@ -9,3 +9,5 @@ CFLAGS-rtld-mempcpy.os = $(no-special-regs)
+diff -Nur a/sysdeps/powerpc/powerpc64/elf/Makefile b/sysdeps/powerpc/powerpc64/elf/Makefile
+--- a/sysdeps/powerpc/powerpc64/elf/Makefile   2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/powerpc/powerpc64/elf/Makefile   2011-12-22 17:59:24.616119318 +0000
+@@ -9,3 +9,5 @@
  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.14.1/sysdeps/s390/s390-64/utf16-utf32-z9.c
-+++ glibc-2.14.1-2/sysdeps/s390/s390-64/utf16-utf32-z9.c
-@@ -169,10 +169,7 @@ gconv_end (struct __gconv_step *data)
+diff -Nur a/sysdeps/s390/s390-64/utf16-utf32-z9.c b/sysdeps/s390/s390-64/utf16-utf32-z9.c
+--- a/sysdeps/s390/s390-64/utf16-utf32-z9.c    2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/s390/s390-64/utf16-utf32-z9.c    2011-12-22 17:59:24.616119318 +0000
+@@ -169,10 +169,7 @@
      register unsigned long long outlen asm("11") = outend - outptr;   \
      uint64_t cc = 0;                                                  \
                                                                        \
                    "   jo     0b        \n\t"                          \
                  "   ipm    %2        \n"                              \
                  : "+a" (pOutput), "+a" (pInput), "+d" (cc),           \
---- glibc-2.14.1/sysdeps/s390/s390-64/utf8-utf16-z9.c
-+++ glibc-2.14.1-2/sysdeps/s390/s390-64/utf8-utf16-z9.c
-@@ -151,10 +151,7 @@ gconv_end (struct __gconv_step *data)
+diff -Nur a/sysdeps/s390/s390-64/utf8-utf16-z9.c b/sysdeps/s390/s390-64/utf8-utf16-z9.c
+--- a/sysdeps/s390/s390-64/utf8-utf16-z9.c     2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/s390/s390-64/utf8-utf16-z9.c     2011-12-22 17:59:24.616119318 +0000
+@@ -151,10 +151,7 @@
      register unsigned long long outlen asm("11") = outend - outptr;   \
      uint64_t cc = 0;                                                  \
                                                                        \
                    "   jo     0b        \n\t"                          \
                  "   ipm    %2        \n"                              \
                  : "+a" (pOutput), "+a" (pInput), "+d" (cc),           \
---- glibc-2.14.1/sysdeps/s390/s390-64/utf8-utf32-z9.c
-+++ glibc-2.14.1-2/sysdeps/s390/s390-64/utf8-utf32-z9.c
-@@ -155,10 +155,7 @@ gconv_end (struct __gconv_step *data)
+diff -Nur a/sysdeps/s390/s390-64/utf8-utf32-z9.c b/sysdeps/s390/s390-64/utf8-utf32-z9.c
+--- a/sysdeps/s390/s390-64/utf8-utf32-z9.c     2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/s390/s390-64/utf8-utf32-z9.c     2011-12-22 17:59:24.617119319 +0000
+@@ -155,10 +155,7 @@
      register unsigned long long outlen asm("11") = outend - outptr;   \
      uint64_t cc = 0;                                                  \
                                                                        \
                    "   jo     0b        \n\t"                          \
                  "   ipm    %2        \n"                              \
                  : "+a" (pOutput), "+a" (pInput), "+d" (cc),           \
---- glibc-2.14.1/sysdeps/unix/nice.c
-+++ glibc-2.14.1-2/sysdeps/unix/nice.c
-@@ -42,7 +42,12 @@ nice (int incr)
+diff -Nur a/sysdeps/unix/nice.c b/sysdeps/unix/nice.c
+--- a/sysdeps/unix/nice.c      2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/unix/nice.c      2011-12-22 17:59:24.617119319 +0000
+@@ -42,7 +42,12 @@
        __set_errno (save);
      }
  
    if (result == -1)
      {
        if (errno == EACCES)
---- glibc-2.14.1/sysdeps/unix/sysv/linux/check_pf.c
-+++ glibc-2.14.1-2/sysdeps/unix/sysv/linux/check_pf.c
-@@ -27,13 +27,10 @@
+diff -Nur a/sysdeps/unix/sysv/linux/check_pf.c b/sysdeps/unix/sysv/linux/check_pf.c
+--- a/sysdeps/unix/sysv/linux/check_pf.c       2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/unix/sysv/linux/check_pf.c       2011-12-22 17:59:24.618119320 +0000
+@@ -27,16 +27,14 @@
  #include <unistd.h>
  #include <sys/socket.h>
  
 -
  #include <not-cancel.h>
  #include <kernel-features.h>
+ #include <bits/libc-lock.h>
+ #include <atomic.h>
+ #include <nscd/nscd-client.h>
  
 +#include "netlinkaccess.h"
++
  
  #ifndef IFA_F_HOMEADDRESS
  # define IFA_F_HOMEADDRESS 0
---- glibc-2.14.1/sysdeps/unix/sysv/linux/futimesat.c
-+++ glibc-2.14.1-2/sysdeps/unix/sysv/linux/futimesat.c
-@@ -37,14 +37,14 @@ futimesat (fd, file, tvp)
+diff -Nur a/sysdeps/unix/sysv/linux/futimesat.c b/sysdeps/unix/sysv/linux/futimesat.c
+--- a/sysdeps/unix/sysv/linux/futimesat.c      2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/unix/sysv/linux/futimesat.c      2011-12-22 17:59:24.618119320 +0000
+@@ -37,14 +37,14 @@
  {
    int result;
  
        result = INLINE_SYSCALL (futimesat, 3, fd, file, tvp);
  # ifndef __ASSUME_ATFCTS
        if (result == -1 && errno == ENOSYS)
-@@ -58,22 +58,7 @@ futimesat (fd, file, tvp)
+@@ -58,22 +58,7 @@
  #ifndef __ASSUME_ATFCTS
    char *buf = NULL;
  
      {
        size_t filelen = strlen (file);
        if (__builtin_expect (filelen == 0, 0))
---- glibc-2.14.1/sysdeps/unix/sysv/linux/getpagesize.c
-+++ glibc-2.14.1-2/sysdeps/unix/sysv/linux/getpagesize.c
-@@ -28,7 +28,7 @@
- int
- __getpagesize ()
- {
--#ifdef __ASSUME_AT_PAGESIZE
-+#if 0 && defined __ASSUME_AT_PAGESIZE
-   assert (GLRO(dl_pagesize) != 0);
-   return GLRO(dl_pagesize);
- #else
---- glibc-2.14.1/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S
-+++ glibc-2.14.1-2/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S
+diff -Nur a/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S b/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S
+--- a/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S   2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S   2011-12-22 17:59:24.619119321 +0000
 @@ -1,4 +1,5 @@
 -/* Copyright (C) 2001,2004,2005,2006,2009 Free Software Foundation, Inc.
 +/* Copyright (C) 2001,2004,2005,2006,2009,2011
  
  
        .section .rodata.str1.1,"aMS",@progbits,1
-@@ -79,7 +81,9 @@ ENTRY (____longjmp_chk)
+@@ -79,7 +81,9 @@
        cfi_adjust_cfa_offset(-12)
        movl    4(%esp), %ecx
  
        cfi_def_cfa(%ecx, 0)
        cfi_register(%eip, %edx)
        cfi_register(%esp, %edi)
-@@ -102,5 +106,6 @@ ENTRY (____longjmp_chk)
+@@ -102,5 +106,6 @@
        cfi_restore(%ebp)
  
        /* Jump to saved PC.  */
 +      LIBC_PROBE (longjmp_target, 3, 4@%ecx, -4@%eax, 4@%edx)
        jmp     *%edx
  END (____longjmp_chk)
---- glibc-2.14.1/sysdeps/unix/sysv/linux/i386/dl-cache.h
-+++ glibc-2.14.1-2/sysdeps/unix/sysv/linux/i386/dl-cache.h
+diff -Nur a/sysdeps/unix/sysv/linux/i386/dl-cache.h b/sysdeps/unix/sysv/linux/i386/dl-cache.h
+--- a/sysdeps/unix/sysv/linux/i386/dl-cache.h  1970-01-01 00:00:00.000000000 +0000
++++ b/sysdeps/unix/sysv/linux/i386/dl-cache.h  2011-12-22 17:59:24.620119321 +0000
 @@ -0,0 +1,59 @@
 +/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
 +   Copyright (C) 2004 Free Software Foundation, Inc.
 +  } while (0)
 +
 +#include_next <dl-cache.h>
---- glibc-2.14.1/sysdeps/unix/sysv/linux/i386/getrlimit.c
-+++ glibc-2.14.1-2/sysdeps/unix/sysv/linux/i386/getrlimit.c
-@@ -79,4 +79,5 @@ __new_getrlimit (enum __rlimit_resource resource, struct rlimit *rlimits)
+diff -Nur a/sysdeps/unix/sysv/linux/i386/getrlimit.c b/sysdeps/unix/sysv/linux/i386/getrlimit.c
+--- a/sysdeps/unix/sysv/linux/i386/getrlimit.c 2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/unix/sysv/linux/i386/getrlimit.c 2011-12-22 17:59:24.620119321 +0000
+@@ -79,4 +79,5 @@
  }
  
  weak_alias (__new_getrlimit, __getrlimit);
 +libc_hidden_weak (__getrlimit)
  versioned_symbol (libc, __new_getrlimit, getrlimit, GLIBC_2_2);
---- glibc-2.14.1/sysdeps/unix/sysv/linux/ia64/dl-cache.h
-+++ glibc-2.14.1-2/sysdeps/unix/sysv/linux/ia64/dl-cache.h
+diff -Nur a/sysdeps/unix/sysv/linux/ia64/dl-cache.h b/sysdeps/unix/sysv/linux/ia64/dl-cache.h
+--- a/sysdeps/unix/sysv/linux/ia64/dl-cache.h  2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/unix/sysv/linux/ia64/dl-cache.h  2011-12-22 17:59:24.621119321 +0000
 @@ -22,4 +22,31 @@
  #define _dl_cache_check_flags(flags) \
    ((flags) == _DL_CACHE_DEFAULT_ID)
 +  } while (0)
 +
  #include_next <dl-cache.h>
---- glibc-2.14.1/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c
-+++ glibc-2.14.1-2/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c
+diff -Nur a/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c b/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c
+--- a/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c       1970-01-01 00:00:00.000000000 +0000
++++ b/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c       2011-12-22 17:59:24.621119321 +0000
 @@ -0,0 +1,5 @@
 +#ifdef IS_IN_ldconfig
 +#include <sysdeps/i386/dl-procinfo.c>
 +#else
 +#include <sysdeps/generic/dl-procinfo.c>
 +#endif
---- glibc-2.14.1/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h
-+++ glibc-2.14.1-2/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h
+diff -Nur a/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h b/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h
+--- a/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h       1970-01-01 00:00:00.000000000 +0000
++++ b/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h       2011-12-22 17:59:24.621119321 +0000
 @@ -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.14.1/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed
-+++ glibc-2.14.1-2/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed
+diff -Nur a/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed b/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed
+--- a/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed     2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed     2011-12-22 17:59:24.621119321 +0000
 @@ -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.14.1/sysdeps/unix/sysv/linux/netlinkaccess.h
-+++ glibc-2.14.1-2/sysdeps/unix/sysv/linux/netlinkaccess.h
+diff -Nur a/sysdeps/unix/sysv/linux/netlinkaccess.h b/sysdeps/unix/sysv/linux/netlinkaccess.h
+--- a/sysdeps/unix/sysv/linux/netlinkaccess.h  2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/unix/sysv/linux/netlinkaccess.h  2011-12-22 17:59:24.621119321 +0000
 @@ -25,6 +25,24 @@
  
  #include <kernel-features.h>
  
  struct netlink_res
  {
---- glibc-2.14.1/sysdeps/unix/sysv/linux/paths.h
-+++ glibc-2.14.1-2/sysdeps/unix/sysv/linux/paths.h
+diff -Nur a/sysdeps/unix/sysv/linux/paths.h b/sysdeps/unix/sysv/linux/paths.h
+--- a/sysdeps/unix/sysv/linux/paths.h  2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/unix/sysv/linux/paths.h  2011-12-22 17:59:24.622119321 +0000
 @@ -62,7 +62,7 @@
  #define       _PATH_TTY       "/dev/tty"
  #define       _PATH_UNIX      "/boot/vmlinux"
  #define _PATH_WTMP    "/var/log/wtmp"
  
  /* Provide trailing slash, since mostly used for building pathnames. */
---- glibc-2.14.1/sysdeps/unix/sysv/linux/tcsetattr.c
-+++ glibc-2.14.1-2/sysdeps/unix/sysv/linux/tcsetattr.c
-@@ -49,6 +49,7 @@ tcsetattr (fd, optional_actions, termios_p)
+diff -Nur a/sysdeps/unix/sysv/linux/tcsetattr.c b/sysdeps/unix/sysv/linux/tcsetattr.c
+--- a/sysdeps/unix/sysv/linux/tcsetattr.c      2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/unix/sysv/linux/tcsetattr.c      2011-12-22 17:59:24.622119321 +0000
+@@ -49,6 +49,7 @@
  {
    struct __kernel_termios k_termios;
    unsigned long int cmd;
  
    switch (optional_actions)
      {
-@@ -80,6 +81,35 @@ tcsetattr (fd, optional_actions, termios_p)
+@@ -80,6 +81,35 @@
    memcpy (&k_termios.c_cc[0], &termios_p->c_cc[0],
          __KERNEL_NCCS * sizeof (cc_t));
  
 +  return retval;
  }
  libc_hidden_def (tcsetattr)
---- glibc-2.14.1/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
-+++ glibc-2.14.1-2/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
+diff -Nur a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
+--- a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S 2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S 2011-12-22 17:59:24.623119321 +0000
 @@ -19,6 +19,7 @@
  #include <sysdep.h>
  #include <jmpbuf-offsets.h>
  
        .section .rodata.str1.1,"aMS",@progbits,1
        .type   longjmp_msg,@object
-@@ -94,7 +95,9 @@ ENTRY(____longjmp_chk)
+@@ -94,7 +95,9 @@
        movl    %ebx, %esi
        cfi_restore (%rsi)
  
        cfi_def_cfa(%rdi, 0)
        cfi_register(%rsp,%r8)
        cfi_register(%rbp,%r9)
-@@ -113,5 +116,6 @@ ENTRY(____longjmp_chk)
+@@ -113,5 +116,6 @@
        movl    %esi, %eax
        movq    %r8,%rsp
        movq    %r9,%rbp
 +      LIBC_PROBE (longjmp_target, 3, 8@%rdi, -4@%eax, 8@%rdx)
        jmpq    *%rdx
  END (____longjmp_chk)
---- glibc-2.14.1/sysdeps/x86_64/__longjmp.S
-+++ glibc-2.14.1-2/sysdeps/x86_64/__longjmp.S
+diff -Nur a/sysdeps/x86_64/__longjmp.S b/sysdeps/x86_64/__longjmp.S
+--- a/sysdeps/x86_64/__longjmp.S       2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/x86_64/__longjmp.S       2011-12-22 17:59:24.623119321 +0000
 @@ -1,4 +1,4 @@
 -/* Copyright (C) 2001,2004,2005,2006,2009 Free Software Foundation, Inc.
 +/* Copyright (C) 2001,2004,2005,2006,2009,2011 Free Software Foundation, Inc.
  
  /* Jump to the position specified by ENV, causing the
     setjmp call there to return VAL, or 1 if VAL is 0.
-@@ -34,6 +35,7 @@ ENTRY(__longjmp)
+@@ -34,6 +35,7 @@
        PTR_DEMANGLE (%r9)
        PTR_DEMANGLE (%rdx)
  #endif
        /* We add unwind information for the target here.  */
        cfi_def_cfa(%rdi, 0)
        cfi_register(%rsp,%r8)
-@@ -53,5 +55,6 @@ ENTRY(__longjmp)
+@@ -53,5 +55,6 @@
        mov %esi, %eax
        movq %r8,%rsp
        movq %r9,%rbp
 +      LIBC_PROBE (longjmp_target, 3, 8@%rdi, -4@%eax, 8@%rdx)
        jmpq *%rdx
  END (__longjmp)
---- glibc-2.14.1/sysdeps/x86_64/setjmp.S
-+++ glibc-2.14.1-2/sysdeps/x86_64/setjmp.S
+diff -Nur a/sysdeps/x86_64/setjmp.S b/sysdeps/x86_64/setjmp.S
+--- a/sysdeps/x86_64/setjmp.S  2011-12-22 16:50:52.000000000 +0000
++++ b/sysdeps/x86_64/setjmp.S  2011-12-22 17:59:24.624119322 +0000
 @@ -1,5 +1,5 @@
  /* setjmp for x86-64.
 -   Copyright (C) 2001, 2003, 2005, 2006 Free Software Foundation, Inc.
  
  ENTRY (__sigsetjmp)
        /* Save registers.  */
-@@ -41,6 +42,7 @@ ENTRY (__sigsetjmp)
+@@ -41,6 +42,7 @@
  #endif
        movq %rdx, (JB_RSP*8)(%rdi)
        movq (%rsp), %rax       /* Save PC we are returning to now.  */
  #ifdef PTR_MANGLE
        PTR_MANGLE (%rax)
  #endif
---- glibc-2.14.1/timezone/zic.c
-+++ glibc-2.14.1-2/timezone/zic.c
-@@ -1921,7 +1921,7 @@ const int                        zonecount;
+diff -Nur a/timezone/zic.c b/timezone/zic.c
+--- a/timezone/zic.c   2011-12-22 16:50:52.000000000 +0000
++++ b/timezone/zic.c   2011-12-22 17:59:24.625119322 +0000
+@@ -1921,7 +1921,7 @@
                if (stdrp != NULL && stdrp->r_hiyear == 2037)
                        return;
        }
diff --git a/glibc/patches/glibc-rh730856.patch b/glibc/patches/glibc-rh730856.patch
new file mode 100644 (file)
index 0000000..f7bd5d1
--- /dev/null
@@ -0,0 +1,16 @@
+2011-09-01  Andreas Schwab  <schwab@redhat.com>
+
+       * resolv/res_query.c (__libc_res_nquery): Update assertion.
+
+diff -ru a/resolv/res_query.c b/resolv/res_query.c
+--- a/resolv/res_query.c       2011-12-12 14:10:52.000000000 -0700
++++ b/resolv/res_query.c       2011-12-12 14:23:04.832739111 -0700
+@@ -248,7 +248,7 @@
+           && *resplen2 > (int) sizeof (HEADER))
+         {
+           /* Special case of partial answer.  */
+-          assert (hp != hp2);
++          assert (n == 0 || hp != hp2);
+           hp = hp2;
+         }
+       else if (answerp2 != NULL && *resplen2 < (int) sizeof (HEADER)
diff --git a/glibc/patches/glibc-rh740506.patch b/glibc/patches/glibc-rh740506.patch
new file mode 100644 (file)
index 0000000..6e20ff9
--- /dev/null
@@ -0,0 +1,35 @@
+       * malloc/arena.c (arena_get2): Avoid unnecessarily
+       retrieving #cpus from /proc.
+       * malloc/malloc.c (mALLOPt): Clamp arena_test based on
+       the value of arena_max.
+
+diff --git a/malloc/arena.c b/malloc/arena.c
+index cb8548b..00f1da5 100644
+--- a/malloc/arena.c
++++ b/malloc/arena.c
+@@ -828,7 +828,7 @@ arena_get2(mstate a_tsd, size_t size)
+       {
+         if (mp_.arena_max != 0)
+           narenas_limit = mp_.arena_max;
+-        else
++        else if (narenas > mp_.arena_test)
+           {
+             int n  = __get_nprocs ();
+diff --git a/malloc/malloc.c b/malloc/malloc.c
+index 8608083..f8d32da 100644
+--- a/malloc/malloc.c
++++ b/malloc/malloc.c
+@@ -4842,6 +4842,12 @@ int mALLOPt(int param_number, int value)
+     break;
+ #endif
+   }
++#ifdef PER_THREAD
++  /* Clamp ARENA_TEST from ARENA_MAX to avoid creating too many
++     arenas.  */
++  if (mp_.arena_max > 0 && mp_.arena_max <= mp_.arena_test)
++    mp_.arena_test = mp_.arena_max - 1;
++#endif
+   (void)mutex_unlock(&av->mutex);
+   return res;
+ }
diff --git a/glibc/patches/glibc-rh757881.patch b/glibc/patches/glibc-rh757881.patch
new file mode 100644 (file)
index 0000000..0b41987
--- /dev/null
@@ -0,0 +1,170 @@
+Index: glibc-2.12-2-gc4ccff1/malloc/arena.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/malloc/arena.c
++++ glibc-2.12-2-gc4ccff1/malloc/arena.c
+@@ -870,7 +870,7 @@ heap_trim(heap, pad) heap_info *heap; si
+     heap = prev_heap;
+     if(!prev_inuse(p)) { /* consolidate backward */
+       p = prev_chunk(p);
+-      unlink(p, bck, fwd);
++      unlink(ar_ptr, p, bck, fwd);
+     }
+     assert(((unsigned long)((char*)p + new_size) & (pagesz-1)) == 0);
+     assert( ((char*)p + new_size) == ((char*)heap + heap->size) );
+Index: glibc-2.12-2-gc4ccff1/malloc/hooks.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/malloc/hooks.c
++++ glibc-2.12-2-gc4ccff1/malloc/hooks.c
+@@ -219,7 +219,9 @@ top_check()
+       (char*)t + chunksize(t) == mp_.sbrk_base + main_arena.system_mem)))
+     return 0;
++  mutex_unlock(&main_arena);
+   malloc_printerr (check_action, "malloc: top chunk is corrupt", t);
++  mutex_lock(&main_arena);
+   /* Try to set up a new top chunk. */
+   brk = MORECORE(0);
+Index: glibc-2.12-2-gc4ccff1/malloc/malloc.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/malloc/malloc.c
++++ glibc-2.12-2-gc4ccff1/malloc/malloc.c
+@@ -1541,12 +1541,14 @@
+ #define last(b)      ((b)->bk)
+ /* Take a chunk off a bin list */
+-#define unlink(P, BK, FD) {                                            \
++#define unlink(AV, P, BK, FD) {                                              \
+   FD = P->fd;                                                          \
+   BK = P->bk;                                                          \
+-  if (__builtin_expect (FD->bk != P || BK->fd != P, 0))                \
++  if (__builtin_expect (FD->bk != P || BK->fd != P, 0)) {            \
++    mutex_unlock(&(AV)->mutex);                                              \
+     malloc_printerr (check_action, "corrupted double-linked list", P); \
+-  else {                                                               \
++    mutex_lock(&(AV)->mutex);                                        \
++  } else {                                                           \
+     FD->bk = BK;                                                       \
+     BK->fd = FD;                                                       \
+     if (!in_smallbin_range (P->size)                                 \
+@@ -2593,7 +2595,9 @@
+     else if (contiguous(av) && old_size && brk < old_end) {
+       /* Oops!  Someone else killed our space..  Can't touch anything.  */
++      mutex_unlock(&av->mutex);
+       malloc_printerr (3, "break adjusted to free malloc space", brk);
++      mutex_lock(&av->mutex);
+     }
+     /*
+@@ -3467,7 +3471,9 @@
+       {
+         errstr = "malloc(): memory corruption (fast)";
+       errout:
++        mutex_unlock(&av->mutex);
+         malloc_printerr (check_action, errstr, chunk2mem (victim));
++        mutex_lock(&av->mutex);
+         return NULL;
+       }
+       check_remalloced_chunk(av, victim, nb);
+@@ -3552,8 +3558,12 @@
+       bck = victim->bk;
+       if (__builtin_expect (victim->size <= 2 * SIZE_SZ, 0)
+         || __builtin_expect (victim->size > av->system_mem, 0))
+-      malloc_printerr (check_action, "malloc(): memory corruption",
+-                       chunk2mem (victim));
++      {
++        void *p = chunk2mem(victim);
++        mutex_unlock(&av->mutex);
++        malloc_printerr (check_action, "malloc(): memory corruption", p);
++        mutex_lock(&av->mutex);
++      }
+       size = chunksize(victim);
+       /*
+@@ -3694,7 +3704,7 @@
+         victim = victim->fd;
+       remainder_size = size - nb;
+-      unlink(victim, bck, fwd);
++      unlink(av, victim, bck, fwd);
+       /* Exhaust */
+       if (remainder_size < MINSIZE)  {
+@@ -3792,7 +3802,7 @@
+       remainder_size = size - nb;
+       /* unlink */
+-      unlink(victim, bck, fwd);
++      unlink(av, victim, bck, fwd);
+       /* Exhaust */
+       if (remainder_size < MINSIZE) {
+@@ -3927,9 +3937,11 @@
+     {
+       errstr = "free(): invalid pointer";
+     errout:
+-      if (! have_lock && locked)
++      if (have_lock || locked)
+       (void)mutex_unlock(&av->mutex);
+       malloc_printerr (check_action, errstr, chunk2mem(p));
++      if (have_lock)
++      mutex_lock(&av->mutex);
+       return;
+     }
+   /* We know that each chunk is at least MINSIZE bytes in size.  */
+@@ -4073,7 +4085,7 @@
+       prevsize = p->prev_size;
+       size += prevsize;
+       p = chunk_at_offset(p, -((long) prevsize));
+-      unlink(p, bck, fwd);
++      unlink(av, p, bck, fwd);
+     }
+     if (nextchunk != av->top) {
+@@ -4082,7 +4094,7 @@
+       /* consolidate forward */
+       if (!nextinuse) {
+-      unlink(nextchunk, bck, fwd);
++      unlink(av, nextchunk, bck, fwd);
+       size += nextsize;
+       } else
+       clear_inuse_bit_at_offset(nextchunk, 0);
+@@ -4243,7 +4255,7 @@
+           prevsize = p->prev_size;
+           size += prevsize;
+           p = chunk_at_offset(p, -((long) prevsize));
+-          unlink(p, bck, fwd);
++          unlink(av, p, bck, fwd);
+         }
+         if (nextchunk != av->top) {
+@@ -4251,7 +4263,7 @@
+           if (!nextinuse) {
+             size += nextsize;
+-            unlink(nextchunk, bck, fwd);
++            unlink(av, nextchunk, bck, fwd);
+           } else
+             clear_inuse_bit_at_offset(nextchunk, 0);
+@@ -4320,7 +4332,9 @@
+     {
+       errstr = "realloc(): invalid old size";
+     errout:
++      mutex_unlock(&av->mutex);
+       malloc_printerr (check_action, errstr, chunk2mem(oldp));
++      mutex_lock(&av->mutex);
+       return NULL;
+     }
+@@ -4362,7 +4376,7 @@
+            (unsigned long)(newsize = oldsize + nextsize) >=
+            (unsigned long)(nb)) {
+       newp = oldp;
+-      unlink(next, bck, fwd);
++      unlink(av, next, bck, fwd);
+     }
+     /* allocate, copy, free */
diff --git a/glibc/patches/glibc-rh769421.patch b/glibc/patches/glibc-rh769421.patch
new file mode 100644 (file)
index 0000000..67f5ad7
--- /dev/null
@@ -0,0 +1,229 @@
+diff -rup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
+--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S       2011-12-22 18:04:12.937212834 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S       2011-12-22 18:04:42.104222278 +0000
+@@ -137,7 +137,6 @@ __pthread_cond_wait:
+       cmpl    $PI_BIT, %eax
+       jne     18f
+-90:
+       movl    $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %ecx
+       movl    %ebp, %edx
+       xorl    %esi, %esi
+@@ -151,9 +150,6 @@ __pthread_cond_wait:
+       sete    16(%esp)
+       je      19f
+-      cmpl    $-EAGAIN, %eax
+-      je      91f
+-
+       /* Normal and PI futexes dont mix. Use normal futex functions only
+          if the kernel does not support the PI futex functions.  */
+       cmpl    $-ENOSYS, %eax
+@@ -398,78 +394,6 @@ __pthread_cond_wait:
+ #endif
+       call    __lll_unlock_wake
+       jmp     11b
+-
+-91:
+-.LcleanupSTART2:
+-      /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN.  We need to
+-         call it again.  */
+-
+-      /* Get internal lock.  */
+-      movl    $1, %edx
+-      xorl    %eax, %eax
+-      LOCK
+-#if cond_lock == 0
+-      cmpxchgl %edx, (%ebx)
+-#else
+-      cmpxchgl %edx, cond_lock(%ebx)
+-#endif
+-      jz      92f
+-
+-#if cond_lock == 0
+-      movl    %ebx, %edx
+-#else
+-      leal    cond_lock(%ebx), %edx
+-#endif
+-#if (LLL_SHARED-LLL_PRIVATE) > 255
+-      xorl    %ecx, %ecx
+-#endif
+-      cmpl    $-1, dep_mutex(%ebx)
+-      setne   %cl
+-      subl    $1, %ecx
+-      andl    $(LLL_SHARED-LLL_PRIVATE), %ecx
+-#if LLL_PRIVATE != 0
+-      addl    $LLL_PRIVATE, %ecx
+-#endif
+-      call    __lll_lock_wait
+-
+-92:
+-      /* Increment the cond_futex value again, so it can be used as a new
+-         expected value. */
+-      addl    $1, cond_futex(%ebx)
+-      movl    cond_futex(%ebx), %ebp
+-
+-      /* Unlock.  */
+-      LOCK
+-#if cond_lock == 0
+-      subl    $1, (%ebx)
+-#else
+-      subl    $1, cond_lock(%ebx)
+-#endif
+-      je      93f
+-#if cond_lock == 0
+-      movl    %ebx, %eax
+-#else
+-      leal    cond_lock(%ebx), %eax
+-#endif
+-#if (LLL_SHARED-LLL_PRIVATE) > 255
+-      xorl    %ecx, %ecx
+-#endif
+-      cmpl    $-1, dep_mutex(%ebx)
+-      setne   %cl
+-      subl    $1, %ecx
+-      andl    $(LLL_SHARED-LLL_PRIVATE), %ecx
+-#if LLL_PRIVATE != 0
+-      addl    $LLL_PRIVATE, %ecx
+-#endif
+-      call    __lll_unlock_wake
+-
+-93:
+-      /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */
+-      xorl    %ecx, %ecx
+-      movl    dep_mutex(%ebx), %edi
+-      jmp     90b
+-.LcleanupEND2:
+-
+       .size   __pthread_cond_wait, .-__pthread_cond_wait
+ versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
+                 GLIBC_2_3_2)
+@@ -642,10 +566,6 @@ __condvar_w_cleanup:
+       .long   .LcleanupEND-.Lsub_cond_futex
+       .long   __condvar_w_cleanup-.LSTARTCODE
+       .uleb128  0
+-      .long   .LcleanupSTART2-.LSTARTCODE
+-      .long   .LcleanupEND2-.LcleanupSTART2
+-      .long   __condvar_w_cleanup-.LSTARTCODE
+-      .uleb128  0
+       .long   .LcallUR-.LSTARTCODE
+       .long   .LENDCODE-.LcallUR
+       .long   0
+Only in b/nptl/sysdeps/unix/sysv/linux/i386/i486: pthread_cond_wait.S.orig
+diff -rup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S  2011-12-22 18:04:12.941212837 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S  2011-12-22 18:05:05.155229737 +0000
+@@ -23,7 +23,6 @@
+ #include <lowlevelcond.h>
+ #include <tcb-offsets.h>
+ #include <pthread-pi-defines.h>
+-#include <pthread-errnos.h>
+ #include <stap-probe.h>
+ #include <kernel-features.h>
+@@ -137,14 +136,11 @@ __pthread_cond_wait:
+       cmpl    $PI_BIT, %eax
+       jne     61f
+-90:
+       movl    $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %esi
+       movl    $SYS_futex, %eax
+       syscall
+       movl    $1, %r8d
+-      cmpq    $-EAGAIN, %rax
+-      je      91f
+ #ifdef __ASSUME_REQUEUE_PI
+       jmp     62f
+ #else
+@@ -331,70 +327,6 @@ __pthread_cond_wait:
+ 13:   movq    %r10, %rax
+       jmp     14b
+-
+-91:
+-.LcleanupSTART2:
+-      /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN.  We need to
+-         call it again.  */
+-      movq    8(%rsp), %rdi
+-
+-      /* Get internal lock.  */
+-      movl    $1, %esi
+-      xorl    %eax, %eax
+-      LOCK
+-#if cond_lock == 0
+-      cmpxchgl %esi, (%rdi)
+-#else
+-      cmpxchgl %esi, cond_lock(%rdi)
+-#endif
+-      jz      92f
+-
+-#if cond_lock != 0
+-      addq    $cond_lock, %rdi
+-#endif
+-      cmpq    $-1, dep_mutex-cond_lock(%rdi)
+-      movl    $LLL_PRIVATE, %eax
+-      movl    $LLL_SHARED, %esi
+-      cmovne  %eax, %esi
+-      callq   __lll_lock_wait
+-#if cond_lock != 0
+-      subq    $cond_lock, %rdi
+-#endif
+-92:
+-      /* Increment the cond_futex value again, so it can be used as a new
+-         expected value. */
+-      incl    cond_futex(%rdi)
+-      movl    cond_futex(%rdi), %edx
+-
+-      /* Release internal lock.  */
+-      LOCK
+-#if cond_lock == 0
+-      decl    (%rdi)
+-#else
+-      decl    cond_lock(%rdi)
+-#endif
+-      jz      93f
+-
+-#if cond_lock != 0
+-      addq    $cond_lock, %rdi
+-#endif
+-      cmpq    $-1, dep_mutex-cond_lock(%rdi)
+-      movl    $LLL_PRIVATE, %eax
+-      movl    $LLL_SHARED, %esi
+-      cmovne  %eax, %esi
+-      /* The call preserves %rdx.  */
+-      callq   __lll_unlock_wake
+-#if cond_lock != 0
+-      subq    $cond_lock, %rdi
+-#endif
+-93:
+-      /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */
+-      xorq    %r10, %r10
+-      movq    dep_mutex(%rdi), %r8
+-      leaq    cond_futex(%rdi), %rdi
+-      jmp     90b
+-.LcleanupEND2:
+-
+       .size   __pthread_cond_wait, .-__pthread_cond_wait
+ versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
+                 GLIBC_2_3_2)
+@@ -547,15 +479,11 @@ __condvar_cleanup1:
+       .uleb128 .LcleanupSTART-.LSTARTCODE
+       .uleb128 .LcleanupEND-.LcleanupSTART
+       .uleb128 __condvar_cleanup1-.LSTARTCODE
+-      .uleb128 0
+-      .uleb128 .LcleanupSTART2-.LSTARTCODE
+-      .uleb128 .LcleanupEND2-.LcleanupSTART2
+-      .uleb128 __condvar_cleanup1-.LSTARTCODE
+-      .uleb128 0
++      .uleb128  0
+       .uleb128 .LcallUR-.LSTARTCODE
+       .uleb128 .LENDCODE-.LcallUR
+       .uleb128 0
+-      .uleb128 0
++      .uleb128  0
+ .Lcstend:
+Only in b/nptl/sysdeps/unix/sysv/linux/x86_64: pthread_cond_wait.S.orig
+Only in b/nptl/sysdeps/unix/sysv/linux/x86_64: pthread_cond_wait.S.rej