From: Michael Tremer Date: Wed, 4 Jan 2012 23:57:02 +0000 (+0100) Subject: glibc: Update to 2.14.90 (development version). X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=70963a517cc405ca1e876d040b7ab0348e12d58f;p=ipfire-3.x.git glibc: Update to 2.14.90 (development version). --- diff --git a/glibc/glibc.nm b/glibc/glibc.nm index aa4054713..3e6093da9 100644 --- a/glibc/glibc.nm +++ b/glibc/glibc.nm @@ -4,8 +4,9 @@ ############################################################################### name = glibc -version = 2.14.1 +version = 2.14.90 release = 1 +thisapp = %{name}-2.14-16c6f99 maintainer = Michael Tremer 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. diff --git a/glibc/patches/glibc-fedora.patch b/glibc/patches/glibc-fedora.patch index ac1e0a5a8..1f5298bbe 100644 --- a/glibc/patches/glibc-fedora.patch +++ b/glibc/patches/glibc-fedora.patch @@ -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 ++ ++ * nscd/selinux.c (avc_create_thread): Set PR_SET_KEEPCAPS before ++ spawning AVC thread. ++ + 2011-09-08 Andreas Schwab + + * 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 ++ ++ * include/link.h (FORCED_DYNAMIC_TLS_OFFSET) [NO_TLS_OFFSET == 0]: ++ Change to -1. ++ + 2011-08-24 David S. Miller + + * sysdeps/sparc/sparc64/strcmp.S: Rewrite. +@@ -3483,6 +3493,14 @@ + * config.make.in: Likewise. + * malloc/Makefile: Likewise. +2011-06-28 Andreas Schwab + @@ -15,18 +40,18 @@ 2011-06-27 Andreas Schwab * 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 + + * iconvdata/gb18030.c: Regenerate tables. + - 2011-06-15 Ulrich Drepper + 2011-06-20 David S. Miller - * 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 [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 * 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. @@ -86,7 +111,7 @@ 2011-03-22 Ulrich Drepper * 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. @@ -103,20 +128,7 @@ 2011-03-06 Ulrich Drepper * elf/dl-load.c (_dl_map_object): If we are looking for the first -@@ -1327,12 +1374,6 @@ - * elf/noload.c: Include . - (main): Call mtrace. Close all opened handles. - --2011-02-17 Andreas Schwab -- -- [BZ #12454] -- * elf/dl-deps.c (_dl_map_object_deps): Signal error early when -- dependencies are missing. -- - 2011-02-22 Samuel Thibault - - 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. @@ -129,7 +141,7 @@ 2011-01-19 Ulrich Drepper [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. @@ -156,7 +168,7 @@ 2010-09-24 Petr Baudis * 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. @@ -174,7 +186,7 @@ 2010-06-07 Andreas Schwab * 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. @@ -187,9 +199,6 @@ + +2010-06-10 Andreas Schwab + -+ * 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. @@ -199,8 +208,9 @@ 2010-05-28 Luis Machado * 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 @@ -266,8 +276,9 @@ 2004-08-30 Roland McGrath * 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. @@ -290,8 +301,9 @@ 2006-01-19 Thomas Schwinge * libio/genops.c: Include . ---- 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. @@ -305,21 +317,7 @@ 2010-04-05 Thomas Schwinge * 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 -+ -+ [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 - - [BZ #11230] -@@ -2953,6 +2966,11 @@ d2009-10-30 Ulrich Drepper +@@ -2953,6 +2959,11 @@ * sysdeps/generic/ldsodefs.h (struct rtld_global): The map element in the unique symbol hash table should not be const. @@ -331,7 +329,7 @@ 2009-07-21 Ulrich Drepper * sysdeps/x86_64/multiarch/strstr.c: Minor cleanups. Remove -@@ -3218,6 +3236,11 @@ d2009-10-30 Ulrich Drepper +@@ -3218,6 +3229,11 @@ out common code into new function get_common_indeces. Determine extended family and model for Intel processors. @@ -343,7 +341,7 @@ 2009-06-26 Ulrich Drepper * resolv/resolv.h: Define RES_SNGLKUPREOP. -@@ -11818,6 +11841,10 @@ d2009-10-30 Ulrich Drepper +@@ -11818,6 +11834,10 @@ [BZ #4368] * stdlib/stdlib.h: Remove obsolete part of comment for realpath. @@ -354,7 +352,7 @@ 2007-04-16 Ulrich Drepper [BZ #4364] -@@ -13075,6 +13102,15 @@ d2009-10-30 Ulrich Drepper +@@ -13075,6 +13095,15 @@ separators also if no non-zero digits found. * stdlib/Makefile (tests): Add tst-strtod3. @@ -370,9 +368,10 @@ 2006-12-09 Ulrich Drepper [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) @@ -388,9 +387,10 @@ 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 @@ -407,9 +407,10 @@ * 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 @@ -419,25 +420,26 @@ /* */ ---- 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 @@ -489,9 +491,10 @@ # 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) @@ -521,9 +524,10 @@ # 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 $@ @@ -533,9 +537,10 @@ 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; @@ -559,8 +564,9 @@ /* 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. */ @@ -571,7 +577,7 @@ #include #include #include -@@ -242,7 +245,7 @@ do_test (void) +@@ -243,7 +246,7 @@ if (memcmp (a.buf1, "aabcdabcjj", 10)) FAIL (); @@ -580,7 +586,7 @@ /* 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 @@ -589,9 +595,10 @@ # 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 @@ -599,7 +606,7 @@ 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) @@ -609,9 +616,10 @@ 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) { @@ -631,9 +639,10 @@ /* 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; @@ -641,7 +650,7 @@ } /* 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; @@ -649,7 +658,7 @@ 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) @@ -658,8 +667,9 @@ 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 **); @@ -672,7 +682,7 @@ 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); @@ -682,9 +692,10 @@ -#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) { @@ -699,7 +710,7 @@ 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); } @@ -710,9 +721,10 @@ } 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 @@ -722,7 +734,7 @@ { 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; @@ -735,7 +747,7 @@ return len; } -@@ -300,13 +293,10 @@ _dl_dst_count (const char *name, int is_path) +@@ -300,13 +293,10 @@ { size_t len; @@ -752,7 +764,7 @@ ++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; @@ -771,7 +783,7 @@ #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); } @@ -783,7 +795,7 @@ 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; @@ -791,9 +803,10 @@ } 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; @@ -804,9 +817,10 @@ /* 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, @@ -828,7 +842,7 @@ 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') @@ -844,7 +858,7 @@ } 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, @@ -853,7 +867,7 @@ { 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) @@ -862,7 +876,7 @@ 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); @@ -871,7 +885,7 @@ /* 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) { @@ -887,9 +901,10 @@ } 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 @@ -908,7 +923,7 @@ 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 } ;; @@ -917,8 +932,9 @@ 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. @@ -928,7 +944,7 @@ # 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. @@ -936,9 +952,10 @@ +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; @@ -946,7 +963,7 @@ /* 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) @@ -954,7 +971,7 @@ /* 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); @@ -965,7 +982,18 @@ 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; } @@ -973,7 +1001,7 @@ 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)); @@ -981,24 +1009,28 @@ 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 ---- 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 ---- 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 @@ -1015,9 +1047,10 @@ # 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) @@ -1026,8 +1059,9 @@ # 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. @@ -1036,7 +1070,7 @@ 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. */ @@ -1046,7 +1080,7 @@ /* 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; @@ -1056,8 +1090,18 @@ /* 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 static probe points. + Copyright (C) 2011 Free Software Foundation, Inc. @@ -1199,17 +1243,19 @@ +#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 @@ -1218,9 +1264,10 @@ 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 @@ -1229,9 +1276,10 @@ 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. */ @@ -1244,8 +1292,9 @@ __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 !!! @@ -1254,7 +1303,7 @@ 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 */ @@ -1269,7 +1318,7 @@ 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 */ @@ -1277,7 +1326,7 @@ 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 */ @@ -1298,7 +1347,7 @@ 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 */ @@ -1313,7 +1362,7 @@ 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 */ @@ -1321,7 +1370,7 @@ 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 */ @@ -1329,7 +1378,7 @@ 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 */ @@ -1337,18 +1386,10 @@ 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); @@ -1361,25 +1402,7 @@ 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" @@ -1388,7 +1411,7 @@ 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]; } @@ -1397,9 +1420,13 @@ 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 + + * charmaps/GB18030: Correct some entries. @@ -1411,9 +1438,10 @@ 2011-05-21 Ulrich Drepper [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 \ @@ -1421,9 +1449,10 @@ -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 \ @@ -1431,7 +1460,7 @@ 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 \ @@ -1439,7 +1468,7 @@ 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 \ @@ -1447,7 +1476,7 @@ 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 \ @@ -1456,7 +1485,7 @@ 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 \ @@ -1464,9 +1493,10 @@ 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 "";/ +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 "" d_fmt "" t_fmt "" @@ -1480,9 +1510,10 @@ 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 "";/ +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 "" d_fmt "" t_fmt "" @@ -1493,8 +1524,9 @@ date_fmt "/ / " ---- 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 % @@ -1565,8 +1597,9 @@ +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 / @@ -1576,7 +1609,7 @@ % 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 @@ -1585,7 +1618,7 @@ source "" address "" contact "" -@@ -25,7 +25,7 @@ email "bug-glibc-locales@gnu.org" +@@ -25,7 +25,7 @@ tel "" fax "" language "Chinese" @@ -1594,8 +1627,9 @@ 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 #include @@ -1604,7 +1638,7 @@ #ifdef HAVE_LIBCAP # include # include -@@ -143,7 +144,7 @@ main (int argc, char *argv[]) +@@ -143,7 +144,7 @@ uid_t uid = getuid (); int remaining; @@ -1613,7 +1647,7 @@ { #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); @@ -1627,7 +1661,7 @@ /* Set locale via LC_ALL. */ setlocale (LC_ALL, ""); -@@ -195,9 +203,5 @@ main (int argc, char *argv[]) +@@ -195,9 +203,5 @@ return EXIT_FAILURE; } @@ -1637,8 +1671,9 @@ - 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 # include @@ -1666,7 +1701,7 @@ /* 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 @@ -1675,7 +1710,7 @@ __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 @@ -1684,7 +1719,7 @@ __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 @@ -1693,7 +1728,7 @@ __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 @@ -1704,7 +1739,7 @@ __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. */ @@ -1715,8 +1750,9 @@ 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 @@ -1726,9 +1762,10 @@ @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) @@ -1740,7 +1777,7 @@ # 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. */ @@ -1759,7 +1796,7 @@ # 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. */ @@ -1771,9 +1808,10 @@ # 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 @@ -1785,7 +1823,7 @@ # 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 @@ -1794,8 +1832,9 @@ $(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 @@ -1805,9 +1844,10 @@ # # 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 . @@ -1859,7 +1899,7 @@ 2011-01-19 Roland McGrath * 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. @@ -1871,7 +1911,7 @@ 2004-09-02 Ulrich Drepper * 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). @@ -1883,8 +1923,9 @@ 2003-07-25 Jakub Jelinek * 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. @@ -1975,9 +2016,10 @@ + 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 @@ -1987,7 +2029,7 @@ 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 @@ -2009,9 +2051,10 @@ 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; @@ -2019,9 +2062,10 @@ } } ---- 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; @@ -2030,8 +2074,9 @@ || 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 #include @@ -2040,7 +2085,7 @@ #include #include -@@ -32,6 +33,8 @@ int +@@ -32,6 +33,8 @@ __pthread_cond_broadcast (cond) pthread_cond_t *cond; { @@ -2049,8 +2094,9 @@ 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 #include @@ -2059,7 +2105,7 @@ int -@@ -29,6 +30,8 @@ __pthread_cond_destroy (cond) +@@ -29,6 +30,8 @@ int pshared = (cond->__data.__mutex == (void *) ~0l) ? LLL_SHARED : LLL_PRIVATE; @@ -2068,8 +2114,9 @@ /* 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 @@ -2078,7 +2125,7 @@ int -@@ -42,6 +43,8 @@ __pthread_cond_init (cond, cond_attr) +@@ -42,6 +43,8 @@ ? NULL : (void *) ~0l); cond->__data.__broadcast_seq = 0; @@ -2087,8 +2134,9 @@ 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 @@ -2097,7 +2145,7 @@ int -@@ -35,6 +36,8 @@ __pthread_cond_signal (cond) +@@ -35,6 +36,8 @@ int pshared = (cond->__data.__mutex == (void *) ~0l) ? LLL_SHARED : LLL_PRIVATE; @@ -2106,8 +2154,9 @@ /* 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 @@ -2116,7 +2165,7 @@ 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; @@ -2125,9 +2174,10 @@ /* 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 @@ -2136,7 +2186,7 @@ /* 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); } @@ -2145,7 +2195,7 @@ /* 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; @@ -2154,8 +2204,9 @@ /* 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 #include "pthreadP.h" @@ -2165,7 +2216,7 @@ 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; @@ -2174,7 +2225,7 @@ /* 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); } @@ -2182,8 +2233,9 @@ + 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 #include "pthreadP.h" @@ -2200,8 +2252,9 @@ 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 #include "pthreadP.h" @@ -2211,7 +2264,7 @@ 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 @@ -2220,8 +2273,9 @@ 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 #include "pthreadP.h" @@ -2230,7 +2284,7 @@ #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); @@ -2240,7 +2294,7 @@ 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 @@ -2249,7 +2303,7 @@ return 0; } -@@ -467,6 +473,8 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex) +@@ -467,6 +473,8 @@ ++mutex->__data.__nusers; #endif @@ -2258,8 +2312,9 @@ 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 #include @@ -2269,7 +2324,7 @@ 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; @@ -2278,7 +2333,7 @@ /* 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; @@ -2287,7 +2342,7 @@ return 0; } } -@@ -242,6 +248,8 @@ pthread_mutex_timedlock (mutex, abstime) +@@ -242,6 +248,8 @@ ++mutex->__data.__count; @@ -2296,7 +2351,7 @@ return 0; } } -@@ -377,6 +385,8 @@ pthread_mutex_timedlock (mutex, abstime) +@@ -377,6 +385,8 @@ ++mutex->__data.__count; @@ -2305,7 +2360,7 @@ 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; @@ -2314,8 +2369,9 @@ } 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 #include "pthreadP.h" @@ -2324,7 +2380,7 @@ 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)); @@ -2334,7 +2390,7 @@ 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; @@ -2344,7 +2400,7 @@ 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; } @@ -2352,8 +2408,9 @@ 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. */ @@ -2370,8 +2427,9 @@ /* 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 #include @@ -2380,7 +2438,7 @@ /* Acquire read lock for RWLOCK. */ -@@ -31,6 +32,8 @@ __pthread_rwlock_rdlock (rwlock) +@@ -31,6 +32,8 @@ { int result = 0; @@ -2389,7 +2447,7 @@ /* 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; } @@ -2398,8 +2456,9 @@ 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 #include @@ -2415,8 +2474,9 @@ 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 #include @@ -2425,7 +2485,7 @@ /* Acquire write lock for RWLOCK. */ -@@ -31,6 +32,8 @@ __pthread_rwlock_wrlock (rwlock) +@@ -31,6 +32,8 @@ { int result = 0; @@ -2434,7 +2494,7 @@ /* 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); @@ -2443,8 +2503,9 @@ 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 @@ -2453,8 +2514,9 @@ +#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 { @@ -2462,8 +2524,9 @@ + __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 #include @@ -2473,7 +2536,7 @@ .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 @@ -2483,8 +2546,9 @@ 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 #include @@ -2493,7 +2557,7 @@ .text -@@ -49,6 +50,8 @@ __pthread_cond_broadcast: +@@ -49,6 +50,8 @@ movl 20(%esp), %ebx @@ -2502,8 +2566,9 @@ /* 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 #include @@ -2513,7 +2578,7 @@ .text -@@ -45,6 +45,8 @@ __pthread_cond_signal: +@@ -45,6 +45,8 @@ movl 12(%esp), %edi @@ -2522,8 +2587,9 @@ /* 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 #include @@ -2533,7 +2599,7 @@ .text -@@ -61,6 +61,8 @@ __pthread_cond_timedwait: +@@ -61,6 +61,8 @@ movl 20(%esp), %ebx movl 28(%esp), %ebp @@ -2542,8 +2608,9 @@ 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 #include @@ -2552,7 +2619,7 @@ .text -@@ -61,6 +62,8 @@ __pthread_cond_wait: +@@ -61,6 +62,8 @@ xorl %esi, %esi movl 20(%esp), %ebx @@ -2561,8 +2628,9 @@ /* 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 #include @@ -2571,7 +2639,7 @@ .text -@@ -41,6 +42,8 @@ __pthread_rwlock_rdlock: +@@ -41,6 +42,8 @@ xorl %esi, %esi movl 12(%esp), %ebx @@ -2580,8 +2648,9 @@ /* 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 #include @@ -2590,7 +2659,7 @@ .text -@@ -41,6 +42,8 @@ __pthread_rwlock_wrlock: +@@ -41,6 +42,8 @@ xorl %esi, %esi movl 12(%esp), %ebx @@ -2599,8 +2668,9 @@ /* 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 @@ -2610,7 +2680,7 @@ #ifndef __ASSEMBLER__ # include # include -@@ -226,6 +228,7 @@ LLL_STUB_UNWIND_INFO_END +@@ -226,6 +228,7 @@ do { \ int __ignore; \ register __typeof (nr) _nr asm ("edx") = (nr); \ @@ -2618,9 +2688,10 @@ __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. */ @@ -2629,8 +2700,9 @@ 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 + @@ -2638,8 +2710,9 @@ +#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 #include @@ -2649,7 +2722,7 @@ .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 @@ -2659,7 +2732,7 @@ syscall 2: movl %edx, %eax -@@ -130,7 +133,8 @@ __lll_lock_wait: +@@ -126,7 +129,8 @@ cmpl %edx, %eax /* NB: %edx == 2 */ jne 2f @@ -2669,8 +2742,9 @@ 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 @@ -2680,7 +2754,7 @@ #ifndef __ASSEMBLER__ # include # include -@@ -227,6 +229,7 @@ LLL_STUB_UNWIND_INFO_END +@@ -227,6 +229,7 @@ do { \ int __ignore; \ register __typeof (nr) _nr __asm ("edx") = (nr); \ @@ -2688,8 +2762,9 @@ __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 #include @@ -2708,8 +2783,9 @@ /* 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 #include @@ -2727,8 +2803,9 @@ /* 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 #include @@ -2737,7 +2814,7 @@ #include -@@ -71,6 +72,8 @@ __pthread_cond_timedwait: +@@ -68,6 +69,8 @@ cfi_adjust_cfa_offset(FRAME_SIZE) cfi_remember_state @@ -2746,17 +2823,18 @@ 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 +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 #include + #include +#include #include -@@ -65,6 +66,8 @@ __pthread_cond_wait: +@@ -66,6 +67,8 @@ +--------------------------+ */ @@ -2765,8 +2843,9 @@ 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 #include @@ -2786,8 +2865,9 @@ 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 #include @@ -2807,8 +2887,9 @@ 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 @@ -2818,8 +2899,9 @@ # 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 @@ -2851,7 +2933,7 @@ 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: " @@ -2860,7 +2942,7 @@ 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) @@ -2874,7 +2956,7 @@ RETVAL=$? ;; status) -@@ -99,14 +88,17 @@ case "$1" in +@@ -99,14 +88,17 @@ RETVAL=$? ;; try-restart | condrestart) @@ -2896,9 +2978,32 @@ ;; *) 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 @@ -2906,16 +3011,10 @@ 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; @@ -2924,9 +3023,10 @@ 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 @@ -2946,8 +3046,9 @@ + | 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 @@ -2972,8 +3073,9 @@ #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 +const char *START_OF_STRINGS = @@ -3014,9 +3116,10 @@ +"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. @@ -3036,7 +3139,8 @@ - if (symb_table[2 * elem] != 0) - { - int32_t second = hash % (table_size - 2) + 1; -- ++ int32_t elem; + - do - { - /* First compare the hashing value. */ @@ -3050,8 +3154,7 @@ - /* Yep, this is the entry. */ - break; - } -+ int32_t elem; - +- - /* Next entry. */ - elem += second; - } @@ -3075,7 +3178,7 @@ } /* 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)) @@ -3085,7 +3188,7 @@ { 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); @@ -3094,7 +3197,7 @@ { /* 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); } @@ -3103,7 +3206,7 @@ { /* 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)) @@ -3117,7 +3220,7 @@ { 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)) @@ -3147,19 +3250,21 @@ { /* 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; } @@ -3167,20 +3272,22 @@ 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) \ @@ -3225,8 +3332,9 @@ 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 @@ -3236,9 +3344,10 @@ 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 @@ -3247,7 +3356,7 @@ 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_ @@ -3258,8 +3367,9 @@ $(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 @@ -3275,8 +3385,9 @@ #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 @@ -3286,7 +3397,7 @@ # 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 @@ -3301,8 +3412,9 @@ 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 @@ -3318,7 +3430,7 @@ .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) @@ -3326,7 +3438,7 @@ 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) @@ -3334,7 +3446,7 @@ 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 @@ -3349,8 +3461,9 @@ #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. @@ -3367,7 +3480,7 @@ #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. */ @@ -3375,8 +3488,9 @@ #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. @@ -3393,7 +3507,7 @@ #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. */ @@ -3401,9 +3515,10 @@ #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 @@ -3423,8 +3538,9 @@ -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 @@ -3440,7 +3556,7 @@ #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. */ @@ -3448,9 +3564,10 @@ #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 @@ -3461,8 +3578,9 @@ 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. */ @@ -3814,8 +3932,9 @@ - .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. @@ -3901,17 +4020,19 @@ +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 @@ -3920,9 +4041,9 @@ + 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) { @@ -3994,7 +4115,7 @@ #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) { @@ -4004,7 +4125,7 @@ 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) { @@ -4022,7 +4143,7 @@ } 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 }, @@ -4035,9 +4156,10 @@ /* 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 @@ -4045,17 +4167,19 @@ 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; \ \ @@ -4067,9 +4191,10 @@ " 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; \ \ @@ -4081,9 +4206,10 @@ " 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; \ \ @@ -4095,9 +4221,10 @@ " 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); } @@ -4111,9 +4238,10 @@ 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 #include @@ -4123,14 +4251,19 @@ - #include #include + #include + #include + #include +#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; @@ -4148,7 +4281,7 @@ 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; @@ -4172,19 +4305,9 @@ { 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 @@ -4200,7 +4323,7 @@ .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 @@ -4211,15 +4334,16 @@ 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. @@ -4280,16 +4404,18 @@ + } while (0) + +#include_next ---- 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) @@ -4322,29 +4448,33 @@ + } while (0) + #include_next ---- 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 +#else +#include +#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 +#else +#include +#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 @@ -4370,8 +4500,9 @@ 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" @@ -4381,9 +4512,10 @@ #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; @@ -4391,7 +4523,7 @@ 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)); @@ -4428,8 +4560,9 @@ + 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 #include @@ -4438,7 +4571,7 @@ .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) @@ -4449,15 +4582,16 @@ 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. @@ -4472,7 +4606,7 @@ /* 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 @@ -4480,15 +4614,16 @@ /* 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. @@ -4504,7 +4639,7 @@ 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. */ @@ -4512,9 +4647,10 @@ #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 index 000000000..f7bd5d1d0 --- /dev/null +++ b/glibc/patches/glibc-rh730856.patch @@ -0,0 +1,16 @@ +2011-09-01 Andreas Schwab + + * 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 index 000000000..6e20ff96b --- /dev/null +++ b/glibc/patches/glibc-rh740506.patch @@ -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 index 000000000..0b41987f5 --- /dev/null +++ b/glibc/patches/glibc-rh757881.patch @@ -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 index 000000000..67f5ad730 --- /dev/null +++ b/glibc/patches/glibc-rh769421.patch @@ -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 + #include + #include +-#include + #include + + #include +@@ -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