diff --git a/.gitignore b/.gitignore index e1d2eb5..824f6cd 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,6 @@ glibc-2.14-394-g8f3b1ff /glibc-ports-2.15-8a70b2d.tar.gz /glibc-2.15-0ea698a.tar.gz /glibc-ports-2.15-ad8ae7d.tar.gz +/glibc-2.15.90-8b728fa3.tar.gz +/glibc-ports-2.15.90-4645e97.tar.gz +/glibc-2.15.90-8b728fa3-fedora.tar.gz diff --git a/glibc-arm-hardfloat-1.patch b/glibc-arm-hardfloat-1.patch deleted file mode 100644 index c87b8a8..0000000 --- a/glibc-arm-hardfloat-1.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -rup c/config.h.in d/config.h.in ---- c/config.h.in 2012-05-07 09:35:44.844234866 -0600 -+++ d/config.h.in 2012-05-07 11:53:43.461629793 -0600 -@@ -230,4 +230,7 @@ - - #define HAVE_REGEX 1 - -+/* The ARM hard-float ABI is being used. */ -+#undef HAVE_ARM_PCS_VFP -+ - #endif diff --git a/glibc-arm-hardfloat-2.patch b/glibc-arm-hardfloat-2.patch deleted file mode 100644 index 3592312..0000000 --- a/glibc-arm-hardfloat-2.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff --git a/sysdeps/arm/configure.in b/sysdeps/arm/configure.in -index 706add2..f00b798 100644 ---- a/sysdeps/arm/configure.in -+++ b/sysdeps/arm/configure.in -@@ -49,3 +49,20 @@ EOF - if test $libc_cv_asm_cfi_directive_sections != yes; then - AC_MSG_ERROR([need .cfi_sections in this configuration]) - fi -+ -+# We check to see if the compiler and flags are -+# selecting the hard-float ABI and if they are then -+# we set libc_cv_arm_pcs_vfp to yes which causes -+# HAVE_ARM_PCS_VFP to be defined in config.h and -+# in include/libc-symbols.h and thus available to -+# shlib-versions to select the appropriate name for -+# the dynamic linker via %ifdef. -+AC_CACHE_CHECK([whether the compiler is using the ARM hard-float ABI], -+ [libc_cv_arm_pcs_vfp], -+ [AC_EGREP_CPP(yes,[#ifdef __ARM_PCS_VFP -+ yes -+ #endif -+ ], libc_cv_arm_pcs_vfp=yes, libc_cv_arm_pcs_vfp=no)]) -+if test $libc_cv_arm_pcs_vfp = yes; then -+ AC_DEFINE(HAVE_ARM_PCS_VFP) -+fi - -diff -rup c/sysdeps/arm/shlib-versions d/sysdeps/arm/shlib-versions ---- c/sysdeps/arm/shlib-versions 2012-01-08 22:47:04.000000000 -0700 -+++ d/sysdeps/arm/shlib-versions 2012-05-07 11:57:07.739567660 -0600 -@@ -1,4 +1,10 @@ - arm.*-.*-linux-gnueabi.* DEFAULT GLIBC_2.4 - --arm.*-.*-linux-gnueabi.* ld=ld-linux.so.3 -+%ifdef HAVE_ARM_PCS_VFP -+# The EABI-derived hard-float ABI uses a new dynamic linker. -+arm.*-.*-linux-gnueabi.* ld=ld-linux-armhf.so.3 -+%else -+# The EABI-derived soft-float ABI continues to use ld-linux.so.3. -+arm.*-.*-linux-gnueabi.* ld=ld-linux.so.3 -+%endif - arm.*-.*-linux.* ld=ld-linux.so.2 - diff --git a/glibc-fedora.patch b/glibc-fedora.patch index 6eba417..27bb88e 100644 --- a/glibc-fedora.patch +++ b/glibc-fedora.patch @@ -1,7 +1,7 @@ -diff -Nrup a/ChangeLog b/ChangeLog ---- a/ChangeLog 2012-01-01 05:16:32.000000000 -0700 -+++ b/ChangeLog 2012-04-05 15:45:52.986330790 -0600 -@@ -2542,6 +2542,11 @@ +diff -Nrup c/ChangeLog d/ChangeLog +--- c/ChangeLog 2012-05-20 19:47:38.000000000 -0600 ++++ d/ChangeLog 2012-05-20 23:08:50.859742834 -0600 +@@ -10666,6 +10666,11 @@ * sysdeps/mach/hurd/sys/param.h (DEV_BSIZE): New macro. @@ -13,7 +13,7 @@ diff -Nrup a/ChangeLog b/ChangeLog 2011-09-08 Andreas Schwab * elf/dl-load.c (lose): Check for non-null L. -@@ -2804,6 +2809,11 @@ +@@ -10928,6 +10933,11 @@ * sysdeps/i386/dl-trampoline.S (_dl_runtime_profile): Fix cfi directive. @@ -25,7 +25,7 @@ diff -Nrup a/ChangeLog b/ChangeLog 2011-08-24 David S. Miller * sysdeps/sparc/sparc64/strcmp.S: Rewrite. -@@ -3609,6 +3619,14 @@ +@@ -11733,6 +11743,14 @@ * config.make.in: Likewise. * malloc/Makefile: Likewise. @@ -40,7 +40,7 @@ diff -Nrup a/ChangeLog b/ChangeLog 2011-06-27 Andreas Schwab * iconvdata/gb18030.c (BODY for TO_LOOP): Fix encoding of non-BMP -@@ -3740,6 +3758,10 @@ +@@ -11864,6 +11882,10 @@ * inet/getnetgrent_r.c: Use DL_CALL_FCT in several places. @@ -51,7 +51,7 @@ diff -Nrup a/ChangeLog b/ChangeLog 2011-06-20 David S. Miller * sysdeps/sparc/sparc32/dl-plt.h: Protect against multiple -@@ -4362,6 +4384,13 @@ +@@ -12486,6 +12508,13 @@ * libio/Makefile (tests): Add bug-fclose1. * libio/bug-fclose1.c: New file. @@ -65,7 +65,7 @@ diff -Nrup a/ChangeLog b/ChangeLog 2011-05-12 Ulrich Drepper [BZ #12511] -@@ -4639,13 +4668,6 @@ +@@ -12763,13 +12792,6 @@ * stdlib/bug-getcontext.c: New file. * stdlib/Makefile: Add rules to build and run bug-getcontext. @@ -79,7 +79,7 @@ diff -Nrup a/ChangeLog b/ChangeLog 2011-04-11 Andreas Krebbel * sysdeps/s390/s390-32/elf/start.S (_start): Skip extra zeroes -@@ -4943,6 +4965,10 @@ +@@ -13067,6 +13089,10 @@ $LDFLAGS and -nostdlib -nostartfiles to linking step. Change main to _start. @@ -90,7 +90,7 @@ diff -Nrup a/ChangeLog b/ChangeLog 2011-03-06 Ulrich Drepper * elf/dl-load.c (_dl_map_object): If we are looking for the first -@@ -5159,6 +5185,12 @@ +@@ -13283,6 +13309,12 @@ * shadow/sgetspent.c: Check return value of __sgetspent_r instead of errno. @@ -103,7 +103,7 @@ diff -Nrup a/ChangeLog b/ChangeLog 2011-01-19 Ulrich Drepper [BZ #11724] -@@ -5846,6 +5878,19 @@ +@@ -13970,6 +14002,19 @@ * sysdeps/unix/sysv/linux/internal_statvfs.c (INTERNAL_STATVFS): Mask out sign-bit copies when constructing f_fsid. @@ -123,7 +123,7 @@ diff -Nrup a/ChangeLog b/ChangeLog 2010-09-24 Petr Baudis * debug/stack_chk_fail_local.c: Add missing licence exception. -@@ -6638,6 +6683,17 @@ +@@ -14762,6 +14807,17 @@ call returning > 0 value. * sysdeps/unix/sysv/linux/getlogin.c (getlogin): Likewise. @@ -141,7 +141,7 @@ diff -Nrup a/ChangeLog b/ChangeLog 2010-06-07 Andreas Schwab * dlfcn/Makefile: Remove explicit dependencies on libc.so and -@@ -6690,6 +6746,21 @@ +@@ -14814,6 +14870,21 @@ * hurd/hurd/fd.h (__file_name_lookup_at): Update comment. * sysdeps/mach/hurd/linkat.c (linkat): Pass O_NOLINK in FLAGS. @@ -163,9 +163,9 @@ diff -Nrup a/ChangeLog b/ChangeLog 2010-05-28 Luis Machado * sysdeps/powerpc/powerpc32/power7/memcpy.S: Exchange srdi for srwi. -diff -Nrup a/ChangeLog.15 b/ChangeLog.15 ---- a/ChangeLog.15 2012-01-01 05:16:32.000000000 -0700 -+++ b/ChangeLog.15 2012-04-05 15:41:04.185890417 -0600 +diff -Nrup c/ChangeLog.15 d/ChangeLog.15 +--- c/ChangeLog.15 2012-05-20 19:47:38.000000000 -0600 ++++ d/ChangeLog.15 2012-05-20 23:50:01.609051556 -0600 @@ -477,6 +477,14 @@ 2004-11-26 Jakub Jelinek @@ -181,33 +181,7 @@ diff -Nrup a/ChangeLog.15 b/ChangeLog.15 * sysdeps/generic/unsecvars.h (UNSECURE_ENVVARS): Add GETCONF_DIR. 2004-11-26 Kaz Kojima -@@ -1103,6 +1111,13 @@ - * sysdeps/generic/tempname.c (__path_search): Add missing argument - TRY_TMPDIR. - -+2004-11-02 Jakub Jelinek -+ -+ * include/features.h (__USE_FORTIFY_LEVEL): Also set for Red Hat -+ GCC 3.4.x-RH >= 3.4.2-8. -+ * debug/tst-chk1.c (do_test): Deal with GCC 3.4.x-RH not -+ being able to recognize subobjects. -+ - 2004-10-31 Mariusz Mazur - - * sysdeps/unix/sysv/linux/alpha/setregid.c: New file. -@@ -1443,6 +1458,11 @@ - * sysdeps/generic/readonly-area.c (__readonly_str): Renamed to ... - (__readonly_area): ... this. - -+2004-10-19 Jakub Jelinek -+ -+ * include/features.h (__USE_FORTIFY_LEVEL): Enable even with -+ Red Hat gcc4 4.0.0 and above. -+ - 2004-10-18 Jakub Jelinek - - * sysdeps/generic/strcpy_chk.c (__strcpy_chk): Speed up by checking -@@ -3182,6 +3202,23 @@ +@@ -3182,6 +3190,17 @@ before return type. * locale/localename.c (__current_locale_name): Likewise. @@ -221,19 +195,13 @@ diff -Nrup a/ChangeLog.15 b/ChangeLog.15 + Call add_arch_dirs. + * sysdeps/generic/dl-cache.h (arch_startup, add_arch_dirs): Define. + * sysdeps/unix/sysv/linux/i386/dl-cache.h: New file. -+ * sysdeps/unix/sysv/linux/ia64/dl-cache.h (EMUL_HACK, arch_startup, -+ add_arch_dirs): Define. -+ * sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed: Prepend -+ /emul/ia32-linux before the 32-bit ld.so pathname. -+ * sysdeps/unix/sysv/linux/ia64/dl-procinfo.c: New file. -+ * sysdeps/unix/sysv/linux/ia64/dl-procinfo.h: New file. + 2004-08-30 Roland McGrath * scripts/extract-abilist.awk: If `lastversion' variable defined, omit -diff -Nrup a/ChangeLog.16 b/ChangeLog.16 ---- a/ChangeLog.16 2012-01-01 05:16:32.000000000 -0700 -+++ b/ChangeLog.16 2012-04-05 15:41:04.195890363 -0600 +diff -Nrup c/ChangeLog.16 d/ChangeLog.16 +--- c/ChangeLog.16 2012-05-20 19:47:38.000000000 -0600 ++++ d/ChangeLog.16 2012-05-20 23:08:50.866742799 -0600 @@ -2042,6 +2042,9 @@ (__MATHDECL_2): Use __REDIRECT_NTH instead of __REDIRECT followed by __THROW. @@ -256,9 +224,9 @@ diff -Nrup a/ChangeLog.16 b/ChangeLog.16 2006-01-19 Thomas Schwinge * libio/genops.c: Include . -diff -Nrup a/ChangeLog.17 b/ChangeLog.17 ---- a/ChangeLog.17 2012-01-01 05:16:32.000000000 -0700 -+++ b/ChangeLog.17 2012-04-05 15:41:04.240890120 -0600 +diff -Nrup c/ChangeLog.17 d/ChangeLog.17 +--- c/ChangeLog.17 2012-05-20 19:47:38.000000000 -0600 ++++ d/ChangeLog.17 2012-05-20 23:47:48.209688292 -0600 @@ -256,6 +256,12 @@ * Makerules (libc-abis): Fix search for libc-abis in add-ons. @@ -284,19 +252,7 @@ diff -Nrup a/ChangeLog.17 b/ChangeLog.17 2009-07-21 Ulrich Drepper * sysdeps/x86_64/multiarch/strstr.c: Minor cleanups. Remove -@@ -3218,6 +3229,11 @@ d2009-10-30 Ulrich Drepper -+ -+ * timezone/zic.c (stringzone): Don't try to generate a POSIX TZ -+ string when the timezone ends in DST. -+ - 2009-06-26 Ulrich Drepper - - * resolv/resolv.h: Define RES_SNGLKUPREOP. -@@ -11818,6 +11834,10 @@ d2009-10-30 Ulrich Drepper [BZ #4364] -@@ -13075,6 +13095,15 @@ d2009-10-30 Ulrich Drepper [BZ #3632] -diff -Nrup a/Makeconfig b/Makeconfig ---- a/Makeconfig 2012-01-01 05:16:32.000000000 -0700 -+++ b/Makeconfig 2012-04-05 15:41:04.243890105 -0600 -@@ -803,12 +803,12 @@ endif +diff -Nrup c/Makeconfig d/Makeconfig +--- c/Makeconfig 2012-05-20 19:47:38.000000000 -0600 ++++ d/Makeconfig 2012-05-20 23:08:50.899742641 -0600 +@@ -749,12 +749,12 @@ endif # The assembler can generate debug information too. ifndef ASFLAGS ifeq ($(have-cpp-asm-debuginfo),yes) @@ -342,10 +298,10 @@ diff -Nrup a/Makeconfig b/Makeconfig ifndef BUILD_CC BUILD_CC = $(CC) -diff -Nrup a/NEWS b/NEWS ---- a/NEWS 2012-01-01 05:16:32.000000000 -0700 -+++ b/NEWS 2012-04-05 15:41:04.244890100 -0600 -@@ -84,16 +84,6 @@ Version 2.14 +diff -Nrup c/NEWS d/NEWS +--- c/NEWS 2012-05-20 19:47:38.000000000 -0600 ++++ d/NEWS 2012-05-20 23:08:50.900742636 -0600 +@@ -149,16 +149,6 @@ Version 2.14 12724, 12734, 12738, 12746, 12766, 12775, 12777, 12782, 12788, 12792, 12795, 12811, 12813, 12814, 12841 @@ -362,23 +318,10 @@ diff -Nrup a/NEWS b/NEWS * New Linux interfaces: clock_adjtime, name_to_handle_at, open_by_handle_at, syncfs, setns, sendmmsg -diff -Nrup a/csu/Makefile b/csu/Makefile ---- a/csu/Makefile 2012-01-01 05:16:32.000000000 -0700 -+++ b/csu/Makefile 2012-04-05 15:41:04.245890094 -0600 -@@ -93,7 +93,8 @@ omit-deps += $(crtstuff) - $(crtstuff:%=$(objpfx)%.o): %.o: %.S $(objpfx)defs.h - $(compile.S) -g0 $(ASFLAGS-.os) -o $@ - --CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) -+CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) \ -+ -fno-asynchronous-unwind-tables - - vpath initfini.c $(sysdirs) - -diff -Nrup a/csu/elf-init.c b/csu/elf-init.c ---- a/csu/elf-init.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/csu/elf-init.c 2012-04-05 15:41:04.246890088 -0600 -@@ -64,6 +64,23 @@ extern void (*__init_array_end []) (int, +diff -Nrup c/csu/elf-init.c d/csu/elf-init.c +--- c/csu/elf-init.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/csu/elf-init.c 2012-05-20 23:08:50.902742626 -0600 +@@ -63,6 +63,23 @@ extern void (*__init_array_end []) (int, extern void (*__fini_array_start []) (void) attribute_hidden; extern void (*__fini_array_end []) (void) attribute_hidden; @@ -402,12 +345,12 @@ diff -Nrup a/csu/elf-init.c b/csu/elf-init.c /* These function symbols are provided for the .init/.fini section entry points automagically by the linker. */ -diff -Nrup a/debug/tst-chk1.c b/debug/tst-chk1.c ---- a/debug/tst-chk1.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/debug/tst-chk1.c 2012-04-05 15:41:04.247890082 -0600 -@@ -17,6 +17,9 @@ - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ +diff -Nrup c/debug/tst-chk1.c d/debug/tst-chk1.c +--- c/debug/tst-chk1.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/debug/tst-chk1.c 2012-05-20 23:08:50.903742622 -0600 +@@ -16,6 +16,9 @@ + License along with the GNU C Library; if not, see + . */ +/* Hack: make sure GCC doesn't know __chk_fail () will not return. */ +#define __noreturn__ @@ -415,7 +358,7 @@ diff -Nrup a/debug/tst-chk1.c b/debug/tst-chk1.c #include #include #include -@@ -243,7 +246,7 @@ do_test (void) +@@ -244,7 +247,7 @@ do_test (void) if (memcmp (a.buf1, "aabcdabcjj", 10)) FAIL (); @@ -424,7 +367,7 @@ diff -Nrup a/debug/tst-chk1.c b/debug/tst-chk1.c /* 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. */ -@@ -358,7 +361,7 @@ do_test (void) +@@ -359,7 +362,7 @@ do_test (void) memset (a.buf1 + 9, 'j', l0 + 2); CHK_FAIL_END @@ -433,10 +376,10 @@ diff -Nrup a/debug/tst-chk1.c b/debug/tst-chk1.c # define O 0 # else # define O 1 -diff -Nrup a/elf/Makefile b/elf/Makefile ---- a/elf/Makefile 2012-01-01 05:16:32.000000000 -0700 -+++ b/elf/Makefile 2012-04-05 15:41:04.248890076 -0600 -@@ -135,6 +135,7 @@ include ../Makeconfig +diff -Nrup c/elf/Makefile d/elf/Makefile +--- c/elf/Makefile 2012-05-20 19:47:38.000000000 -0600 ++++ d/elf/Makefile 2012-05-20 23:08:50.904742618 -0600 +@@ -50,6 +50,7 @@ include ../Makeconfig ifeq ($(unwind-find-fde),yes) routines += unwind-dw2-fde-glibc shared-only-routines += unwind-dw2-fde-glibc @@ -444,10 +387,10 @@ diff -Nrup a/elf/Makefile b/elf/Makefile endif before-compile = $(objpfx)trusted-dirs.h -diff -Nrup a/elf/dl-init.c b/elf/dl-init.c ---- a/elf/dl-init.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/elf/dl-init.c 2012-04-05 15:41:04.249890071 -0600 -@@ -24,11 +24,9 @@ +diff -Nrup c/elf/dl-init.c d/elf/dl-init.c +--- c/elf/dl-init.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/elf/dl-init.c 2012-05-20 23:08:50.905742613 -0600 +@@ -23,11 +23,9 @@ /* Type of the initializer. */ typedef void (*init_t) (int, char **, char **); @@ -459,7 +402,7 @@ diff -Nrup a/elf/dl-init.c b/elf/dl-init.c static void -@@ -133,9 +131,7 @@ _dl_init (struct link_map *main_map, int +@@ -132,9 +130,7 @@ _dl_init (struct link_map *main_map, int while (i-- > 0) call_init (main_map->l_initfini[i], argc, argv, env); @@ -469,10 +412,10 @@ diff -Nrup a/elf/dl-init.c b/elf/dl-init.c -#endif } INTDEF (_dl_init) -diff -Nrup a/elf/dl-load.c b/elf/dl-load.c ---- a/elf/dl-load.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/elf/dl-load.c 2012-04-05 15:41:04.250890066 -0600 -@@ -250,8 +250,7 @@ is_trusted_path_normalize (const char *p +diff -Nrup c/elf/dl-load.c d/elf/dl-load.c +--- c/elf/dl-load.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/elf/dl-load.c 2012-05-20 23:08:50.906742608 -0600 +@@ -249,8 +249,7 @@ is_trusted_path_normalize (const char *p static size_t @@ -482,7 +425,7 @@ diff -Nrup a/elf/dl-load.c b/elf/dl-load.c { size_t len; bool is_curly = false; -@@ -280,12 +279,6 @@ is_dst (const char *start, const char *n +@@ -279,12 +278,6 @@ is_dst (const char *start, const char *n && (!is_path || name[len] != ':')) return 0; @@ -495,7 +438,7 @@ diff -Nrup a/elf/dl-load.c b/elf/dl-load.c return len; } -@@ -300,13 +293,10 @@ _dl_dst_count (const char *name, int is_ +@@ -299,13 +292,10 @@ _dl_dst_count (const char *name, int is_ { size_t len; @@ -512,7 +455,7 @@ diff -Nrup a/elf/dl-load.c b/elf/dl-load.c ++cnt; name = strchr (name + len, '$'); -@@ -339,9 +329,16 @@ _dl_dst_substitute (struct link_map *l, +@@ -338,9 +328,16 @@ _dl_dst_substitute (struct link_map *l, size_t len; ++name; @@ -531,7 +474,7 @@ diff -Nrup a/elf/dl-load.c b/elf/dl-load.c #ifndef SHARED if (l == NULL) repl = _dl_get_origin (); -@@ -352,9 +349,9 @@ _dl_dst_substitute (struct link_map *l, +@@ -351,9 +348,9 @@ _dl_dst_substitute (struct link_map *l, check_for_trusted = (INTUSE(__libc_enable_secure) && l->l_type == lt_executable); } @@ -543,7 +486,7 @@ diff -Nrup a/elf/dl-load.c b/elf/dl-load.c repl = DL_DST_LIB; if (repl != NULL && repl != (const char *) -1) -@@ -374,6 +371,7 @@ _dl_dst_substitute (struct link_map *l, +@@ -373,6 +370,7 @@ _dl_dst_substitute (struct link_map *l, element, but keep an empty element at the end. */ if (wp == result && is_path && *name == ':' && name[1] != '\0') ++name; @@ -551,10 +494,10 @@ diff -Nrup a/elf/dl-load.c b/elf/dl-load.c } else /* No DST we recognize. */ -diff -Nrup a/elf/dl-support.c b/elf/dl-support.c ---- a/elf/dl-support.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/elf/dl-support.c 2012-04-05 15:41:04.251890061 -0600 -@@ -82,10 +82,8 @@ unsigned long long _dl_load_adds; +diff -Nrup c/elf/dl-support.c d/elf/dl-support.c +--- c/elf/dl-support.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/elf/dl-support.c 2012-05-20 23:08:50.907742603 -0600 +@@ -81,10 +81,8 @@ unsigned long long _dl_load_adds; create a fake scope containing nothing. */ struct r_scope_elem _dl_initial_searchlist; @@ -565,10 +508,10 @@ diff -Nrup a/elf/dl-support.c b/elf/dl-support.c /* Random data provided by the kernel. */ void *_dl_random; -diff -Nrup a/elf/ldconfig.c b/elf/ldconfig.c ---- a/elf/ldconfig.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/elf/ldconfig.c 2012-04-05 15:41:04.252890056 -0600 -@@ -1034,17 +1034,19 @@ search_dirs (void) +diff -Nrup c/elf/ldconfig.c d/elf/ldconfig.c +--- c/elf/ldconfig.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/elf/ldconfig.c 2012-05-20 23:08:50.908742598 -0600 +@@ -1033,17 +1033,19 @@ search_dirs (void) static void parse_conf_include (const char *config_file, unsigned int lineno, @@ -590,7 +533,7 @@ diff -Nrup a/elf/ldconfig.c b/elf/ldconfig.c if (do_chroot && opt_chroot) { -@@ -1105,7 +1107,14 @@ parse_conf (const char *filename, bool d +@@ -1106,7 +1108,14 @@ Warning: ignoring configuration file tha cp += 8; while ((dir = strsep (&cp, " \t")) != NULL) if (dir[0] != '\0') @@ -606,7 +549,7 @@ diff -Nrup a/elf/ldconfig.c b/elf/ldconfig.c } else if (!strncasecmp (cp, "hwcap", 5) && isblank (cp[5])) { -@@ -1168,7 +1177,7 @@ parse_conf (const char *filename, bool d +@@ -1169,7 +1178,7 @@ Warning: ignoring configuration file tha config files to read. */ static void parse_conf_include (const char *config_file, unsigned int lineno, @@ -615,7 +558,7 @@ diff -Nrup a/elf/ldconfig.c b/elf/ldconfig.c { if (opt_chroot && pattern[0] != '/') error (EXIT_FAILURE, 0, -@@ -1200,7 +1209,7 @@ parse_conf_include (const char *config_f +@@ -1201,7 +1210,7 @@ parse_conf_include (const char *config_f { case 0: for (size_t i = 0; i < gl.gl_pathc; ++i) @@ -624,7 +567,7 @@ diff -Nrup a/elf/ldconfig.c b/elf/ldconfig.c globfree64 (&gl); break; -@@ -1243,6 +1252,8 @@ main (int argc, char **argv) +@@ -1244,6 +1253,8 @@ main (int argc, char **argv) /* Set the text message domain. */ textdomain (_libc_intl_domainname); @@ -633,7 +576,7 @@ diff -Nrup a/elf/ldconfig.c b/elf/ldconfig.c /* Parse and process arguments. */ int remaining; argp_parse (&argp, argc, argv, 0, &remaining, NULL); -@@ -1352,12 +1363,14 @@ main (int argc, char **argv) +@@ -1353,12 +1364,14 @@ main (int argc, char **argv) if (!opt_only_cline) { @@ -649,10 +592,10 @@ diff -Nrup a/elf/ldconfig.c b/elf/ldconfig.c } const char *aux_cache_file = _PATH_LDCONFIG_AUX_CACHE; -diff -Nrup a/elf/ldd.bash.in b/elf/ldd.bash.in ---- a/elf/ldd.bash.in 2012-01-01 05:16:32.000000000 -0700 -+++ b/elf/ldd.bash.in 2012-04-05 15:41:04.253890051 -0600 -@@ -167,18 +167,6 @@ warning: you do not have execution permi +diff -Nrup c/elf/ldd.bash.in d/elf/ldd.bash.in +--- c/elf/ldd.bash.in 2012-05-20 19:47:38.000000000 -0600 ++++ d/elf/ldd.bash.in 2012-05-20 23:08:50.909742593 -0600 +@@ -166,18 +166,6 @@ warning: you do not have execution permi fi done case $ret in @@ -671,7 +614,7 @@ diff -Nrup a/elf/ldd.bash.in b/elf/ldd.bash.in 1) # This can be a non-ELF binary or no binary at all. nonelf "$file" || { -@@ -186,7 +174,7 @@ warning: you do not have execution permi +@@ -185,7 +173,7 @@ warning: you do not have execution permi result=1 } ;; @@ -680,10 +623,10 @@ diff -Nrup a/elf/ldd.bash.in b/elf/ldd.bash.in try_trace "$RTLD" "$file" || result=1 ;; *) -diff -Nrup a/elf/rtld.c b/elf/rtld.c ---- a/elf/rtld.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/elf/rtld.c 2012-04-05 15:41:04.255890040 -0600 -@@ -107,7 +107,6 @@ static struct audit_list +diff -Nrup c/elf/rtld.c d/elf/rtld.c +--- c/elf/rtld.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/elf/rtld.c 2012-05-20 23:08:50.910742588 -0600 +@@ -106,7 +106,6 @@ static struct audit_list struct audit_list *next; } *audit_list; @@ -691,7 +634,7 @@ diff -Nrup a/elf/rtld.c b/elf/rtld.c /* 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 +@@ -116,7 +115,6 @@ static struct audit_list never be called. */ int _dl_starting_up = 0; INTVARDEF(_dl_starting_up) @@ -710,7 +653,7 @@ diff -Nrup a/elf/rtld.c b/elf/rtld.c if (*user_entry == (ElfW(Addr)) ENTRY_POINT) { -@@ -1397,7 +1393,9 @@ of this helper program; chances are you +@@ -1408,7 +1404,9 @@ of this helper program; chances are you char *copy = malloc (len); if (copy == NULL) _dl_fatal_printf ("out of memory\n"); @@ -721,7 +664,7 @@ diff -Nrup a/elf/rtld.c b/elf/rtld.c } /* Add the vDSO to the object list. */ -@@ -2327,7 +2325,6 @@ ERROR: ld.so: object '%s' cannot be load +@@ -2343,7 +2341,6 @@ ERROR: ld.so: object '%s' cannot be load /* Make sure no new search directories have been added. */ assert (GLRO(dl_init_all_dirs) == GL(dl_all_dirs)); @@ -729,50 +672,19 @@ diff -Nrup a/elf/rtld.c b/elf/rtld.c if (! prelinked && rtld_multiple_ref) { /* There was an explicit ref to the dynamic linker as a shared lib. -diff -Nrup a/include/bits/stdlib-ldbl.h b/include/bits/stdlib-ldbl.h ---- a/include/bits/stdlib-ldbl.h 1969-12-31 17:00:00.000000000 -0700 -+++ b/include/bits/stdlib-ldbl.h 2012-04-05 15:41:04.256890034 -0600 +diff -Nrup c/include/bits/stdlib-ldbl.h d/include/bits/stdlib-ldbl.h +--- c/include/bits/stdlib-ldbl.h 1969-12-31 17:00:00.000000000 -0700 ++++ d/include/bits/stdlib-ldbl.h 2012-05-20 23:08:50.911742583 -0600 @@ -0,0 +1 @@ +#include -diff -Nrup a/include/bits/wchar-ldbl.h b/include/bits/wchar-ldbl.h ---- a/include/bits/wchar-ldbl.h 1969-12-31 17:00:00.000000000 -0700 -+++ b/include/bits/wchar-ldbl.h 2012-04-05 15:41:04.256890034 -0600 +diff -Nrup c/include/bits/wchar-ldbl.h d/include/bits/wchar-ldbl.h +--- c/include/bits/wchar-ldbl.h 1969-12-31 17:00:00.000000000 -0700 ++++ d/include/bits/wchar-ldbl.h 2012-05-20 23:08:50.912742578 -0600 @@ -0,0 +1 @@ +#include -diff -Nrup a/include/features.h b/include/features.h ---- a/include/features.h 2012-01-01 05:16:32.000000000 -0700 -+++ b/include/features.h 2012-04-05 15:41:04.257890028 -0600 -@@ -310,8 +310,13 @@ - #endif - - #if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 \ -- && __GNUC_PREREQ (4, 1) && defined __OPTIMIZE__ && __OPTIMIZE__ > 0 --# if _FORTIFY_SOURCE > 1 -+ && defined __OPTIMIZE__ && __OPTIMIZE__ > 0 -+# if !__GNUC_PREREQ (4, 1) -+# ifdef __GNUC_RH_RELEASE__ -+# warning _FORTIFY_SOURCE supported only with GCC 4.1 and later -+# endif -+# define __USE_FORTIFY_LEVEL 0 -+# elif _FORTIFY_SOURCE > 1 - # define __USE_FORTIFY_LEVEL 2 - # else - # define __USE_FORTIFY_LEVEL 1 -diff -Nrup a/include/libc-symbols.h b/include/libc-symbols.h ---- a/include/libc-symbols.h 2012-01-01 05:16:32.000000000 -0700 -+++ b/include/libc-symbols.h 2012-04-05 15:41:04.258890022 -0600 -@@ -626,7 +626,7 @@ for linking") - # define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs) - # define libc_hidden_def(name) hidden_def (name) - # define libc_hidden_weak(name) hidden_weak (name) --# define libc_hidden_nolink(name, version) hidden_nolink (name, libc, version) -+# define libc_hidden_nolink(name, version) hidden_def (name) - # define libc_hidden_ver(local, name) hidden_ver (local, name) - # define libc_hidden_data_def(name) hidden_data_def (name) - # define libc_hidden_data_weak(name) hidden_data_weak (name) -diff -Nrup a/include/link.h b/include/link.h ---- a/include/link.h 2012-01-01 05:16:32.000000000 -0700 -+++ b/include/link.h 2012-04-05 15:41:04.259890017 -0600 +diff -Nrup c/include/link.h d/include/link.h +--- c/include/link.h 2012-05-20 19:47:38.000000000 -0600 ++++ d/include/link.h 2012-05-20 23:08:50.914742568 -0600 @@ -1,6 +1,6 @@ /* Data structure for communication from the run-time dynamic linker for loaded ELF shared objects. @@ -781,7 +693,7 @@ diff -Nrup a/include/link.h b/include/link.h This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or -@@ -290,7 +290,7 @@ struct link_map +@@ -289,7 +289,7 @@ struct link_map #endif #ifndef FORCED_DYNAMIC_TLS_OFFSET # if NO_TLS_OFFSET == 0 @@ -790,19 +702,20 @@ diff -Nrup a/include/link.h b/include/link.h # elif NO_TLS_OFFSET == -1 # define FORCED_DYNAMIC_TLS_OFFSET -2 # else -diff -Nrup a/include/sys/resource.h b/include/sys/resource.h ---- a/include/sys/resource.h 2012-01-01 05:16:32.000000000 -0700 -+++ b/include/sys/resource.h 2012-04-05 15:41:04.259890017 -0600 -@@ -13,4 +13,5 @@ extern int __getrusage (enum __rusage_wh +diff -Nrup c/include/sys/resource.h d/include/sys/resource.h +--- c/include/sys/resource.h 2012-05-20 19:47:38.000000000 -0600 ++++ d/include/sys/resource.h 2012-05-20 23:08:50.915742564 -0600 +@@ -14,5 +14,6 @@ extern int __getrusage (enum __rusage_wh extern int __setrlimit (enum __rlimit_resource __resource, const struct rlimit *__rlimits); +libc_hidden_proto (__getrlimit) #endif -diff -Nrup a/inet/Makefile b/inet/Makefile ---- a/inet/Makefile 2012-01-01 05:16:32.000000000 -0700 -+++ b/inet/Makefile 2012-04-05 15:41:04.260890012 -0600 -@@ -57,6 +57,8 @@ tests := htontest test_ifindex tst-ntoa + #endif +diff -Nrup c/inet/Makefile d/inet/Makefile +--- c/inet/Makefile 2012-05-20 19:47:38.000000000 -0600 ++++ d/inet/Makefile 2012-05-20 23:08:50.916742560 -0600 +@@ -54,6 +54,8 @@ tests := htontest test_ifindex tst-ntoa include ../Rules @@ -811,10 +724,10 @@ diff -Nrup a/inet/Makefile b/inet/Makefile ifeq ($(have-thread-library),yes) CFLAGS-gethstbyad_r.c = -DUSE_NSCD=1 -fexceptions -diff -Nrup a/intl/locale.alias b/intl/locale.alias ---- a/intl/locale.alias 2012-01-01 05:16:32.000000000 -0700 -+++ b/intl/locale.alias 2012-04-05 15:41:04.261890007 -0600 -@@ -57,8 +57,6 @@ korean ko_KR.eucKR +diff -Nrup c/intl/locale.alias d/intl/locale.alias +--- c/intl/locale.alias 2012-05-20 19:47:38.000000000 -0600 ++++ d/intl/locale.alias 2012-05-20 23:08:50.916742560 -0600 +@@ -56,8 +56,6 @@ korean ko_KR.eucKR korean.euc ko_KR.eucKR ko_KR ko_KR.eucKR lithuanian lt_LT.ISO-8859-13 @@ -823,10 +736,10 @@ diff -Nrup a/intl/locale.alias b/intl/locale.alias norwegian nb_NO.ISO-8859-1 nynorsk nn_NO.ISO-8859-1 polish pl_PL.ISO-8859-2 -diff -Nrup a/libio/stdio.h b/libio/stdio.h ---- a/libio/stdio.h 2012-01-01 05:16:32.000000000 -0700 -+++ b/libio/stdio.h 2012-04-05 15:41:04.261890007 -0600 -@@ -169,10 +169,12 @@ typedef _G_fpos64_t fpos64_t; +diff -Nrup c/libio/stdio.h d/libio/stdio.h +--- c/libio/stdio.h 2012-05-20 19:47:38.000000000 -0600 ++++ d/libio/stdio.h 2012-05-20 23:08:50.979742258 -0600 +@@ -168,10 +168,12 @@ typedef _G_fpos64_t fpos64_t; 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. */ @@ -839,9 +752,9 @@ diff -Nrup a/libio/stdio.h b/libio/stdio.h __BEGIN_NAMESPACE_STD /* Remove file FILENAME. */ -diff -Nrup a/locale/iso-4217.def b/locale/iso-4217.def ---- a/locale/iso-4217.def 2012-01-01 05:16:32.000000000 -0700 -+++ b/locale/iso-4217.def 2012-04-05 15:41:04.331889626 -0600 +diff -Nrup c/locale/iso-4217.def d/locale/iso-4217.def +--- c/locale/iso-4217.def 2012-05-20 19:47:38.000000000 -0600 ++++ d/locale/iso-4217.def 2012-05-20 23:08:50.980742253 -0600 @@ -8,6 +8,7 @@ * * !!! The list has to be sorted !!! @@ -933,10 +846,10 @@ diff -Nrup a/locale/iso-4217.def b/locale/iso-4217.def DEFINE_INT_CURR("PYG") /* Paraguay Guarani */ DEFINE_INT_CURR("QAR") /* Qatar Rial */ DEFINE_INT_CURR("ROL") /* Romanian Leu */ -diff -Nrup a/locale/programs/locarchive.c b/locale/programs/locarchive.c ---- a/locale/programs/locarchive.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/locale/programs/locarchive.c 2012-04-05 15:41:04.332889619 -0600 -@@ -253,9 +253,9 @@ oldlocrecentcmp (const void *a, const vo +diff -Nrup c/locale/programs/locarchive.c d/locale/programs/locarchive.c +--- c/locale/programs/locarchive.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/locale/programs/locarchive.c 2012-05-20 23:08:50.981742248 -0600 +@@ -252,9 +252,9 @@ oldlocrecentcmp (const void *a, const vo /* forward decls for below */ static uint32_t add_locale (struct locarhandle *ah, const char *name, locale_data_t data, bool replace); @@ -949,7 +862,7 @@ diff -Nrup a/locale/programs/locarchive.c b/locale/programs/locarchive.c static bool -@@ -636,7 +636,7 @@ close_archive (struct locarhandle *ah) +@@ -635,7 +635,7 @@ close_archive (struct locarhandle *ah) #include "../../intl/explodename.c" #include "../../intl/l10nflist.c" @@ -958,7 +871,7 @@ diff -Nrup a/locale/programs/locarchive.c b/locale/programs/locarchive.c insert_name (struct locarhandle *ah, const char *name, size_t name_len, bool replace) { -@@ -694,7 +694,7 @@ insert_name (struct locarhandle *ah, +@@ -693,7 +693,7 @@ insert_name (struct locarhandle *ah, return &namehashtab[idx]; } @@ -967,10 +880,10 @@ diff -Nrup a/locale/programs/locarchive.c b/locale/programs/locarchive.c add_alias (struct locarhandle *ah, const char *alias, bool replace, const char *oldname, uint32_t *locrec_offset_p) { -diff -Nrup a/localedata/ChangeLog b/localedata/ChangeLog ---- a/localedata/ChangeLog 2012-01-01 05:16:32.000000000 -0700 -+++ b/localedata/ChangeLog 2012-04-05 15:41:04.334889614 -0600 -@@ -90,6 +90,14 @@ +diff -Nrup c/localedata/ChangeLog d/localedata/ChangeLog +--- c/localedata/ChangeLog 2012-05-20 19:47:38.000000000 -0600 ++++ d/localedata/ChangeLog 2012-05-20 23:08:50.982742243 -0600 +@@ -145,6 +145,14 @@ * tests-mbwc/tst_funcs.h (TST_DECL_VARS, TST_HEAD_LOCALE): Remove unused variable. @@ -985,10 +898,10 @@ diff -Nrup a/localedata/ChangeLog b/localedata/ChangeLog 2011-05-21 Ulrich Drepper [BZ #12788] -diff -Nrup a/localedata/Makefile b/localedata/Makefile ---- a/localedata/Makefile 2012-01-01 05:16:32.000000000 -0700 -+++ b/localedata/Makefile 2012-04-05 15:41:04.336889605 -0600 -@@ -224,6 +224,7 @@ $(INSTALL-SUPPORTED-LOCALES): install-lo +diff -Nrup c/localedata/Makefile d/localedata/Makefile +--- c/localedata/Makefile 2012-05-20 19:47:38.000000000 -0600 ++++ d/localedata/Makefile 2012-05-20 23:08:50.984742233 -0600 +@@ -211,6 +211,7 @@ $(INSTALL-SUPPORTED-LOCALES): install-lo echo -n '...'; \ input=`echo $$locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; \ $(LOCALEDEF) --alias-file=../intl/locale.alias \ @@ -996,9 +909,9 @@ diff -Nrup a/localedata/Makefile b/localedata/Makefile -i locales/$$input -c -f charmaps/$$charset \ $(addprefix --prefix=,$(install_root)) $$locale; \ echo ' done'; \ -diff -Nrup a/localedata/SUPPORTED b/localedata/SUPPORTED ---- a/localedata/SUPPORTED 2012-01-01 05:16:32.000000000 -0700 -+++ b/localedata/SUPPORTED 2012-04-05 15:41:04.337889599 -0600 +diff -Nrup c/localedata/SUPPORTED d/localedata/SUPPORTED +--- c/localedata/SUPPORTED 2012-05-20 19:47:38.000000000 -0600 ++++ d/localedata/SUPPORTED 2012-05-20 23:08:50.984742233 -0600 @@ -88,6 +88,7 @@ cy_GB.UTF-8/UTF-8 \ cy_GB/ISO-8859-14 \ da_DK.UTF-8/UTF-8 \ @@ -1040,40 +953,36 @@ diff -Nrup a/localedata/SUPPORTED b/localedata/SUPPORTED sw_KE/UTF-8 \ sw_TZ/UTF-8 \ ta_IN/UTF-8 \ -diff -Nrup a/localedata/locales/cy_GB b/localedata/locales/cy_GB ---- a/localedata/locales/cy_GB 2012-01-01 05:16:32.000000000 -0700 -+++ b/localedata/locales/cy_GB 2012-04-05 15:41:04.337889599 -0600 -@@ -248,8 +248,11 @@ mon "" d_fmt "" t_fmt "" --am_pm "";"" --t_fmt_ampm "" +-am_pm "";"" +am_pm "";"" -+t_fmt_ampm "" + t_fmt_ampm "" +-date_fmt "/ +date_fmt "/ -+/ -+" + / + " END LC_TIME - - LC_MESSAGES -diff -Nrup a/localedata/locales/en_GB b/localedata/locales/en_GB ---- a/localedata/locales/en_GB 2012-01-01 05:16:32.000000000 -0700 -+++ b/localedata/locales/en_GB 2012-04-05 15:41:04.337889599 -0600 -@@ -116,8 +116,8 @@ mon "" d_fmt "" t_fmt "" --am_pm "";"" --t_fmt_ampm "" +-am_pm "";"" +am_pm "";"" -+t_fmt_ampm "" - date_fmt "/ + t_fmt_ampm "" + date_fmt "/ / - " -diff -Nrup a/localedata/locales/no_NO b/localedata/locales/no_NO ---- a/localedata/locales/no_NO 1969-12-31 17:00:00.000000000 -0700 -+++ b/localedata/locales/no_NO 2012-04-05 15:41:04.337889599 -0600 +diff -Nrup c/localedata/locales/no_NO d/localedata/locales/no_NO +--- c/localedata/locales/no_NO 1969-12-31 17:00:00.000000000 -0700 ++++ d/localedata/locales/no_NO 2012-05-20 23:08:50.986742223 -0600 @@ -0,0 +1,69 @@ +escape_char / +comment_char % @@ -1144,9 +1053,9 @@ diff -Nrup a/localedata/locales/no_NO b/localedata/locales/no_NO +LC_ADDRESS +copy "nb_NO" +END LC_ADDRESS -diff -Nrup a/localedata/locales/zh_TW b/localedata/locales/zh_TW ---- a/localedata/locales/zh_TW 2012-01-01 05:16:32.000000000 -0700 -+++ b/localedata/locales/zh_TW 2012-04-05 15:41:04.338889593 -0600 +diff -Nrup c/localedata/locales/zh_TW d/localedata/locales/zh_TW +--- c/localedata/locales/zh_TW 2012-05-20 19:47:38.000000000 -0600 ++++ d/localedata/locales/zh_TW 2012-05-20 23:08:50.986742223 -0600 @@ -1,7 +1,7 @@ comment_char % escape_char / @@ -1174,10 +1083,10 @@ diff -Nrup a/localedata/locales/zh_TW b/localedata/locales/zh_TW revision "0.2" date "2000-08-02" % -diff -Nrup a/login/programs/pt_chown.c b/login/programs/pt_chown.c ---- a/login/programs/pt_chown.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/login/programs/pt_chown.c 2012-04-05 15:41:04.338889593 -0600 -@@ -29,6 +29,7 @@ +diff -Nrup c/login/programs/pt_chown.c d/login/programs/pt_chown.c +--- c/login/programs/pt_chown.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/login/programs/pt_chown.c 2012-05-20 23:08:50.987742218 -0600 +@@ -28,6 +28,7 @@ #include #include #include @@ -1185,7 +1094,7 @@ diff -Nrup a/login/programs/pt_chown.c b/login/programs/pt_chown.c #ifdef HAVE_LIBCAP # include # include -@@ -143,7 +144,7 @@ main (int argc, char *argv[]) +@@ -142,7 +143,7 @@ main (int argc, char *argv[]) uid_t uid = getuid (); int remaining; @@ -1194,7 +1103,7 @@ diff -Nrup a/login/programs/pt_chown.c b/login/programs/pt_chown.c { #ifdef HAVE_LIBCAP /* Drop privileges. */ -@@ -176,6 +177,13 @@ main (int argc, char *argv[]) +@@ -175,6 +176,13 @@ main (int argc, char *argv[]) /* We aren't going to be using privileges, so drop them right now. */ setuid (uid); @@ -1208,7 +1117,7 @@ diff -Nrup a/login/programs/pt_chown.c b/login/programs/pt_chown.c /* Set locale via LC_ALL. */ setlocale (LC_ALL, ""); -@@ -195,9 +203,5 @@ main (int argc, char *argv[]) +@@ -194,9 +202,5 @@ main (int argc, char *argv[]) return EXIT_FAILURE; } @@ -1218,90 +1127,11 @@ diff -Nrup a/login/programs/pt_chown.c b/login/programs/pt_chown.c - return EXIT_SUCCESS; } -diff -Nrup a/malloc/mcheck.c b/malloc/mcheck.c ---- a/malloc/mcheck.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/malloc/mcheck.c 2012-04-05 15:41:04.338889593 -0600 -@@ -25,10 +25,26 @@ - # include - # include - # include -+# include - # include - # include - #endif - -+#ifdef _LIBC -+extern __typeof (malloc) __libc_malloc; -+extern __typeof (free) __libc_free; -+extern __typeof (realloc) __libc_realloc; -+libc_hidden_proto (__libc_malloc) -+libc_hidden_proto (__libc_realloc) -+libc_hidden_proto (__libc_free) -+libc_hidden_proto (__libc_memalign) -+#else -+# define __libc_malloc(sz) malloc (sz) -+# define __libc_free(ptr) free (ptr) -+# define __libc_realloc(ptr, sz) realloc (ptr, sz) -+# define __libc_memalign(al, sz) memalign (al, sz) -+#endif -+ - /* 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 cal - if (old_free_hook != NULL) - (*old_free_hook) (ptr, caller); - else -- free (ptr); -+ __libc_free (ptr); - __free_hook = freehook; - } - -@@ -222,7 +238,7 @@ mallochook (__malloc_size_t size, const - hdr = (struct hdr *) (*old_malloc_hook) (sizeof (struct hdr) + size + 1, - caller); - else -- hdr = (struct hdr *) malloc (sizeof (struct hdr) + size + 1); -+ hdr = (struct hdr *) __libc_malloc (sizeof (struct hdr) + size + 1); - __malloc_hook = mallochook; - if (hdr == NULL) - return NULL; -@@ -259,7 +275,7 @@ memalignhook (__malloc_size_t alignment, - if (old_memalign_hook != NULL) - block = (*old_memalign_hook) (alignment, slop + size + 1, caller); - else -- block = memalign (alignment, slop + size + 1); -+ block = __libc_memalign (alignment, slop + size + 1); - __memalign_hook = memalignhook; - if (block == NULL) - return NULL; -@@ -320,8 +336,8 @@ reallochook (__ptr_t ptr, __malloc_size_ - sizeof (struct hdr) + size + 1, - caller); - else -- hdr = (struct hdr *) realloc ((__ptr_t) hdr, -- sizeof (struct hdr) + size + 1); -+ hdr = (struct hdr *) __libc_realloc ((__ptr_t) hdr, -+ sizeof (struct hdr) + size + 1); - __free_hook = freehook; - __malloc_hook = mallochook; - __memalign_hook = memalignhook; -@@ -381,8 +397,8 @@ mcheck (func) - if (__malloc_initialized <= 0 && !mcheck_used) - { - /* We call malloc() once here to ensure it is initialized. */ -- void *p = malloc (0); -- free (p); -+ void *p = __libc_malloc (0); -+ __libc_free (p); - - old_free_hook = __free_hook; - __free_hook = freehook; -diff -Nrup a/manual/libc.texinfo b/manual/libc.texinfo ---- a/manual/libc.texinfo 2012-01-01 05:16:32.000000000 -0700 -+++ b/manual/libc.texinfo 2012-04-05 15:41:04.338889593 -0600 -@@ -5,7 +5,7 @@ - @c setchapternewpage odd +diff -Nrup c/manual/libc.texinfo d/manual/libc.texinfo +--- c/manual/libc.texinfo 2012-05-20 19:47:38.000000000 -0600 ++++ d/manual/libc.texinfo 2012-05-20 23:08:50.988742213 -0600 +@@ -7,7 +7,7 @@ + @include macros.texi @comment Tell install-info what to do. -@dircategory Software libraries @@ -1309,12 +1139,12 @@ diff -Nrup a/manual/libc.texinfo b/manual/libc.texinfo @direntry * Libc: (libc). C library. @end direntry -diff -Nrup a/misc/sys/cdefs.h b/misc/sys/cdefs.h ---- a/misc/sys/cdefs.h 2012-01-01 05:16:32.000000000 -0700 -+++ b/misc/sys/cdefs.h 2012-04-05 15:41:04.339889587 -0600 -@@ -146,7 +146,10 @@ - #define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) +diff -Nrup c/misc/sys/cdefs.h d/misc/sys/cdefs.h +--- c/misc/sys/cdefs.h 2012-05-20 19:47:38.000000000 -0600 ++++ d/misc/sys/cdefs.h 2012-05-20 23:17:48.280185158 -0600 +@@ -142,7 +142,10 @@ #define __bos0(ptr) __builtin_object_size (ptr, 0) + #define __fortify_function __extern_always_inline __attribute_artificial__ -#if __GNUC_PREREQ (4,3) +#if __GNUC_PREREQ (4,3) \ @@ -1324,26 +1154,19 @@ diff -Nrup a/misc/sys/cdefs.h b/misc/sys/cdefs.h # define __warndecl(name, msg) \ extern void name (void) __attribute__((__warning__ (msg))) # define __warnattr(msg) __attribute__((__warning__ (msg))) -@@ -316,10 +319,16 @@ +@@ -320,7 +323,10 @@ /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 inline semantics, unless -fgnu89-inline is used. */ -#if !defined __cplusplus || __GNUC_PREREQ (4,3) +#if !defined __cplusplus || __GNUC_PREREQ (4,3) \ + || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \ -+ && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \ -+ && __GNUC_RH_RELEASE__ >= 31) ++ && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \ ++ && __GNUC_RH_RELEASE__ >= 31) # if defined __GNUC_STDC_INLINE__ || defined __cplusplus # define __extern_inline extern __inline __attribute__ ((__gnu_inline__)) --# if __GNUC_PREREQ (4,3) -+# if __GNUC_PREREQ (4,3) \ -+ || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \ -+ && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \ -+ && __GNUC_RH_RELEASE__ >= 31) - # define __extern_always_inline \ - extern __always_inline __attribute__ ((__gnu_inline__, __artificial__)) - # else -@@ -339,7 +348,10 @@ + # define __extern_always_inline \ +@@ -333,7 +339,10 @@ /* GCC 4.3 and above allow passing all anonymous arguments of an __extern_always_inline function to some other vararg function. */ @@ -1355,22 +1178,10 @@ diff -Nrup a/misc/sys/cdefs.h b/misc/sys/cdefs.h # define __va_arg_pack() __builtin_va_arg_pack () # define __va_arg_pack_len() __builtin_va_arg_pack_len () #endif -diff -Nrup a/nis/Makefile b/nis/Makefile ---- a/nis/Makefile 2012-01-01 05:16:32.000000000 -0700 -+++ b/nis/Makefile 2012-04-05 15:41:04.339889587 -0600 -@@ -23,9 +23,9 @@ subdir := nis - - aux := nis_hash - -+headers := $(wildcard rpcsvc/*.[hx]) - distribute := nss-nis.h nss-nisplus.h nis_intern.h Banner \ -- nisplus-parser.h nis_xdr.h nss \ -- $(wildcard rpcsvc/*.[hx]) -+ nisplus-parser.h nis_xdr.h nss - - # 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 +diff -Nrup c/nis/Makefile d/nis/Makefile +--- c/nis/Makefile 2012-05-20 19:47:38.000000000 -0600 ++++ d/nis/Makefile 2012-05-20 23:08:50.988742213 -0600 +@@ -71,6 +71,8 @@ libnss_nisplus-inhibit-o = $(filter-out include ../Rules @@ -1379,9 +1190,9 @@ diff -Nrup a/nis/Makefile b/nis/Makefile $(objpfx)libnss_compat.so: $(objpfx)libnsl.so$(libnsl.so-version) $(objpfx)libnss_nis.so: $(objpfx)libnsl.so$(libnsl.so-version) \ -diff -Nrup a/nis/nss b/nis/nss ---- a/nis/nss 2012-01-01 05:16:32.000000000 -0700 -+++ b/nis/nss 2012-04-05 15:41:04.339889587 -0600 +diff -Nrup c/nis/nss d/nis/nss +--- c/nis/nss 2012-05-20 19:47:38.000000000 -0600 ++++ d/nis/nss 2012-05-20 23:08:50.989742208 -0600 @@ -25,7 +25,7 @@ # memory with every getXXent() call. Otherwise each getXXent() call # might result into a network communication with the server to get @@ -1391,10 +1202,10 @@ diff -Nrup a/nis/nss b/nis/nss # # ADJUNCT_AS_SHADOW # If set to TRUE, the passwd routines in the NIS NSS module will not -diff -Nrup a/nptl/ChangeLog b/nptl/ChangeLog ---- a/nptl/ChangeLog 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/ChangeLog 2012-04-05 15:41:04.341889575 -0600 -@@ -210,6 +210,51 @@ +diff -Nrup c/nptl/ChangeLog d/nptl/ChangeLog +--- c/nptl/ChangeLog 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/ChangeLog 2012-05-20 23:08:50.992742195 -0600 +@@ -678,6 +678,51 @@ clearing memory. Patch partly by Robert Rex . @@ -1446,7 +1257,7 @@ diff -Nrup a/nptl/ChangeLog b/nptl/ChangeLog 2011-01-19 Roland McGrath * pthread_cond_wait.c (__pthread_cond_wait): Fix comment typo. -@@ -4939,6 +4984,11 @@ +@@ -5407,6 +5452,11 @@ Move definition inside libpthread, libc, librt check. Provide definition for rtld. @@ -1458,7 +1269,7 @@ diff -Nrup a/nptl/ChangeLog b/nptl/ChangeLog 2004-09-02 Ulrich Drepper * sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp. -@@ -7013,6 +7063,11 @@ +@@ -7481,6 +7531,11 @@ * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules). @@ -1470,9 +1281,9 @@ diff -Nrup a/nptl/ChangeLog b/nptl/ChangeLog 2003-07-25 Jakub Jelinek * tst-cancel17.c (do_test): Check if aio_cancel failed. -diff -Nrup a/nptl/DESIGN-systemtap-probes.txt b/nptl/DESIGN-systemtap-probes.txt ---- a/nptl/DESIGN-systemtap-probes.txt 1969-12-31 17:00:00.000000000 -0700 -+++ b/nptl/DESIGN-systemtap-probes.txt 2012-04-05 15:41:04.344889556 -0600 +diff -Nrup c/nptl/DESIGN-systemtap-probes.txt d/nptl/DESIGN-systemtap-probes.txt +--- c/nptl/DESIGN-systemtap-probes.txt 1969-12-31 17:00:00.000000000 -0700 ++++ d/nptl/DESIGN-systemtap-probes.txt 2012-05-20 23:08:50.994742186 -0600 @@ -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. @@ -1563,20 +1374,10 @@ diff -Nrup a/nptl/DESIGN-systemtap-probes.txt b/nptl/DESIGN-systemtap-probes.txt + arg1 = condition +cond_broadcast - probe for pthread_cond_broadcast + arg1 = condition -diff -Nrup a/nptl/Makefile b/nptl/Makefile ---- a/nptl/Makefile 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/Makefile 2012-04-05 15:41:04.345889554 -0600 -@@ -342,7 +342,8 @@ endif - extra-objs += $(crti-objs) $(crtn-objs) - omit-deps += crti crtn - --CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) -+CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) \ -+ -fno-asynchronous-unwind-tables - endif - - CFLAGS-flockfile.c = -D_IO_MTSAFE_IO -@@ -529,15 +530,19 @@ $(addprefix $(objpfx), \ +diff -Nrup c/nptl/Makefile d/nptl/Makefile +--- c/nptl/Makefile 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/Makefile 2012-05-20 23:08:50.995742181 -0600 +@@ -529,15 +529,19 @@ $(addprefix $(objpfx), \ $(tests) $(xtests) $(test-srcs))): $(objpfx)libpthread.so \ $(objpfx)libpthread_nonshared.a $(objpfx)tst-unload: $(common-objpfx)dlfcn/libdl.so @@ -1598,9 +1399,9 @@ diff -Nrup a/nptl/Makefile b/nptl/Makefile else $(addprefix $(objpfx),$(tests) $(test-srcs)): $(objpfx)libpthread.a endif -diff -Nrup a/nptl/Versions b/nptl/Versions ---- a/nptl/Versions 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/Versions 2012-04-05 15:41:04.345889554 -0600 +diff -Nrup c/nptl/Versions d/nptl/Versions +--- c/nptl/Versions 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/Versions 2012-05-20 23:08:50.996742176 -0600 @@ -30,6 +30,7 @@ libc { __libc_alloca_cutoff; # Internal libc interface to libpthread @@ -1609,10 +1410,10 @@ diff -Nrup a/nptl/Versions b/nptl/Versions } } -diff -Nrup a/nptl/nptl-init.c b/nptl/nptl-init.c ---- a/nptl/nptl-init.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/nptl-init.c 2012-04-05 15:41:04.345889554 -0600 -@@ -415,7 +415,7 @@ __pthread_initialize_minimal_internal (v +diff -Nrup c/nptl/nptl-init.c d/nptl/nptl-init.c +--- c/nptl/nptl-init.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/nptl-init.c 2012-05-20 23:08:50.996742176 -0600 +@@ -414,7 +414,7 @@ __pthread_initialize_minimal_internal (v /* Determine the default allowed stack size. This is the size used in case the user does not specify one. */ struct rlimit limit; @@ -1621,10 +1422,10 @@ diff -Nrup a/nptl/nptl-init.c b/nptl/nptl-init.c || limit.rlim_cur == RLIM_INFINITY) /* The system limit is not usable. Use an architecture-specific default. */ -diff -Nrup a/nptl/pthread_cond_broadcast.c b/nptl/pthread_cond_broadcast.c ---- a/nptl/pthread_cond_broadcast.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/pthread_cond_broadcast.c 2012-04-05 15:41:04.346889550 -0600 -@@ -23,6 +23,7 @@ +diff -Nrup c/nptl/pthread_cond_broadcast.c d/nptl/pthread_cond_broadcast.c +--- c/nptl/pthread_cond_broadcast.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/pthread_cond_broadcast.c 2012-05-20 23:08:50.997742171 -0600 +@@ -22,6 +22,7 @@ #include #include #include @@ -1632,7 +1433,7 @@ diff -Nrup a/nptl/pthread_cond_broadcast.c b/nptl/pthread_cond_broadcast.c #include #include -@@ -32,6 +33,8 @@ int +@@ -31,6 +32,8 @@ int __pthread_cond_broadcast (cond) pthread_cond_t *cond; { @@ -1641,10 +1442,10 @@ diff -Nrup a/nptl/pthread_cond_broadcast.c b/nptl/pthread_cond_broadcast.c int pshared = (cond->__data.__mutex == (void *) ~0l) ? LLL_SHARED : LLL_PRIVATE; /* Make sure we are alone. */ -diff -Nrup a/nptl/pthread_cond_destroy.c b/nptl/pthread_cond_destroy.c ---- a/nptl/pthread_cond_destroy.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/pthread_cond_destroy.c 2012-04-05 15:41:04.346889550 -0600 -@@ -20,6 +20,7 @@ +diff -Nrup c/nptl/pthread_cond_destroy.c d/nptl/pthread_cond_destroy.c +--- c/nptl/pthread_cond_destroy.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/pthread_cond_destroy.c 2012-05-20 23:08:50.997742171 -0600 +@@ -19,6 +19,7 @@ #include #include #include "pthreadP.h" @@ -1652,7 +1453,7 @@ diff -Nrup a/nptl/pthread_cond_destroy.c b/nptl/pthread_cond_destroy.c int -@@ -29,6 +30,8 @@ __pthread_cond_destroy (cond) +@@ -28,6 +29,8 @@ __pthread_cond_destroy (cond) int pshared = (cond->__data.__mutex == (void *) ~0l) ? LLL_SHARED : LLL_PRIVATE; @@ -1661,10 +1462,10 @@ diff -Nrup a/nptl/pthread_cond_destroy.c b/nptl/pthread_cond_destroy.c /* Make sure we are alone. */ lll_lock (cond->__data.__lock, pshared); -diff -Nrup a/nptl/pthread_cond_init.c b/nptl/pthread_cond_init.c ---- a/nptl/pthread_cond_init.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/pthread_cond_init.c 2012-04-05 15:41:04.346889550 -0600 -@@ -20,6 +20,7 @@ +diff -Nrup c/nptl/pthread_cond_init.c d/nptl/pthread_cond_init.c +--- c/nptl/pthread_cond_init.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/pthread_cond_init.c 2012-05-20 23:08:50.998742166 -0600 +@@ -19,6 +19,7 @@ #include #include "pthreadP.h" @@ -1672,7 +1473,7 @@ diff -Nrup a/nptl/pthread_cond_init.c b/nptl/pthread_cond_init.c int -@@ -42,6 +43,8 @@ __pthread_cond_init (cond, cond_attr) +@@ -41,6 +42,8 @@ __pthread_cond_init (cond, cond_attr) ? NULL : (void *) ~0l); cond->__data.__broadcast_seq = 0; @@ -1681,10 +1482,10 @@ diff -Nrup a/nptl/pthread_cond_init.c b/nptl/pthread_cond_init.c return 0; } versioned_symbol (libpthread, __pthread_cond_init, -diff -Nrup a/nptl/pthread_cond_signal.c b/nptl/pthread_cond_signal.c ---- a/nptl/pthread_cond_signal.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/pthread_cond_signal.c 2012-04-05 15:41:04.346889550 -0600 -@@ -26,6 +26,7 @@ +diff -Nrup c/nptl/pthread_cond_signal.c d/nptl/pthread_cond_signal.c +--- c/nptl/pthread_cond_signal.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/pthread_cond_signal.c 2012-05-20 23:08:50.998742166 -0600 +@@ -25,6 +25,7 @@ #include #include @@ -1692,7 +1493,7 @@ diff -Nrup a/nptl/pthread_cond_signal.c b/nptl/pthread_cond_signal.c int -@@ -35,6 +36,8 @@ __pthread_cond_signal (cond) +@@ -34,6 +35,8 @@ __pthread_cond_signal (cond) int pshared = (cond->__data.__mutex == (void *) ~0l) ? LLL_SHARED : LLL_PRIVATE; @@ -1701,10 +1502,10 @@ diff -Nrup a/nptl/pthread_cond_signal.c b/nptl/pthread_cond_signal.c /* Make sure we are alone. */ lll_lock (cond->__data.__lock, pshared); -diff -Nrup a/nptl/pthread_cond_wait.c b/nptl/pthread_cond_wait.c ---- a/nptl/pthread_cond_wait.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/pthread_cond_wait.c 2012-04-05 15:41:04.346889550 -0600 -@@ -25,6 +25,7 @@ +diff -Nrup c/nptl/pthread_cond_wait.c d/nptl/pthread_cond_wait.c +--- c/nptl/pthread_cond_wait.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/pthread_cond_wait.c 2012-05-20 23:08:50.999742161 -0600 +@@ -24,6 +24,7 @@ #include #include @@ -1712,7 +1513,7 @@ diff -Nrup a/nptl/pthread_cond_wait.c b/nptl/pthread_cond_wait.c struct _condvar_cleanup_buffer -@@ -101,6 +102,8 @@ __pthread_cond_wait (cond, mutex) +@@ -100,6 +101,8 @@ __pthread_cond_wait (cond, mutex) int pshared = (cond->__data.__mutex == (void *) ~0l) ? LLL_SHARED : LLL_PRIVATE; @@ -1721,10 +1522,10 @@ diff -Nrup a/nptl/pthread_cond_wait.c b/nptl/pthread_cond_wait.c /* Make sure we are alone. */ lll_lock (cond->__data.__lock, pshared); -diff -Nrup a/nptl/pthread_create.c b/nptl/pthread_create.c ---- a/nptl/pthread_create.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/pthread_create.c 2012-04-05 15:41:04.347889544 -0600 -@@ -32,6 +32,8 @@ +diff -Nrup c/nptl/pthread_create.c d/nptl/pthread_create.c +--- c/nptl/pthread_create.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/pthread_create.c 2012-05-20 23:08:51.000742156 -0600 +@@ -31,6 +31,8 @@ #include @@ -1733,7 +1534,7 @@ diff -Nrup a/nptl/pthread_create.c b/nptl/pthread_create.c /* Local function to start thread and handle cleanup. */ static int start_thread (void *arg); -@@ -300,6 +302,8 @@ start_thread (void *arg) +@@ -299,6 +301,8 @@ start_thread (void *arg) CANCEL_RESET (oldtype); } @@ -1742,7 +1543,7 @@ diff -Nrup a/nptl/pthread_create.c b/nptl/pthread_create.c /* Run the code the user provided. */ #ifdef CALL_THREAD_FCT THREAD_SETMEM (pd, result, CALL_THREAD_FCT (pd)); -@@ -557,6 +561,8 @@ __pthread_create_2_1 (newthread, attr, s +@@ -556,6 +560,8 @@ __pthread_create_2_1 (newthread, attr, s /* Pass the descriptor to the caller. */ *newthread = (pthread_t) pd; @@ -1751,10 +1552,10 @@ diff -Nrup a/nptl/pthread_create.c b/nptl/pthread_create.c /* Start the thread. */ return create_thread (pd, iattr, STACK_VARIABLES_ARGS); } -diff -Nrup a/nptl/pthread_join.c b/nptl/pthread_join.c ---- a/nptl/pthread_join.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/pthread_join.c 2012-04-05 15:41:04.347889544 -0600 -@@ -23,6 +23,8 @@ +diff -Nrup c/nptl/pthread_join.c d/nptl/pthread_join.c +--- c/nptl/pthread_join.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/pthread_join.c 2012-05-20 23:08:51.000742156 -0600 +@@ -22,6 +22,8 @@ #include #include "pthreadP.h" @@ -1763,7 +1564,7 @@ diff -Nrup a/nptl/pthread_join.c b/nptl/pthread_join.c static void cleanup (void *arg) -@@ -55,6 +57,8 @@ pthread_join (threadid, thread_return) +@@ -54,6 +56,8 @@ pthread_join (threadid, thread_return) struct pthread *self = THREAD_SELF; int result = 0; @@ -1772,7 +1573,7 @@ diff -Nrup a/nptl/pthread_join.c b/nptl/pthread_join.c /* 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) +@@ -109,5 +113,7 @@ pthread_join (threadid, thread_return) __free_tcb (pd); } @@ -1780,10 +1581,10 @@ diff -Nrup a/nptl/pthread_join.c b/nptl/pthread_join.c + return result; } -diff -Nrup a/nptl/pthread_mutex_destroy.c b/nptl/pthread_mutex_destroy.c ---- a/nptl/pthread_mutex_destroy.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/pthread_mutex_destroy.c 2012-04-05 15:41:04.347889544 -0600 -@@ -20,11 +20,15 @@ +diff -Nrup c/nptl/pthread_mutex_destroy.c d/nptl/pthread_mutex_destroy.c +--- c/nptl/pthread_mutex_destroy.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/pthread_mutex_destroy.c 2012-05-20 23:08:51.001742151 -0600 +@@ -19,11 +19,15 @@ #include #include "pthreadP.h" @@ -1799,10 +1600,10 @@ diff -Nrup a/nptl/pthread_mutex_destroy.c b/nptl/pthread_mutex_destroy.c if ((mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP) == 0 && mutex->__data.__nusers != 0) return EBUSY; -diff -Nrup a/nptl/pthread_mutex_init.c b/nptl/pthread_mutex_init.c ---- a/nptl/pthread_mutex_init.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/pthread_mutex_init.c 2012-04-05 15:41:04.347889544 -0600 -@@ -24,6 +24,8 @@ +diff -Nrup c/nptl/pthread_mutex_init.c d/nptl/pthread_mutex_init.c +--- c/nptl/pthread_mutex_init.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/pthread_mutex_init.c 2012-05-20 23:08:51.001742151 -0600 +@@ -23,6 +23,8 @@ #include #include "pthreadP.h" @@ -1811,7 +1612,7 @@ diff -Nrup a/nptl/pthread_mutex_init.c b/nptl/pthread_mutex_init.c 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) +@@ -134,6 +136,8 @@ __pthread_mutex_init (mutex, mutexattr) // mutex->__spins = 0; already done by memset // mutex->__next = NULL; already done by memset @@ -1820,10 +1621,10 @@ diff -Nrup a/nptl/pthread_mutex_init.c b/nptl/pthread_mutex_init.c return 0; } strong_alias (__pthread_mutex_init, pthread_mutex_init) -diff -Nrup a/nptl/pthread_mutex_lock.c b/nptl/pthread_mutex_lock.c ---- a/nptl/pthread_mutex_lock.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/pthread_mutex_lock.c 2012-04-05 15:41:04.348889538 -0600 -@@ -24,6 +24,7 @@ +diff -Nrup c/nptl/pthread_mutex_lock.c d/nptl/pthread_mutex_lock.c +--- c/nptl/pthread_mutex_lock.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/pthread_mutex_lock.c 2012-05-20 23:08:51.001742151 -0600 +@@ -23,6 +23,7 @@ #include #include "pthreadP.h" #include @@ -1831,7 +1632,7 @@ diff -Nrup a/nptl/pthread_mutex_lock.c b/nptl/pthread_mutex_lock.c #ifndef LLL_MUTEX_LOCK -@@ -48,6 +49,9 @@ __pthread_mutex_lock (mutex) +@@ -47,6 +48,9 @@ __pthread_mutex_lock (mutex) assert (sizeof (mutex->__size) >= sizeof (mutex->__data)); unsigned int type = PTHREAD_MUTEX_TYPE (mutex); @@ -1841,7 +1642,7 @@ diff -Nrup a/nptl/pthread_mutex_lock.c b/nptl/pthread_mutex_lock.c if (__builtin_expect (type & ~PTHREAD_MUTEX_KIND_MASK_NP, 0)) return __pthread_mutex_lock_full (mutex); -@@ -127,6 +131,8 @@ __pthread_mutex_lock (mutex) +@@ -126,6 +130,8 @@ __pthread_mutex_lock (mutex) ++mutex->__data.__nusers; #endif @@ -1850,7 +1651,7 @@ diff -Nrup a/nptl/pthread_mutex_lock.c b/nptl/pthread_mutex_lock.c return 0; } -@@ -467,6 +473,8 @@ __pthread_mutex_lock_full (pthread_mutex +@@ -466,6 +472,8 @@ __pthread_mutex_lock_full (pthread_mutex ++mutex->__data.__nusers; #endif @@ -1859,10 +1660,10 @@ diff -Nrup a/nptl/pthread_mutex_lock.c b/nptl/pthread_mutex_lock.c return 0; } #ifndef __pthread_mutex_lock -diff -Nrup a/nptl/pthread_mutex_timedlock.c b/nptl/pthread_mutex_timedlock.c ---- a/nptl/pthread_mutex_timedlock.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/pthread_mutex_timedlock.c 2012-04-05 15:41:04.348889538 -0600 -@@ -24,6 +24,8 @@ +diff -Nrup c/nptl/pthread_mutex_timedlock.c d/nptl/pthread_mutex_timedlock.c +--- c/nptl/pthread_mutex_timedlock.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/pthread_mutex_timedlock.c 2012-05-20 23:08:51.002742146 -0600 +@@ -23,6 +23,8 @@ #include #include @@ -1871,7 +1672,7 @@ diff -Nrup a/nptl/pthread_mutex_timedlock.c b/nptl/pthread_mutex_timedlock.c int pthread_mutex_timedlock (mutex, abstime) -@@ -34,6 +36,8 @@ pthread_mutex_timedlock (mutex, abstime) +@@ -33,6 +35,8 @@ pthread_mutex_timedlock (mutex, abstime) pid_t id = THREAD_GETMEM (THREAD_SELF, tid); int result = 0; @@ -1880,7 +1681,7 @@ diff -Nrup a/nptl/pthread_mutex_timedlock.c b/nptl/pthread_mutex_timedlock.c /* 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) +@@ -171,6 +175,8 @@ pthread_mutex_timedlock (mutex, abstime) ++mutex->__data.__count; @@ -1889,7 +1690,7 @@ diff -Nrup a/nptl/pthread_mutex_timedlock.c b/nptl/pthread_mutex_timedlock.c return 0; } } -@@ -242,6 +248,8 @@ pthread_mutex_timedlock (mutex, abstime) +@@ -241,6 +247,8 @@ pthread_mutex_timedlock (mutex, abstime) ++mutex->__data.__count; @@ -1898,7 +1699,7 @@ diff -Nrup a/nptl/pthread_mutex_timedlock.c b/nptl/pthread_mutex_timedlock.c return 0; } } -@@ -377,6 +385,8 @@ pthread_mutex_timedlock (mutex, abstime) +@@ -376,6 +384,8 @@ pthread_mutex_timedlock (mutex, abstime) ++mutex->__data.__count; @@ -1907,7 +1708,7 @@ diff -Nrup a/nptl/pthread_mutex_timedlock.c b/nptl/pthread_mutex_timedlock.c return 0; } } -@@ -477,6 +487,8 @@ pthread_mutex_timedlock (mutex, abstime) +@@ -476,6 +486,8 @@ pthread_mutex_timedlock (mutex, abstime) /* Record the ownership. */ mutex->__data.__owner = id; ++mutex->__data.__nusers; @@ -1916,10 +1717,10 @@ diff -Nrup a/nptl/pthread_mutex_timedlock.c b/nptl/pthread_mutex_timedlock.c } out: -diff -Nrup a/nptl/pthread_mutex_unlock.c b/nptl/pthread_mutex_unlock.c ---- a/nptl/pthread_mutex_unlock.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/pthread_mutex_unlock.c 2012-04-05 15:41:04.348889538 -0600 -@@ -22,6 +22,7 @@ +diff -Nrup c/nptl/pthread_mutex_unlock.c d/nptl/pthread_mutex_unlock.c +--- c/nptl/pthread_mutex_unlock.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/pthread_mutex_unlock.c 2012-05-20 23:08:51.002742146 -0600 +@@ -21,6 +21,7 @@ #include #include "pthreadP.h" #include @@ -1927,7 +1728,7 @@ diff -Nrup a/nptl/pthread_mutex_unlock.c b/nptl/pthread_mutex_unlock.c static int internal_function -@@ -50,6 +51,9 @@ __pthread_mutex_unlock_usercnt (mutex, d +@@ -49,6 +50,9 @@ __pthread_mutex_unlock_usercnt (mutex, d /* Unlock. */ lll_unlock (mutex->__data.__lock, PTHREAD_MUTEX_PSHARED (mutex)); @@ -1937,7 +1738,7 @@ diff -Nrup a/nptl/pthread_mutex_unlock.c b/nptl/pthread_mutex_unlock.c return 0; } else if (__builtin_expect (type == PTHREAD_MUTEX_RECURSIVE_NP, 1)) -@@ -272,6 +276,9 @@ __pthread_mutex_unlock_full (pthread_mut +@@ -271,6 +275,9 @@ __pthread_mutex_unlock_full (pthread_mut PTHREAD_MUTEX_PSHARED (mutex)); int oldprio = newval >> PTHREAD_MUTEX_PRIO_CEILING_SHIFT; @@ -1947,7 +1748,7 @@ diff -Nrup a/nptl/pthread_mutex_unlock.c b/nptl/pthread_mutex_unlock.c return __pthread_tpp_change_priority (oldprio, -1); default: -@@ -279,6 +286,7 @@ __pthread_mutex_unlock_full (pthread_mut +@@ -278,6 +285,7 @@ __pthread_mutex_unlock_full (pthread_mut return EINVAL; } @@ -1955,11 +1756,11 @@ diff -Nrup a/nptl/pthread_mutex_unlock.c b/nptl/pthread_mutex_unlock.c return 0; } -diff -Nrup a/nptl/pthread_rwlock_destroy.c b/nptl/pthread_rwlock_destroy.c ---- a/nptl/pthread_rwlock_destroy.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/pthread_rwlock_destroy.c 2012-04-05 15:41:04.348889538 -0600 -@@ -18,12 +18,15 @@ - 02111-1307 USA. */ +diff -Nrup c/nptl/pthread_rwlock_destroy.c d/nptl/pthread_rwlock_destroy.c +--- c/nptl/pthread_rwlock_destroy.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/pthread_rwlock_destroy.c 2012-05-20 23:08:51.003742141 -0600 +@@ -17,12 +17,15 @@ + . */ #include "pthreadP.h" +#include @@ -1974,10 +1775,10 @@ diff -Nrup a/nptl/pthread_rwlock_destroy.c b/nptl/pthread_rwlock_destroy.c /* Nothing to be done. For now. */ return 0; } -diff -Nrup a/nptl/pthread_rwlock_rdlock.c b/nptl/pthread_rwlock_rdlock.c ---- a/nptl/pthread_rwlock_rdlock.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/pthread_rwlock_rdlock.c 2012-04-05 15:41:04.348889538 -0600 -@@ -22,6 +22,7 @@ +diff -Nrup c/nptl/pthread_rwlock_rdlock.c d/nptl/pthread_rwlock_rdlock.c +--- c/nptl/pthread_rwlock_rdlock.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/pthread_rwlock_rdlock.c 2012-05-20 23:08:51.003742141 -0600 +@@ -21,6 +21,7 @@ #include #include #include @@ -1985,7 +1786,7 @@ diff -Nrup a/nptl/pthread_rwlock_rdlock.c b/nptl/pthread_rwlock_rdlock.c /* Acquire read lock for RWLOCK. */ -@@ -31,6 +32,8 @@ __pthread_rwlock_rdlock (rwlock) +@@ -30,6 +31,8 @@ __pthread_rwlock_rdlock (rwlock) { int result = 0; @@ -1994,7 +1795,7 @@ diff -Nrup a/nptl/pthread_rwlock_rdlock.c b/nptl/pthread_rwlock_rdlock.c /* Make sure we are alone. */ lll_lock (rwlock->__data.__lock, rwlock->__data.__shared); -@@ -49,6 +52,8 @@ __pthread_rwlock_rdlock (rwlock) +@@ -48,6 +51,8 @@ __pthread_rwlock_rdlock (rwlock) --rwlock->__data.__nr_readers; result = EAGAIN; } @@ -2003,10 +1804,10 @@ diff -Nrup a/nptl/pthread_rwlock_rdlock.c b/nptl/pthread_rwlock_rdlock.c break; } -diff -Nrup a/nptl/pthread_rwlock_unlock.c b/nptl/pthread_rwlock_unlock.c ---- a/nptl/pthread_rwlock_unlock.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/pthread_rwlock_unlock.c 2012-04-05 15:41:04.349889532 -0600 -@@ -22,11 +22,14 @@ +diff -Nrup c/nptl/pthread_rwlock_unlock.c d/nptl/pthread_rwlock_unlock.c +--- c/nptl/pthread_rwlock_unlock.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/pthread_rwlock_unlock.c 2012-05-20 23:08:51.003742141 -0600 +@@ -21,11 +21,14 @@ #include #include #include @@ -2021,10 +1822,10 @@ diff -Nrup a/nptl/pthread_rwlock_unlock.c b/nptl/pthread_rwlock_unlock.c lll_lock (rwlock->__data.__lock, rwlock->__data.__shared); if (rwlock->__data.__writer) rwlock->__data.__writer = 0; -diff -Nrup a/nptl/pthread_rwlock_wrlock.c b/nptl/pthread_rwlock_wrlock.c ---- a/nptl/pthread_rwlock_wrlock.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/pthread_rwlock_wrlock.c 2012-04-05 15:41:04.349889532 -0600 -@@ -22,6 +22,7 @@ +diff -Nrup c/nptl/pthread_rwlock_wrlock.c d/nptl/pthread_rwlock_wrlock.c +--- c/nptl/pthread_rwlock_wrlock.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/pthread_rwlock_wrlock.c 2012-05-20 23:08:51.004742136 -0600 +@@ -21,6 +21,7 @@ #include #include #include @@ -2032,7 +1833,7 @@ diff -Nrup a/nptl/pthread_rwlock_wrlock.c b/nptl/pthread_rwlock_wrlock.c /* Acquire write lock for RWLOCK. */ -@@ -31,6 +32,8 @@ __pthread_rwlock_wrlock (rwlock) +@@ -30,6 +31,8 @@ __pthread_rwlock_wrlock (rwlock) { int result = 0; @@ -2041,7 +1842,7 @@ diff -Nrup a/nptl/pthread_rwlock_wrlock.c b/nptl/pthread_rwlock_wrlock.c /* Make sure we are alone. */ lll_lock (rwlock->__data.__lock, rwlock->__data.__shared); -@@ -41,6 +44,8 @@ __pthread_rwlock_wrlock (rwlock) +@@ -40,6 +43,8 @@ __pthread_rwlock_wrlock (rwlock) { /* Mark self as writer. */ rwlock->__data.__writer = THREAD_GETMEM (THREAD_SELF, tid); @@ -2050,10 +1851,10 @@ diff -Nrup a/nptl/pthread_rwlock_wrlock.c b/nptl/pthread_rwlock_wrlock.c break; } -diff -Nrup 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 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h 2012-04-05 15:41:04.350889527 -0600 -@@ -189,4 +189,7 @@ +diff -Nrup c/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h d/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h +--- c/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h 2012-05-20 23:08:51.004742136 -0600 +@@ -188,4 +188,7 @@ /* Typed memory objects are not available. */ #define _POSIX_TYPED_MEMORY_OBJECTS -1 @@ -2061,9 +1862,9 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h b/nptl/sysdeps/unix/s +#define _XOPEN_STREAMS -1 + #endif /* bits/posix_opt.h */ -diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/Versions b/nptl/sysdeps/unix/sysv/linux/i386/Versions ---- a/nptl/sysdeps/unix/sysv/linux/i386/Versions 1969-12-31 17:00:00.000000000 -0700 -+++ b/nptl/sysdeps/unix/sysv/linux/i386/Versions 2012-04-05 15:41:04.350889527 -0600 +diff -Nrup c/nptl/sysdeps/unix/sysv/linux/i386/Versions d/nptl/sysdeps/unix/sysv/linux/i386/Versions +--- c/nptl/sysdeps/unix/sysv/linux/i386/Versions 1969-12-31 17:00:00.000000000 -0700 ++++ d/nptl/sysdeps/unix/sysv/linux/i386/Versions 2012-05-20 23:08:51.004742136 -0600 @@ -0,0 +1,6 @@ +libc { + GLIBC_PRIVATE { @@ -2071,10 +1872,10 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/Versions b/nptl/sysdeps/unix/sysv + __uname; + } +} -diff -Nrup 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 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S 2012-04-05 15:41:04.351889521 -0600 -@@ -22,6 +22,8 @@ +diff -Nrup c/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S d/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S +--- c/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S 2012-05-20 23:08:51.004742136 -0600 +@@ -21,6 +21,8 @@ #include #include @@ -2083,7 +1884,7 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S b/nptl/sysdep .text #ifdef __ASSUME_PRIVATE_FUTEX -@@ -91,7 +93,8 @@ __lll_lock_wait_private: +@@ -90,7 +92,8 @@ __lll_lock_wait_private: cmpl %edx, %eax /* NB: %edx == 2 */ jne 2f @@ -2093,10 +1894,10 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S b/nptl/sysdep ENTER_KERNEL 2: movl %edx, %eax -diff -Nrup 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 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S 2012-04-05 15:41:04.353889509 -0600 -@@ -24,6 +24,7 @@ +diff -Nrup c/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S d/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S +--- c/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S 2012-05-20 23:08:51.006742127 -0600 +@@ -23,6 +23,7 @@ #include #include #include @@ -2104,7 +1905,7 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S b/n .text -@@ -49,6 +50,8 @@ __pthread_cond_broadcast: +@@ -48,6 +49,8 @@ __pthread_cond_broadcast: movl 20(%esp), %ebx @@ -2113,10 +1914,10 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S b/n /* Get internal lock. */ movl $1, %edx xorl %eax, %eax -diff -Nrup 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 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S 2012-04-05 15:41:04.353889509 -0600 -@@ -24,7 +24,7 @@ +diff -Nrup c/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S d/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S +--- c/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S 2012-05-20 23:08:51.007742123 -0600 +@@ -23,7 +23,7 @@ #include #include #include @@ -2125,7 +1926,7 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S b/nptl .text -@@ -45,6 +45,8 @@ __pthread_cond_signal: +@@ -44,6 +44,8 @@ __pthread_cond_signal: movl 12(%esp), %edi @@ -2134,10 +1935,10 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S b/nptl /* Get internal lock. */ movl $1, %edx xorl %eax, %eax -diff -Nrup 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 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S 2012-04-05 15:41:04.353889510 -0600 -@@ -24,7 +24,7 @@ +diff -Nrup c/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S d/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S +--- c/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S 2012-05-20 23:08:51.008742118 -0600 +@@ -23,7 +23,7 @@ #include #include #include @@ -2146,7 +1947,7 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S b/n .text -@@ -61,6 +61,8 @@ __pthread_cond_timedwait: +@@ -60,6 +60,8 @@ __pthread_cond_timedwait: movl 20(%esp), %ebx movl 28(%esp), %ebp @@ -2155,9 +1956,9 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S b/n cmpl $1000000000, 4(%ebp) movl $EINVAL, %eax jae 18f -diff -Nrup 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 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2012-04-05 15:41:04.353889510 -0600 +diff -Nrup c/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S d/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S +--- c/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2012-05-20 23:08:51.010742108 -0600 @@ -25,6 +25,7 @@ #include #include @@ -2175,10 +1976,10 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/nptl/s /* Get internal lock. */ movl $1, %edx xorl %eax, %eax -diff -Nrup 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 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S 2012-04-05 15:41:04.353889510 -0600 -@@ -23,6 +23,7 @@ +diff -Nrup c/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S d/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S +--- c/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S 2012-05-20 23:08:51.011742103 -0600 +@@ -22,6 +22,7 @@ #include #include @@ -2186,7 +1987,7 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S b/np .text -@@ -41,6 +42,8 @@ __pthread_rwlock_rdlock: +@@ -40,6 +41,8 @@ __pthread_rwlock_rdlock: xorl %esi, %esi movl 12(%esp), %ebx @@ -2195,10 +1996,10 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S b/np /* Get the lock. */ movl $1, %edx xorl %eax, %eax -diff -Nrup 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 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S 2012-04-05 15:41:04.353889510 -0600 -@@ -23,6 +23,7 @@ +diff -Nrup c/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S d/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S +--- c/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S 2012-05-20 23:08:51.011742103 -0600 +@@ -22,6 +22,7 @@ #include #include @@ -2206,7 +2007,7 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S b/np .text -@@ -41,6 +42,8 @@ __pthread_rwlock_wrlock: +@@ -40,6 +41,8 @@ __pthread_rwlock_wrlock: xorl %esi, %esi movl 12(%esp), %ebx @@ -2215,10 +2016,10 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S b/np /* Get the lock. */ movl $1, %edx xorl %eax, %eax -diff -Nrup 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 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h 2012-04-05 15:41:04.354889506 -0600 -@@ -20,6 +20,8 @@ +diff -Nrup c/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h d/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h +--- c/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h 2012-05-20 23:08:51.012742098 -0600 +@@ -19,6 +19,8 @@ #ifndef _LOWLEVELLOCK_H #define _LOWLEVELLOCK_H 1 @@ -2227,7 +2028,7 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h b/nptl/sysdeps/uni #ifndef __ASSEMBLER__ # include # include -@@ -226,6 +228,7 @@ LLL_STUB_UNWIND_INFO_END +@@ -225,6 +227,7 @@ LLL_STUB_UNWIND_INFO_END do { \ int __ignore; \ register __typeof (nr) _nr asm ("edx") = (nr); \ @@ -2235,10 +2036,10 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h b/nptl/sysdeps/uni __asm __volatile (LLL_EBX_LOAD \ LLL_ENTER_KERNEL \ LLL_EBX_LOAD \ -diff -Nrup 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 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/sysdeps/unix/sysv/linux/i386/smp.h 2012-04-05 15:41:04.354889506 -0600 -@@ -37,7 +37,7 @@ is_smp_system (void) +diff -Nrup c/nptl/sysdeps/unix/sysv/linux/i386/smp.h d/nptl/sysdeps/unix/sysv/linux/i386/smp.h +--- c/nptl/sysdeps/unix/sysv/linux/i386/smp.h 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/sysdeps/unix/sysv/linux/i386/smp.h 2012-05-20 23:08:51.013742093 -0600 +@@ -36,7 +36,7 @@ is_smp_system (void) char *cp; /* Try reading the number using `sysctl' first. */ @@ -2247,9 +2048,9 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/smp.h b/nptl/sysdeps/unix/sysv/li cp = u.uts.version; else { -diff -Nrup 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 1969-12-31 17:00:00.000000000 -0700 -+++ b/nptl/sysdeps/unix/sysv/linux/kernel-features.h 2012-04-05 15:41:04.354889506 -0600 +diff -Nrup c/nptl/sysdeps/unix/sysv/linux/kernel-features.h d/nptl/sysdeps/unix/sysv/linux/kernel-features.h +--- c/nptl/sysdeps/unix/sysv/linux/kernel-features.h 1969-12-31 17:00:00.000000000 -0700 ++++ d/nptl/sysdeps/unix/sysv/linux/kernel-features.h 2012-05-20 23:08:51.013742093 -0600 @@ -0,0 +1,6 @@ +#include_next + @@ -2257,10 +2058,10 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/kernel-features.h b/nptl/sysdeps/unix/ +#ifndef __ASSUME_CLONE_THREAD_FLAGS +# define __ASSUME_CLONE_THREAD_FLAGS 1 +#endif -diff -Nrup 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 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S 2012-04-05 15:41:04.354889506 -0600 -@@ -22,6 +22,8 @@ +diff -Nrup c/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S d/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S +--- c/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S 2012-05-20 23:08:51.014742088 -0600 +@@ -21,6 +21,8 @@ #include #include @@ -2269,7 +2070,7 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S b/nptl/sysdeps/u .text #ifdef __ASSUME_PRIVATE_FUTEX -@@ -87,7 +89,8 @@ __lll_lock_wait_private: +@@ -86,7 +88,8 @@ __lll_lock_wait_private: cmpl %edx, %eax /* NB: %edx == 2 */ jne 2f @@ -2279,7 +2080,7 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S b/nptl/sysdeps/u syscall 2: movl %edx, %eax -@@ -126,7 +129,8 @@ __lll_lock_wait: +@@ -125,7 +128,8 @@ __lll_lock_wait: cmpl %edx, %eax /* NB: %edx == 2 */ jne 2f @@ -2289,9 +2090,9 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S b/nptl/sysdeps/u syscall 2: movl %edx, %eax -diff -Nrup 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 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h 2012-04-05 15:41:04.355889501 -0600 +diff -Nrup c/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h d/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h +--- c/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h 2012-05-20 23:08:51.015742083 -0600 @@ -20,6 +20,8 @@ #ifndef _LOWLEVELLOCK_H #define _LOWLEVELLOCK_H 1 @@ -2309,10 +2110,10 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h b/nptl/sysdeps/u __asm __volatile ("syscall" \ : "=a" (__ignore) \ : "0" (SYS_futex), "D" (futex), \ -diff -Nrup 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 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S 2012-04-05 15:41:04.355889501 -0600 -@@ -25,7 +25,7 @@ +diff -Nrup c/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S d/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S +--- c/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S 2012-05-20 23:08:51.015742083 -0600 +@@ -24,7 +24,7 @@ #include #include #include @@ -2321,7 +2122,7 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S b/nptl .text -@@ -35,6 +35,8 @@ +@@ -34,6 +34,8 @@ .align 16 __pthread_cond_broadcast: @@ -2330,10 +2131,10 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S b/nptl /* Get internal lock. */ movl $1, %esi xorl %eax, %eax -diff -Nrup 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 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S 2012-04-05 15:41:04.355889501 -0600 -@@ -24,6 +24,7 @@ +diff -Nrup c/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S d/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S +--- c/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S 2012-05-20 23:08:51.016742078 -0600 +@@ -23,6 +23,7 @@ #include #include #include @@ -2341,7 +2142,7 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S b/nptl/sy .text -@@ -34,6 +35,8 @@ +@@ -33,6 +34,8 @@ .align 16 __pthread_cond_signal: @@ -2350,10 +2151,10 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S b/nptl/sy /* Get internal lock. */ movq %rdi, %r8 movl $1, %esi -diff -Nrup 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 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S 2012-04-05 15:41:04.356889495 -0600 -@@ -23,6 +23,7 @@ +diff -Nrup c/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S d/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S +--- c/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S 2012-05-20 23:08:51.017742073 -0600 +@@ -22,6 +22,7 @@ #include #include #include @@ -2361,7 +2162,7 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S b/nptl #include -@@ -68,6 +69,8 @@ __pthread_cond_timedwait: +@@ -67,6 +68,8 @@ __pthread_cond_timedwait: cfi_adjust_cfa_offset(FRAME_SIZE) cfi_remember_state @@ -2370,10 +2171,10 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S b/nptl cmpq $1000000000, 8(%rdx) movl $EINVAL, %eax jae 48f -diff -Nrup 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 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2012-04-05 15:41:04.356889495 -0600 -@@ -24,6 +24,7 @@ +diff -Nrup c/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S d/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S +--- c/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2012-05-20 23:21:12.455236368 -0600 +@@ -23,6 +23,7 @@ #include #include #include @@ -2381,19 +2182,19 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysd #include -@@ -66,6 +67,8 @@ __pthread_cond_wait: +@@ -65,6 +66,8 @@ __pthread_cond_wait: +--------------------------+ */ + LIBC_PROBE (cond_wait, 2, %rdi, %rsi) + - cmpq $-1, dep_mutex(%rdi) + LP_OP(cmp) $-1, dep_mutex(%rdi) /* Prepare structure passed to cancellation handler. */ -diff -Nrup 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 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S 2012-04-05 15:41:04.357889489 -0600 -@@ -22,7 +22,7 @@ +diff -Nrup c/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S d/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S +--- c/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S 2012-05-20 23:08:51.018742069 -0600 +@@ -21,7 +21,7 @@ #include #include #include @@ -2402,7 +2203,7 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S b/nptl/ .text -@@ -31,6 +31,9 @@ +@@ -30,6 +30,9 @@ .align 16 __pthread_rwlock_rdlock: cfi_startproc @@ -2412,10 +2213,10 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S b/nptl/ xorq %r10, %r10 /* Get the lock. */ -diff -Nrup 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 2012-01-01 05:16:32.000000000 -0700 -+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S 2012-04-05 15:41:04.358889483 -0600 -@@ -22,7 +22,7 @@ +diff -Nrup c/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S d/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S +--- c/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S 2012-05-20 19:47:38.000000000 -0600 ++++ d/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S 2012-05-20 23:08:51.019742065 -0600 +@@ -21,7 +21,7 @@ #include #include #include @@ -2424,7 +2225,7 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S b/nptl/ .text -@@ -31,6 +31,9 @@ +@@ -30,6 +30,9 @@ .align 16 __pthread_rwlock_wrlock: cfi_startproc @@ -2434,9 +2235,9 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S b/nptl/ xorq %r10, %r10 /* Get the lock. */ -diff -Nrup a/nscd/nscd.conf b/nscd/nscd.conf ---- a/nscd/nscd.conf 2012-01-01 05:16:32.000000000 -0700 -+++ b/nscd/nscd.conf 2012-04-05 15:41:04.358889483 -0600 +diff -Nrup c/nscd/nscd.conf d/nscd/nscd.conf +--- c/nscd/nscd.conf 2012-05-20 19:47:38.000000000 -0600 ++++ d/nscd/nscd.conf 2012-05-20 23:08:51.020742061 -0600 @@ -33,7 +33,7 @@ # logfile /var/log/nscd.log # threads 4 @@ -2446,9 +2247,9 @@ diff -Nrup a/nscd/nscd.conf b/nscd/nscd.conf # stat-user somebody debug-level 0 # reload-count 5 -diff -Nrup a/nscd/nscd.init b/nscd/nscd.init ---- a/nscd/nscd.init 2012-01-01 05:16:32.000000000 -0700 -+++ b/nscd/nscd.init 2012-04-05 15:41:04.358889483 -0600 +diff -Nrup c/nscd/nscd.init d/nscd/nscd.init +--- c/nscd/nscd.init 2012-05-20 19:47:38.000000000 -0600 ++++ d/nscd/nscd.init 2012-05-20 23:08:51.021742056 -0600 @@ -9,6 +9,7 @@ # slow naming services like NIS, NIS+, LDAP, or hesiod. # processname: /usr/sbin/nscd @@ -2525,10 +2326,10 @@ diff -Nrup a/nscd/nscd.init b/nscd/nscd.init ;; *) echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}" -diff -Nrup a/nscd/selinux.c b/nscd/selinux.c ---- a/nscd/selinux.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/nscd/selinux.c 2012-04-05 15:41:04.358889483 -0600 -@@ -270,6 +270,18 @@ avc_create_thread (void (*run) (void)) +diff -Nrup c/nscd/selinux.c d/nscd/selinux.c +--- c/nscd/selinux.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/nscd/selinux.c 2012-05-20 23:08:51.067741835 -0600 +@@ -269,6 +269,18 @@ avc_create_thread (void (*run) (void)) { int rc; @@ -2547,21 +2348,21 @@ diff -Nrup a/nscd/selinux.c b/nscd/selinux.c rc = pthread_create (&avc_notify_thread, NULL, (void *(*) (void *)) run, NULL); if (rc != 0) -diff -Nrup a/nss/Makefile b/nss/Makefile ---- a/nss/Makefile 2012-01-01 05:16:32.000000000 -0700 -+++ b/nss/Makefile 2012-04-05 15:41:04.359889477 -0600 -@@ -88,6 +88,7 @@ endif - - include ../Rules +diff -Nrup c/nss/Makefile d/nss/Makefile +--- c/nss/Makefile 2012-05-20 19:47:38.000000000 -0600 ++++ d/nss/Makefile 2012-05-20 23:08:51.067741835 -0600 +@@ -101,6 +101,7 @@ $(libnss_db-dbs:%=$(objpfx)%.c): $(objpf + echo '#include "$<"') > $@.new + mv -f $@.new $@ +CFLAGS-files-hosts.c += -fno-strict-aliasing - ifeq (yes,$(build-static-nss)) - $(objpfx)getent: $(objpfx)libnss_files.a -diff -Nrup a/nss/nss_files/files-XXX.c b/nss/nss_files/files-XXX.c ---- a/nss/nss_files/files-XXX.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/nss/nss_files/files-XXX.c 2012-04-05 15:41:04.359889477 -0600 -@@ -190,7 +190,7 @@ internal_getent (struct STRUCTURE *resul + $(objpfx)makedb: $(makedb-modules:%=$(objpfx)%.o) + +diff -Nrup c/nss/nss_files/files-XXX.c d/nss/nss_files/files-XXX.c +--- c/nss/nss_files/files-XXX.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/nss/nss_files/files-XXX.c 2012-05-20 23:08:51.067741835 -0600 +@@ -189,7 +189,7 @@ internal_getent (struct STRUCTURE *resul { char *p; struct parser_data *data = (void *) buffer; @@ -2570,10 +2371,10 @@ diff -Nrup a/nss/nss_files/files-XXX.c b/nss/nss_files/files-XXX.c int parse_result; if (buflen < sizeof *data + 2) -diff -Nrup a/posix/Makefile b/posix/Makefile ---- a/posix/Makefile 2012-01-01 05:16:32.000000000 -0700 -+++ b/posix/Makefile 2012-04-05 15:41:04.359889477 -0600 -@@ -320,15 +320,8 @@ $(inst_libexecdir)/getconf: $(inst_bindi +diff -Nrup c/posix/Makefile d/posix/Makefile +--- c/posix/Makefile 2012-05-20 19:47:38.000000000 -0600 ++++ d/posix/Makefile 2012-05-20 23:08:51.068741830 -0600 +@@ -305,15 +305,8 @@ $(inst_libexecdir)/getconf: $(inst_bindi mv -f $@/$$spec.new $@/$$spec; \ done < $(objpfx)getconf.speclist @@ -2593,9 +2394,9 @@ diff -Nrup a/posix/Makefile b/posix/Makefile + | sed -n -e '/START_OF_STRINGS/,$${/\(POSIX_V[67]\|XBS5\)_/{s/^[^"]*"//;s/".*$$//;p}}' \ + > $@.new mv -f $@.new $@ -diff -Nrup a/posix/gai.conf b/posix/gai.conf ---- a/posix/gai.conf 2012-01-01 05:16:32.000000000 -0700 -+++ b/posix/gai.conf 2012-04-05 15:41:04.359889477 -0600 +diff -Nrup c/posix/gai.conf d/posix/gai.conf +--- c/posix/gai.conf 2012-05-20 19:47:38.000000000 -0600 ++++ d/posix/gai.conf 2012-05-20 23:08:51.068741830 -0600 @@ -41,7 +41,7 @@ # # precedence @@ -2620,9 +2421,9 @@ diff -Nrup a/posix/gai.conf b/posix/gai.conf #scopev4 ::ffff:0.0.0.0/96 14 +# +# This is what the Red Hat setting currently uses. -diff -Nrup a/posix/getconf.speclist.h b/posix/getconf.speclist.h ---- a/posix/getconf.speclist.h 1969-12-31 17:00:00.000000000 -0700 -+++ b/posix/getconf.speclist.h 2012-04-05 15:41:04.360889471 -0600 +diff -Nrup c/posix/getconf.speclist.h d/posix/getconf.speclist.h +--- c/posix/getconf.speclist.h 1969-12-31 17:00:00.000000000 -0700 ++++ d/posix/getconf.speclist.h 2012-05-20 23:08:51.068741830 -0600 @@ -0,0 +1,39 @@ +#include +const char *START_OF_STRINGS = @@ -2663,10 +2464,10 @@ diff -Nrup a/posix/getconf.speclist.h b/posix/getconf.speclist.h +"XBS5_LPBIG_OFFBIG" +#endif +""; -diff -Nrup a/posix/regcomp.c b/posix/regcomp.c ---- a/posix/regcomp.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/posix/regcomp.c 2012-04-05 15:41:04.360889471 -0600 -@@ -2745,40 +2745,29 @@ parse_bracket_exp (re_string_t *regexp, +diff -Nrup c/posix/regcomp.c d/posix/regcomp.c +--- c/posix/regcomp.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/posix/regcomp.c 2012-05-20 23:08:51.069741825 -0600 +@@ -2772,40 +2772,29 @@ parse_bracket_exp (re_string_t *regexp, /* Local function for parse_bracket_exp used in _LIBC environement. Seek the collating symbol entry correspondings to NAME. @@ -2725,7 +2526,7 @@ diff -Nrup a/posix/regcomp.c b/posix/regcomp.c } /* Local function for parse_bracket_exp used in _LIBC environment. -@@ -2787,8 +2776,7 @@ parse_bracket_exp (re_string_t *regexp, +@@ -2814,8 +2803,7 @@ parse_bracket_exp (re_string_t *regexp, auto inline unsigned int __attribute ((always_inline)) @@ -2735,7 +2536,7 @@ diff -Nrup a/posix/regcomp.c b/posix/regcomp.c { if (br_elem->type == SB_CHAR) { -@@ -2816,7 +2804,7 @@ parse_bracket_exp (re_string_t *regexp, +@@ -2843,7 +2831,7 @@ parse_bracket_exp (re_string_t *regexp, int32_t elem, idx; elem = seek_collating_symbol_entry (br_elem->opr.name, sym_name_len); @@ -2744,7 +2545,7 @@ diff -Nrup a/posix/regcomp.c b/posix/regcomp.c { /* We found the entry. */ idx = symb_table[2 * elem + 1]; -@@ -2834,7 +2822,7 @@ parse_bracket_exp (re_string_t *regexp, +@@ -2861,7 +2849,7 @@ parse_bracket_exp (re_string_t *regexp, /* Return the collation sequence value. */ return *(unsigned int *) (extra + idx); } @@ -2753,7 +2554,7 @@ diff -Nrup a/posix/regcomp.c b/posix/regcomp.c { /* No valid character. Match it as a single byte character. */ -@@ -2856,11 +2844,8 @@ parse_bracket_exp (re_string_t *regexp, +@@ -2883,11 +2871,8 @@ parse_bracket_exp (re_string_t *regexp, auto inline reg_errcode_t __attribute ((always_inline)) @@ -2767,7 +2568,7 @@ diff -Nrup a/posix/regcomp.c b/posix/regcomp.c { unsigned int ch; uint32_t start_collseq; -@@ -2939,25 +2924,22 @@ parse_bracket_exp (re_string_t *regexp, +@@ -2966,25 +2951,22 @@ parse_bracket_exp (re_string_t *regexp, auto inline reg_errcode_t __attribute ((always_inline)) @@ -2797,10 +2598,10 @@ diff -Nrup a/posix/regcomp.c b/posix/regcomp.c { /* No valid character, treat it as a normal character. */ -diff -Nrup a/resolv/Makefile b/resolv/Makefile ---- a/resolv/Makefile 2012-01-01 05:16:32.000000000 -0700 -+++ b/resolv/Makefile 2012-04-05 15:41:04.362889462 -0600 -@@ -81,6 +81,7 @@ ifeq (yes,$(have-ssp)) +diff -Nrup c/resolv/Makefile d/resolv/Makefile +--- c/resolv/Makefile 2012-05-20 19:47:38.000000000 -0600 ++++ d/resolv/Makefile 2012-05-20 23:08:51.070741820 -0600 +@@ -80,6 +80,7 @@ ifeq (yes,$(have-ssp)) CFLAGS-libresolv += -fstack-protector endif CFLAGS-res_hconf.c = -fexceptions @@ -2808,10 +2609,10 @@ diff -Nrup a/resolv/Makefile b/resolv/Makefile # The BIND code elicits some harmless warnings. +cflags += -Wno-strict-prototypes -Wno-write-strings -diff -Nrup a/resource/getrlimit.c b/resource/getrlimit.c ---- a/resource/getrlimit.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/resource/getrlimit.c 2012-04-05 15:41:04.363889457 -0600 -@@ -28,6 +28,7 @@ __getrlimit (enum __rlimit_resource reso +diff -Nrup c/resource/getrlimit.c d/resource/getrlimit.c +--- c/resource/getrlimit.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/resource/getrlimit.c 2012-05-20 23:08:51.071741815 -0600 +@@ -27,6 +27,7 @@ __getrlimit (enum __rlimit_resource reso __set_errno (ENOSYS); return -1; } @@ -2819,10 +2620,10 @@ diff -Nrup a/resource/getrlimit.c b/resource/getrlimit.c weak_alias (__getrlimit, getrlimit) stub_warning (getrlimit) -diff -Nrup a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c ---- a/stdio-common/vfprintf.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/stdio-common/vfprintf.c 2012-04-05 15:41:04.364889452 -0600 -@@ -1161,41 +1161,9 @@ vfprintf (FILE *s, const CHAR_T *format, +diff -Nrup c/stdio-common/vfprintf.c d/stdio-common/vfprintf.c +--- c/stdio-common/vfprintf.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/stdio-common/vfprintf.c 2012-05-20 23:14:50.905012494 -0600 +@@ -1168,42 +1168,9 @@ vfprintf (FILE *s, const CHAR_T *format, else if (!is_long && spec != L_('S')) \ { \ if (prec != -1) \ @@ -2851,6 +2652,7 @@ diff -Nrup a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c - if (__mbsnrtowcs (ignore, &str2, strend - str2, \ - ignore_size, &ps) == (size_t) -1) \ - { \ +- /* Conversion function has set errno. */ \ - done = -1; \ - goto all_done; \ - } \ @@ -2861,16 +2663,16 @@ diff -Nrup a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c - len = str2 - string - (ps.__count & 7); \ - } \ - } \ -+ /* Search for the end of the string, but don't search past \ -+ the length (in bytes) specified by the precision. */ \ -+ len = __strnlen (string, prec); \ ++ /* Search for th eend of the string, but don't search past \ ++ the length (in bytes) specified by the precision. */ \ ++ len = __strnlen (string, prec); \ else \ len = strlen (string); \ } \ -diff -Nrup a/streams/Makefile b/streams/Makefile ---- a/streams/Makefile 2012-01-01 05:16:32.000000000 -0700 -+++ b/streams/Makefile 2012-04-05 15:41:04.365889446 -0600 -@@ -21,7 +21,7 @@ +diff -Nrup c/streams/Makefile d/streams/Makefile +--- c/streams/Makefile 2012-05-20 19:47:38.000000000 -0600 ++++ d/streams/Makefile 2012-05-20 23:08:51.073741805 -0600 +@@ -20,7 +20,7 @@ # subdir := streams @@ -2879,10 +2681,10 @@ diff -Nrup a/streams/Makefile b/streams/Makefile routines = isastream getmsg getpmsg putmsg putpmsg fattach fdetach include ../Rules -diff -Nrup a/sunrpc/Makefile b/sunrpc/Makefile ---- a/sunrpc/Makefile 2012-01-01 05:16:32.000000000 -0700 -+++ b/sunrpc/Makefile 2012-04-05 15:41:04.366889440 -0600 -@@ -53,7 +53,7 @@ headers-in-tirpc = $(addprefix rpc/,auth +diff -Nrup c/sunrpc/Makefile d/sunrpc/Makefile +--- c/sunrpc/Makefile 2012-05-20 19:47:38.000000000 -0600 ++++ d/sunrpc/Makefile 2012-05-20 23:08:51.074741800 -0600 +@@ -52,7 +52,7 @@ headers-in-tirpc = $(addprefix rpc/,auth des_crypt.h) headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \ $(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h @@ -2891,9 +2693,9 @@ diff -Nrup a/sunrpc/Makefile b/sunrpc/Makefile 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 - - CPPFLAGS += -D_RPC_THREAD_SAFE_ +@@ -150,6 +150,10 @@ sunrpc-CPPFLAGS = -D_RPC_THREAD_SAFE_ + CPPFLAGS += $(sunrpc-CPPFLAGS) + BUILD_CPPFLAGS += $(sunrpc-CPPFLAGS) +CFLAGS-clnt_tcp.c += -fno-strict-aliasing +CFLAGS-clnt_udp.c += -fno-strict-aliasing @@ -2902,10 +2704,10 @@ diff -Nrup a/sunrpc/Makefile b/sunrpc/Makefile $(objpfx)tst-getmyaddr: $(common-objpfx)linkobj/libc.so $(objpfx)tst-xdrmem: $(common-objpfx)linkobj/libc.so $(objpfx)tst-xdrmem2: $(common-objpfx)linkobj/libc.so -diff -Nrup a/sysdeps/generic/dl-cache.h b/sysdeps/generic/dl-cache.h ---- a/sysdeps/generic/dl-cache.h 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/generic/dl-cache.h 2012-04-05 15:41:04.367889434 -0600 -@@ -36,6 +36,14 @@ +diff -Nrup c/sysdeps/generic/dl-cache.h d/sysdeps/generic/dl-cache.h +--- c/sysdeps/generic/dl-cache.h 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/generic/dl-cache.h 2012-05-20 23:08:51.074741800 -0600 +@@ -35,6 +35,14 @@ # define add_system_dir(dir) add_dir (dir) #endif @@ -2920,9 +2722,9 @@ diff -Nrup a/sysdeps/generic/dl-cache.h b/sysdeps/generic/dl-cache.h #define CACHEMAGIC "ld.so-1.7.0" /* libc5 and glibc 2.0/2.1 use the same format. For glibc 2.2 another -diff -Nrup a/sysdeps/i386/Makefile b/sysdeps/i386/Makefile ---- a/sysdeps/i386/Makefile 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/i386/Makefile 2012-04-05 15:41:04.368889429 -0600 +diff -Nrup c/sysdeps/i386/Makefile d/sysdeps/i386/Makefile +--- c/sysdeps/i386/Makefile 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/i386/Makefile 2012-05-20 23:08:51.075741795 -0600 @@ -2,6 +2,8 @@ # Every i386 port in use uses gas syntax (I think). asm-CPPFLAGS += -DGAS_SYNTAX @@ -2932,7 +2734,7 @@ diff -Nrup a/sysdeps/i386/Makefile b/sysdeps/i386/Makefile # The i386 `long double' is a distinct type we support. long-double-fcts = yes -@@ -68,6 +70,14 @@ endif +@@ -62,6 +64,14 @@ endif ifneq (,$(filter -mno-tls-direct-seg-refs,$(CFLAGS))) defines += -DNO_TLS_DIRECT_SEG_REFS @@ -2947,9 +2749,9 @@ diff -Nrup a/sysdeps/i386/Makefile b/sysdeps/i386/Makefile endif ifeq ($(subdir),elf) -diff -Nrup a/sysdeps/i386/i686/Makefile b/sysdeps/i386/i686/Makefile ---- a/sysdeps/i386/i686/Makefile 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/i386/i686/Makefile 2012-04-05 15:41:04.368889429 -0600 +diff -Nrup c/sysdeps/i386/i686/Makefile d/sysdeps/i386/i686/Makefile +--- c/sysdeps/i386/i686/Makefile 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/i386/i686/Makefile 2012-05-20 23:08:51.075741795 -0600 @@ -9,19 +9,3 @@ stack-align-test-flags += -msse ifeq ($(subdir),string) sysdep_routines += cacheinfo @@ -2970,377 +2772,9 @@ diff -Nrup a/sysdeps/i386/i686/Makefile b/sysdeps/i386/i686/Makefile -ASFLAGS-.ob += -Wa,-mtune=i686 -ASFLAGS-.oS += -Wa,-mtune=i686 -endif -diff -Nrup a/sysdeps/ia64/Makefile b/sysdeps/ia64/Makefile ---- a/sysdeps/ia64/Makefile 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/ia64/Makefile 2012-04-05 15:41:04.369889424 -0600 -@@ -12,8 +12,8 @@ elide-routines.os += hp-timing - - ifeq (yes,$(build-shared)) - # Compatibility --sysdep_routines += ia64libgcc --shared-only-routines += ia64libgcc -+sysdep_routines += libgcc-compat -+shared-only-routines += libgcc-compat - endif - endif - -diff -Nrup a/sysdeps/ia64/ia64libgcc.S b/sysdeps/ia64/ia64libgcc.S ---- a/sysdeps/ia64/ia64libgcc.S 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/ia64/ia64libgcc.S 1969-12-31 17:00:00.000000000 -0700 -@@ -1,350 +0,0 @@ --/* From the Intel IA-64 Optimization Guide, choose the minimum latency -- alternative. */ -- --#include --#undef ret -- --#include -- --#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_2_6) -- --/* __divtf3 -- Compute a 80-bit IEEE double-extended quotient. -- farg0 holds the dividend. farg1 holds the divisor. */ -- --ENTRY(___divtf3) -- cmp.eq p7, p0 = r0, r0 -- frcpa.s0 f10, p6 = farg0, farg1 -- ;; --(p6) cmp.ne p7, p0 = r0, r0 -- .pred.rel.mutex p6, p7 --(p6) fnma.s1 f11 = farg1, f10, f1 --(p6) fma.s1 f12 = farg0, f10, f0 -- ;; --(p6) fma.s1 f13 = f11, f11, f0 --(p6) fma.s1 f14 = f11, f11, f11 -- ;; --(p6) fma.s1 f11 = f13, f13, f11 --(p6) fma.s1 f13 = f14, f10, f10 -- ;; --(p6) fma.s1 f10 = f13, f11, f10 --(p6) fnma.s1 f11 = farg1, f12, farg0 -- ;; --(p6) fma.s1 f11 = f11, f10, f12 --(p6) fnma.s1 f12 = farg1, f10, f1 -- ;; --(p6) fma.s1 f10 = f12, f10, f10 --(p6) fnma.s1 f12 = farg1, f11, farg0 -- ;; --(p6) fma.s0 fret0 = f12, f10, f11 --(p7) mov fret0 = f10 -- br.ret.sptk rp --END(___divtf3) -- .symver ___divtf3, __divtf3@GLIBC_2.2 -- --/* __divdf3 -- Compute a 64-bit IEEE double quotient. -- farg0 holds the dividend. farg1 holds the divisor. */ -- --ENTRY(___divdf3) -- cmp.eq p7, p0 = r0, r0 -- frcpa.s0 f10, p6 = farg0, farg1 -- ;; --(p6) cmp.ne p7, p0 = r0, r0 -- .pred.rel.mutex p6, p7 --(p6) fmpy.s1 f11 = farg0, f10 --(p6) fnma.s1 f12 = farg1, f10, f1 -- ;; --(p6) fma.s1 f11 = f12, f11, f11 --(p6) fmpy.s1 f13 = f12, f12 -- ;; --(p6) fma.s1 f10 = f12, f10, f10 --(p6) fma.s1 f11 = f13, f11, f11 -- ;; --(p6) fmpy.s1 f12 = f13, f13 --(p6) fma.s1 f10 = f13, f10, f10 -- ;; --(p6) fma.d.s1 f11 = f12, f11, f11 --(p6) fma.s1 f10 = f12, f10, f10 -- ;; --(p6) fnma.d.s1 f8 = farg1, f11, farg0 -- ;; --(p6) fma.d fret0 = f8, f10, f11 --(p7) mov fret0 = f10 -- br.ret.sptk rp -- ;; --END(___divdf3) -- .symver ___divdf3, __divdf3@GLIBC_2.2 -- --/* __divsf3 -- Compute a 32-bit IEEE float quotient. -- farg0 holds the dividend. farg1 holds the divisor. */ -- --ENTRY(___divsf3) -- cmp.eq p7, p0 = r0, r0 -- frcpa.s0 f10, p6 = farg0, farg1 -- ;; --(p6) cmp.ne p7, p0 = r0, r0 -- .pred.rel.mutex p6, p7 --(p6) fmpy.s1 f8 = farg0, f10 --(p6) fnma.s1 f9 = farg1, f10, f1 -- ;; --(p6) fma.s1 f8 = f9, f8, f8 --(p6) fmpy.s1 f9 = f9, f9 -- ;; --(p6) fma.s1 f8 = f9, f8, f8 --(p6) fmpy.s1 f9 = f9, f9 -- ;; --(p6) fma.d.s1 f10 = f9, f8, f8 -- ;; --(p6) fnorm.s.s0 fret0 = f10 --(p7) mov fret0 = f10 -- br.ret.sptk rp -- ;; --END(___divsf3) -- .symver ___divsf3, __divsf3@GLIBC_2.2 -- --/* __divdi3 -- Compute a 64-bit integer quotient. -- in0 holds the dividend. in1 holds the divisor. */ -- --ENTRY(___divdi3) -- .regstk 2,0,0,0 -- /* Transfer inputs to FP registers. */ -- setf.sig f8 = in0 -- setf.sig f9 = in1 -- ;; -- /* Convert the inputs to FP, so that they won't be treated as -- unsigned. */ -- fcvt.xf f8 = f8 -- fcvt.xf f9 = f9 -- ;; -- /* Compute the reciprocal approximation. */ -- frcpa.s1 f10, p6 = f8, f9 -- ;; -- /* 3 Newton-Raphson iterations. */ --(p6) fnma.s1 f11 = f9, f10, f1 --(p6) fmpy.s1 f12 = f8, f10 -- ;; --(p6) fmpy.s1 f13 = f11, f11 --(p6) fma.s1 f12 = f11, f12, f12 -- ;; --(p6) fma.s1 f10 = f11, f10, f10 --(p6) fma.s1 f11 = f13, f12, f12 -- ;; --(p6) fma.s1 f10 = f13, f10, f10 --(p6) fnma.s1 f12 = f9, f11, f8 -- ;; --(p6) fma.s1 f10 = f12, f10, f11 -- ;; -- /* Round quotient to an integer. */ -- fcvt.fx.trunc.s1 f10 = f10 -- ;; -- /* Transfer result to GP registers. */ -- getf.sig ret0 = f10 -- br.ret.sptk rp -- ;; --END(___divdi3) -- .symver ___divdi3, __divdi3@GLIBC_2.2 -- --/* __moddi3 -- Compute a 64-bit integer modulus. -- in0 holds the dividend (a). in1 holds the divisor (b). */ -- --ENTRY(___moddi3) -- .regstk 2,0,0,0 -- /* Transfer inputs to FP registers. */ -- setf.sig f14 = in0 -- setf.sig f9 = in1 -- ;; -- /* Convert the inputs to FP, so that they won't be treated as -- unsigned. */ -- fcvt.xf f8 = f14 -- fcvt.xf f9 = f9 -- ;; -- /* Compute the reciprocal approximation. */ -- frcpa.s1 f10, p6 = f8, f9 -- ;; -- /* 3 Newton-Raphson iterations. */ --(p6) fmpy.s1 f12 = f8, f10 --(p6) fnma.s1 f11 = f9, f10, f1 -- ;; --(p6) fma.s1 f12 = f11, f12, f12 --(p6) fmpy.s1 f13 = f11, f11 -- ;; --(p6) fma.s1 f10 = f11, f10, f10 --(p6) fma.s1 f11 = f13, f12, f12 -- ;; -- sub in1 = r0, in1 --(p6) fma.s1 f10 = f13, f10, f10 --(p6) fnma.s1 f12 = f9, f11, f8 -- ;; -- setf.sig f9 = in1 --(p6) fma.s1 f10 = f12, f10, f11 -- ;; -- fcvt.fx.trunc.s1 f10 = f10 -- ;; -- /* r = q * (-b) + a */ -- xma.l f10 = f10, f9, f14 -- ;; -- /* Transfer result to GP registers. */ -- getf.sig ret0 = f10 -- br.ret.sptk rp -- ;; --END(___moddi3) -- .symver ___moddi3, __moddi3@GLIBC_2.2 -- --/* __udivdi3 -- Compute a 64-bit unsigned integer quotient. -- in0 holds the dividend. in1 holds the divisor. */ -- --ENTRY(___udivdi3) -- .regstk 2,0,0,0 -- /* Transfer inputs to FP registers. */ -- setf.sig f8 = in0 -- setf.sig f9 = in1 -- ;; -- /* Convert the inputs to FP, to avoid FP software-assist faults. */ -- fcvt.xuf.s1 f8 = f8 -- fcvt.xuf.s1 f9 = f9 -- ;; -- /* Compute the reciprocal approximation. */ -- frcpa.s1 f10, p6 = f8, f9 -- ;; -- /* 3 Newton-Raphson iterations. */ --(p6) fnma.s1 f11 = f9, f10, f1 --(p6) fmpy.s1 f12 = f8, f10 -- ;; --(p6) fmpy.s1 f13 = f11, f11 --(p6) fma.s1 f12 = f11, f12, f12 -- ;; --(p6) fma.s1 f10 = f11, f10, f10 --(p6) fma.s1 f11 = f13, f12, f12 -- ;; --(p6) fma.s1 f10 = f13, f10, f10 --(p6) fnma.s1 f12 = f9, f11, f8 -- ;; --(p6) fma.s1 f10 = f12, f10, f11 -- ;; -- /* Round quotient to an unsigned integer. */ -- fcvt.fxu.trunc.s1 f10 = f10 -- ;; -- /* Transfer result to GP registers. */ -- getf.sig ret0 = f10 -- br.ret.sptk rp -- ;; --END(___udivdi3) -- .symver ___udivdi3, __udivdi3@GLIBC_2.2 -- --/* __umoddi3 -- Compute a 64-bit unsigned integer modulus. -- in0 holds the dividend (a). in1 holds the divisor (b). */ -- --ENTRY(___umoddi3) -- .regstk 2,0,0,0 -- /* Transfer inputs to FP registers. */ -- setf.sig f14 = in0 -- setf.sig f9 = in1 -- ;; -- /* Convert the inputs to FP, to avoid FP software assist faults. */ -- fcvt.xuf.s1 f8 = f14 -- fcvt.xuf.s1 f9 = f9 -- ;; -- /* Compute the reciprocal approximation. */ -- frcpa.s1 f10, p6 = f8, f9 -- ;; -- /* 3 Newton-Raphson iterations. */ --(p6) fmpy.s1 f12 = f8, f10 --(p6) fnma.s1 f11 = f9, f10, f1 -- ;; --(p6) fma.s1 f12 = f11, f12, f12 --(p6) fmpy.s1 f13 = f11, f11 -- ;; --(p6) fma.s1 f10 = f11, f10, f10 --(p6) fma.s1 f11 = f13, f12, f12 -- ;; -- sub in1 = r0, in1 --(p6) fma.s1 f10 = f13, f10, f10 --(p6) fnma.s1 f12 = f9, f11, f8 -- ;; -- setf.sig f9 = in1 --(p6) fma.s1 f10 = f12, f10, f11 -- ;; -- /* Round quotient to an unsigned integer. */ -- fcvt.fxu.trunc.s1 f10 = f10 -- ;; -- /* r = q * (-b) + a */ -- xma.l f10 = f10, f9, f14 -- ;; -- /* Transfer result to GP registers. */ -- getf.sig ret0 = f10 -- br.ret.sptk rp -- ;; --END(___umoddi3) -- .symver ___umoddi3, __umoddi3@GLIBC_2.2 -- --/* __multi3 -- Compute a 128-bit multiply of 128-bit multiplicands. -- in0/in1 holds one multiplicand (a), in2/in3 holds the other one (b). */ -- --ENTRY(___multi3) -- .regstk 4,0,0,0 -- setf.sig f6 = in1 -- movl r19 = 0xffffffff -- setf.sig f7 = in2 -- ;; -- and r14 = r19, in0 -- ;; -- setf.sig f10 = r14 -- and r14 = r19, in2 -- xmpy.l f9 = f6, f7 -- ;; -- setf.sig f6 = r14 -- shr.u r14 = in0, 32 -- ;; -- setf.sig f7 = r14 -- shr.u r14 = in2, 32 -- ;; -- setf.sig f8 = r14 -- xmpy.l f11 = f10, f6 -- xmpy.l f6 = f7, f6 -- ;; -- getf.sig r16 = f11 -- xmpy.l f7 = f7, f8 -- ;; -- shr.u r14 = r16, 32 -- and r16 = r19, r16 -- getf.sig r17 = f6 -- setf.sig f6 = in0 -- ;; -- setf.sig f11 = r14 -- getf.sig r21 = f7 -- setf.sig f7 = in3 -- ;; -- xma.l f11 = f10, f8, f11 -- xma.l f6 = f6, f7, f9 -- ;; -- getf.sig r18 = f11 -- ;; -- add r18 = r18, r17 -- ;; -- and r15 = r19, r18 -- cmp.ltu p7, p6 = r18, r17 -- ;; -- getf.sig r22 = f6 --(p7) adds r14 = 1, r19 -- ;; --(p7) add r21 = r21, r14 -- shr.u r14 = r18, 32 -- shl r15 = r15, 32 -- ;; -- add r20 = r21, r14 -- ;; -- add ret0 = r15, r16 -- add ret1 = r22, r20 -- br.ret.sptk rp -- ;; --END(___multi3) -- .symver ___multi3, __multi3@GLIBC_2.2 -- --#endif -diff -Nrup a/sysdeps/ia64/libgcc-compat.c b/sysdeps/ia64/libgcc-compat.c ---- a/sysdeps/ia64/libgcc-compat.c 1969-12-31 17:00:00.000000000 -0700 -+++ b/sysdeps/ia64/libgcc-compat.c 2012-04-05 15:41:04.372889408 -0600 +diff -Nrup c/sysdeps/ia64/libgcc-compat.c d/sysdeps/ia64/libgcc-compat.c +--- c/sysdeps/ia64/libgcc-compat.c 1969-12-31 17:00:00.000000000 -0700 ++++ d/sysdeps/ia64/libgcc-compat.c 2012-05-20 23:09:09.184654770 -0600 @@ -0,0 +1,84 @@ +/* pre-.hidden libgcc compatibility + Copyright (C) 2002 Free Software Foundation, Inc. @@ -3426,18 +2860,18 @@ diff -Nrup a/sysdeps/ia64/libgcc-compat.c b/sysdeps/ia64/libgcc-compat.c +symbol_version (INTUSE (__multi3), __multi3, GLIBC_2.2); + +#endif -diff -Nrup a/sysdeps/mach/hurd/getrlimit.c b/sysdeps/mach/hurd/getrlimit.c ---- a/sysdeps/mach/hurd/getrlimit.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/mach/hurd/getrlimit.c 2012-04-05 15:41:04.372889408 -0600 -@@ -44,4 +44,5 @@ __getrlimit (enum __rlimit_resource reso +diff -Nrup c/sysdeps/mach/hurd/getrlimit.c d/sysdeps/mach/hurd/getrlimit.c +--- c/sysdeps/mach/hurd/getrlimit.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/mach/hurd/getrlimit.c 2012-05-20 23:09:09.214654625 -0600 +@@ -43,4 +43,5 @@ __getrlimit (enum __rlimit_resource reso return 0; } +libc_hidden_def (__getrlimit) weak_alias (__getrlimit, getrlimit) -diff -Nrup a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c ---- a/sysdeps/posix/getaddrinfo.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/posix/getaddrinfo.c 2012-04-05 15:41:04.374889397 -0600 +diff -Nrup c/sysdeps/posix/getaddrinfo.c d/sysdeps/posix/getaddrinfo.c +--- c/sysdeps/posix/getaddrinfo.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/posix/getaddrinfo.c 2012-05-20 23:09:09.216654615 -0600 @@ -565,8 +565,8 @@ gaih_inet (const char *name, const struc /* If we do not have to look for IPv6 addresses, use @@ -3562,30 +2996,23 @@ diff -Nrup a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c /* Default: scope 14. */ { { { 0, 0, 0, 0 } }, htonl_c (0x00000000), 14 } }; -diff -Nrup a/sysdeps/powerpc/powerpc64/Makefile b/sysdeps/powerpc/powerpc64/Makefile ---- a/sysdeps/powerpc/powerpc64/Makefile 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/powerpc/powerpc64/Makefile 2012-04-05 15:41:04.374889397 -0600 -@@ -33,6 +33,7 @@ ifneq ($(elf),no) - # we use -fpic instead which is much better. - CFLAGS-initfini.s += -fpic -O1 - endif -+CFLAGS-libc-start.c += -fno-asynchronous-unwind-tables - endif - - ifeq ($(subdir),elf) -diff -Nrup a/sysdeps/powerpc/powerpc64/elf/Makefile b/sysdeps/powerpc/powerpc64/elf/Makefile ---- a/sysdeps/powerpc/powerpc64/elf/Makefile 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/powerpc/powerpc64/elf/Makefile 2012-04-05 15:41:04.375889392 -0600 -@@ -9,3 +9,5 @@ CFLAGS-rtld-mempcpy.os = $(no-special-re - CFLAGS-rtld-memmove.os = $(no-special-regs) +diff -Nrup c/sysdeps/powerpc/powerpc64/Makefile d/sysdeps/powerpc/powerpc64/Makefile +--- c/sysdeps/powerpc/powerpc64/Makefile 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/powerpc/powerpc64/Makefile 2012-05-20 23:19:58.698579498 -0600 +@@ -35,6 +35,9 @@ CFLAGS-rtld-memmove.os = $(no-special-re CFLAGS-rtld-memchr.os = $(no-special-regs) CFLAGS-rtld-strnlen.os = $(no-special-regs) -+ + ++CFLAGS-libc-start.c += -fno-asynchronous-unwind-tables +CFLAGS-gmon-start.c = -fno-strict-aliasing -diff -Nrup 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 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/s390/s390-64/utf16-utf32-z9.c 2012-04-05 15:41:04.376889386 -0600 -@@ -169,10 +169,7 @@ gconv_end (struct __gconv_step *data) ++ + ifeq ($(subdir),csu) + sysdep_routines += hp-timing + elide-routines.os += hp-timing +diff -Nrup c/sysdeps/s390/s390-64/utf16-utf32-z9.c d/sysdeps/s390/s390-64/utf16-utf32-z9.c +--- c/sysdeps/s390/s390-64/utf16-utf32-z9.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/s390/s390-64/utf16-utf32-z9.c 2012-05-20 23:09:49.644460330 -0600 +@@ -168,10 +168,7 @@ gconv_end (struct __gconv_step *data) register unsigned long long outlen asm("11") = outend - outptr; \ uint64_t cc = 0; \ \ @@ -3597,10 +3024,10 @@ diff -Nrup a/sysdeps/s390/s390-64/utf16-utf32-z9.c b/sysdeps/s390/s390-64/utf16- " jo 0b \n\t" \ " ipm %2 \n" \ : "+a" (pOutput), "+a" (pInput), "+d" (cc), \ -diff -Nrup 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 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/s390/s390-64/utf8-utf16-z9.c 2012-04-05 15:41:04.377889380 -0600 -@@ -151,10 +151,7 @@ gconv_end (struct __gconv_step *data) +diff -Nrup c/sysdeps/s390/s390-64/utf8-utf16-z9.c d/sysdeps/s390/s390-64/utf8-utf16-z9.c +--- c/sysdeps/s390/s390-64/utf8-utf16-z9.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/s390/s390-64/utf8-utf16-z9.c 2012-05-20 23:09:49.645460325 -0600 +@@ -150,10 +150,7 @@ gconv_end (struct __gconv_step *data) register unsigned long long outlen asm("11") = outend - outptr; \ uint64_t cc = 0; \ \ @@ -3612,10 +3039,10 @@ diff -Nrup a/sysdeps/s390/s390-64/utf8-utf16-z9.c b/sysdeps/s390/s390-64/utf8-ut " jo 0b \n\t" \ " ipm %2 \n" \ : "+a" (pOutput), "+a" (pInput), "+d" (cc), \ -diff -Nrup 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 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/s390/s390-64/utf8-utf32-z9.c 2012-04-05 15:41:04.378889375 -0600 -@@ -155,10 +155,7 @@ gconv_end (struct __gconv_step *data) +diff -Nrup c/sysdeps/s390/s390-64/utf8-utf32-z9.c d/sysdeps/s390/s390-64/utf8-utf32-z9.c +--- c/sysdeps/s390/s390-64/utf8-utf32-z9.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/s390/s390-64/utf8-utf32-z9.c 2012-05-20 23:09:49.646460320 -0600 +@@ -154,10 +154,7 @@ gconv_end (struct __gconv_step *data) register unsigned long long outlen asm("11") = outend - outptr; \ uint64_t cc = 0; \ \ @@ -3627,10 +3054,10 @@ diff -Nrup a/sysdeps/s390/s390-64/utf8-utf32-z9.c b/sysdeps/s390/s390-64/utf8-ut " jo 0b \n\t" \ " ipm %2 \n" \ : "+a" (pOutput), "+a" (pInput), "+d" (cc), \ -diff -Nrup a/sysdeps/unix/nice.c b/sysdeps/unix/nice.c ---- a/sysdeps/unix/nice.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/unix/nice.c 2012-04-05 15:41:04.380889365 -0600 -@@ -42,7 +42,12 @@ nice (int incr) +diff -Nrup c/sysdeps/unix/nice.c d/sysdeps/unix/nice.c +--- c/sysdeps/unix/nice.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/unix/nice.c 2012-05-20 23:09:49.646460320 -0600 +@@ -41,7 +41,12 @@ nice (int incr) __set_errno (save); } @@ -3644,10 +3071,10 @@ diff -Nrup a/sysdeps/unix/nice.c b/sysdeps/unix/nice.c if (result == -1) { if (errno == EACCES) -diff -Nrup a/sysdeps/unix/sysv/linux/check_pf.c b/sysdeps/unix/sysv/linux/check_pf.c ---- a/sysdeps/unix/sysv/linux/check_pf.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/unix/sysv/linux/check_pf.c 2012-04-05 15:41:04.381889359 -0600 -@@ -27,16 +27,14 @@ +diff -Nrup c/sysdeps/unix/sysv/linux/check_pf.c d/sysdeps/unix/sysv/linux/check_pf.c +--- c/sysdeps/unix/sysv/linux/check_pf.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/unix/sysv/linux/check_pf.c 2012-05-20 23:09:49.647460315 -0600 +@@ -26,16 +26,14 @@ #include #include @@ -3666,10 +3093,10 @@ diff -Nrup a/sysdeps/unix/sysv/linux/check_pf.c b/sysdeps/unix/sysv/linux/check_ #ifndef IFA_F_HOMEADDRESS # define IFA_F_HOMEADDRESS 0 -diff -Nrup a/sysdeps/unix/sysv/linux/futimesat.c b/sysdeps/unix/sysv/linux/futimesat.c ---- a/sysdeps/unix/sysv/linux/futimesat.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/unix/sysv/linux/futimesat.c 2012-04-05 15:41:04.381889359 -0600 -@@ -37,14 +37,14 @@ futimesat (fd, file, tvp) +diff -Nrup c/sysdeps/unix/sysv/linux/futimesat.c d/sysdeps/unix/sysv/linux/futimesat.c +--- c/sysdeps/unix/sysv/linux/futimesat.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/unix/sysv/linux/futimesat.c 2012-05-20 23:09:49.648460310 -0600 +@@ -36,14 +36,14 @@ futimesat (fd, file, tvp) { int result; @@ -3687,7 +3114,7 @@ diff -Nrup a/sysdeps/unix/sysv/linux/futimesat.c b/sysdeps/unix/sysv/linux/futim result = INLINE_SYSCALL (futimesat, 3, fd, file, tvp); # ifndef __ASSUME_ATFCTS if (result == -1 && errno == ENOSYS) -@@ -58,22 +58,7 @@ futimesat (fd, file, tvp) +@@ -57,22 +57,7 @@ futimesat (fd, file, tvp) #ifndef __ASSUME_ATFCTS char *buf = NULL; @@ -3711,9 +3138,9 @@ diff -Nrup a/sysdeps/unix/sysv/linux/futimesat.c b/sysdeps/unix/sysv/linux/futim { size_t filelen = strlen (file); if (__builtin_expect (filelen == 0, 0)) -diff -Nrup 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 1969-12-31 17:00:00.000000000 -0700 -+++ b/sysdeps/unix/sysv/linux/i386/dl-cache.h 2012-04-05 15:41:04.382889354 -0600 +diff -Nrup c/sysdeps/unix/sysv/linux/i386/dl-cache.h d/sysdeps/unix/sysv/linux/i386/dl-cache.h +--- c/sysdeps/unix/sysv/linux/i386/dl-cache.h 1969-12-31 17:00:00.000000000 -0700 ++++ d/sysdeps/unix/sysv/linux/i386/dl-cache.h 2012-05-20 23:09:49.648460310 -0600 @@ -0,0 +1,59 @@ +/* Support for reading /etc/ld.so.cache files written by Linux ldconfig. + Copyright (C) 2004 Free Software Foundation, Inc. @@ -3774,78 +3201,37 @@ diff -Nrup a/sysdeps/unix/sysv/linux/i386/dl-cache.h b/sysdeps/unix/sysv/linux/i + } while (0) + +#include_next -diff -Nrup a/sysdeps/unix/sysv/linux/i386/getrlimit.c b/sysdeps/unix/sysv/linux/i386/getrlimit.c ---- a/sysdeps/unix/sysv/linux/i386/getrlimit.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/unix/sysv/linux/i386/getrlimit.c 2012-04-05 15:41:04.383889348 -0600 -@@ -79,4 +79,5 @@ __new_getrlimit (enum __rlimit_resource +diff -Nrup c/sysdeps/unix/sysv/linux/i386/getrlimit.c d/sysdeps/unix/sysv/linux/i386/getrlimit.c +--- c/sysdeps/unix/sysv/linux/i386/getrlimit.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/unix/sysv/linux/i386/getrlimit.c 2012-05-20 23:09:49.649460305 -0600 +@@ -78,4 +78,5 @@ __new_getrlimit (enum __rlimit_resource } weak_alias (__new_getrlimit, __getrlimit); +libc_hidden_weak (__getrlimit) versioned_symbol (libc, __new_getrlimit, getrlimit, GLIBC_2_2); -diff -Nrup 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 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/unix/sysv/linux/ia64/dl-cache.h 2012-04-05 15:41:04.383889348 -0600 -@@ -22,4 +22,31 @@ - #define _dl_cache_check_flags(flags) \ - ((flags) == _DL_CACHE_DEFAULT_ID) - -+#define EMUL_HACK "/emul/ia32-linux" -+ -+#define arch_startup(argc, argv) unlink (EMUL_HACK LD_SO_CACHE) -+ -+#define add_arch_dirs(config_file) \ -+ do { \ -+ int save_verbose = opt_verbose; \ -+ opt_verbose = 0; \ -+ \ -+ parse_conf (config_file, EMUL_HACK, true); \ -+ \ -+ /* Always add the standard search paths. */ \ -+ add_system_dir (EMUL_HACK SLIBDIR); \ -+ if (strcmp (SLIBDIR, LIBDIR)) \ -+ add_system_dir (EMUL_HACK LIBDIR); \ -+ \ -+ char emul_config_file[strlen (config_file) \ -+ + sizeof EMUL_HACK]; \ -+ strcpy (mempcpy (emul_config_file, EMUL_HACK, \ -+ strlen (EMUL_HACK)), config_file); \ -+ \ -+ if (! access (emul_config_file, R_OK)) \ -+ parse_conf (emul_config_file, EMUL_HACK, true); \ -+ \ -+ opt_verbose = save_verbose; \ -+ } while (0) -+ - #include_next -diff -Nrup 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 1969-12-31 17:00:00.000000000 -0700 -+++ b/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c 2012-04-05 15:41:04.384889343 -0600 +diff -Nrup c/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c d/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c +--- c/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c 1969-12-31 17:00:00.000000000 -0700 ++++ d/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c 2012-05-20 23:09:56.233428665 -0600 @@ -0,0 +1,5 @@ +#ifdef IS_IN_ldconfig +#include +#else +#include +#endif -diff -Nrup 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 1969-12-31 17:00:00.000000000 -0700 -+++ b/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h 2012-04-05 15:41:04.419889156 -0600 +diff -Nrup c/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h d/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h +--- c/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h 1969-12-31 17:00:00.000000000 -0700 ++++ d/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h 2012-05-20 23:09:56.234428660 -0600 @@ -0,0 +1,5 @@ +#ifdef IS_IN_ldconfig +#include +#else +#include +#endif -diff -Nrup 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 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed 2012-04-05 15:41:04.420889150 -0600 -@@ -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"_ -diff -Nrup a/sysdeps/unix/sysv/linux/netlinkaccess.h b/sysdeps/unix/sysv/linux/netlinkaccess.h ---- a/sysdeps/unix/sysv/linux/netlinkaccess.h 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/unix/sysv/linux/netlinkaccess.h 2012-04-05 15:41:04.420889150 -0600 -@@ -25,6 +25,24 @@ +diff -Nrup c/sysdeps/unix/sysv/linux/netlinkaccess.h d/sysdeps/unix/sysv/linux/netlinkaccess.h +--- c/sysdeps/unix/sysv/linux/netlinkaccess.h 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/unix/sysv/linux/netlinkaccess.h 2012-05-20 23:09:58.405418226 -0600 +@@ -24,6 +24,24 @@ #include @@ -3870,9 +3256,9 @@ diff -Nrup a/sysdeps/unix/sysv/linux/netlinkaccess.h b/sysdeps/unix/sysv/linux/n struct netlink_res { -diff -Nrup a/sysdeps/unix/sysv/linux/paths.h b/sysdeps/unix/sysv/linux/paths.h ---- a/sysdeps/unix/sysv/linux/paths.h 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/unix/sysv/linux/paths.h 2012-04-05 15:41:04.421889143 -0600 +diff -Nrup c/sysdeps/unix/sysv/linux/paths.h d/sysdeps/unix/sysv/linux/paths.h +--- c/sysdeps/unix/sysv/linux/paths.h 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/unix/sysv/linux/paths.h 2012-05-20 23:09:58.406418222 -0600 @@ -62,7 +62,7 @@ #define _PATH_TTY "/dev/tty" #define _PATH_UNIX "/boot/vmlinux" @@ -3882,10 +3268,10 @@ diff -Nrup a/sysdeps/unix/sysv/linux/paths.h b/sysdeps/unix/sysv/linux/paths.h #define _PATH_WTMP "/var/log/wtmp" /* Provide trailing slash, since mostly used for building pathnames. */ -diff -Nrup a/sysdeps/unix/sysv/linux/tcsetattr.c b/sysdeps/unix/sysv/linux/tcsetattr.c ---- a/sysdeps/unix/sysv/linux/tcsetattr.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/unix/sysv/linux/tcsetattr.c 2012-04-05 15:41:04.421889143 -0600 -@@ -49,6 +49,7 @@ tcsetattr (fd, optional_actions, termios +diff -Nrup c/sysdeps/unix/sysv/linux/tcsetattr.c d/sysdeps/unix/sysv/linux/tcsetattr.c +--- c/sysdeps/unix/sysv/linux/tcsetattr.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/unix/sysv/linux/tcsetattr.c 2012-05-20 23:09:58.444418038 -0600 +@@ -48,6 +48,7 @@ tcsetattr (fd, optional_actions, termios { struct __kernel_termios k_termios; unsigned long int cmd; @@ -3893,7 +3279,7 @@ diff -Nrup a/sysdeps/unix/sysv/linux/tcsetattr.c b/sysdeps/unix/sysv/linux/tcset switch (optional_actions) { -@@ -80,6 +81,35 @@ tcsetattr (fd, optional_actions, termios +@@ -79,6 +80,35 @@ tcsetattr (fd, optional_actions, termios memcpy (&k_termios.c_cc[0], &termios_p->c_cc[0], __KERNEL_NCCS * sizeof (cc_t)); @@ -3930,15 +3316,3 @@ diff -Nrup a/sysdeps/unix/sysv/linux/tcsetattr.c b/sysdeps/unix/sysv/linux/tcset + return retval; } libc_hidden_def (tcsetattr) -diff -Nrup a/timezone/zic.c b/timezone/zic.c ---- a/timezone/zic.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/timezone/zic.c 2012-04-05 15:41:04.422889137 -0600 -@@ -1921,7 +1921,7 @@ const int zonecount; - if (stdrp != NULL && stdrp->r_hiyear == 2037) - return; - } -- if (stdrp == NULL && zp->z_nrules != 0) -+ if (stdrp == NULL && (zp->z_nrules != 0 || zp->z_stdoff != 0)) - return; - abbrvar = (stdrp == NULL) ? "" : stdrp->r_abbrvar; - doabbr(result, zp->z_format, abbrvar, FALSE, TRUE); diff --git a/glibc-rh179072.patch b/glibc-rh179072.patch index d17fd13..0ce664c 100644 --- a/glibc-rh179072.patch +++ b/glibc-rh179072.patch @@ -1,7 +1,7 @@ -diff -Nrup a/elf/dl-close.c b/elf/dl-close.c ---- a/elf/dl-close.c 2012-01-25 21:49:58.892869984 -0700 -+++ b/elf/dl-close.c 2012-01-25 21:50:22.283882509 -0700 -@@ -32,6 +32,7 @@ +diff -Nrup c/elf/dl-close.c d/elf/dl-close.c +--- c/elf/dl-close.c 2012-05-21 00:08:02.410897531 -0600 ++++ d/elf/dl-close.c 2012-05-21 00:08:40.874716006 -0600 +@@ -31,6 +31,7 @@ #include #include #include @@ -9,7 +9,7 @@ diff -Nrup a/elf/dl-close.c b/elf/dl-close.c /* Type of the constructor functions. */ -@@ -469,6 +470,7 @@ _dl_close_worker (struct link_map *map) +@@ -468,6 +469,7 @@ _dl_close_worker (struct link_map *map) struct r_debug *r = _dl_debug_initialize (0, nsid); r->r_state = RT_DELETE; _dl_debug_state (); @@ -17,7 +17,7 @@ diff -Nrup a/elf/dl-close.c b/elf/dl-close.c if (unload_global) { -@@ -738,6 +740,7 @@ _dl_close_worker (struct link_map *map) +@@ -737,6 +739,7 @@ _dl_close_worker (struct link_map *map) /* Notify the debugger those objects are finalized and gone. */ r->r_state = RT_CONSISTENT; _dl_debug_state (); @@ -25,10 +25,10 @@ diff -Nrup a/elf/dl-close.c b/elf/dl-close.c /* Recheck if we need to retry, release the lock. */ out: -diff -Nrup a/elf/dl-load.c b/elf/dl-load.c ---- a/elf/dl-load.c 2012-01-25 21:49:58.895869986 -0700 -+++ b/elf/dl-load.c 2012-01-25 21:50:22.288882511 -0700 -@@ -36,6 +36,7 @@ +diff -Nrup c/elf/dl-load.c d/elf/dl-load.c +--- c/elf/dl-load.c 2012-05-21 00:08:02.219898432 -0600 ++++ d/elf/dl-load.c 2012-05-21 00:08:40.876715997 -0600 +@@ -35,6 +35,7 @@ #include #include #include @@ -36,7 +36,7 @@ diff -Nrup a/elf/dl-load.c b/elf/dl-load.c #include -@@ -881,7 +882,7 @@ _dl_init_paths (const char *llp) +@@ -880,7 +881,7 @@ _dl_init_paths (const char *llp) static void __attribute__ ((noreturn, noinline)) lose (int code, int fd, const char *name, char *realname, struct link_map *l, @@ -45,7 +45,7 @@ diff -Nrup a/elf/dl-load.c b/elf/dl-load.c { /* The file might already be closed. */ if (fd != -1) -@@ -895,6 +896,7 @@ lose (int code, int fd, const char *name +@@ -894,6 +895,7 @@ lose (int code, int fd, const char *name { r->r_state = RT_CONSISTENT; _dl_debug_state (); @@ -53,7 +53,7 @@ diff -Nrup a/elf/dl-load.c b/elf/dl-load.c } _dl_signal_error (code, name, NULL, msg); -@@ -933,7 +935,7 @@ _dl_map_object_from_fd (const char *name +@@ -932,7 +934,7 @@ _dl_map_object_from_fd (const char *name errval = errno; call_lose: lose (errval, fd, name, realname, l, errstring, @@ -62,7 +62,7 @@ diff -Nrup a/elf/dl-load.c b/elf/dl-load.c } /* Look again to see if the real name matched another already loaded. */ -@@ -1040,6 +1042,7 @@ _dl_map_object_from_fd (const char *name +@@ -1039,6 +1041,7 @@ _dl_map_object_from_fd (const char *name linking has not been used before. */ r->r_state = RT_ADD; _dl_debug_state (); @@ -70,7 +70,7 @@ diff -Nrup a/elf/dl-load.c b/elf/dl-load.c make_consistent = true; } else -@@ -1735,7 +1738,7 @@ open_verify (const char *name, struct fi +@@ -1734,7 +1737,7 @@ open_verify (const char *name, struct fi name = strdupa (realname); free (realname); } @@ -79,10 +79,10 @@ diff -Nrup a/elf/dl-load.c b/elf/dl-load.c } /* See whether the ELF header is what we expect. */ -diff -Nrup a/elf/dl-open.c b/elf/dl-open.c ---- a/elf/dl-open.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/elf/dl-open.c 2012-01-25 21:50:22.291882514 -0700 -@@ -33,6 +33,7 @@ +diff -Nrup c/elf/dl-open.c d/elf/dl-open.c +--- c/elf/dl-open.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/elf/dl-open.c 2012-05-21 00:11:29.229920776 -0600 +@@ -32,6 +32,7 @@ #include #include #include @@ -90,7 +90,7 @@ diff -Nrup a/elf/dl-open.c b/elf/dl-open.c #include -@@ -292,6 +293,7 @@ dl_open_worker (void *a) +@@ -291,6 +292,7 @@ dl_open_worker (void *a) struct r_debug *r = _dl_debug_initialize (0, args->nsid); r->r_state = RT_CONSISTENT; _dl_debug_state (); @@ -98,26 +98,27 @@ diff -Nrup a/elf/dl-open.c b/elf/dl-open.c /* Print scope information. */ if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES, 0)) -@@ -308,10 +310,18 @@ dl_open_worker (void *a) - struct link_map *l = new; - while (l->l_next) - l = l->l_next; +@@ -376,10 +378,19 @@ dl_open_worker (void *a) + } + } + + int relocation_in_progress = 0; - while (1) ++ + for (size_t i = nmaps; i-- > 0; ) { - if (! l->l_real->l_relocated) - { -+ if (! relocation_in_progress) -+ { -+ /* Notify the debugger that relocations are about to happen. */ -+ LIBC_PROBE (rtld_reloc_start, 2, args->nsid, r); -+ relocation_in_progress = 1; -+ } + l = maps[i]; + ++ if (! relocation_in_progress) ++ { ++ /* Notify the debugger that relocations are about to happen. */ ++ LIBC_PROBE (rtld_reloc_start, 2, args->nsid, r); ++ relocation_in_progress = 1; ++ } + #ifdef SHARED - if (__builtin_expect (GLRO(dl_profile) != NULL, 0)) - { -@@ -481,6 +491,10 @@ cannot load any more object with static + if (__builtin_expect (GLRO(dl_profile) != NULL, 0)) + { +@@ -544,6 +555,10 @@ cannot load any more object with static } } @@ -128,10 +129,10 @@ diff -Nrup a/elf/dl-open.c b/elf/dl-open.c /* Run the initializer functions of new objects. */ _dl_init (new, args->argc, args->argv, args->env); -diff -Nrup a/elf/rtld.c b/elf/rtld.c ---- a/elf/rtld.c 2012-01-25 21:49:58.898869987 -0700 -+++ b/elf/rtld.c 2012-01-25 21:53:42.262987201 -0700 -@@ -40,6 +40,7 @@ +diff -Nrup c/elf/rtld.c d/elf/rtld.c +--- c/elf/rtld.c 2012-05-21 00:08:02.415897505 -0600 ++++ d/elf/rtld.c 2012-05-21 00:08:40.917715803 -0600 +@@ -39,6 +39,7 @@ #include #include #include @@ -139,7 +140,7 @@ diff -Nrup a/elf/rtld.c b/elf/rtld.c #include #include -@@ -1670,6 +1671,7 @@ ERROR: ld.so: object '%s' cannot be load +@@ -1681,6 +1682,7 @@ ERROR: ld.so: object '%s' cannot be load /* We start adding objects. */ r->r_state = RT_ADD; _dl_debug_state (); @@ -147,7 +148,7 @@ diff -Nrup a/elf/rtld.c b/elf/rtld.c /* Auditing checkpoint: we are ready to signal that the initial map is being constructed. */ -@@ -2382,6 +2384,7 @@ ERROR: ld.so: object '%s' cannot be load +@@ -2398,6 +2400,7 @@ ERROR: ld.so: object '%s' cannot be load r = _dl_debug_initialize (0, LM_ID_BASE); r->r_state = RT_CONSISTENT; _dl_debug_state (); diff --git a/glibc-rh454629.patch b/glibc-rh454629.patch deleted file mode 100644 index 42f93e1..0000000 --- a/glibc-rh454629.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/localedata/locales/ca_ES b/localedata/locales/ca_ES -index cd83bcc..3c14340 100644 ---- a/localedata/locales/ca_ES -+++ b/localedata/locales/ca_ES -@@ -138,6 +138,8 @@ t_fmt_ampm "" - date_fmt "/ - / - " -+first_weekday 2 -+first_workday 2 - END LC_TIME - - LC_PAPER diff --git a/glibc-rh624296.patch b/glibc-rh624296.patch deleted file mode 100644 index c03994b..0000000 --- a/glibc-rh624296.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -rup a/localedata/locales/ru_UA b/localedata/locales/ru_UA ---- a/localedata/locales/ru_UA 2012-01-01 05:16:32.000000000 -0700 -+++ b/localedata/locales/ru_UA 2012-02-09 22:57:29.698433625 -0700 -@@ -141,6 +141,8 @@ t_fmt_ampm "" - date_fmt "/ - / - " -+first_weekday 2 -+first_workday 2 - END LC_TIME - - LC_PAPER -Only in b/localedata/locales: uk_UA.rej diff --git a/glibc-rh740506.patch b/glibc-rh740506.patch deleted file mode 100644 index 99cf22c..0000000 --- a/glibc-rh740506.patch +++ /dev/null @@ -1,40 +0,0 @@ - * 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. - -commit 41b81892f11fe1353123e892158b53de73863d62 -Author: Ulrich Drepper -Date: Tue Jan 31 14:42:34 2012 -0500 - - Handle ARENA_TEST correctly - -diff --git a/malloc/arena.c b/malloc/arena.c -index d3cf4b9..b1c9469 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 (); - -@@ -842,7 +842,14 @@ arena_get2(mstate a_tsd, size_t size) - } - repeat:; - size_t n = narenas; -- if (__builtin_expect (n <= mp_.arena_test || n < narenas_limit, 0)) -+ /* NB: the following depends on the fact that (size_t)0 - 1 is a -+ very large number and that the underflow is OK. If arena_max -+ is set the value of arena_test is irrelevant. If arena_test -+ is set but narenas is not yet larger or equal to arena_test -+ narenas_limit is 0. There is no possibility for narenas to -+ be too big for the test to always fail since there is not -+ enough address space to create that many arenas. */ -+ if (__builtin_expect (n <= narenas_limit - 1, 0)) - { - if (catomic_compare_and_exchange_bool_acq (&narenas, n + 1, n)) - goto repeat; diff --git a/glibc-rh740682.patch b/glibc-rh740682.patch index b0418d1..999d266 100644 --- a/glibc-rh740682.patch +++ b/glibc-rh740682.patch @@ -1,10 +1,10 @@ -diff -rup a/time/sys/time.h b/time/sys/time.h ---- a/time/sys/time.h 2012-01-01 05:16:32.000000000 -0700 -+++ b/time/sys/time.h 2012-01-26 11:16:44.309112430 -0700 -@@ -78,7 +78,7 @@ extern int gettimeofday (struct timeval +diff -rup c/time/sys/time.h d/time/sys/time.h +--- c/time/sys/time.h 2012-05-20 19:47:38.000000000 -0600 ++++ d/time/sys/time.h 2012-05-21 00:14:17.033127079 -0600 +@@ -77,7 +77,7 @@ extern int gettimeofday (struct timeval This call is restricted to the super-user. */ - extern int settimeofday (__const struct timeval *__tv, - __const struct timezone *__tz) + extern int settimeofday (const struct timeval *__tv, + const struct timezone *__tz) - __THROW __nonnull ((1)); + __THROW; diff --git a/glibc-rh758888.patch b/glibc-rh758888.patch deleted file mode 100644 index ccf9715..0000000 --- a/glibc-rh758888.patch +++ /dev/null @@ -1,52 +0,0 @@ -commit 1f393a11f65dcaa1952bdcaf0317a65a5f8aff9d -Author: Marek Polacek -Date: Wed Feb 29 15:28:38 2012 +0100 - - Always set l_used for vDSO. - -2012-02-29 Marek Polacek - - [BZ #13706] - * elf/rtld.c (dl_main): Always set l_used to 1 for vDSO. - * elf/Makefile: Add rules to run tst-unused-dep.out. - -diff --git a/elf/Makefile b/elf/Makefile -index 8234ba7..25ffc57 100644 ---- a/elf/Makefile -+++ b/elf/Makefile -@@ -1203,3 +1203,14 @@ $(objpfx)tst-relsort1mod1.so: $(libm) $(objpfx)tst-relsort1mod2.so - $(objpfx)tst-relsort1mod2.so: $(libm) - $(objpfx)tst-relsort1.out: $(objpfx)tst-relsort1mod1.so \ - $(objpfx)tst-relsort1mod2.so -+ -+tests: $(objpfx)tst-unused-dep.out -+ -+$(objpfx)tst-unused-dep.out: $(objpfx)testobj1.so -+ LD_TRACE_LOADED_OBJECTS=1 \ -+ LD_DEBUG=unused \ -+ LD_PRELOAD= \ -+ $(elf-objpfx)${rtld-installed-name} \ -+ --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \ -+ $< > $@ -+ cmp $@ /dev/null > /dev/null -diff --git a/elf/rtld.c b/elf/rtld.c -index 2e4f97f..3e15447 100644 ---- a/elf/rtld.c -+++ b/elf/rtld.c -@@ -1,5 +1,5 @@ - /* Run time dynamic linker. -- Copyright (C) 1995-2010, 2011 Free Software Foundation, Inc. -+ Copyright (C) 1995-2012 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or -@@ -1375,6 +1375,9 @@ of this helper program; chances are you did not intend to run this program.\n\ - _dl_setup_hash (l); - l->l_relocated = 1; - -+ /* The vDSO is always used. */ -+ l->l_used = 1; -+ - /* Initialize l_local_scope to contain just this map. This allows - the use of dl_lookup_symbol_x to resolve symbols within the vdso. - So we create a single entry list pointing to l_real as its only diff --git a/glibc-rh760935.patch b/glibc-rh760935.patch deleted file mode 100644 index d32e238..0000000 --- a/glibc-rh760935.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff -rup a/sysdeps/ieee754/dbl-64/w_exp.c b/sysdeps/ieee754/dbl-64/w_exp.c ---- a/sysdeps/ieee754/dbl-64/w_exp.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/ieee754/dbl-64/w_exp.c 2012-02-24 10:32:52.769230965 -0700 -@@ -32,12 +32,12 @@ __exp (double x) - if (__builtin_expect (x > o_threshold, 0)) - { - if (_LIB_VERSION != _IEEE_) -- return __kernel_standard_f (x, x, 6); -+ return __kernel_standard (x, x, 6); - } - else if (__builtin_expect (x < u_threshold, 0)) - { - if (_LIB_VERSION != _IEEE_) -- return __kernel_standard_f (x, x, 7); -+ return __kernel_standard (x, x, 7); - } - - return __ieee754_exp (x); diff --git a/glibc-rh769421.patch b/glibc-rh769421.patch index 996aba1..dd03490 100644 --- a/glibc-rh769421.patch +++ b/glibc-rh769421.patch @@ -1,6 +1,6 @@ -diff -Nrup 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 2012-01-01 20:52:51.546347249 -0700 -+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2012-01-01 20:57:21.880320786 -0700 +diff -Nrup c/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S d/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S +--- c/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2012-05-20 23:58:20.732670548 -0600 ++++ d/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2012-05-20 23:58:52.667518135 -0600 @@ -137,7 +137,6 @@ __pthread_cond_wait: cmpl $PI_BIT, %eax jne 18f @@ -109,10 +109,10 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/nptl/s .long .LcallUR-.LSTARTCODE .long .LENDCODE-.LcallUR .long 0 -diff -Nrup 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 2012-01-01 20:52:51.550347247 -0700 -+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2012-01-01 20:57:21.883320786 -0700 -@@ -137,14 +137,11 @@ __pthread_cond_wait: +diff -Nrup c/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S d/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S +--- c/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2012-05-20 23:58:20.736670528 -0600 ++++ d/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2012-05-21 00:01:39.870720001 -0600 +@@ -136,14 +136,11 @@ __pthread_cond_wait: cmpl $PI_BIT, %eax jne 61f @@ -127,11 +127,10 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysd #ifdef __ASSUME_REQUEUE_PI jmp 62f #else -@@ -331,70 +328,6 @@ __pthread_cond_wait: - +@@ -331,69 +328,6 @@ __pthread_cond_wait: 13: movq %r10, %rax jmp 14b -- + -91: -.LcleanupSTART2: - /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN. We need to @@ -152,7 +151,7 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysd -#if cond_lock != 0 - addq $cond_lock, %rdi -#endif -- cmpq $-1, dep_mutex-cond_lock(%rdi) +- LP_OP(cmp) $-1, dep_mutex-cond_lock(%rdi) - movl $LLL_PRIVATE, %eax - movl $LLL_SHARED, %esi - cmovne %eax, %esi @@ -178,7 +177,7 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysd -#if cond_lock != 0 - addq $cond_lock, %rdi -#endif -- cmpq $-1, dep_mutex-cond_lock(%rdi) +- LP_OP(cmp) $-1, dep_mutex-cond_lock(%rdi) - movl $LLL_PRIVATE, %eax - movl $LLL_SHARED, %esi - cmovne %eax, %esi @@ -190,7 +189,7 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysd -93: - /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */ - xorq %r10, %r10 -- movq dep_mutex(%rdi), %r8 +- mov dep_mutex(%rdi), %R8_LP - leaq cond_futex(%rdi), %rdi - jmp 90b -.LcleanupEND2: @@ -198,7 +197,7 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysd .size __pthread_cond_wait, .-__pthread_cond_wait versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait, GLIBC_2_3_2) -@@ -547,15 +480,11 @@ __condvar_cleanup1: +@@ -546,15 +480,11 @@ __condvar_cleanup1: .uleb128 .LcleanupSTART-.LSTARTCODE .uleb128 .LcleanupEND-.LcleanupSTART .uleb128 __condvar_cleanup1-.LSTARTCODE diff --git a/glibc-rh770869.patch b/glibc-rh770869.patch index f9c3a3b..8757641 100644 --- a/glibc-rh770869.patch +++ b/glibc-rh770869.patch @@ -21,101 +21,3 @@ diff -rup a/fedora/nscd.service b/fedora/nscd.service [Install] WantedBy=multi-user.target -diff -rup a/nscd/nscd.c b/nscd/nscd.c ---- a/nscd/nscd.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/nscd/nscd.c 2012-02-03 13:07:50.509740586 -0700 -@@ -72,7 +72,12 @@ thread_info_t thread_info; - int do_shutdown; - int disabled_passwd; - int disabled_group; --int go_background = 1; -+ -+/* Default is to daemonize. Set to 1 to run in foreground in -+ debugging mode, or negative to run in foreground but otherwise -+ behave like a daemon, i.e., detach from terminal and use -+ syslog. */ -+static int run_in_foreground = 0; - - static const char *conffile = _PATH_NSCDCONF; - -@@ -104,6 +109,8 @@ static const struct argp_option options[ - N_("Read configuration data from NAME") }, - { "debug", 'd', NULL, 0, - N_("Do not fork and display messages on the current tty") }, -+ { "foreground", 'F', NULL, 0, -+ N_("Do not fork, but otherwise behave like a deamon") }, - { "nthreads", 't', N_("NUMBER"), 0, N_("Start NUMBER threads") }, - { "shutdown", 'K', NULL, 0, N_("Shut the server down") }, - { "statistics", 'g', NULL, 0, N_("Print current configuration statistics") }, -@@ -174,16 +181,22 @@ main (int argc, char **argv) - /* Determine page size. */ - pagesize_m1 = getpagesize () - 1; - -- /* Behave like a daemon. */ -- if (go_background) -+ if (run_in_foreground <= 0) - { - int i; -+ pid_t pid; - -- pid_t pid = fork (); -- if (pid == -1) -- error (EXIT_FAILURE, errno, _("cannot fork")); -- if (pid != 0) -- exit (0); -+ /* Behave like a daemon. */ -+ if (!run_in_foreground) -+ { -+ pid = fork (); -+ if (pid == -1) -+ error (EXIT_FAILURE, errno, _("cannot fork")); -+ if (pid != 0) -+ exit (0); -+ } -+ else -+ fprintf (stderr, _("further output sent to syslog\n")); - - int nullfd = open (_PATH_DEVNULL, O_RDWR); - if (nullfd != -1) -@@ -234,11 +247,14 @@ main (int argc, char **argv) - for (i = min_close_fd; i < getdtablesize (); i++) - close (i); - -- pid = fork (); -- if (pid == -1) -- error (EXIT_FAILURE, errno, _("cannot fork")); -- if (pid != 0) -- exit (0); -+ if (!run_in_foreground) -+ { -+ pid = fork (); -+ if (pid == -1) -+ error (EXIT_FAILURE, errno, _("cannot fork")); -+ if (pid != 0) -+ exit (0); -+ } - - setsid (); - -@@ -260,7 +276,7 @@ main (int argc, char **argv) - signal (SIGTSTP, SIG_IGN); - } - else -- /* In foreground mode we are not paranoid. */ -+ /* In debug mode we are not paranoid. */ - paranoia = 0; - - signal (SIGINT, termination_handler); -@@ -309,7 +325,11 @@ parse_opt (int key, char *arg, struct ar - { - case 'd': - ++debug_level; -- go_background = 0; -+ run_in_foreground = 1; -+ break; -+ -+ case 'F': -+ run_in_foreground = -1; - break; - - case 'f': diff --git a/glibc-rh783979.patch b/glibc-rh783979.patch deleted file mode 100644 index 7540525..0000000 --- a/glibc-rh783979.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -rup a/sysdeps/powerpc/powerpc64/Makefile b/sysdeps/powerpc/powerpc64/Makefile ---- a/sysdeps/powerpc/powerpc64/Makefile 2012-02-01 09:34:07.018768021 -0700 -+++ b/sysdeps/powerpc/powerpc64/Makefile 2012-02-01 09:35:28.813356195 -0700 -@@ -31,7 +31,7 @@ elide-routines.os += hp-timing - ifneq ($(elf),no) - # The initfini generation code doesn't work in the presence of -fPIC, so - # we use -fpic instead which is much better. --CFLAGS-initfini.s += -fpic -O1 -+CFLAGS-initfini.s += -fpic -O1 -fno-inline - endif - CFLAGS-libc-start.c += -fno-asynchronous-unwind-tables - endif diff --git a/glibc-rh784402.patch b/glibc-rh784402.patch deleted file mode 100644 index 5e783f5..0000000 --- a/glibc-rh784402.patch +++ /dev/null @@ -1,144 +0,0 @@ -commit 3e1aa84e7f9f38815f5db9cd7654b1a9497cf6e4 -Author: Ulrich Drepper -Date: Fri Jan 20 22:39:54 2012 -0500 - - Do not cache negative results in nscd if these are transient - -diff --git a/nscd/aicache.c b/nscd/aicache.c -index aaaf80d..e1f1244 100644 ---- a/nscd/aicache.c -+++ b/nscd/aicache.c -@@ -1,5 +1,5 @@ - /* Cache handling for host lookup. -- Copyright (C) 2004-2008, 2009, 2010, 2011 Free Software Foundation, Inc. -+ Copyright (C) 2004-2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 2004. - -@@ -514,8 +514,9 @@ next_nip: - if (fd != -1) - TEMP_FAILURE_RETRY (send (fd, ¬found, total, MSG_NOSIGNAL)); - -- /* If we cannot permanently store the result, so be it. */ -- if (__builtin_expect (db->negtimeout == 0, 0)) -+ /* If we have a transient error or cannot permanently store the -+ result, so be it. */ -+ if (rc4 == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) - { - /* Mark the old entry as obsolete. */ - if (dh != NULL) -diff --git a/nscd/grpcache.c b/nscd/grpcache.c -index e9607c6..a698f36 100644 ---- a/nscd/grpcache.c -+++ b/nscd/grpcache.c -@@ -1,5 +1,5 @@ - /* Cache handling for group lookup. -- Copyright (C) 1998-2008, 2009, 2011 Free Software Foundation, Inc. -+ Copyright (C) 1998-2008, 2009, 2011, 2012 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 1998. - -@@ -120,8 +120,9 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req, - else - written = total; - -- /* If we cannot permanently store the result, so be it. */ -- if (db->negtimeout == 0) -+ /* If we have a transient error or cannot permanently store -+ the result, so be it. */ -+ if (errno == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) - { - /* Mark the old entry as obsolete. */ - if (dh != NULL) -diff --git a/nscd/hstcache.c b/nscd/hstcache.c -index 4d68ade..c72feaa 100644 ---- a/nscd/hstcache.c -+++ b/nscd/hstcache.c -@@ -1,5 +1,5 @@ - /* Cache handling for host lookup. -- Copyright (C) 1998-2008, 2009, 2011 Free Software Foundation, Inc. -+ Copyright (C) 1998-2008, 2009, 2011, 2012 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 1998. - -@@ -141,8 +141,9 @@ cache_addhst (struct database_dyn *db, int fd, request_header *req, - MSG_NOSIGNAL)) != total) - all_written = false; - -- /* If we cannot permanently store the result, so be it. */ -- if (__builtin_expect (db->negtimeout == 0, 0)) -+ /* If we have a transient error or cannot permanently store -+ the result, so be it. */ -+ if (errval == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) - { - /* Mark the old entry as obsolete. */ - if (dh != NULL) -diff --git a/nscd/initgrcache.c b/nscd/initgrcache.c -index 4ac9942..2019991 100644 ---- a/nscd/initgrcache.c -+++ b/nscd/initgrcache.c -@@ -1,5 +1,5 @@ - /* Cache handling for host lookup. -- Copyright (C) 2004-2006, 2008, 2009, 2011 Free Software Foundation, Inc. -+ Copyright (C) 2004-2006, 2008, 2009, 2011, 2012 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 2004. - -@@ -202,8 +202,9 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req, - written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, - MSG_NOSIGNAL)); - -- /* If we cannot permanently store the result, so be it. */ -- if (__builtin_expect (db->negtimeout == 0, 0)) -+ /* If we have a transient error or cannot permanently store -+ the result, so be it. */ -+ if (all_tryagain || __builtin_expect (db->negtimeout == 0, 0)) - { - /* Mark the old entry as obsolete. */ - if (dh != NULL) -diff --git a/nscd/pwdcache.c b/nscd/pwdcache.c -index 49e130c..e2ba09d 100644 ---- a/nscd/pwdcache.c -+++ b/nscd/pwdcache.c -@@ -1,5 +1,5 @@ - /* Cache handling for passwd lookup. -- Copyright (C) 1998-2008, 2009, 2011 Free Software Foundation, Inc. -+ Copyright (C) 1998-2008, 2009, 2011, 2012 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 1998. - -@@ -124,8 +124,9 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req, - written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, - MSG_NOSIGNAL)); - -- /* If we cannot permanently store the result, so be it. */ -- if (__builtin_expect (db->negtimeout == 0, 0)) -+ /* If we have a transient error or cannot permanently store -+ the result, so be it. */ -+ if (errno == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) - { - /* Mark the old entry as obsolete. */ - if (dh != NULL) -diff --git a/nscd/servicescache.c b/nscd/servicescache.c -index d3d5dce..a6337e3 100644 ---- a/nscd/servicescache.c -+++ b/nscd/servicescache.c -@@ -1,5 +1,5 @@ - /* Cache handling for services lookup. -- Copyright (C) 2007, 2008, 2009, 2011 Free Software Foundation, Inc. -+ Copyright (C) 2007, 2008, 2009, 2011, 2012 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 2007. - -@@ -108,8 +108,9 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req, - written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, - MSG_NOSIGNAL)); - -- /* If we cannot permanently store the result, so be it. */ -- if (__builtin_expect (db->negtimeout == 0, 0)) -+ /* If we have a transient error or cannot permanently store -+ the result, so be it. */ -+ if (errval == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) - { - /* Mark the old entry as obsolete. */ - if (dh != NULL) diff --git a/glibc-rh788989.patch b/glibc-rh788989.patch deleted file mode 100644 index 4e730ce..0000000 --- a/glibc-rh788989.patch +++ /dev/null @@ -1,131 +0,0 @@ -diff --git a/nis/nss_compat/compat-initgroups.c b/nis/nss_compat/compat-initgroups.c -index a70d66d..ad6ab35 100644 ---- a/nis/nss_compat/compat-initgroups.c -+++ b/nis/nss_compat/compat-initgroups.c -@@ -296,6 +296,8 @@ getgrent_next_nss (ent_t *ent, char *buffer, size_t buflen, const char *user, - if (nss_initgroups_dyn (user, group, &mystart, &mysize, &mygroups, - limit, errnop) == NSS_STATUS_SUCCESS) - { -+ status = NSS_STATUS_NOTFOUND; -+ - /* If there is no blacklist we can trust the underlying - initgroups implementation. */ - if (ent->blacklist.current <= 1) -@@ -308,6 +310,7 @@ getgrent_next_nss (ent_t *ent, char *buffer, size_t buflen, const char *user, - overwrite the pointer with one to a bigger buffer. */ - char *tmpbuf = buffer; - size_t tmplen = buflen; -+ bool use_malloc = false; - - for (int i = 0; i < mystart; i++) - { -@@ -315,21 +318,36 @@ getgrent_next_nss (ent_t *ent, char *buffer, size_t buflen, const char *user, - tmpbuf, tmplen, errnop)) - == NSS_STATUS_TRYAGAIN - && *errnop == ERANGE) -- if (tmpbuf == buffer) -- { -- tmplen *= 2; -- tmpbuf = __alloca (tmplen); -- } -- else -- tmpbuf = extend_alloca (tmpbuf, tmplen, 2 * tmplen); -+ { -+ if (__libc_use_alloca (tmplen * 2)) -+ { -+ if (tmpbuf == buffer) -+ { -+ tmplen *= 2; -+ tmpbuf = __alloca (tmplen); -+ } -+ else -+ tmpbuf = extend_alloca (tmpbuf, tmplen, tmplen * 2); -+ } -+ else -+ { -+ tmplen *= 2; -+ char *newbuf = realloc (use_malloc ? tmpbuf : NULL, tmplen); -+ -+ if (newbuf == NULL) -+ { -+ status = NSS_STATUS_TRYAGAIN; -+ goto done; -+ } -+ use_malloc = true; -+ tmpbuf = newbuf; -+ } -+ } - - if (__builtin_expect (status != NSS_STATUS_NOTFOUND, 1)) - { - if (__builtin_expect (status != NSS_STATUS_SUCCESS, 0)) -- { -- free (mygroups); -- return status; -- } -+ goto done; - - if (!in_blacklist (grpbuf.gr_name, - strlen (grpbuf.gr_name), ent) -@@ -347,11 +365,17 @@ getgrent_next_nss (ent_t *ent, char *buffer, size_t buflen, const char *user, - } - } - } -+ -+ status = NSS_STATUS_NOTFOUND; -+ -+ done: -+ if (use_malloc) -+ free (tmpbuf); - } - - free (mygroups); - -- return NSS_STATUS_NOTFOUND; -+ return status; - } - - free (mygroups); -@@ -508,6 +532,7 @@ _nss_compat_initgroups_dyn (const char *user, gid_t group, long int *start, - char *tmpbuf; - enum nss_status status; - ent_t intern = { true, false, false, NULL, {NULL, 0, 0} }; -+ bool use_malloc = false; - - status = internal_setgrent (&intern); - if (status != NSS_STATUS_SUCCESS) -@@ -521,13 +546,32 @@ _nss_compat_initgroups_dyn (const char *user, gid_t group, long int *start, - user, group, start, size, - groupsp, limit, errnop)) - == NSS_STATUS_TRYAGAIN && *errnop == ERANGE) -- tmpbuf = extend_alloca (tmpbuf, buflen, 2 * buflen); -+ if (__libc_use_alloca (buflen * 2)) -+ tmpbuf = extend_alloca (tmpbuf, buflen, 2 * buflen); -+ else -+ { -+ buflen *= 2; -+ char *newbuf = realloc (use_malloc ? tmpbuf : NULL, buflen); -+ if (newbuf == NULL) -+ { -+ status = NSS_STATUS_TRYAGAIN; -+ goto done; -+ } -+ use_malloc = true; -+ tmpbuf = newbuf; -+ } - } - while (status == NSS_STATUS_SUCCESS); - -+ status = NSS_STATUS_SUCCESS; -+ -+ done: -+ if (use_malloc) -+ free (tmpbuf); -+ - internal_endgrent (&intern); - -- return NSS_STATUS_SUCCESS; -+ return status; - } - - diff --git a/glibc-rh794797-2.patch b/glibc-rh794797-2.patch deleted file mode 100644 index c1b2989..0000000 --- a/glibc-rh794797-2.patch +++ /dev/null @@ -1,119 +0,0 @@ ---- a/stdio-common/vfprintf.c 2012-03-07 12:16:21.000000000 -0700 -+++ b/stdio-common/vfprintf.c 2012-03-07 12:00:28.006630851 -0700 -@@ -1,4 +1,4 @@ --/* Copyright (C) 1991-2008, 2009, 2010, 2011 Free Software Foundation, Inc. -+/* Copyright (C) 1991-2011, 2012 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or -@@ -12,9 +12,8 @@ - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, write to the Free -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -- 02111-1307 USA. */ -+ License along with the GNU C Library; if not, see -+ . */ - - #include - #include -@@ -823,7 +822,7 @@ vfprintf (FILE *s, const CHAR_T *format, - \ - if (function_done < 0) \ - { \ -- /* Error in print handler. */ \ -+ /* Error in print handler; up to handler to set errno. */ \ - done = -1; \ - goto all_done; \ - } \ -@@ -877,7 +876,7 @@ vfprintf (FILE *s, const CHAR_T *format, - \ - if (function_done < 0) \ - { \ -- /* Error in print handler. */ \ -+ /* Error in print handler; up to handler to set errno. */ \ - done = -1; \ - goto all_done; \ - } \ -@@ -1118,7 +1117,7 @@ vfprintf (FILE *s, const CHAR_T *format, - &mbstate); \ - if (len == (size_t) -1) \ - { \ -- /* Something went wron gduring the conversion. Bail out. */ \ -+ /* Something went wrong during the conversion. Bail out. */ \ - done = -1; \ - goto all_done; \ - } \ -@@ -1574,6 +1606,7 @@ vfprintf (FILE *s, const CHAR_T *format, - if (spec == L_('\0')) - { - /* The format string ended before the specifier is complete. */ -+ __set_errno (EINVAL); - done = -1; - goto all_done; - } -@@ -1671,29 +1704,34 @@ do_positional: - - /* Determine the number of arguments the format string consumes. */ - nargs = MAX (nargs, max_ref_arg); -- bytes_per_arg = sizeof (*args_value) + sizeof (*args_size) -- + sizeof (*args_type); -+ /* Calculate total size needed to represent a single argument across -+ all three argument-related arrays. */ -+ bytes_per_arg = (sizeof (*args_value) + sizeof (*args_size) -+ + sizeof (*args_type)); - - /* Check for potential integer overflow. */ -- if (nargs > SIZE_MAX / bytes_per_arg) -+ if (__builtin_expect (nargs > SIZE_MAX / bytes_per_arg, 0)) - { -- done = -1; -- goto all_done; -+ __set_errno (ERANGE); -+ done = -1; -+ goto all_done; - } - -- /* Allocate memory for the argument descriptions. */ -+ /* Allocate memory for all three argument arrays. */ - if (__libc_use_alloca (nargs * bytes_per_arg)) -- args_value = alloca (nargs * bytes_per_arg); -+ args_value = alloca (nargs * bytes_per_arg); - else - { -- args_value = args_malloced = malloc (nargs * bytes_per_arg); -- if (args_value == NULL) -- { -- done = -1; -- goto all_done; -- } -+ args_value = args_malloced = malloc (nargs * bytes_per_arg); -+ if (args_value == NULL) -+ { -+ done = -1; -+ goto all_done; -+ } - } - -+ /* Set up the remaining two arrays to each point past the end of the -+ prior array, since space for all three has been allocated now. */ - args_size = &args_value[nargs].pa_int; - args_type = &args_size[nargs]; - memset (args_type, s->_flags2 & _IO_FLAGS2_FORTIFY ? '\xff' : '\0', -@@ -1912,6 +1950,7 @@ do_positional: - about # of chars. */ - if (function_done < 0) - { -+ /* Function has set errno. */ - done = -1; - goto all_done; - } -@@ -1946,6 +1985,7 @@ do_positional: - of chars. */ - if (function_done < 0) - { -+ /* Function has set errno. */ - done = -1; - goto all_done; - } diff --git a/glibc-rh794797.patch b/glibc-rh794797.patch deleted file mode 100644 index 271538d..0000000 --- a/glibc-rh794797.patch +++ /dev/null @@ -1,240 +0,0 @@ -From libc-alpha-return-25252-listarch-libc-alpha=sources dot redhat dot com at sourceware dot org Thu Feb 16 16:21:17 2012 -Return-Path: -Delivered-To: listarch-libc-alpha at sources dot redhat dot com -Received: (qmail 5187 invoked by alias); 16 Feb 2012 16:21:14 -0000 -Delivered-To: moderator for libc-alpha at sourceware dot org -Received: (qmail 2174 invoked by uid 22791); 16 Feb 2012 16:17:18 -0000 -X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 - tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,TW_TV,TW_VB,TW_VF,T_RP_MATCHES_RCVD -X-Spam-Check-By: sourceware.org -Date: Thu, 16 Feb 2012 08:16:13 -0800 -From: Kees Cook -To: "Ryan S dot Arnold" -Cc: libc-alpha at sourceware dot org, Paul Eggert , - Roland McGrath , - Andreas Schwab -Subject: Re: [PATCH] vfprintf: validate nargs and maybe allocate from heap -Message-ID: <20120216161613.GZ20420@outflux.net> -References: <20120206062537.GM4979@outflux.net> - <20120207000509 dot GP4989 at outflux dot net> - <20120210192457 dot GF20420 at outflux dot net> - - <20120214223048 dot GM20420 at outflux dot net> - - <20120214224543 dot GN20420 at outflux dot net> -MIME-Version: 1.0 -Content-Type: text/plain; charset=us-ascii -Content-Disposition: inline -In-Reply-To: <20120214224543 dot GN20420 at outflux dot net> -X-MIMEDefang-Filter: outflux$Revision: 1.316 $ -X-HELO: www.outflux.net -Mailing-List: contact libc-alpha-help at sourceware dot org; run by ezmlm -Precedence: bulk -List-Id: -List-Subscribe: -List-Archive: -List-Post: -List-Help: , -Sender: libc-alpha-owner at sourceware dot org -Delivered-To: mailing list libc-alpha at sourceware dot org - -The nargs value can overflow when doing allocations, allowing arbitrary -memory writes via format strings, bypassing _FORTIFY_SOURCE: -http://www.phrack.org/issues.html?issue=67&id=9 - -This checks for nargs overflow and possibly allocates from heap instead of -stack, and adds a regression test for the situation. - -I have FSF assignment via Google. (Sent from @outflux since that's how I'm -subscribed here, but CL shows @chromium.org as part of my Google work.) - -This version disables the useless test on non-32-bit platforms. - -2012-02-16 Kees Cook - - [BZ #13656] - * stdio-common/vfprintf.c (vfprintf): Check for nargs overflow and - possibly allocate from heap instead of stack. - * stdio-common/bug-vfprintf-nargs.c: New file. - * stdio-common/Makefile (tests): Add nargs overflow test. - -diff --git a/stdio-common/Makefile b/stdio-common/Makefile -index a847b28..080badc 100644 ---- a/stdio-common/Makefile -+++ b/stdio-common/Makefile -@@ -59,7 +59,8 @@ tests := tstscanf test_rdwr test-popen tstgetln test-fseek \ - tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \ - tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \ - bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \ -- scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24 -+ scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24 \ -+ bug-vfprintf-nargs - - test-srcs = tst-unbputc tst-printf - -diff --git a/stdio-common/bug-vfprintf-nargs.c b/stdio-common/bug-vfprintf-nargs.c -new file mode 100644 -index 0000000..13c66c0 ---- /dev/null -+++ b/stdio-common/bug-vfprintf-nargs.c -@@ -0,0 +1,78 @@ -+/* Test for vfprintf nargs allocation overflow (BZ #13656). -+ Copyright (C) 2012 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ Contributed by Kees Cook , 2012. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+static int -+format_failed (const char *fmt, const char *expected) -+{ -+ char output[80]; -+ -+ printf ("%s : ", fmt); -+ -+ memset (output, 0, sizeof output); -+ /* Having sprintf itself detect a failure is good. */ -+ if (sprintf (output, fmt, 1, 2, 3, "test") > 0 -+ && strcmp (output, expected) != 0) -+ { -+ printf ("FAIL (output '%s' != expected '%s')\n", output, expected); -+ return 1; -+ } -+ puts ("ok"); -+ return 0; -+} -+ -+static int -+do_test (void) -+{ -+ int rc = 0; -+ char buf[64]; -+ -+ /* Regular positionals work. */ -+ if (format_failed ("%1$d", "1") != 0) -+ rc = 1; -+ -+ /* Regular width positionals work. */ -+ if (format_failed ("%1$*2$d", " 1") != 0) -+ rc = 1; -+ -+ /* Positional arguments are constructed via read_int, so nargs can only -+ overflow on 32-bit systems. On 64-bit systems, it will attempt to -+ allocate a giant amount of memory and possibly crash, which is the -+ expected situation. Since the 64-bit behavior is arch-specific, only -+ test this on 32-bit systems. */ -+ if (sizeof (long int) == 4) -+ { -+ sprintf (buf, "%%1$d %%%" PRIdPTR "$d", UINT32_MAX / sizeof (int)); -+ if (format_failed (buf, "1 %$d") != 0) -+ rc = 1; -+ } -+ -+ return rc; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" -diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c -index 863cd5d..022e72b 100644 ---- a/stdio-common/vfprintf.c -+++ b/stdio-common/vfprintf.c -@@ -235,6 +235,9 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap) - 0 if unknown. */ - int readonly_format = 0; - -+ /* For the argument descriptions, which may be allocated on the heap. */ -+ void *args_malloced = NULL; -+ - /* This table maps a character into a number representing a - class. In each step there is a destination label for each - class. */ -@@ -1647,9 +1650,10 @@ do_positional: - determine the size of the array needed to store the argument - attributes. */ - size_t nargs = 0; -- int *args_type; -- union printf_arg *args_value = NULL; -+ size_t bytes_per_arg; -+ union printf_arg *args_value; - int *args_size; -+ int *args_type; - - /* Positional parameters refer to arguments directly. This could - also determine the maximum number of arguments. Track the -@@ -1698,13 +1702,33 @@ do_positional: - - /* Determine the number of arguments the format string consumes. */ - nargs = MAX (nargs, max_ref_arg); -+ bytes_per_arg = sizeof (*args_value) + sizeof (*args_size) -+ + sizeof (*args_type); -+ -+ /* Check for potential integer overflow. */ -+ if (nargs > SIZE_MAX / bytes_per_arg) -+ { -+ done = -1; -+ goto all_done; -+ } - - /* Allocate memory for the argument descriptions. */ -- args_type = alloca (nargs * sizeof (int)); -+ if (__libc_use_alloca (nargs * bytes_per_arg)) -+ args_value = alloca (nargs * bytes_per_arg); -+ else -+ { -+ args_value = args_malloced = malloc (nargs * bytes_per_arg); -+ if (args_value == NULL) -+ { -+ done = -1; -+ goto all_done; -+ } -+ } -+ -+ args_size = &args_value[nargs].pa_int; -+ args_type = &args_size[nargs]; - memset (args_type, s->_flags2 & _IO_FLAGS2_FORTIFY ? '\xff' : '\0', -- nargs * sizeof (int)); -- args_value = alloca (nargs * sizeof (union printf_arg)); -- args_size = alloca (nargs * sizeof (int)); -+ nargs * sizeof (*args_type)); - - /* XXX Could do sanity check here: If any element in ARGS_TYPE is - still zero after this loop, format is invalid. For now we -@@ -1973,8 +1997,8 @@ do_positional: - } - - all_done: -- if (__builtin_expect (workstart != NULL, 0)) -- free (workstart); -+ free (args_malloced); -+ free (workstart); - /* Unlock the stream. */ - _IO_funlockfile (s); - _IO_cleanup_region_end (0); --- -1.7.5.4 - --- -Kees Cook @outflux.net - diff --git a/glibc-rh795498.patch b/glibc-rh795498.patch deleted file mode 100644 index 729c5a4..0000000 --- a/glibc-rh795498.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c -index 01369f6..44ad04d 100644 ---- a/resolv/nss_dns/dns-host.c -+++ b/resolv/nss_dns/dns-host.c -@@ -1219,7 +1219,7 @@ gaih_getanswer (const querybuf *answer1, int anslen1, const querybuf *answer2, - &first); - if ((status == NSS_STATUS_SUCCESS || status == NSS_STATUS_NOTFOUND - || (status == NSS_STATUS_TRYAGAIN -- && (errno != ERANGE || *h_errnop != NO_RECOVERY))) -+ && (*errnop != ERANGE || *h_errnop == NO_RECOVERY))) - && answer2 != NULL && anslen2 > 0) - { - enum nss_status status2 = gaih_getanswer_slice(answer2, anslen2, qname, diff --git a/glibc-rh798471.patch b/glibc-rh798471.patch deleted file mode 100644 index 0000c5a..0000000 --- a/glibc-rh798471.patch +++ /dev/null @@ -1,31 +0,0 @@ - - -2012-02-28 Jeff Law - - * resolv/res_query.c (__libc_res_nquerydomain): Avoid - out of bounds read. - -diff --git a/resolv/res_query.c b/resolv/res_query.c -index 947c651..abccd4a 100644 ---- a/resolv/res_query.c -+++ b/resolv/res_query.c -@@ -556,12 +556,16 @@ __libc_res_nquerydomain(res_state statp, - * copy without '.' if present. - */ - n = strlen(name); -- if (n >= MAXDNAME) { -+ -+ /* Decrement N prior to checking it against MAXDNAME -+ so that we detect a wrap to SIZE_MAX and return -+ a reasonable error. */ -+ n--; -+ if (n >= MAXDNAME - 1) { - RES_SET_H_ERRNO(statp, NO_RECOVERY); - return (-1); - } -- n--; -- if (n >= 0 && name[n] == '.') { -+ if (name[n] == '.') { - strncpy(nbuf, name, n); - nbuf[n] = '\0'; - } else diff --git a/glibc-rh801650.patch b/glibc-rh801650.patch deleted file mode 100644 index d357cf2..0000000 --- a/glibc-rh801650.patch +++ /dev/null @@ -1,253 +0,0 @@ -diff -rup c/sysdeps/x86_64/fpu/multiarch/e_log.c d/sysdeps/x86_64/fpu/multiarch/e_log.c ---- c/sysdeps/x86_64/fpu/multiarch/e_log.c 2012-01-01 05:16:32.000000000 -0700 -+++ d/sysdeps/x86_64/fpu/multiarch/e_log.c 2012-05-11 12:53:39.491061476 -0600 -@@ -14,8 +14,7 @@ extern double __ieee754_log_fma4 (double - - libm_ifunc (__ieee754_log, - HAS_FMA4 ? __ieee754_log_fma4 -- : (HAS_AVX ? __ieee754_log_avx -- : __ieee754_log_sse2)); -+ : (HAS_AVX ? __ieee754_log_avx : __ieee754_log_sse2)); - strong_alias (__ieee754_log, __log_finite) - - # define __ieee754_log __ieee754_log_sse2 -diff -rup c/sysdeps/x86_64/fpu/multiarch/s_atan.c d/sysdeps/x86_64/fpu/multiarch/s_atan.c ---- c/sysdeps/x86_64/fpu/multiarch/s_atan.c 2012-01-01 05:16:32.000000000 -0700 -+++ d/sysdeps/x86_64/fpu/multiarch/s_atan.c 2012-05-11 12:53:39.491061476 -0600 -@@ -12,7 +12,8 @@ extern double __atan_fma4 (double); - # define __atan_fma4 ((void *) 0) - # endif - --libm_ifunc (atan, HAS_FMA4 ? __atan_fma4 : HAS_AVX ? __atan_avx : __atan_sse2); -+libm_ifunc (atan, (HAS_FMA4 ? __atan_fma4 : -+ HAS_AVX ? __atan_avx : __atan_sse2)); - - # define atan __atan_sse2 - #endif -diff -rup c/sysdeps/x86_64/fpu/multiarch/s_sin.c d/sysdeps/x86_64/fpu/multiarch/s_sin.c ---- c/sysdeps/x86_64/fpu/multiarch/s_sin.c 2012-01-01 05:16:32.000000000 -0700 -+++ d/sysdeps/x86_64/fpu/multiarch/s_sin.c 2012-05-11 12:53:39.491061476 -0600 -@@ -17,10 +17,12 @@ extern double __sin_fma4 (double); - # define __sin_fma4 ((void *) 0) - # endif - --libm_ifunc (__cos, HAS_FMA4 ? __cos_fma4 : HAS_AVX ? __cos_avx : __cos_sse2); -+libm_ifunc (__cos, (HAS_FMA4 ? __cos_fma4 : -+ HAS_AVX ? __cos_avx : __cos_sse2)); - weak_alias (__cos, cos) - --libm_ifunc (__sin, HAS_FMA4 ? __sin_fma4 : HAS_AVX ? __sin_avx : __sin_sse2); -+libm_ifunc (__sin, (HAS_FMA4 ? __sin_fma4 : -+ HAS_AVX ? __sin_avx : __sin_sse2)); - weak_alias (__sin, sin) - - # define __cos __cos_sse2 -diff -rup c/sysdeps/x86_64/fpu/multiarch/s_tan.c d/sysdeps/x86_64/fpu/multiarch/s_tan.c ---- c/sysdeps/x86_64/fpu/multiarch/s_tan.c 2012-01-01 05:16:32.000000000 -0700 -+++ d/sysdeps/x86_64/fpu/multiarch/s_tan.c 2012-05-11 12:53:39.491061476 -0600 -@@ -12,7 +12,8 @@ extern double __tan_fma4 (double); - # define __tan_fma4 ((void *) 0) - # endif - --libm_ifunc (tan, HAS_FMA4 ? __tan_fma4 : HAS_AVX ? __tan_avx : __tan_sse2); -+libm_ifunc (tan, (HAS_FMA4 ? __tan_fma4 : -+ HAS_AVX ? __tan_avx : __tan_sse2)); - - # define tan __tan_sse2 - #endif -diff -rup c/sysdeps/x86_64/multiarch/init-arch.c d/sysdeps/x86_64/multiarch/init-arch.c ---- c/sysdeps/x86_64/multiarch/init-arch.c 2012-01-01 05:16:32.000000000 -0700 -+++ d/sysdeps/x86_64/multiarch/init-arch.c 2012-05-11 12:55:29.169490958 -0600 -@@ -1,6 +1,6 @@ - /* Initialize CPU feature data. - This file is part of the GNU C Library. -- Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc. -+ Copyright (C) 2008-2012 Free Software Foundation, Inc. - Contributed by Ulrich Drepper . - - The GNU C Library is free software; you can redistribute it and/or -@@ -14,9 +14,8 @@ - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, write to the Free -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -- 02111-1307 USA. */ -+ License along with the GNU C Library; if not, see -+ . */ - - #include - #include -@@ -144,6 +143,23 @@ __init_cpu_features (void) - else - kind = arch_kind_other; - -+ if (__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_AVX) -+ { -+ /* Determine if AVX is usable. */ -+ if ((__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_OSXSAVE) != 0 -+ && ({ unsigned int xcrlow; -+ unsigned int xcrhigh; -+ asm ("xgetbv" -+ : "=a" (xcrlow), "=d" (xcrhigh) : "c" (0)); -+ (xcrlow & (bit_YMM_state | bit_XMM_state)) == -+ (bit_YMM_state | bit_XMM_state); })) -+ __cpu_features.feature[index_AVX_Usable] |= bit_AVX_Usable; -+ } -+ -+ /* FMA4 depends on AVX support. */ -+ if ((__cpu_features.cpuid[COMMON_CPUID_INDEX_80000001].ecx & bit_FMA4) && __cpu_features.feature[index_AVX_Usable]) -+ __cpu_features.feature[index_FMA4_Usable] |= bit_FMA4_Usable; -+ - __cpu_features.family = family; - __cpu_features.model = model; - atomic_write_barrier (); -diff -rup c/sysdeps/x86_64/multiarch/init-arch.h d/sysdeps/x86_64/multiarch/init-arch.h ---- c/sysdeps/x86_64/multiarch/init-arch.h 2012-01-01 05:16:32.000000000 -0700 -+++ d/sysdeps/x86_64/multiarch/init-arch.h 2012-05-11 12:55:29.170490953 -0600 -@@ -1,5 +1,5 @@ - /* This file is part of the GNU C Library. -- Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc. -+ Copyright (C) 2008-2012 Free Software Foundation, Inc. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public -@@ -12,9 +12,8 @@ - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, write to the Free -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -- 02111-1307 USA. */ -+ License along with the GNU C Library; if not, see -+ . */ - - #define bit_Fast_Rep_String (1 << 0) - #define bit_Fast_Copy_Backward (1 << 1) -@@ -22,16 +21,24 @@ - #define bit_Prefer_SSE_for_memop (1 << 3) - #define bit_Fast_Unaligned_Load (1 << 4) - #define bit_Prefer_PMINUB_for_stringop (1 << 5) -+#define bit_AVX_Usable (1 << 6) -+#define bit_FMA4_Usable (1 << 7) - -+/* CPUID Feature flags. */ - #define bit_SSE2 (1 << 26) - #define bit_SSSE3 (1 << 9) - #define bit_SSE4_1 (1 << 19) - #define bit_SSE4_2 (1 << 20) -+#define bit_OSXSAVE (1 << 27) - #define bit_AVX (1 << 28) - #define bit_POPCOUNT (1 << 23) - #define bit_FMA (1 << 12) - #define bit_FMA4 (1 << 16) - -+/* XCR0 Feature flags. */ -+#define bit_XMM_state (1 << 1) -+#define bit_YMM_state (2 << 1) -+ - #ifdef __ASSEMBLER__ - - # include -@@ -48,6 +55,8 @@ - # define index_Prefer_SSE_for_memop FEATURE_INDEX_1*FEATURE_SIZE - # define index_Fast_Unaligned_Load FEATURE_INDEX_1*FEATURE_SIZE - # define index_Prefer_PMINUB_for_stringop FEATURE_INDEX_1*FEATURE_SIZE -+# define index_AVX_Usable FEATURE_INDEX_1*FEATURE_SIZE -+# define index_FMA4_Usable FEATURE_INDEX_1*FEATURE_SIZE - - #else /* __ASSEMBLER__ */ - -@@ -92,7 +101,7 @@ extern struct cpu_features - - - extern void __init_cpu_features (void) attribute_hidden; --#define INIT_ARCH()\ -+# define INIT_ARCH() \ - do \ - if (__cpu_features.kind == arch_kind_unknown) \ - __init_cpu_features (); \ -@@ -111,37 +120,36 @@ extern const struct cpu_features *__get_ - - /* Following are the feature tests used throughout libc. */ - -+/* CPUID_* evaluates to true if the feature flag is enabled. */ -+# define CPUID_OSXSAVE HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, bit_OSXSAVE) -+# define CPUID_AVX HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, bit_AVX) -+# define CPUID_FMA4 HAS_CPU_FEATURE (COMMON_CPUID_INDEX_80000001, ecx, bit_FMA4) -+ -+/* HAS_* evaluates to true if we may use the feature at runtime. */ - # define HAS_SSE2 HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, edx, bit_SSE2) - # define HAS_POPCOUNT HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, bit_POPCOUNT) - # define HAS_SSSE3 HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, bit_SSSE3) - # define HAS_SSE4_1 HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, bit_SSE4_1) - # define HAS_SSE4_2 HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, bit_SSE4_2) - # define HAS_FMA HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, bit_FMA) --# define HAS_AVX HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, bit_AVX) --# define HAS_FMA4 HAS_CPU_FEATURE (COMMON_CPUID_INDEX_80000001, ecx, bit_FMA4) - - # define index_Fast_Rep_String FEATURE_INDEX_1 - # define index_Fast_Copy_Backward FEATURE_INDEX_1 - # define index_Slow_BSF FEATURE_INDEX_1 - # define index_Prefer_SSE_for_memop FEATURE_INDEX_1 - # define index_Fast_Unaligned_Load FEATURE_INDEX_1 -+# define index_AVX_Usable FEATURE_INDEX_1 -+# define index_FMA4_Usable FEATURE_INDEX_1 - --#define HAS_ARCH_FEATURE(idx, bit) \ -- ((__get_cpu_features ()->feature[idx] & (bit)) != 0) -- --#define HAS_FAST_REP_STRING \ -- HAS_ARCH_FEATURE (index_Fast_Rep_String, bit_Fast_Rep_String) -- --#define HAS_FAST_COPY_BACKWARD \ -- HAS_ARCH_FEATURE (index_Fast_Copy_Backward, bit_Fast_Copy_Backward) -- --#define HAS_SLOW_BSF \ -- HAS_ARCH_FEATURE (index_Slow_BSF, bit_Slow_BSF) -- --#define HAS_PREFER_SSE_FOR_MEMOP \ -- HAS_ARCH_FEATURE (index_Prefer_SSE_for_memop, bit_Prefer_SSE_for_memop) -+# define HAS_ARCH_FEATURE(name) \ -+ ((__get_cpu_features ()->feature[index_##name] & (bit_##name)) != 0) - --#define HAS_FAST_UNALIGNED_LOAD \ -- HAS_ARCH_FEATURE (index_Fast_Unaligned_Load, bit_Fast_Unaligned_Load) -+# define HAS_FAST_REP_STRING HAS_ARCH_FEATURE (Fast_Rep_String) -+# define HAS_FAST_COPY_BACKWARD HAS_ARCH_FEATURE (Fast_Copy_Backward) -+# define HAS_SLOW_BSF HAS_ARCH_FEATURE (Slow_BSF) -+# define HAS_PREFER_SSE_FOR_MEMOP HAS_ARCH_FEATURE (Prefer_SSE_for_memop) -+# define HAS_FAST_UNALIGNED_LOAD HAS_ARCH_FEATURE (Fast_Unaligned_Load) -+# define HAS_AVX HAS_ARCH_FEATURE (AVX_Usable) -+# define HAS_FMA4 HAS_ARCH_FEATURE (FMA4_Usable) - - #endif /* __ASSEMBLER__ */ -diff -rup c/sysdeps/x86_64/multiarch/strcmp.S d/sysdeps/x86_64/multiarch/strcmp.S ---- c/sysdeps/x86_64/multiarch/strcmp.S 2012-01-01 05:16:32.000000000 -0700 -+++ d/sysdeps/x86_64/multiarch/strcmp.S 2012-05-11 12:55:29.172490943 -0600 -@@ -1,5 +1,5 @@ - /* strcmp with SSE4.2 -- Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc. -+ Copyright (C) 2009-2012 Free Software Foundation, Inc. - Contributed by Intel Corporation. - This file is part of the GNU C Library. - -@@ -107,7 +107,7 @@ ENTRY(__strcasecmp) - 1: - # ifdef HAVE_AVX_SUPPORT - leaq __strcasecmp_avx(%rip), %rax -- testl $bit_AVX, __cpu_features+CPUID_OFFSET+index_AVX(%rip) -+ testl $bit_AVX_Usable, __cpu_features+FEATURE_OFFSET+index_AVX_Usable(%rip) - jnz 2f - # endif - leaq __strcasecmp_sse42(%rip), %rax -@@ -130,7 +130,7 @@ ENTRY(__strncasecmp) - 1: - # ifdef HAVE_AVX_SUPPORT - leaq __strncasecmp_avx(%rip), %rax -- testl $bit_AVX, __cpu_features+CPUID_OFFSET+index_AVX(%rip) -+ testl $bit_AVX_Usable, __cpu_features+FEATURE_OFFSET+index_AVX_Usable(%rip) - jnz 2f - # endif - leaq __strncasecmp_sse42(%rip), %rax -Only in d/sysdeps/x86_64/multiarch: strcmp.S.orig diff --git a/glibc-rh804792.patch b/glibc-rh804792.patch deleted file mode 100644 index 0ff243d..0000000 --- a/glibc-rh804792.patch +++ /dev/null @@ -1,241 +0,0 @@ -commit b8dc394ddfd58bc5d0fe9ecfc970fc42b789a9df -Author: Jeff Law -Date: Fri Mar 30 09:45:44 2012 -0600 - - 2012-03-29 Jeff Law - - * crypt/md5-crypt.c (__md5_crypt_r): Avoid unbounded alloca uses - due to long keys. - * crypt/sha256-crypt.c (__sha256_crypt_r): Likewise. - * crypt/sha512-crypt.c (__sha512_crypt_r): Likewise. - -diff --git a/crypt/md5-crypt.c b/crypt/md5-crypt.c -index ba606bb..db4ea9c 100644 ---- a/crypt/md5-crypt.c -+++ b/crypt/md5-crypt.c -@@ -1,6 +1,6 @@ - /* One way encryption based on MD5 sum. - Compatible with the behavior of MD5 crypt introduced in FreeBSD 2.0. -- Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2004, 2009 -+ Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2004, 2009, 2012 - Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 1996. -@@ -107,6 +107,8 @@ __md5_crypt_r (key, salt, buffer, buflen) - char *cp; - char *copied_key = NULL; - char *copied_salt = NULL; -+ char *free_key = NULL; -+ size_t alloca_used = 0; - - /* Find beginning of salt string. The prefix should normally always - be present. Just in case it is not. */ -@@ -119,7 +121,17 @@ __md5_crypt_r (key, salt, buffer, buflen) - - if ((key - (char *) 0) % __alignof__ (md5_uint32) != 0) - { -- char *tmp = (char *) alloca (key_len + __alignof__ (md5_uint32)); -+ char *tmp; -+ -+ if (__libc_use_alloca (alloca_used + key_len + __alignof__ (md5_uint32))) -+ tmp = (char *) alloca (key_len + __alignof__ (md5_uint32)); -+ else -+ { -+ free_key = tmp = (char *) malloc (key_len + __alignof__ (md5_uint32)); -+ if (tmp == NULL) -+ return NULL; -+ } -+ - key = copied_key = - memcpy (tmp + __alignof__ (md5_uint32) - - (tmp - (char *) 0) % __alignof__ (md5_uint32), -@@ -141,7 +153,10 @@ __md5_crypt_r (key, salt, buffer, buflen) - /* Initialize libfreebl3. */ - NSSLOWInitContext *nss_ictx = NSSLOW_Init (); - if (nss_ictx == NULL) -- return NULL; -+ { -+ free (free_key); -+ return NULL; -+ } - NSSLOWHASHContext *nss_ctx = NULL; - NSSLOWHASHContext *nss_alt_ctx = NULL; - #else -@@ -295,6 +310,7 @@ __md5_crypt_r (key, salt, buffer, buflen) - if (copied_salt != NULL) - memset (copied_salt, '\0', salt_len); - -+ free (free_key); - return buffer; - } - -diff --git a/crypt/sha256-crypt.c b/crypt/sha256-crypt.c -index eb2585b..440933a 100644 ---- a/crypt/sha256-crypt.c -+++ b/crypt/sha256-crypt.c -@@ -1,5 +1,5 @@ - /* One way encryption based on SHA256 sum. -- Copyright (C) 2007, 2009 Free Software Foundation, Inc. -+ Copyright (C) 2007, 2009, 2012 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 2007. - -@@ -122,6 +122,9 @@ __sha256_crypt_r (key, salt, buffer, buflen) - /* Default number of rounds. */ - size_t rounds = ROUNDS_DEFAULT; - bool rounds_custom = false; -+ size_t alloca_used = 0; -+ char *free_key = NULL; -+ char *free_pbytes = NULL; - - /* Find beginning of salt string. The prefix should normally always - be present. Just in case it is not. */ -@@ -148,7 +151,17 @@ __sha256_crypt_r (key, salt, buffer, buflen) - - if ((key - (char *) 0) % __alignof__ (uint32_t) != 0) - { -- char *tmp = (char *) alloca (key_len + __alignof__ (uint32_t)); -+ char *tmp; -+ -+ if (__libc_use_alloca (alloca_used + key_len + __alignof__ (uint32_t))) -+ tmp = alloca_account (key_len + __alignof__ (uint32_t), alloca_used); -+ else -+ { -+ free_key = tmp = (char *) malloc (key_len + __alignof__ (uint32_t)); -+ if (tmp == NULL) -+ return NULL; -+ } -+ - key = copied_key = - memcpy (tmp + __alignof__ (uint32_t) - - (tmp - (char *) 0) % __alignof__ (uint32_t), -@@ -159,6 +172,7 @@ __sha256_crypt_r (key, salt, buffer, buflen) - if ((salt - (char *) 0) % __alignof__ (uint32_t) != 0) - { - char *tmp = (char *) alloca (salt_len + __alignof__ (uint32_t)); -+ alloca_used += salt_len + __alignof__ (uint32_t); - salt = copied_salt = - memcpy (tmp + __alignof__ (uint32_t) - - (tmp - (char *) 0) % __alignof__ (uint32_t), -@@ -170,7 +184,10 @@ __sha256_crypt_r (key, salt, buffer, buflen) - /* Initialize libfreebl3. */ - NSSLOWInitContext *nss_ictx = NSSLOW_Init (); - if (nss_ictx == NULL) -- return NULL; -+ { -+ free (free_key); -+ return NULL; -+ } - NSSLOWHASHContext *nss_ctx = NULL; - NSSLOWHASHContext *nss_alt_ctx = NULL; - #else -@@ -233,7 +250,18 @@ __sha256_crypt_r (key, salt, buffer, buflen) - sha256_finish_ctx (&alt_ctx, nss_alt_ctx, temp_result); - - /* Create byte sequence P. */ -- cp = p_bytes = alloca (key_len); -+ if (__libc_use_alloca (alloca_used + key_len)) -+ cp = p_bytes = (char *) alloca (key_len); -+ else -+ { -+ free_pbytes = cp = p_bytes = (char *)malloc (key_len); -+ if (free_pbytes == NULL) -+ { -+ free (free_key); -+ return NULL; -+ } -+ } -+ - for (cnt = key_len; cnt >= 32; cnt -= 32) - cp = mempcpy (cp, temp_result, 32); - memcpy (cp, temp_result, cnt); -@@ -361,6 +389,8 @@ __sha256_crypt_r (key, salt, buffer, buflen) - if (copied_salt != NULL) - memset (copied_salt, '\0', salt_len); - -+ free (free_key); -+ free (free_pbytes); - return buffer; - } - -diff --git a/crypt/sha512-crypt.c b/crypt/sha512-crypt.c -index 8f8ed33..e5d9cac 100644 ---- a/crypt/sha512-crypt.c -+++ b/crypt/sha512-crypt.c -@@ -1,5 +1,5 @@ - /* One way encryption based on SHA512 sum. -- Copyright (C) 2007, 2009 Free Software Foundation, Inc. -+ Copyright (C) 2007, 2009, 2012 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 2007. - -@@ -122,6 +122,9 @@ __sha512_crypt_r (key, salt, buffer, buflen) - /* Default number of rounds. */ - size_t rounds = ROUNDS_DEFAULT; - bool rounds_custom = false; -+ size_t alloca_used = 0; -+ char *free_key = NULL; -+ char *free_pbytes = NULL; - - /* Find beginning of salt string. The prefix should normally always - be present. Just in case it is not. */ -@@ -148,7 +151,17 @@ __sha512_crypt_r (key, salt, buffer, buflen) - - if ((key - (char *) 0) % __alignof__ (uint64_t) != 0) - { -- char *tmp = (char *) alloca (key_len + __alignof__ (uint64_t)); -+ char *tmp; -+ -+ if (__libc_use_alloca (alloca_used + key_len + __alignof__ (uint64_t))) -+ tmp = alloca_account (key_len + __alignof__ (uint64_t), alloca_used); -+ else -+ { -+ free_key = tmp = (char *) malloc (key_len + __alignof__ (uint64_t)); -+ if (tmp == NULL) -+ return NULL; -+ } -+ - key = copied_key = - memcpy (tmp + __alignof__ (uint64_t) - - (tmp - (char *) 0) % __alignof__ (uint64_t), -@@ -170,7 +183,10 @@ __sha512_crypt_r (key, salt, buffer, buflen) - /* Initialize libfreebl3. */ - NSSLOWInitContext *nss_ictx = NSSLOW_Init (); - if (nss_ictx == NULL) -- return NULL; -+ { -+ free (free_key); -+ return NULL; -+ } - NSSLOWHASHContext *nss_ctx = NULL; - NSSLOWHASHContext *nss_alt_ctx = NULL; - #else -@@ -233,7 +249,18 @@ __sha512_crypt_r (key, salt, buffer, buflen) - sha512_finish_ctx (&alt_ctx, nss_alt_ctx, temp_result); - - /* Create byte sequence P. */ -- cp = p_bytes = alloca (key_len); -+ if (__libc_use_alloca (alloca_used + key_len)) -+ cp = p_bytes = (char *) alloca (key_len); -+ else -+ { -+ free_pbytes = cp = p_bytes = (char *)malloc (key_len); -+ if (free_pbytes == NULL) -+ { -+ free (free_key); -+ return NULL; -+ } -+ } -+ - for (cnt = key_len; cnt >= 64; cnt -= 64) - cp = mempcpy (cp, temp_result, 64); - memcpy (cp, temp_result, cnt); -@@ -373,6 +400,8 @@ __sha512_crypt_r (key, salt, buffer, buflen) - if (copied_salt != NULL) - memset (copied_salt, '\0', salt_len); - -+ free (free_key); -+ free (free_pbytes); - return buffer; - } - diff --git a/glibc-rh806070.patch b/glibc-rh806070.patch deleted file mode 100644 index 7ea9441..0000000 --- a/glibc-rh806070.patch +++ /dev/null @@ -1,137 +0,0 @@ -commit 509072a0f7f8a37bedf61a78c0cdd7783368c65a -Author: Andreas Jaeger -Date: Tue May 15 20:35:53 2012 +0200 - - Avoid race in nscd - - 2012-05-15 Jeff Law - Andreas Jaeger - - [BZ #13594] - * nscd/nscd-client.h (__nscd_acquire_maplock): New function, split - out from... - * nscd/nscd_helper.c (__nscd_get_map_ref): ... here. - * nscd/nscd-client.h: Add __nscd_acquire_maplock. - * nscd/nscd_gethst_r.c (__nscd_get_nl_timestamp): Add locking to - code changing __hst_map_handle.map. - -diff --git a/nscd/nscd-client.h b/nscd/nscd-client.h -index e57a23c..325368e 100644 ---- a/nscd/nscd-client.h -+++ b/nscd/nscd-client.h -@@ -1,5 +1,4 @@ --/* Copyright (c) 1998, 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2011 -- Free Software Foundation, Inc. -+/* Copyright (c) 1998-2012 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Thorsten Kukuk , 1998. - -@@ -322,6 +321,24 @@ struct locked_map_ptr - }; - #define libc_locked_map_ptr(class, name) class struct locked_map_ptr name - -+/* Try acquiring lock for mapptr, returns true if it succeeds, false -+ if not. */ -+static inline bool __nscd_acquire_maplock (volatile struct locked_map_ptr *mapptr) -+{ -+ int cnt = 0; -+ while (__builtin_expect (atomic_compare_and_exchange_val_acq (&mapptr->lock, -+ 1, 0) != 0, 0)) -+ { -+ // XXX Best number of rounds? -+ if (__builtin_expect (++cnt > 5, 0)) -+ return false; -+ -+ atomic_delay (); -+ } -+ -+ return true; -+} -+ - - /* Open socket connection to nscd server. */ - extern int __nscd_open_socket (const char *key, size_t keylen, -diff --git a/nscd/nscd_gethst_r.c b/nscd/nscd_gethst_r.c -index c1661f8..d64ad2e 100644 ---- a/nscd/nscd_gethst_r.c -+++ b/nscd/nscd_gethst_r.c -@@ -1,5 +1,4 @@ --/* Copyright (C) 1998-2005, 2006, 2007, 2008, 2009, 2011 -- Free Software Foundation, Inc. -+/* Copyright (C) 1998-2012 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 1998. - -@@ -100,9 +99,18 @@ libc_freeres_fn (hst_map_free) - uint32_t - __nscd_get_nl_timestamp (void) - { -+ uint32_t retval; - if (__nss_not_use_nscd_hosts != 0) - return 0; - -+ /* __nscd_get_mapping can change hst_map_handle.mapped to NO_MAPPING. -+ However, __nscd_get_mapping assumes the prior value was not NO_MAPPING. -+ Thus we have to acquire the lock to prevent this thread from changing -+ hst_map_handle.mapped to NO_MAPPING while another thread is inside -+ __nscd_get_mapping. */ -+ if (!__nscd_acquire_maplock (&__hst_map_handle)) -+ return 0; -+ - struct mapped_database *map = __hst_map_handle.mapped; - - if (map == NULL -@@ -112,9 +120,14 @@ __nscd_get_nl_timestamp (void) - map = __nscd_get_mapping (GETFDHST, "hosts", &__hst_map_handle.mapped); - - if (map == NO_MAPPING) -- return 0; -+ retval = 0; -+ else -+ retval = map->head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP]; -+ -+ /* Release the lock. */ -+ __hst_map_handle.lock = 0; - -- return map->head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP]; -+ return retval; - } - - -diff --git a/nscd/nscd_helper.c b/nscd/nscd_helper.c -index 92558b6..96fb93d 100644 ---- a/nscd/nscd_helper.c -+++ b/nscd/nscd_helper.c -@@ -1,4 +1,4 @@ --/* Copyright (C) 1998-2007, 2008, 2009 Free Software Foundation, Inc. -+/* Copyright (C) 1998-2012 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 1998. - -@@ -419,7 +419,6 @@ __nscd_get_mapping (request_type type, const char *key, - return result; - } - -- - struct mapped_database * - __nscd_get_map_ref (request_type type, const char *name, - volatile struct locked_map_ptr *mapptr, int *gc_cyclep) -@@ -428,16 +427,8 @@ __nscd_get_map_ref (request_type type, const char *name, - if (cur == NO_MAPPING) - return cur; - -- int cnt = 0; -- while (__builtin_expect (atomic_compare_and_exchange_val_acq (&mapptr->lock, -- 1, 0) != 0, 0)) -- { -- // XXX Best number of rounds? -- if (__builtin_expect (++cnt > 5, 0)) -- return NO_MAPPING; -- -- atomic_delay (); -- } -+ if (!__nscd_acquire_maplock (mapptr)) -+ return NO_MAPPING; - - cur = mapptr->mapped; - diff --git a/glibc-rh806403.patch b/glibc-rh806403.patch deleted file mode 100644 index 8f852f9..0000000 --- a/glibc-rh806403.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/nss/getnssent.c b/nss/getnssent.c -index 014b376..bbcfeb8 100644 ---- a/nss/getnssent.c -+++ b/nss/getnssent.c -@@ -32,7 +32,7 @@ __nss_getent (getent_r_function func, void **resbuf, char **buffer, - *buffer = malloc (*buffer_size); - } - -- while (buffer != NULL -+ while (*buffer != NULL - && func (resbuf, *buffer, *buffer_size, &result, h_errnop) == ERANGE - && (h_errnop == NULL || *h_errnop == NETDB_INTERNAL)) - { diff --git a/glibc-rh817276.patch b/glibc-rh817276.patch deleted file mode 100644 index 6866549..0000000 --- a/glibc-rh817276.patch +++ /dev/null @@ -1,411 +0,0 @@ -diff -Nrup j1/sysdeps/unix/sysv/linux/arm/Makefile j2/sysdeps/unix/sysv/linux/arm/Makefile ---- j1/sysdeps/unix/sysv/linux/arm/Makefile 2012-01-08 22:47:04.000000000 -0700 -+++ j2/sysdeps/unix/sysv/linux/arm/Makefile 2012-04-30 14:02:33.999589709 -0600 -@@ -20,3 +20,7 @@ endif - ifeq ($(subdir),resource) - sysdep_routines += oldgetrlimit64 - endif -+ -+ifeq ($(subdir),stdlib) -+gen-as-const-headers += ucontext_i.sym -+endif -diff -Nrup j1/sysdeps/unix/sysv/linux/arm/eabi/getcontext.S j2/sysdeps/unix/sysv/linux/arm/eabi/getcontext.S ---- j1/sysdeps/unix/sysv/linux/arm/eabi/getcontext.S 1969-12-31 17:00:00.000000000 -0700 -+++ j2/sysdeps/unix/sysv/linux/arm/eabi/getcontext.S 2012-04-30 14:02:34.000589703 -0600 -@@ -0,0 +1,113 @@ -+/* Copyright (C) 2012 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+ -+#include "ucontext_i.h" -+ -+ .syntax unified -+ .text -+ -+/* int getcontext (ucontext_t *ucp) */ -+ -+ENTRY(__getcontext) -+ /* No need to save r0-r3, d0-d7, or d16-d31. */ -+ add r1, r0, #MCONTEXT_ARM_R4 -+ stmia r1, {r4-r11} -+ -+ /* Save R13 separately as Thumb can't STM it. */ -+ str r13, [r0, #MCONTEXT_ARM_SP] -+ str r14, [r0, #MCONTEXT_ARM_LR] -+ /* Return to LR */ -+ str r14, [r0, #MCONTEXT_ARM_PC] -+ /* Return zero */ -+ mov r2, #0 -+ str r2, [r0, #MCONTEXT_ARM_R0] -+ -+ /* Save ucontext_t * across the next call. */ -+ mov r4, r0 -+ -+ /* __sigprocmask(SIG_BLOCK, NULL, &(ucontext->uc_sigmask)) */ -+ mov r0, #SIG_BLOCK -+ mov r1, #0 -+ add r2, r4, #UCONTEXT_SIGMASK -+ bl PLTJMP(__sigprocmask) -+ -+ /* Store FP regs. Much of the FP code is copied from arm/eabi/setjmp.S. */ -+ -+#ifdef PIC -+ ldr r2, 1f -+ ldr r1, Lrtld_global_ro -+0: add r2, pc, r2 -+ ldr r2, [r2, r1] -+ ldr r2, [r2, #RTLD_GLOBAL_RO_DL_HWCAP_OFFSET] -+#else -+ ldr r2, Lhwcap -+ ldr r2, [r2, #0] -+#endif -+ -+ add r0, r4, #UCONTEXT_REGSPACE -+ -+ tst r2, #HWCAP_ARM_VFP -+ beq Lno_vfp -+ -+ /* Store the VFP registers. -+ Don't use VFP instructions directly because this code -+ is used in non-VFP multilibs. */ -+ /* Following instruction is vstmia r0!, {d8-d15}. */ -+ stc p11, cr8, [r0], #64 -+ /* Store the floating-point status register. */ -+ /* Following instruction is vmrs r1, fpscr. */ -+ mrc p10, 7, r1, cr1, cr0, 0 -+ str r1, [r0], #4 -+Lno_vfp: -+ -+ tst r2, #HWCAP_ARM_IWMMXT -+ beq Lno_iwmmxt -+ -+ /* Save the call-preserved iWMMXt registers. */ -+ /* Following instructions are wstrd wr10, [r0], #8 (etc.) */ -+ stcl p1, cr10, [r0], #8 -+ stcl p1, cr11, [r0], #8 -+ stcl p1, cr12, [r0], #8 -+ stcl p1, cr13, [r0], #8 -+ stcl p1, cr14, [r0], #8 -+ stcl p1, cr15, [r0], #8 -+Lno_iwmmxt: -+ -+ /* Restore the clobbered R4 and LR. */ -+ ldr r14, [r4, #MCONTEXT_ARM_LR] -+ ldr r4, [r4, #MCONTEXT_ARM_R4] -+ -+ mov r0, #0 -+ -+ DO_RET(r14) -+ -+END(__getcontext) -+ -+#ifdef PIC -+1: .long _GLOBAL_OFFSET_TABLE_ - 0b - 8 -+Lrtld_global_ro: -+ .long C_SYMBOL_NAME(_rtld_global_ro)(GOT) -+#else -+Lhwcap: -+ .long C_SYMBOL_NAME(_dl_hwcap) -+#endif -+ -+ -+weak_alias(__getcontext, getcontext) -diff -Nrup j1/sysdeps/unix/sysv/linux/arm/eabi/makecontext.c j2/sysdeps/unix/sysv/linux/arm/eabi/makecontext.c ---- j1/sysdeps/unix/sysv/linux/arm/eabi/makecontext.c 1969-12-31 17:00:00.000000000 -0700 -+++ j2/sysdeps/unix/sysv/linux/arm/eabi/makecontext.c 2012-04-30 14:02:34.001589697 -0600 -@@ -0,0 +1,73 @@ -+/* Copyright (C) 2012 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+ -+/* Number of arguments that go in registers. */ -+#define NREG_ARGS 4 -+ -+/* Take a context previously prepared via getcontext() and set to -+ call func() with the given int only args. */ -+void -+__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...) -+{ -+ extern void __startcontext (void); -+ unsigned long *funcstack; -+ va_list vl; -+ unsigned long *regptr; -+ unsigned int reg; -+ int misaligned; -+ -+ /* Start at the top of stack. */ -+ funcstack = (unsigned long *) (ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size); -+ -+ /* Ensure the stack stays eight byte aligned. */ -+ misaligned = ((unsigned long) funcstack & 4) != 0; -+ -+ if ((argc > NREG_ARGS) && (argc & 1) != 0) -+ misaligned = !misaligned; -+ -+ if (misaligned) -+ funcstack -= 1; -+ -+ va_start (vl, argc); -+ -+ /* Reserve space for the on-stack arguments. */ -+ if (argc > NREG_ARGS) -+ funcstack -= (argc - NREG_ARGS); -+ -+ ucp->uc_mcontext.arm_sp = (unsigned long) funcstack; -+ ucp->uc_mcontext.arm_pc = (unsigned long) func; -+ -+ /* Exit to startcontext() with the next context in R4 */ -+ ucp->uc_mcontext.arm_r4 = (unsigned long) ucp->uc_link; -+ ucp->uc_mcontext.arm_lr = (unsigned long) __startcontext; -+ -+ /* The first four arguments go into registers. */ -+ regptr = &(ucp->uc_mcontext.arm_r0); -+ -+ for (reg = 0; (reg < argc) && (reg < NREG_ARGS); reg++) -+ *regptr++ = va_arg (vl, unsigned long); -+ -+ /* And the remainder on the stack. */ -+ for (; reg < argc; reg++) -+ *funcstack++ = va_arg (vl, unsigned long); -+ -+ va_end (vl); -+} -+weak_alias (__makecontext, makecontext) -diff -Nrup j1/sysdeps/unix/sysv/linux/arm/eabi/setcontext.S j2/sysdeps/unix/sysv/linux/arm/eabi/setcontext.S ---- j1/sysdeps/unix/sysv/linux/arm/eabi/setcontext.S 1969-12-31 17:00:00.000000000 -0700 -+++ j2/sysdeps/unix/sysv/linux/arm/eabi/setcontext.S 2012-04-30 14:02:34.049589449 -0600 -@@ -0,0 +1,101 @@ -+/* Copyright (C) 2012 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+ -+#include "ucontext_i.h" -+ -+ .syntax unified -+ .text -+ -+/* int setcontext (const ucontext_t *ucp) */ -+ -+ENTRY(__setcontext) -+ mov r4, r0 -+ add r0, r0, #UCONTEXT_REGSPACE -+ -+ /* Restore the VFP registers. Copied from arm/eabi/__longjmp.S. */ -+#ifdef PIC -+ ldr r2, 1f -+ ldr r1, Lrtld_global_ro -+0: add r2, pc, r2 -+ ldr r2, [r2, r1] -+ ldr r2, [r2, #RTLD_GLOBAL_RO_DL_HWCAP_OFFSET] -+#else -+ ldr r2, Lhwcap -+ ldr r2, [r2, #0] -+#endif -+ -+ tst r2, #HWCAP_ARM_VFP -+ beq Lno_vfp_sc -+ -+ /* Following instruction is vldmia r0!, {d8-d15}. */ -+ ldc p11, cr8, [r0], #64 -+ /* Restore the floating-point status register. */ -+ ldr r1, [r0], #4 -+ /* Following instruction is fmxr fpscr, r1. */ -+ mcr p10, 7, r1, cr1, cr0, 0 -+Lno_vfp_sc: -+ tst r2, #HWCAP_ARM_IWMMXT -+ beq Lno_iwmmxt_sc -+ -+ /* Restore the call-preserved iWMMXt registers. */ -+ /* Following instructions are wldrd wr10, [r0], #8 (etc.) */ -+ ldcl p1, cr10, [r0], #8 -+ ldcl p1, cr11, [r0], #8 -+ ldcl p1, cr12, [r0], #8 -+ ldcl p1, cr13, [r0], #8 -+ ldcl p1, cr14, [r0], #8 -+ ldcl p1, cr15, [r0], #8 -+Lno_iwmmxt_sc: -+ -+ /* Now bring back the signal status. */ -+ mov r0, #SIG_SETMASK -+ add r1, r4, #UCONTEXT_SIGMASK -+ mov r2, #0 -+ bl PLTJMP(__sigprocmask) -+ -+ /* Loading r0-r3 makes makecontext easier. */ -+ add r14, r4, #MCONTEXT_ARM_R0 -+ ldmia r14, {r0-r12} -+ ldr r13, [r14, #(MCONTEXT_ARM_SP - MCONTEXT_ARM_R0)] -+ add r14, r14, #(MCONTEXT_ARM_LR - MCONTEXT_ARM_R0) -+ ldmia r14, {r14, pc} -+ -+END(setcontext) -+weak_alias(__setcontext, setcontext) -+ -+ /* Called when a makecontext() context returns. Start the -+ context in R4 or fall through to exit(). */ -+ENTRY(__startcontext) -+ movs r0, r4 -+ bne PLTJMP(__setcontext) -+ -+ @ New context was 0 - exit -+ b PLTJMP(_exit) -+END(__startcontext) -+ -+#ifdef PIC -+1: .long _GLOBAL_OFFSET_TABLE_ - 0b - 8 -+Lrtld_global_ro: -+ .long C_SYMBOL_NAME(_rtld_global_ro)(GOT) -+#else -+Lhwcap: -+ .long C_SYMBOL_NAME(_dl_hwcap) -+#endif -+ -diff -Nrup j1/sysdeps/unix/sysv/linux/arm/eabi/swapcontext.S j2/sysdeps/unix/sysv/linux/arm/eabi/swapcontext.S ---- j1/sysdeps/unix/sysv/linux/arm/eabi/swapcontext.S 1969-12-31 17:00:00.000000000 -0700 -+++ j2/sysdeps/unix/sysv/linux/arm/eabi/swapcontext.S 2012-04-30 14:02:34.050589444 -0600 -@@ -0,0 +1,63 @@ -+/* Copyright (C) 2012 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+ -+#include "ucontext_i.h" -+ -+ .syntax unified -+ .text -+ -+/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp) */ -+ -+ENTRY(swapcontext) -+ -+ /* Have getcontext() do most of the work then fix up -+ LR afterwards. Save R3 to keep the stack aligned. */ -+ push {r0,r1,r3,r14} -+ cfi_adjust_cfa_offset (16) -+ cfi_rel_offset (r0,0) -+ cfi_rel_offset (r1,4) -+ cfi_rel_offset (r3,8) -+ cfi_rel_offset (r14,12) -+ -+ bl __getcontext -+ mov r4, r0 -+ -+ pop {r0,r1,r3,r14} -+ cfi_adjust_cfa_offset (-16) -+ cfi_restore (r0) -+ cfi_restore (r1) -+ cfi_restore (r3) -+ cfi_restore (r14) -+ -+ /* Exit if getcontext() failed. */ -+ cmp r4, #0 -+ itt ne -+ movne r0, r4 -+ RETINSTR(ne, r14) -+ -+ /* Fix up LR and the PC. */ -+ str r13,[r0, #MCONTEXT_ARM_SP] -+ str r14,[r0, #MCONTEXT_ARM_LR] -+ str r14,[r0, #MCONTEXT_ARM_PC] -+ -+ /* And swap using swapcontext(). */ -+ mov r0, r1 -+ b __setcontext -+ -+END(swapcontext) -diff -Nrup j1/sysdeps/unix/sysv/linux/arm/ucontext_i.sym j2/sysdeps/unix/sysv/linux/arm/ucontext_i.sym ---- j1/sysdeps/unix/sysv/linux/arm/ucontext_i.sym 1969-12-31 17:00:00.000000000 -0700 -+++ j2/sysdeps/unix/sysv/linux/arm/ucontext_i.sym 2012-04-30 14:02:34.051589439 -0600 -@@ -0,0 +1,30 @@ -+#include -+#include -+#include -+#include -+ -+SIG_BLOCK -+SIG_SETMASK -+ -+-- Offsets of the fields in the ucontext_t structure. -+#define ucontext(member) offsetof (ucontext_t, member) -+#define mcontext(member) ucontext (uc_mcontext.member) -+ -+UCONTEXT_FLAGS ucontext (uc_flags) -+UCONTEXT_LINK ucontext (uc_link) -+UCONTEXT_STACK ucontext (uc_stack) -+UCONTEXT_MCONTEXT ucontext (uc_mcontext) -+UCONTEXT_SIGMASK ucontext (uc_sigmask) -+ -+UCONTEXT_REGSPACE ucontext (uc_regspace) -+ -+MCONTEXT_TRAP_NO mcontext (trap_no) -+MCONTEXT_ERROR_CODE mcontext (error_code) -+MCONTEXT_OLDMASK mcontext (oldmask) -+MCONTEXT_ARM_R0 mcontext (arm_r0) -+MCONTEXT_ARM_R4 mcontext (arm_r4) -+MCONTEXT_ARM_SP mcontext (arm_sp) -+MCONTEXT_ARM_LR mcontext (arm_lr) -+MCONTEXT_ARM_PC mcontext (arm_pc) -+MCONTEXT_ARM_CPSR mcontext (arm_cpsr) -+MCONTEXT_FAULT_ADDRESS mcontext (fault_address) diff --git a/glibc-stap-libm.patch b/glibc-stap-libm.patch index 07761b9..fd20b7f 100644 --- a/glibc-stap-libm.patch +++ b/glibc-stap-libm.patch @@ -1,16 +1,16 @@ -diff -rup a/sysdeps/ieee754/dbl-64/slowexp.c b/sysdeps/ieee754/dbl-64/slowexp.c ---- a/sysdeps/ieee754/dbl-64/slowexp.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/ieee754/dbl-64/slowexp.c 2012-03-13 11:57:51.225330782 -0600 -@@ -31,6 +31,8 @@ +diff -rup c/sysdeps/ieee754/dbl-64/slowexp.c d/sysdeps/ieee754/dbl-64/slowexp.c +--- c/sysdeps/ieee754/dbl-64/slowexp.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/ieee754/dbl-64/slowexp.c 2012-05-21 10:02:51.693957300 -0600 +@@ -30,6 +30,8 @@ #include "mpa.h" - #include "math_private.h" + #include +#include + #ifndef SECTION # define SECTION #endif -@@ -61,12 +63,21 @@ __slowexp(double x) { +@@ -60,12 +62,21 @@ __slowexp(double x) { __sub(&mpy,&mpcor,&mpz,p); __mp_dbl(&mpw, &w, p); __mp_dbl(&mpz, &z, p); @@ -33,19 +33,19 @@ diff -rup a/sysdeps/ieee754/dbl-64/slowexp.c b/sysdeps/ieee754/dbl-64/slowexp.c return res; } } -diff -rup a/sysdeps/ieee754/dbl-64/slowpow.c b/sysdeps/ieee754/dbl-64/slowpow.c ---- a/sysdeps/ieee754/dbl-64/slowpow.c 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/ieee754/dbl-64/slowpow.c 2012-03-13 11:57:59.865284437 -0600 -@@ -35,6 +35,8 @@ +diff -rup c/sysdeps/ieee754/dbl-64/slowpow.c d/sysdeps/ieee754/dbl-64/slowpow.c +--- c/sysdeps/ieee754/dbl-64/slowpow.c 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/ieee754/dbl-64/slowpow.c 2012-05-21 10:02:51.694957291 -0600 +@@ -34,6 +34,8 @@ #include "mpa.h" - #include "math_private.h" + #include +#include + #ifndef SECTION # define SECTION #endif -@@ -66,7 +68,12 @@ __slowpow(double x, double y, double z) +@@ -65,7 +67,12 @@ __slowpow(double x, double y, double z) __mp_dbl(&mpr, &res, p); __sub(&mpp,&eps,&mpr1,p); /* pp -eps =r1 */ __mp_dbl(&mpr1, &res1, p); /* converting into double precision */ @@ -59,7 +59,7 @@ diff -rup a/sysdeps/ieee754/dbl-64/slowpow.c b/sysdeps/ieee754/dbl-64/slowpow.c p = 32; /* if we get here result wasn't calculated exactly, continue */ __dbl_mp(x,&mpx,p); /* for more exact calculation */ -@@ -76,5 +83,10 @@ __slowpow(double x, double y, double z) +@@ -75,5 +82,10 @@ __slowpow(double x, double y, double z) __mul(&mpy,&mpz,&mpw,p); /* y*z =w */ __mpexp(&mpw, &mpp, p); /* e^w=pp */ __mp_dbl(&mpp, &res, p); /* converting into double precision */ diff --git a/glibc-stap.patch b/glibc-stap.patch index b3ff9fa..d481a0b 100644 --- a/glibc-stap.patch +++ b/glibc-stap.patch @@ -1,270 +1,157 @@ -diff -Nrup a/scripts/check-local-headers.sh b/scripts/check-local-headers.sh ---- a/scripts/check-local-headers.sh 2012-01-01 05:16:32.000000000 -0700 -+++ b/scripts/check-local-headers.sh 2012-01-01 20:41:26.683439836 -0700 -@@ -29,7 +29,7 @@ exec ${AWK} -v includedir="$includedir" - 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 -Nrup a/sysdeps/i386/__longjmp.S b/sysdeps/i386/__longjmp.S ---- a/sysdeps/i386/__longjmp.S 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/i386/__longjmp.S 2012-01-01 20:41:26.686439835 -0700 -@@ -1,5 +1,5 @@ - /* longjmp for i386. -- Copyright (C) 1995-1998,2000,2002,2005,2006,2009 -+ Copyright (C) 1995-1998,2000,2002,2005,2006,2009,2011 - Free Software Foundation, Inc. - This file is part of the GNU C Library. - -@@ -21,6 +21,7 @@ - #include - #include - #include -+#include - - .text - ENTRY (__longjmp) -@@ -33,6 +34,7 @@ ENTRY (__longjmp) - movl (JB_SP*4)(%eax), %ecx - PTR_DEMANGLE (%edx) - PTR_DEMANGLE (%ecx) -+ LIBC_PROBE (longjmp, 3, 4@%eax, -4@8(%esp), 4@%edx) - cfi_def_cfa(%eax, 0) - cfi_register(%eip, %edx) - cfi_register(%esp, %ecx) -@@ -50,6 +52,7 @@ ENTRY (__longjmp) - cfi_restore(%edi) - cfi_restore(%ebp) +diff -Nrup c/config.h.in d/config.h.in +--- c/config.h.in 2012-05-20 19:47:38.000000000 -0600 ++++ d/config.h.in 2012-05-20 23:51:59.511489307 -0600 +@@ -208,6 +208,9 @@ -+ LIBC_PROBE (longjmp_target, 3, 4@%eax, -4@8(%esp), 4@%edx) - movl 8(%esp), %eax /* Second argument is return value. */ - movl %ecx, %esp - #else -@@ -57,12 +60,14 @@ ENTRY (__longjmp) - movl 8(%esp), %eax /* Second argument is return value. */ - /* Save the return address now. */ - movl (JB_PC*4)(%ecx), %edx -+ LIBC_PROBE (longjmp, 3, 4@%ecx, -4@%eax, 4@%edx) - /* Restore registers. */ - movl (JB_BX*4)(%ecx), %ebx - movl (JB_SI*4)(%ecx), %esi - movl (JB_DI*4)(%ecx), %edi - movl (JB_BP*4)(%ecx), %ebp - movl (JB_SP*4)(%ecx), %esp -+ LIBC_PROBE (longjmp_target, 3, 4@%ecx, -4@%ecx, 4@%edx) #endif - /* Jump to saved PC. */ - jmp *%edx -diff -Nrup a/sysdeps/i386/bsd-_setjmp.S b/sysdeps/i386/bsd-_setjmp.S ---- a/sysdeps/i386/bsd-_setjmp.S 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/i386/bsd-_setjmp.S 2012-01-01 20:41:26.686439835 -0700 -@@ -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. -+ Copyright (C) 1994-1997,2000-2002,2005,2006,2011 -+ Free Software Foundation, Inc. - This file is part of the GNU C Library. - The GNU C Library is free software; you can redistribute it and/or -@@ -25,6 +26,7 @@ - #include - #include "bp-sym.h" - #include "bp-asm.h" -+#include ++/* Define if Systemtap probes should be defined. */ ++#undef USE_STAP_PROBE ++ + /* + */ - #define PARMS LINKAGE /* no space for saved regs */ - #define JMPBUF PARMS -@@ -47,6 +49,7 @@ ENTRY (BP_SYM (_setjmp)) - #endif - movl %ecx, (JB_SP*4)(%edx) - movl PCOFF(%esp), %ecx /* Save PC we are returning to now. */ -+ LIBC_PROBE (setjmp, 3, 4@%edx, -4@$0, 4@%ecx) - #ifdef PTR_MANGLE - PTR_MANGLE (%ecx) - #endif -diff -Nrup a/sysdeps/i386/bsd-setjmp.S b/sysdeps/i386/bsd-setjmp.S ---- a/sysdeps/i386/bsd-setjmp.S 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/i386/bsd-setjmp.S 2012-01-01 20:41:26.687439834 -0700 -@@ -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. -+ Copyright (C) 1994-1997,2000,2001,2005,2006,2011 -+ Free Software Foundation, Inc. - This file is part of the GNU C Library. +diff -Nrup c/configure d/configure +--- c/configure 2012-05-20 23:51:08.075734606 -0600 ++++ d/configure 2012-05-20 23:53:48.520969358 -0600 +@@ -1441,6 +1441,7 @@ Optional Features: + --enable-nss-crypt enable libcrypt to use nss + --enable-obsolete-rpc build and install the obsolete RPC code for + link-time usage ++ --enable-systemtap enable systemtap static probe points [default=no] - The GNU C Library is free software; you can redistribute it and/or -@@ -25,6 +26,7 @@ - #include - #include "bp-sym.h" - #include "bp-asm.h" -+#include + Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] +@@ -3767,6 +3768,51 @@ if test "$link_obsolete_rpc" = yes; then - #define PARMS LINKAGE /* no space for saved regs */ - #define JMPBUF PARMS -@@ -49,6 +51,7 @@ ENTRY (BP_SYM (setjmp)) - #endif - movl %ecx, (JB_SP*4)(%eax) - movl PCOFF(%esp), %ecx /* Save PC we are returning to now. */ -+ LIBC_PROBE (setjmp, 3, 4@%eax, -4@$1, 4@%ecx) - #ifdef PTR_MANGLE - PTR_MANGLE (%ecx) - #endif -diff -Nrup a/sysdeps/i386/setjmp.S b/sysdeps/i386/setjmp.S ---- a/sysdeps/i386/setjmp.S 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/i386/setjmp.S 2012-01-01 20:41:26.687439834 -0700 -@@ -1,5 +1,5 @@ - /* setjmp for i386. -- Copyright (C) 1995,1996,1997,2000,2001,2005,2006 -+ Copyright (C) 1995,1996,1997,2000,2001,2005,2006,2011 - Free Software Foundation, Inc. - This file is part of the GNU C Library. + fi -@@ -23,6 +23,7 @@ - #include - #include "bp-sym.h" - #include "bp-asm.h" -+#include ++# Check whether --enable-systemtap was given. ++if test "${enable_systemtap+set}" = set; then : ++ enableval=$enable_systemtap; systemtap=$enableval ++else ++ systemtap=no ++fi ++ ++if test x$systemtap != xno; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for systemtap static probe support" >&5 ++$as_echo_n "checking for systemtap static probe support... " >&6; } ++if test "${libc_cv_sdt+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ old_CFLAGS="$CFLAGS" ++ CFLAGS="-std=gnu99 $CFLAGS" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++void foo (int i, void *p) ++{ ++ asm ("" STAP_PROBE_ASM (foo, bar, STAP_PROBE_ASM_TEMPLATE (2)) "" ++ :: STAP_PROBE_ASM_OPERANDS (2, i, p)); ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ libc_cv_sdt=yes ++else ++ libc_cv_sdt=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ CFLAGS="$old_CFLAGS" ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sdt" >&5 ++$as_echo "$libc_cv_sdt" >&6; } ++ if test $libc_cv_sdt = yes; then ++ $as_echo "#define USE_STAP_PROBE 1" >>confdefs.h ++ ++ else ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++as_fn_error $? "systemtap support needs sys/sdt.h with asm support ++See \`config.log' for more details" "$LINENO" 5; } ++ fi ++fi ++ + # The way shlib-versions is used to generate soversions.mk uses a + # fairly simplistic model for name recognition that can't distinguish + # i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os +diff -Nrup c/configure.in d/configure.in +--- c/configure.in 2012-05-20 19:47:38.000000000 -0600 ++++ d/configure.in 2012-05-20 23:51:59.558489083 -0600 +@@ -263,6 +263,29 @@ if test "$link_obsolete_rpc" = yes; then + AC_DEFINE(LINK_OBSOLETE_RPC) + fi - #define PARMS LINKAGE /* no space for saved regs */ - #define JMPBUF PARMS -@@ -44,6 +45,7 @@ ENTRY (BP_SYM (__sigsetjmp)) - #endif - movl %ecx, (JB_SP*4)(%eax) - movl PCOFF(%esp), %ecx /* Save PC we are returning to now. */ -+ LIBC_PROBE (setjmp, 3, 4@%eax, -4@SIGMSK(%esp), 4@%ecx) - #ifdef PTR_MANGLE - PTR_MANGLE (%ecx) - #endif -diff -Nrup 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 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S 2012-01-01 20:41:26.699439832 -0700 -@@ -1,4 +1,5 @@ --/* Copyright (C) 2001,2004,2005,2006,2009 Free Software Foundation, Inc. -+/* Copyright (C) 2001,2004,2005,2006,2009,2011 -+ Free Software Foundation, Inc. - This file is part of the GNU C Library. ++AC_ARG_ENABLE([systemtap], ++ [AS_HELP_STRING([--enable-systemtap], ++ [enable systemtap static probe points @<:@default=no@:>@])], ++ [systemtap=$enableval], ++ [systemtap=no]) ++if test x$systemtap != xno; then ++ AC_CACHE_CHECK([for systemtap static probe support], libc_cv_sdt, [dnl ++ old_CFLAGS="$CFLAGS" ++ CFLAGS="-std=gnu99 $CFLAGS" ++ AC_COMPILE_IFELSE([#include ++void foo (int i, void *p) ++{ ++ asm ("" STAP_PROBE_ASM (foo, bar, STAP_PROBE_ASM_TEMPLATE (2)) "" ++ :: STAP_PROBE_ASM_OPERANDS (2, i, p)); ++}], [libc_cv_sdt=yes], [libc_cv_sdt=no]) ++ CFLAGS="$old_CFLAGS"]) ++ if test $libc_cv_sdt = yes; then ++ AC_DEFINE([USE_STAP_PROBE]) ++ else ++ AC_MSG_FAILURE([systemtap support needs sys/sdt.h with asm support]) ++ fi ++fi ++ + # The way shlib-versions is used to generate soversions.mk uses a + # fairly simplistic model for name recognition that can't distinguish + # i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os +diff -Nrup c/elf/Makefile d/elf/Makefile +--- c/elf/Makefile 2012-05-20 23:51:07.907735407 -0600 ++++ d/elf/Makefile 2012-05-20 23:51:59.561489070 -0600 +@@ -423,7 +423,8 @@ CFLAGS-dl-cache.c = $(SYSCONF-FLAGS) + CFLAGS-cache.c = $(SYSCONF-FLAGS) + CFLAGS-rtld.c = $(SYSCONF-FLAGS) - The GNU C Library is free software; you can redistribute it and/or -@@ -19,6 +20,7 @@ - #include - #include - #include -+#include +-CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),-DNOT_IN_libc=1 -DIS_IN_rtld=1) ++CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\ ++ -DNOT_IN_libc=1 -DIS_IN_rtld=1 -DIN_LIB=rtld) + test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names)))) + generated += $(addsuffix .so,$(strip $(modules-names))) +diff -Nrup c/elf/rtld-Rules d/elf/rtld-Rules +--- c/elf/rtld-Rules 2012-05-20 19:47:38.000000000 -0600 ++++ d/elf/rtld-Rules 2012-05-20 23:51:59.561489070 -0600 +@@ -1,7 +1,7 @@ + # Subroutine makefile for compiling libc modules linked into dynamic linker. - .section .rodata.str1.1,"aMS",@progbits,1 -@@ -79,7 +81,9 @@ ENTRY (____longjmp_chk) - cfi_adjust_cfa_offset(-12) - movl 4(%esp), %ecx + # Copyright (C) 2002,2003,2005,2006,2008,2010,2011 +-# Free Software Foundation, Inc. ++# Free Software Foundation, Inc. + # This file is part of the GNU C Library. --.Lok: /* We add unwind information for the target here. */ -+.Lok: -+ LIBC_PROBE (longjmp, 3, 4@%ecx, -4@8(%esp), 4@%edx) -+ /* We add unwind information for the target here. */ - cfi_def_cfa(%ecx, 0) - cfi_register(%eip, %edx) - cfi_register(%esp, %edi) -@@ -102,5 +106,6 @@ ENTRY (____longjmp_chk) - cfi_restore(%ebp) + # The GNU C Library is free software; you can redistribute it and/or +@@ -130,6 +130,6 @@ ifdef rtld-depfiles + endif - /* Jump to saved PC. */ -+ LIBC_PROBE (longjmp_target, 3, 4@%ecx, -4@%eax, 4@%edx) - jmp *%edx - END (____longjmp_chk) -diff -Nrup 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 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S 2012-01-01 20:41:26.703439831 -0700 -@@ -19,6 +19,7 @@ - #include - #include - #include -+#include + # This here is the whole point of all the shenanigans. +-rtld-CPPFLAGS := -DNOT_IN_libc=1 -DIS_IN_rtld=1 ++rtld-CPPFLAGS := -DNOT_IN_libc=1 -DIS_IN_rtld=1 -DIN_LIB=rtld - .section .rodata.str1.1,"aMS",@progbits,1 - .type longjmp_msg,@object -@@ -94,7 +95,9 @@ ENTRY(____longjmp_chk) - movl %ebx, %esi - cfi_restore (%rsi) + endif +diff -Nrup c/extra-lib.mk d/extra-lib.mk +--- c/extra-lib.mk 2012-05-20 19:47:38.000000000 -0600 ++++ d/extra-lib.mk 2012-05-20 23:51:59.559489078 -0600 +@@ -101,4 +101,4 @@ ifneq (,$(cpp-srcs-left)) + include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left)) + endif --.Lok: /* We add unwind information for the target here. */ -+.Lok: -+ LIBC_PROBE (longjmp, 3, 8@%rdi, -4@%esi, 8@%rdx) -+ /* We add unwind information for the target here. */ - cfi_def_cfa(%rdi, 0) - cfi_register(%rsp,%r8) - cfi_register(%rbp,%r9) -@@ -113,5 +116,6 @@ ENTRY(____longjmp_chk) - 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) -diff -Nrup a/sysdeps/x86_64/__longjmp.S b/sysdeps/x86_64/__longjmp.S ---- a/sysdeps/x86_64/__longjmp.S 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/x86_64/__longjmp.S 2012-01-01 20:41:26.703439831 -0700 -@@ -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. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or -@@ -19,6 +19,7 @@ - #include - #include - #include -+#include - - /* 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) - PTR_DEMANGLE (%r9) - PTR_DEMANGLE (%rdx) - #endif -+ LIBC_PROBE (longjmp, 3, 8@%rdi, -4@%esi, 8@%rdx) - /* We add unwind information for the target here. */ - cfi_def_cfa(%rdi, 0) - cfi_register(%rsp,%r8) -@@ -53,5 +55,6 @@ ENTRY(__longjmp) - mov %esi, %eax - movq %r8,%rsp - movq %r9,%rbp -+ LIBC_PROBE (longjmp_target, 3, 8@%rdi, -4@%eax, 8@%rdx) - jmpq *%rdx - END (__longjmp) -diff -Nrup a/sysdeps/x86_64/setjmp.S b/sysdeps/x86_64/setjmp.S ---- a/sysdeps/x86_64/setjmp.S 2012-01-01 05:16:32.000000000 -0700 -+++ b/sysdeps/x86_64/setjmp.S 2012-01-01 20:41:26.704439831 -0700 -@@ -1,5 +1,5 @@ - /* setjmp for x86-64. -- Copyright (C) 2001, 2003, 2005, 2006 Free Software Foundation, Inc. -+ Copyright (C) 2001,2003,2005,2006,2011 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or -@@ -20,6 +20,7 @@ - #include - #include - #include -+#include - - ENTRY (__sigsetjmp) - /* Save registers. */ -@@ -41,6 +42,7 @@ ENTRY (__sigsetjmp) - #endif - movq %rdx, (JB_RSP*8)(%rdi) - movq (%rsp), %rax /* Save PC we are returning to now. */ -+ LIBC_PROBE (setjmp, 3, 8@%rdi, -4@%esi, 8@%rax) - #ifdef PTR_MANGLE - PTR_MANGLE (%rax) - #endif -diff -Nrup a/include/stap-probe.h b/include/stap-probe.h ---- a/include/stap-probe.h 1969-12-31 17:00:00.000000000 -0700 -+++ b/include/stap-probe.h 2012-01-01 20:41:26.646439841 -0700 +-CPPFLAGS-$(lib) := -DNOT_IN_libc=1 -DIS_IN_$(lib)=1 ++CPPFLAGS-$(lib) := -DNOT_IN_libc=1 -DIS_IN_$(lib)=1 -DIN_LIB=$(lib) +diff -Nrup c/include/stap-probe.h d/include/stap-probe.h +--- c/include/stap-probe.h 1969-12-31 17:00:00.000000000 -0700 ++++ d/include/stap-probe.h 2012-05-20 23:51:59.510489312 -0600 @@ -0,0 +1,140 @@ +/* Macros for defining Systemtap static probe points. + Copyright (C) 2011 Free Software Foundation, Inc. @@ -406,162 +293,267 @@ diff -Nrup a/include/stap-probe.h b/include/stap-probe.h +#endif /* USE_STAP_PROBE. */ + +#endif /* stap-probe.h */ -diff -Nrup a/config.h.in b/config.h.in ---- a/config.h.in 2012-01-01 05:16:32.000000000 -0700 -+++ b/config.h.in 2012-01-01 20:41:26.632439843 -0700 -@@ -187,6 +187,9 @@ - /* Define if `.ctors' and `.dtors' sections shouldn't be used. */ - #undef NO_CTORS_DTORS_SECTIONS +diff -Nrup c/scripts/check-local-headers.sh d/scripts/check-local-headers.sh +--- c/scripts/check-local-headers.sh 2012-05-20 19:47:38.000000000 -0600 ++++ d/scripts/check-local-headers.sh 2012-05-20 23:54:51.258670072 -0600 +@@ -28,7 +28,7 @@ exec ${AWK} -v includedir="$includedir" + 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 -Nrup c/sysdeps/i386/__longjmp.S d/sysdeps/i386/__longjmp.S +--- c/sysdeps/i386/__longjmp.S 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/i386/__longjmp.S 2012-05-20 23:51:59.478489471 -0600 +@@ -1,5 +1,5 @@ + /* longjmp for i386. +- Copyright (C) 1995-1998,2000,2002,2005,2006,2009 ++ Copyright (C) 1995-1998,2000,2002,2005,2006,2009,2011 + Free Software Foundation, Inc. + This file is part of the GNU C Library. -+/* Define if Systemtap probes should be defined. */ -+#undef USE_STAP_PROBE -+ - /* - */ +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include -diff -Nrup a/configure b/configure ---- a/configure 2012-01-01 20:40:50.423446105 -0700 -+++ b/configure 2012-01-01 20:41:26.634439843 -0700 -@@ -791,6 +791,7 @@ enable_kernel - enable_all_warnings - enable_multi_arch - enable_nss_crypt -+enable_systemtap - with_cpu - ' - ac_precious_vars='build_alias -@@ -1450,6 +1451,7 @@ Optional Features: - --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] + .text + ENTRY (__longjmp) +@@ -32,6 +33,7 @@ ENTRY (__longjmp) + movl (JB_SP*4)(%eax), %ecx + PTR_DEMANGLE (%edx) + PTR_DEMANGLE (%ecx) ++ LIBC_PROBE (longjmp, 3, 4@%eax, -4@8(%esp), 4@%edx) + cfi_def_cfa(%eax, 0) + cfi_register(%eip, %edx) + cfi_register(%esp, %ecx) +@@ -49,6 +51,7 @@ ENTRY (__longjmp) + cfi_restore(%edi) + cfi_restore(%ebp) - Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] -@@ -3804,6 +3806,51 @@ else - fi ++ LIBC_PROBE (longjmp_target, 3, 4@%eax, -4@8(%esp), 4@%edx) + movl 8(%esp), %eax /* Second argument is return value. */ + movl %ecx, %esp + #else +@@ -56,12 +59,14 @@ ENTRY (__longjmp) + movl 8(%esp), %eax /* Second argument is return value. */ + /* Save the return address now. */ + movl (JB_PC*4)(%ecx), %edx ++ LIBC_PROBE (longjmp, 3, 4@%ecx, -4@%eax, 4@%edx) + /* Restore registers. */ + movl (JB_BX*4)(%ecx), %ebx + movl (JB_SI*4)(%ecx), %esi + movl (JB_DI*4)(%ecx), %edi + movl (JB_BP*4)(%ecx), %ebp + movl (JB_SP*4)(%ecx), %esp ++ LIBC_PROBE (longjmp_target, 3, 4@%ecx, -4@%ecx, 4@%edx) + #endif + /* Jump to saved PC. */ + jmp *%edx +diff -Nrup c/sysdeps/i386/bsd-_setjmp.S d/sysdeps/i386/bsd-_setjmp.S +--- c/sysdeps/i386/bsd-_setjmp.S 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/i386/bsd-_setjmp.S 2012-05-20 23:51:59.479489464 -0600 +@@ -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. ++ Copyright (C) 1994-1997,2000-2002,2005,2006,2011 ++ Free Software Foundation, Inc. + This file is part of the GNU C Library. + The GNU C Library is free software; you can redistribute it and/or +@@ -24,6 +25,7 @@ + #include + #include "bp-sym.h" + #include "bp-asm.h" ++#include -+# Check whether --enable-systemtap was given. -+if test "${enable_systemtap+set}" = set; then : -+ enableval=$enable_systemtap; systemtap=$enableval -+else -+ systemtap=no -+fi -+ -+if test x$systemtap != xno; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for systemtap static probe support" >&5 -+$as_echo_n "checking for systemtap static probe support... " >&6; } -+if test "${libc_cv_sdt+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ old_CFLAGS="$CFLAGS" -+ CFLAGS="-std=gnu99 $CFLAGS" -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+#include -+void foo (int i, void *p) -+{ -+ asm ("" STAP_PROBE_ASM (foo, bar, STAP_PROBE_ASM_TEMPLATE (2)) "" -+ :: STAP_PROBE_ASM_OPERANDS (2, i, p)); -+} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ libc_cv_sdt=yes -+else -+ libc_cv_sdt=no -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ CFLAGS="$old_CFLAGS" -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sdt" >&5 -+$as_echo "$libc_cv_sdt" >&6; } -+ if test $libc_cv_sdt = yes; then -+ $as_echo "#define USE_STAP_PROBE 1" >>confdefs.h -+ -+ else -+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -+as_fn_error $? "systemtap support needs sys/sdt.h with asm support -+See \`config.log' for more details" "$LINENO" 5; } -+ fi -+fi -+ - # The way shlib-versions is used to generate soversions.mk uses a - # fairly simplistic model for name recognition that can't distinguish - # i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os -diff -Nrup a/configure.in b/configure.in ---- a/configure.in 2012-01-01 05:16:32.000000000 -0700 -+++ b/configure.in 2012-01-01 20:41:26.635439843 -0700 -@@ -290,6 +290,29 @@ else - fi - AC_SUBST(libc_cv_nss_crypt) + #define PARMS LINKAGE /* no space for saved regs */ + #define JMPBUF PARMS +@@ -46,6 +48,7 @@ ENTRY (BP_SYM (_setjmp)) + #endif + movl %ecx, (JB_SP*4)(%edx) + movl PCOFF(%esp), %ecx /* Save PC we are returning to now. */ ++ LIBC_PROBE (setjmp, 3, 4@%edx, -4@$0, 4@%ecx) + #ifdef PTR_MANGLE + PTR_MANGLE (%ecx) + #endif +diff -Nrup c/sysdeps/i386/bsd-setjmp.S d/sysdeps/i386/bsd-setjmp.S +--- c/sysdeps/i386/bsd-setjmp.S 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/i386/bsd-setjmp.S 2012-05-20 23:51:59.505489337 -0600 +@@ -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. ++ Copyright (C) 1994-1997,2000,2001,2005,2006,2011 ++ Free Software Foundation, Inc. + This file is part of the GNU C Library. -+AC_ARG_ENABLE([systemtap], -+ [AS_HELP_STRING([--enable-systemtap], -+ [enable systemtap static probe points @<:@default=no@:>@])], -+ [systemtap=$enableval], -+ [systemtap=no]) -+if test x$systemtap != xno; then -+ AC_CACHE_CHECK([for systemtap static probe support], libc_cv_sdt, [dnl -+ old_CFLAGS="$CFLAGS" -+ CFLAGS="-std=gnu99 $CFLAGS" -+ AC_COMPILE_IFELSE([#include -+void foo (int i, void *p) -+{ -+ asm ("" STAP_PROBE_ASM (foo, bar, STAP_PROBE_ASM_TEMPLATE (2)) "" -+ :: STAP_PROBE_ASM_OPERANDS (2, i, p)); -+}], [libc_cv_sdt=yes], [libc_cv_sdt=no]) -+ CFLAGS="$old_CFLAGS"]) -+ if test $libc_cv_sdt = yes; then -+ AC_DEFINE([USE_STAP_PROBE]) -+ else -+ AC_MSG_FAILURE([systemtap support needs sys/sdt.h with asm support]) -+ fi -+fi -+ - # The way shlib-versions is used to generate soversions.mk uses a - # fairly simplistic model for name recognition that can't distinguish - # i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os -diff -Nrup a/extra-lib.mk b/extra-lib.mk ---- a/extra-lib.mk 2012-01-01 05:16:32.000000000 -0700 -+++ b/extra-lib.mk 2012-01-01 20:41:26.644439841 -0700 -@@ -101,4 +101,4 @@ ifneq (,$(cpp-srcs-left)) - include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left)) - endif + The GNU C Library is free software; you can redistribute it and/or +@@ -24,6 +25,7 @@ + #include + #include "bp-sym.h" + #include "bp-asm.h" ++#include --CPPFLAGS-$(lib) := -DNOT_IN_libc=1 -DIS_IN_$(lib)=1 -+CPPFLAGS-$(lib) := -DNOT_IN_libc=1 -DIS_IN_$(lib)=1 -DIN_LIB=$(lib) -diff -Nrup a/elf/Makefile b/elf/Makefile ---- a/elf/Makefile 2012-01-01 05:16:32.000000000 -0700 -+++ b/elf/Makefile 2012-01-01 20:41:26.637439843 -0700 -@@ -505,7 +506,8 @@ CFLAGS-ldconfig.c = $(SYSCONF-FLAGS) -D' - CFLAGS-dl-cache.c = $(SYSCONF-FLAGS) - CFLAGS-cache.c = $(SYSCONF-FLAGS) + #define PARMS LINKAGE /* no space for saved regs */ + #define JMPBUF PARMS +@@ -48,6 +50,7 @@ ENTRY (BP_SYM (setjmp)) + #endif + movl %ecx, (JB_SP*4)(%eax) + movl PCOFF(%esp), %ecx /* Save PC we are returning to now. */ ++ LIBC_PROBE (setjmp, 3, 4@%eax, -4@$1, 4@%ecx) + #ifdef PTR_MANGLE + PTR_MANGLE (%ecx) + #endif +diff -Nrup c/sysdeps/i386/setjmp.S d/sysdeps/i386/setjmp.S +--- c/sysdeps/i386/setjmp.S 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/i386/setjmp.S 2012-05-20 23:51:59.507489327 -0600 +@@ -1,5 +1,5 @@ + /* setjmp for i386. +- Copyright (C) 1995,1996,1997,2000,2001,2005,2006 ++ Copyright (C) 1995,1996,1997,2000,2001,2005,2006,2011 + Free Software Foundation, Inc. + This file is part of the GNU C Library. --CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),-DNOT_IN_libc=1 -DIS_IN_rtld=1) -+CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\ -+ -DNOT_IN_libc=1 -DIS_IN_rtld=1 -DIN_LIB=rtld) +@@ -22,6 +22,7 @@ + #include + #include "bp-sym.h" + #include "bp-asm.h" ++#include - test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names)))) - generated += $(addsuffix .so,$(strip $(modules-names))) -diff -Nrup a/elf/rtld-Rules b/elf/rtld-Rules ---- a/elf/rtld-Rules 2012-01-01 05:16:32.000000000 -0700 -+++ b/elf/rtld-Rules 2012-01-01 20:41:26.642439841 -0700 -@@ -1,7 +1,7 @@ - # Subroutine makefile for compiling libc modules linked into dynamic linker. + #define PARMS LINKAGE /* no space for saved regs */ + #define JMPBUF PARMS +@@ -43,6 +44,7 @@ ENTRY (BP_SYM (__sigsetjmp)) + #endif + movl %ecx, (JB_SP*4)(%eax) + movl PCOFF(%esp), %ecx /* Save PC we are returning to now. */ ++ LIBC_PROBE (setjmp, 3, 4@%eax, -4@SIGMSK(%esp), 4@%ecx) + #ifdef PTR_MANGLE + PTR_MANGLE (%ecx) + #endif +diff -Nrup c/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S d/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S +--- c/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S 2012-05-20 23:51:59.507489327 -0600 +@@ -1,4 +1,5 @@ +-/* Copyright (C) 2001,2004,2005,2006,2009 Free Software Foundation, Inc. ++/* Copyright (C) 2001,2004,2005,2006,2009,2011 ++ Free Software Foundation, Inc. + This file is part of the GNU C Library. - # Copyright (C) 2002,2003,2005,2006,2008,2010,2011 --# Free Software Foundation, Inc. -+# Free Software Foundation, Inc. - # This file is part of the GNU C Library. + The GNU C Library is free software; you can redistribute it and/or +@@ -18,6 +19,7 @@ + #include + #include + #include ++#include - # The GNU C Library is free software; you can redistribute it and/or -@@ -131,6 +131,6 @@ ifdef rtld-depfiles - endif - # This here is the whole point of all the shenanigans. --rtld-CPPFLAGS := -DNOT_IN_libc=1 -DIS_IN_rtld=1 -+rtld-CPPFLAGS := -DNOT_IN_libc=1 -DIS_IN_rtld=1 -DIN_LIB=rtld + .section .rodata.str1.1,"aMS",@progbits,1 +@@ -78,7 +80,9 @@ ENTRY (____longjmp_chk) + cfi_adjust_cfa_offset(-12) + movl 4(%esp), %ecx - endif +-.Lok: /* We add unwind information for the target here. */ ++.Lok: ++ LIBC_PROBE (longjmp, 3, 4@%ecx, -4@8(%esp), 4@%edx) ++ /* We add unwind information for the target here. */ + cfi_def_cfa(%ecx, 0) + cfi_register(%eip, %edx) + cfi_register(%esp, %edi) +@@ -101,5 +105,6 @@ ENTRY (____longjmp_chk) + cfi_restore(%ebp) + + /* Jump to saved PC. */ ++ LIBC_PROBE (longjmp_target, 3, 4@%ecx, -4@%eax, 4@%edx) + jmp *%edx + END (____longjmp_chk) +diff -Nrup c/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S d/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S +--- c/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S 2012-05-20 23:51:59.508489322 -0600 +@@ -18,6 +18,7 @@ + #include + #include + #include ++#include + + #include + +@@ -95,7 +96,9 @@ ENTRY(____longjmp_chk) + movl %ebx, %esi + cfi_restore (%rsi) + +-.Lok: /* We add unwind information for the target here. */ ++.Lok: ++ LIBC_PROBE (longjmp, 3, 8@%rdi, -4@%esi, 8@%rdx) ++ /* We add unwind information for the target here. */ + cfi_def_cfa(%rdi, 0) + cfi_register(%rsp,%r8) + cfi_register(%rbp,%r9) +@@ -114,5 +117,6 @@ ENTRY(____longjmp_chk) + movl %esi, %eax + mov %R8_LP, %RSP_LP + movq %r9,%rbp ++ LIBC_PROBE (longjmp_target, 3, 8@%rdi, -4@%eax, 8@%rdx) + jmpq *%rdx + END (____longjmp_chk) +diff -Nrup c/sysdeps/x86_64/__longjmp.S d/sysdeps/x86_64/__longjmp.S +--- c/sysdeps/x86_64/__longjmp.S 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/x86_64/__longjmp.S 2012-05-20 23:51:59.509489317 -0600 +@@ -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. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -18,6 +18,7 @@ + #include + #include + #include ++#include + + /* Jump to the position specified by ENV, causing the + setjmp call there to return VAL, or 1 if VAL is 0. +@@ -33,6 +34,7 @@ ENTRY(__longjmp) + PTR_DEMANGLE (%r9) + PTR_DEMANGLE (%RDX_LP) + #endif ++ LIBC_PROBE (longjmp, 3, 8@%rdi, -4@%esi, 8@%rdx) + /* We add unwind information for the target here. */ + cfi_def_cfa(%rdi, 0) + cfi_register(%rsp,%r8) +@@ -52,5 +54,6 @@ ENTRY(__longjmp) + mov %esi, %eax + mov %R8_LP,%RSP_LP + movq %r9,%rbp ++ LIBC_PROBE (longjmp_target, 3, 8@%rdi, -4@%eax, 8@%rdx) + jmpq *%rdx + END (__longjmp) +diff -Nrup c/sysdeps/x86_64/setjmp.S d/sysdeps/x86_64/setjmp.S +--- c/sysdeps/x86_64/setjmp.S 2012-05-20 19:47:38.000000000 -0600 ++++ d/sysdeps/x86_64/setjmp.S 2012-05-20 23:52:44.907272800 -0600 +@@ -1,5 +1,5 @@ + /* setjmp for x86-64. +- Copyright (C) 2001, 2003, 2005, 2006 Free Software Foundation, Inc. ++ Copyright (C) 2001,2003,2005,2006,2011 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -19,6 +19,7 @@ + #include + #include + #include ++#include + + ENTRY (__sigsetjmp) + /* Save registers. */ +@@ -40,6 +41,7 @@ ENTRY (__sigsetjmp) + #endif + movq %rdx, (JB_RSP*8)(%rdi) + mov (%rsp), %RAX_LP /* Save PC we are returning to now. */ ++ LIBC_PROBE (setjmp, 3, 8@%rdi, -4@%esi, 8@%rax) + #ifdef PTR_MANGLE + PTR_MANGLE (%RAX_LP) + #endif diff --git a/glibc-sw13618.patch b/glibc-sw13618.patch deleted file mode 100644 index 6202deb..0000000 --- a/glibc-sw13618.patch +++ /dev/null @@ -1,267 +0,0 @@ -diff -Nrup a/Makeconfig b/Makeconfig ---- a/Makeconfig 2012-01-29 21:44:43.010328202 -0700 -+++ b/Makeconfig 2012-01-29 21:45:18.242344330 -0700 -@@ -950,6 +950,12 @@ libdl = - endif - endif - -+ifeq ($(build-shared),yes) -+libm = $(common-objpfx)math/libm.so$(libm.so-version) -+else -+libm = $(common-objpfx)math/libm.a -+endif -+ - # These are the subdirectories containing the library source. The order - # is more or less arbitrary. The sorting step will take care of the - # dependencies. -diff -Nrup a/elf/Makefile b/elf/Makefile ---- a/elf/Makefile 2012-01-29 21:44:43.087328238 -0700 -+++ b/elf/Makefile 2012-01-29 21:45:18.880344622 -0700 -@@ -124,7 +124,8 @@ distribute := rtld-Rules \ - tst-initordera1.c tst-initordera2.c tst-initorderb1.c \ - tst-initorderb2.c tst-initordera3.c tst-initordera4.c \ - tst-initorder.c \ -- tst-initorder2.c -+ tst-initorder2.c \ -+ tst-relsort1.c tst-relsort1mod1.c tst-relsort1mod2.c - - CFLAGS-dl-runtime.c = -fexceptions -fasynchronous-unwind-tables - CFLAGS-dl-lookup.c = -fexceptions -fasynchronous-unwind-tables -@@ -230,7 +231,7 @@ tests += loadtest restest1 preloadtest l - tst-audit1 tst-audit2 \ - tst-stackguard1 tst-addr1 tst-thrlock \ - tst-unique1 tst-unique2 tst-unique3 tst-unique4 \ -- tst-initorder tst-initorder2 -+ tst-initorder tst-initorder2 tst-relsort1 - # reldep9 - test-srcs = tst-pathopt - selinux-enabled := $(shell cat /selinux/enforce 2> /dev/null) -@@ -293,7 +294,9 @@ modules-names = testobj1 testobj2 testob - tst-initordera1 tst-initorderb1 \ - tst-initordera2 tst-initorderb2 \ - tst-initordera3 tst-initordera4 \ -- tst-initorder2a tst-initorder2b tst-initorder2c tst-initorder2d -+ tst-initorder2a tst-initorder2b tst-initorder2c \ -+ tst-initorder2d \ -+ tst-relsort1mod1 tst-relsort1mod2 - ifeq (yes,$(have-initfini-array)) - modules-names += tst-array2dep tst-array5dep - endif -@@ -1199,3 +1202,9 @@ CFLAGS-tst-auditmod6b.c += $(AVX-CFLAGS) - CFLAGS-tst-auditmod6c.c += $(AVX-CFLAGS) - CFLAGS-tst-auditmod7b.c += $(AVX-CFLAGS) - endif -+ -+$(objpfx)tst-relsort1: $(libdl) -+$(objpfx)tst-relsort1mod1.so: $(libm) $(objpfx)tst-relsort1mod2.so -+$(objpfx)tst-relsort1mod2.so: $(libm) -+$(objpfx)tst-relsort1.out: $(objpfx)tst-relsort1mod1.so \ -+ $(objpfx)tst-relsort1mod2.so -diff -Nrup a/elf/dl-open.c b/elf/dl-open.c ---- a/elf/dl-open.c 2012-01-29 21:44:43.165328272 -0700 -+++ b/elf/dl-open.c 2012-01-29 21:55:06.683599515 -0700 -@@ -1,5 +1,5 @@ - /* Load a shared object at runtime, relocate it, and run its initializer. -- Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc. -+ Copyright (C) 1996-2007, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or -@@ -304,53 +304,116 @@ dl_open_worker (void *a) - if (GLRO(dl_lazy)) - reloc_mode |= mode & RTLD_LAZY; - -- /* Relocate the objects loaded. We do this in reverse order so that copy -- relocs of earlier objects overwrite the data written by later objects. */ -- -+ /* Sort the objects by dependency for the relocation process. This -+ allows IFUNC relocations to work and it also means copy -+ relocation of dependencies are if necessary overwritten. */ -+ size_t nmaps = 0; - struct link_map *l = new; -- while (l->l_next) -- l = l->l_next; -- int relocation_in_progress = 0; -- while (1) -+ do - { - if (! l->l_real->l_relocated) -+ ++nmaps; -+ l = l->l_next; -+ } -+ while (l != NULL); -+ struct link_map *maps[nmaps]; -+ nmaps = 0; -+ l = new; -+ do -+ { -+ if (! l->l_real->l_relocated) -+ maps[nmaps++] = l; -+ l = l->l_next; -+ } -+ while (l != NULL); -+ if (nmaps > 1) -+ { -+ char seen[nmaps]; -+ memset (seen, '\0', nmaps); -+ size_t i = 0; -+ while (1) - { -- if (! relocation_in_progress) -+ ++seen[i]; -+ struct link_map *thisp = maps[i]; -+ -+ /* Find the last object in the list for which the current one is -+ a dependency and move the current object behind the object -+ with the dependency. */ -+ size_t k = nmaps - 1; -+ while (k > i) - { -- /* Notify the debugger that relocations are about to happen. */ -- LIBC_PROBE (rtld_reloc_start, 2, args->nsid, r); -- relocation_in_progress = 1; -+ struct link_map **runp = maps[k]->l_initfini; -+ if (runp != NULL) -+ /* Look through the dependencies of the object. */ -+ while (*runp != NULL) -+ if (__builtin_expect (*runp++ == thisp, 0)) -+ { -+ /* Move the current object to the back past the last -+ object with it as the dependency. */ -+ memmove (&maps[i], &maps[i + 1], -+ (k - i) * sizeof (maps[0])); -+ maps[k] = thisp; -+ -+ if (seen[i + 1] > 1) -+ { -+ ++i; -+ goto next_clear; -+ } -+ -+ char this_seen = seen[i]; -+ memmove (&seen[i], &seen[i + 1], -+ (k - i) * sizeof (seen[0])); -+ seen[k] = this_seen; -+ -+ goto next; -+ } -+ -+ --k; - } - -+ if (++i == nmaps) -+ break; -+ next_clear: -+ memset (&seen[i], 0, (nmaps - i) * sizeof (seen[0])); -+ next:; -+ } -+ } -+ -+ int relocation_in_progress = 0; -+ for (size_t i = nmaps; i-- > 0; ) -+ { -+ l = maps[i]; -+ -+ if (! relocation_in_progress) -+ { -+ /* Notify the debugger that relocations are about to happen. */ -+ LIBC_PROBE (rtld-reloc_start, 2, args->nsid, r); -+ relocation_in_progress = 1; -+ } - #ifdef SHARED -- if (__builtin_expect (GLRO(dl_profile) != NULL, 0)) -+ if (__builtin_expect (GLRO(dl_profile) != NULL, 0)) -+ { -+ /* If this here is the shared object which we want to profile -+ make sure the profile is started. We can find out whether -+ this is necessary or not by observing the `_dl_profile_map' -+ variable. If it was NULL but is not NULL afterwars we must -+ start the profiling. */ -+ struct link_map *old_profile_map = GL(dl_profile_map); -+ -+ _dl_relocate_object (l, l->l_scope, reloc_mode | RTLD_LAZY, 1); -+ -+ if (old_profile_map == NULL && GL(dl_profile_map) != NULL) - { -- /* If this here is the shared object which we want to profile -- make sure the profile is started. We can find out whether -- this is necessary or not by observing the `_dl_profile_map' -- variable. If was NULL but is not NULL afterwars we must -- start the profiling. */ -- struct link_map *old_profile_map = GL(dl_profile_map); -- -- _dl_relocate_object (l, l->l_scope, reloc_mode | RTLD_LAZY, 1); -- -- if (old_profile_map == NULL && GL(dl_profile_map) != NULL) -- { -- /* We must prepare the profiling. */ -- _dl_start_profile (); -- -- /* Prevent unloading the object. */ -- GL(dl_profile_map)->l_flags_1 |= DF_1_NODELETE; -- } -+ /* We must prepare the profiling. */ -+ _dl_start_profile (); -+ -+ /* Prevent unloading the object. */ -+ GL(dl_profile_map)->l_flags_1 |= DF_1_NODELETE; - } -- else --#endif -- _dl_relocate_object (l, l->l_scope, reloc_mode, 0); - } -- -- if (l == new) -- break; -- l = l->l_prev; -+ else -+#endif -+ _dl_relocate_object (l, l->l_scope, reloc_mode, 0); - } - - /* If the file is not loaded now as a dependency, add the search -diff -Nrup a/elf/tst-relsort1.c b/elf/tst-relsort1.c ---- a/elf/tst-relsort1.c 1969-12-31 17:00:00.000000000 -0700 -+++ b/elf/tst-relsort1.c 2012-01-29 21:45:18.913344636 -0700 -@@ -0,0 +1,19 @@ -+#include -+#include -+ -+ -+static int -+do_test () -+{ -+ const char lib[] = "$ORIGIN/tst-relsort1mod1.so"; -+ void *h = dlopen (lib, RTLD_NOW); -+ if (h == NULL) -+ { -+ puts (dlerror ()); -+ return 1; -+ } -+ return 0; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" -diff -Nrup a/elf/tst-relsort1mod1.c b/elf/tst-relsort1mod1.c ---- a/elf/tst-relsort1mod1.c 1969-12-31 17:00:00.000000000 -0700 -+++ b/elf/tst-relsort1mod1.c 2012-01-29 21:45:18.914344636 -0700 -@@ -0,0 +1,7 @@ -+extern int foo (double); -+ -+int -+bar (void) -+{ -+ return foo (1.2); -+} -diff -Nrup a/elf/tst-relsort1mod2.c b/elf/tst-relsort1mod2.c ---- a/elf/tst-relsort1mod2.c 1969-12-31 17:00:00.000000000 -0700 -+++ b/elf/tst-relsort1mod2.c 2012-01-29 21:45:18.914344636 -0700 -@@ -0,0 +1,7 @@ -+#include -+ -+int -+foo (double d) -+{ -+ return floor (d) != 0.0; -+} diff --git a/glibc-sw13979.patch b/glibc-sw13979.patch deleted file mode 100644 index 134e50d..0000000 --- a/glibc-sw13979.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -rup c/include/features.h d/include/features.h ---- c/include/features.h 2012-05-08 21:26:45.294191922 -0600 -+++ d/include/features.h 2012-05-08 21:32:42.889297128 -0600 -@@ -309,19 +309,18 @@ - # define __USE_REENTRANT 1 - #endif - --#if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 \ -- && defined __OPTIMIZE__ && __OPTIMIZE__ > 0 --# if !__GNUC_PREREQ (4, 1) --# ifdef __GNUC_RH_RELEASE__ --# warning _FORTIFY_SOURCE supported only with GCC 4.1 and later --# endif --# define __USE_FORTIFY_LEVEL 0 -+#if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 -+# if !defined __OPTIMIZE__ || __OPTIMIZE__ <= 0 -+# warning _FORTIFY_SOURCE requires compiling with optimization (-O) -+# elif !__GNUC_PREREQ (4, 1) -+# warning _FORTIFY_SOURCE requires GCC 4.1 or later - # elif _FORTIFY_SOURCE > 1 - # define __USE_FORTIFY_LEVEL 2 - # else - # define __USE_FORTIFY_LEVEL 1 - # endif --#else -+#endif -+#ifndef __USE_FORTIFY_LEVEL - # define __USE_FORTIFY_LEVEL 0 - #endif - diff --git a/glibc.spec b/glibc.spec index 19b0db6..86f614e 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,6 +1,6 @@ -%define glibcsrcdir glibc-2.15-a316c1f -%define glibcversion 2.15 -%define glibcportsdir glibc-ports-2.15-ad8ae7d +%define glibcsrcdir glibc-2.15.90-8b728fa3 +%define glibcversion 2.15.90 +%define glibcportsdir glibc-ports-2.15.90-4645e97 ### glibc.spec.in follows: %define run_glibc_tests 1 %define auxarches athlon alphaev6 @@ -28,7 +28,7 @@ Summary: The GNU libc libraries Name: glibc Version: %{glibcversion} -Release: 41%{?dist} +Release: 1%{?dist} # GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries. # Things that are linked directly into dynamically linked programs # and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional @@ -68,51 +68,36 @@ Patch0001: %{name}-stap.patch # Reverting an upstream patch. I don't think this has been discussed # upstream yet. -Patch0006: %{name}-rh769421.patch +Patch0005: %{name}-rh769421.patch # Depends on systemtap infrastructure, so can't go upstream -Patch0012: %{name}-rh179072.patch +Patch0009: %{name}-rh179072.patch # Needs to be sent upstream -Patch0013: %{name}-rh697421.patch +Patch0010: %{name}-rh697421.patch # Needs to be sent upstream -Patch0014: %{name}-rh740682.patch +Patch0011: %{name}-rh740682.patch # Needs to be sent upstream -Patch0018: %{name}-rh657588.patch +Patch0013: %{name}-rh657588.patch # Not likely to be accepted upstream -Patch0019: %{name}-rh787201.patch +Patch0014: %{name}-rh787201.patch # Not necessary to send upstream, fedora specific -Patch0023: %{name}-rh688948.patch +Patch0018: %{name}-rh688948.patch # Needs to be sent upstream -Patch0027: %{name}-rh564528.patch +Patch0021: %{name}-rh564528.patch # stap and thus will never be accepted upstream -Patch0044: %{name}-stap-libm.patch +Patch0029: %{name}-stap-libm.patch # # Patches from upstream # -Patch1004: %{name}-rh740506.patch -Patch1010: %{name}-rh784402.patch -Patch1026: %{name}-rh624296.patch -Patch1034: %{name}-rh794797.patch -Patch1035: %{name}-rh788989.patch -Patch1036: %{name}-rh795498.patch -Patch1037: %{name}-rh760935.patch -Patch1038: %{name}-rh798471.patch -Patch1039: %{name}-rh758888.patch -Patch1041: %{name}-rh794797-2.patch -Patch1046: %{name}-rh806403.patch -Patch1047: %{name}-rh806070.patch -Patch1048: %{name}-rh804792.patch -Patch1052: %{name}-sw13979.patch -Patch1053: %{name}-rh817276.patch # # Patches submitted, but not yet approved upstream. @@ -126,69 +111,57 @@ Patch2002: %{name}-sw13579.patch Patch2003: %{name}-rh757881.patch # Upstream BZ 13013 -Patch2005: %{name}-rh730856.patch +Patch2004: %{name}-rh730856.patch -Patch2007: %{name}-rh729661.patch +Patch2006: %{name}-rh729661.patch # Upstream BZ 13197 -Patch2008: %{name}-rh446078.patch - -# Upstream BZ 13905 -Patch2009: %{name}-rh454629.patch +Patch2007: %{name}-rh446078.patch # Upstream BZ 13948 -Patch2011: %{name}-rh622499.patch +Patch2008: %{name}-rh622499.patch # Upstream BZ 13618 -Patch2015: %{name}-sw13618.patch -Patch2016: %{name}-sw13618-2.patch +Patch2012: %{name}-sw13618-2.patch -Patch2017: %{name}-rh783979.patch -Patch2020: %{name}-rh741105.patch -Patch2021: %{name}-rh770869.patch -Patch2022: %{name}-rh691912.patch -Patch2024: %{name}-rh770439.patch -Patch2025: %{name}-rh789209.patch +Patch2015: %{name}-rh741105.patch +Patch2016: %{name}-rh770869.patch +Patch2017: %{name}-rh691912.patch +Patch2019: %{name}-rh770439.patch +Patch2020: %{name}-rh789209.patch # Upstream BZ 13604 -Patch2028: %{name}-rh790292.patch +Patch2022: %{name}-rh790292.patch # Upstream BZ 13603 -Patch2029: %{name}-rh790298.patch +Patch2023: %{name}-rh790298.patch # Upstream BZ 13698 -Patch2030: %{name}-rh791161.patch +Patch2024: %{name}-rh791161.patch # Upstream BZ 12377 -Patch2031: %{name}-rh697149.patch +Patch2025: %{name}-rh697149.patch # Upstream BZ 9954 -Patch2032: %{name}-rh739743.patch +Patch2026: %{name}-rh739743.patch # Upstream BZ 13939 -Patch2033: %{name}-rh789238.patch +Patch2027: %{name}-rh789238.patch #Upstream BZ 13818 -Patch2040: %{name}-rh800224.patch +Patch2028: %{name}-rh800224.patch -Patch2045: %{name}-rh803286.patch +Patch2030: %{name}-rh803286.patch # Upstream BZ 13939 -Patch2049: %{name}-rh789238-2.patch +Patch2031: %{name}-rh789238-2.patch # Upstream BZ 13946 -Patch2050: %{name}-rh682500.patch +Patch2032: %{name}-rh682500.patch # Upstream BZ 13761 -Patch2051: %{name}-rh788989-2.patch - -# Upstream, see libc-alpha posting from Carlos O'Donell 5/5/2012 -Patch2054: %{name}-arm-hardfloat-1.patch -Patch2055: %{name}-arm-hardfloat-2.patch - -# Upstream BZ 13753/14059 -Patch2056: %{name}-rh801650.patch +Patch2033: %{name}-rh788989-2.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Obsoletes: glibc-profile < 2.4 @@ -407,61 +380,36 @@ rm -rf %{glibcportsdir} %patch0001 -E -p1 %patch2002 -p1 %patch2003 -p1 -%patch1004 -p1 -%patch2005 -p1 -%patch0006 -p1 +%patch2004 -p1 +%patch0005 -p1 +%patch2006 -p1 %patch2007 -p1 %patch2008 -p1 -%patch2009 -p1 -%patch1010 -p1 -%patch2011 -p1 -%patch0012 -p1 +%patch0009 -p1 +%patch0010 -p1 +%patch0011 -p1 +%patch2012 -p1 %patch0013 -p1 %patch0014 -p1 %patch2015 -p1 %patch2016 -p1 %patch2017 -p1 %patch0018 -p1 -%patch0019 -p1 +%patch2019 -p1 %patch2020 -p1 -%patch2021 -p1 +%patch0021 -p1 %patch2022 -p1 -%patch0023 -p1 +%patch2023 -p1 %patch2024 -p1 %patch2025 -p1 -%patch1026 -p1 -%patch0027 -p1 +%patch2026 -p1 +%patch2027 -p1 %patch2028 -p1 -%patch2029 -p1 +#%patch0029 -p1 %patch2030 -p1 %patch2031 -p1 %patch2032 -p1 %patch2033 -p1 -%patch1034 -p1 -%patch1035 -p1 -%patch1036 -p1 -%patch1037 -p1 -%patch1038 -p1 -%patch1039 -p1 -%patch2040 -p1 -%patch1041 -p1 -%patch0044 -p1 -%patch2045 -p1 -%patch1046 -p1 -%patch1047 -p1 -%patch1048 -p1 -%patch2049 -p1 -%patch2050 -p1 -%patch2051 -p1 -%patch1052 -p1 -%patch2054 -p1 - -pushd ../%{glibcportsdir} -%patch1053 -p1 -%patch2055 -p1 -popd - -%patch2056 -p1 # A lot of programs still misuse memcpy when they have to use # memmove. The memcpy implementation below is not tolerant at @@ -560,6 +508,7 @@ configure_CFLAGS="$build_CFLAGS -fno-asynchronous-unwind-tables" %ifarch %{multiarcharches} --enable-multi-arch \ %endif + --enable-obsolete-rpc \ %ifarch %{systemtaparches} --enable-systemtap \ %endif @@ -1252,8 +1201,8 @@ rm -f *.filelist* %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/cache/ldconfig/aux-cache %attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /etc/ld.so.cache %attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /etc/gai.conf -%doc README NEWS INSTALL FAQ BUGS NOTES PROJECTS CONFORMANCE -%doc COPYING COPYING.LIB README.libm LICENSES +%doc README NEWS INSTALL BUGS PROJECTS CONFORMANCE +%doc COPYING COPYING.LIB LICENSES %doc hesiod/README.hesiod %if %{xenpackage} @@ -1318,6 +1267,9 @@ rm -f *.filelist* %endif %changelog +* Wed May 23 2012 Jeff Law - 2.15.90-1 + - Resync with upstream sources. + * Tue May 22 2012 Patsy Franklin - 2.15-41 - Fix tzdata trigger (#822200) - Make the symlink relative rather than linking into the buildroot (#822200). diff --git a/sources b/sources index 1f4929b..52d7945 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -9c0e2b4d8cd47eac34850a4172be2aed glibc-2.15-a316c1f-fedora.tar.gz -3d33246687a96d5dd7ca0e6f2660eabe glibc-2.15-a316c1f.tar.gz -aab8b3cee4a585a8da1eea40979fabae glibc-ports-2.15-ad8ae7d.tar.gz +a958330a0f9d3c388abef8cbc8b868e3 glibc-2.15.90-8b728fa3.tar.gz +6de42dba1548f09bc6adff993db2f9fe glibc-ports-2.15.90-4645e97.tar.gz +abe0e2514f86286214b6af4c5cff0577 glibc-2.15.90-8b728fa3-fedora.tar.gz