From 30e48d0d7f200f6cfc63f66c8d465b2f7f0dce11781dd1daf383083aead38422 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Tue, 10 Feb 2015 10:34:33 +0000 Subject: [PATCH] Accepting request 285070 from home:Andreas_Schwab:Factory - Update to glibc 2.21 release. * A new semaphore algorithm has been implemented in generic C code for all machines * Added support for TSX lock elision of pthread mutexes on powerpc32, powerpc64 and powerpc64le * Optimized strcpy, stpcpy, strchrnul and strrchr implementations for AArch64 * i386 memcpy functions optimized with SSE2 unaligned load/store * New locales: tu_IN, bh_IN, raj_IN, ce_RU * The obsolete sigvec function has been removed - Patches from upstream removed * ifunc-x86-slow-sse4.patch * pthread-mutex-trylock-elision.patch - o-tmpfile.patch: Fix value of O_TMPFILE for architectures with non-default O_DIRECTORY (BZ #17912) OBS-URL: https://build.opensuse.org/request/show/285070 OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=391 --- glibc-2.14-crypt.diff | 159 +++++++++++++++------------ glibc-2.2-sunrpc.diff | 67 +++++------ glibc-2.20.tar.xz | 3 - glibc-2.21.tar.xz | 3 + glibc-2.3.90-noversion.diff | 8 +- glibc-nodate.patch | 23 +++- glibc-resolv-mdnshint.diff | 8 +- glibc-testsuite.changes | 19 ++++ glibc-testsuite.spec | 71 ++++++------ glibc-utils.changes | 19 ++++ glibc-utils.spec | 71 ++++++------ glibc-version.diff | 2 +- glibc.changes | 19 ++++ glibc.spec | 71 ++++++------ ifunc-x86-slow-sse4.patch | 111 ------------------- noversion.tar.bz2 | 4 +- o-tmpfile.patch | 29 +++++ pthread-mutex-trylock-elision.patch | 49 --------- pthread-mutexattr-gettype-kind.patch | 2 +- 19 files changed, 338 insertions(+), 400 deletions(-) delete mode 100644 glibc-2.20.tar.xz create mode 100644 glibc-2.21.tar.xz delete mode 100644 ifunc-x86-slow-sse4.patch create mode 100644 o-tmpfile.patch delete mode 100644 pthread-mutex-trylock-elision.patch diff --git a/glibc-2.14-crypt.diff b/glibc-2.14-crypt.diff index 09acac1..f857644 100644 --- a/glibc-2.14-crypt.diff +++ b/glibc-2.14-crypt.diff @@ -1,7 +1,7 @@ -Index: glibc-2.19.90/crypt/Makefile +Index: glibc-2.20/crypt/Makefile =================================================================== ---- glibc-2.19.90.orig/crypt/Makefile -+++ glibc-2.19.90/crypt/Makefile +--- glibc-2.20.orig/crypt/Makefile ++++ glibc-2.20/crypt/Makefile @@ -23,14 +23,18 @@ subdir := crypt include ../Makeconfig @@ -23,10 +23,10 @@ Index: glibc-2.19.90/crypt/Makefile ifeq ($(crypt-in-libc),yes) routines += $(libcrypt-routines) -Index: glibc-2.19.90/crypt/Versions +Index: glibc-2.20/crypt/Versions =================================================================== ---- glibc-2.19.90.orig/crypt/Versions -+++ glibc-2.19.90/crypt/Versions +--- glibc-2.20.orig/crypt/Versions ++++ glibc-2.20/crypt/Versions @@ -3,3 +3,8 @@ libcrypt { crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; } @@ -36,11 +36,11 @@ Index: glibc-2.19.90/crypt/Versions + crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; + } +} -Index: glibc-2.19.90/crypt/crypt-entry.c +Index: glibc-2.20/crypt/crypt-entry.c =================================================================== ---- glibc-2.19.90.orig/crypt/crypt-entry.c -+++ glibc-2.19.90/crypt/crypt-entry.c -@@ -81,7 +81,7 @@ extern struct crypt_data _ufc_foobar; +--- glibc-2.20.orig/crypt/crypt-entry.c ++++ glibc-2.20/crypt/crypt-entry.c +@@ -71,7 +71,7 @@ extern struct crypt_data _ufc_foobar; */ char * @@ -49,7 +49,7 @@ Index: glibc-2.19.90/crypt/crypt-entry.c const char *key; const char *salt; struct crypt_data * __restrict data; -@@ -155,6 +155,7 @@ __crypt_r (key, salt, data) +@@ -145,6 +145,7 @@ __crypt_r (key, salt, data) _ufc_output_conversion_r (res[0], res[1], salt, data); return data->crypt_3_buf; } @@ -57,287 +57,300 @@ Index: glibc-2.19.90/crypt/crypt-entry.c weak_alias (__crypt_r, crypt_r) char * -@@ -197,3 +198,4 @@ __fcrypt (key, salt) +@@ -187,3 +188,4 @@ __fcrypt (key, salt) return crypt (key, salt); } #endif +#endif -Index: glibc-2.19.90/shlib-versions +Index: glibc-2.20/crypt/crypt-private.h =================================================================== ---- glibc-2.19.90.orig/shlib-versions -+++ glibc-2.19.90/shlib-versions -@@ -93,6 +93,7 @@ sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_ +--- glibc-2.20.orig/crypt/crypt-private.h ++++ glibc-2.20/crypt/crypt-private.h +@@ -65,7 +65,7 @@ extern void __encrypt_r (char * __restri + struct crypt_data * __restrict __data); + + /* crypt-entry.c */ +-extern char *__crypt_r (const char *__key, const char *__salt, ++extern char *__des_crypt_r (const char *__key, const char *__salt, + struct crypt_data * __restrict __data); + extern char *fcrypt (const char *key, const char *salt); + +Index: glibc-2.20/shlib-versions +=================================================================== +--- glibc-2.20.orig/shlib-versions ++++ glibc-2.20/shlib-versions +@@ -88,6 +88,7 @@ sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_ # This defines the shared library version numbers we will install. - .*-.*-.* libcrypt=1 -+.*-.*-.* libowcrypt=1 + libcrypt=1 ++libowcrypt=1 # The gross patch for programs assuming broken locale implementations. - sh.*-.*-.* libBrokenLocale=1 GLIBC_2.2 -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/aarch64/libowcrypt.abilist + libBrokenLocale=1 +Index: glibc-2.20/sysdeps/unix/sysv/linux/aarch64/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/aarch64/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/aarch64/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/alpha/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/alpha/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/alpha/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/alpha/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/arm/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/arm/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/arm/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/arm/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/hppa/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/hppa/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/hppa/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/hppa/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/i386/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/i386/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/i386/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/i386/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/ia64/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/ia64/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/ia64/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/ia64/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/m68k/coldfire/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/m68k/coldfire/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/m68k/coldfire/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/m68k/coldfire/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/m68k/m680x0/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/m68k/m680x0/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/m68k/m680x0/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/m68k/m680x0/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/microblaze/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/microblaze/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/microblaze/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/microblaze/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/mips/mips32/fpu/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/mips/mips32/fpu/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/mips/mips32/fpu/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/mips/mips32/fpu/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/mips/mips64/n32/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/mips/mips64/n32/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/mips/mips64/n32/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/mips/mips64/n32/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/mips/mips64/n64/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/mips/mips64/n64/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/mips/mips64/n64/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/mips/mips64/n64/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt-le.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt-le.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt-le.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt-le.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/s390/s390-32/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/s390/s390-32/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/s390/s390-32/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/s390/s390-32/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/s390/s390-64/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/s390/s390-64/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/s390/s390-64/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/s390/s390-64/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/sh/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/sh/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/sh/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/sh/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/sparc/sparc32/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/sparc/sparc32/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/sparc/sparc32/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/sparc/sparc32/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/sparc/sparc64/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/sparc/sparc64/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/sparc/sparc64/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/sparc/sparc64/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/tile/tilepro/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/tile/tilepro/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/tile/tilepro/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/tile/tilepro/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/x86_64/64/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/x86_64/64/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/x86_64/64/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/x86_64/64/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A + crypt_gensalt F + crypt_gensalt_ra F + crypt_gensalt_rn F -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/x86_64/x32/libowcrypt.abilist +Index: glibc-2.20/sysdeps/unix/sysv/linux/x86_64/x32/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/x86_64/x32/libowcrypt.abilist ++++ glibc-2.20/sysdeps/unix/sysv/linux/x86_64/x32/libowcrypt.abilist @@ -0,0 +1,5 @@ +OW_CRYPT_1.0 + OW_CRYPT_1.0 A diff --git a/glibc-2.2-sunrpc.diff b/glibc-2.2-sunrpc.diff index 85f858c..2efdd81 100644 --- a/glibc-2.2-sunrpc.diff +++ b/glibc-2.2-sunrpc.diff @@ -2,10 +2,10 @@ For details see: http://sourceware.org/bugzilla/show_bug.cgi?id=5379 -Index: glibc-2.17.90/sunrpc/clnt_udp.c +Index: glibc-2.20/sunrpc/clnt_udp.c =================================================================== ---- glibc-2.17.90.orig/sunrpc/clnt_udp.c -+++ glibc-2.17.90/sunrpc/clnt_udp.c +--- glibc-2.20.orig/sunrpc/clnt_udp.c ++++ glibc-2.20/sunrpc/clnt_udp.c @@ -308,6 +308,7 @@ clntudp_call (cl, proc, xargs, argsp, xr XDR *xdrs; int outlen = 0; @@ -14,7 +14,7 @@ Index: glibc-2.17.90/sunrpc/clnt_udp.c socklen_t fromlen; struct pollfd fd; int milliseconds = (cu->cu_wait.tv_sec * 1000) + -@@ -378,37 +379,36 @@ send_again: +@@ -378,37 +379,39 @@ send_again: anyup = 0; for (;;) { @@ -24,12 +24,38 @@ Index: glibc-2.17.90/sunrpc/clnt_udp.c - case 0: - if (anyup == 0) -- { ++ case -1: ++ if (pollresult == 0 || errno == EINTR) + { - anyup = is_network_up (cu->cu_sock); - if (!anyup) - return (cu->cu_error.re_status = RPC_CANTRECV); -- } -- ++ if (anyup == 0) ++ { ++ anyup = is_network_up (cu->cu_sock); ++ if (!anyup) ++ return (cu->cu_error.re_status = RPC_CANTRECV); ++ } ++ ++ time_waited.tv_sec += cu->cu_wait.tv_sec; ++ time_waited.tv_usec += cu->cu_wait.tv_usec; ++ while (time_waited.tv_usec >= 1000000) ++ { ++ time_waited.tv_sec++; ++ time_waited.tv_usec -= 1000000; ++ } ++ if ((time_waited.tv_sec < timeout.tv_sec) || ++ ((time_waited.tv_sec == timeout.tv_sec) && ++ (time_waited.tv_usec < timeout.tv_usec))) ++ { ++ if (pollresult == 0) ++ goto send_again; ++ else ++ continue; ++ } ++ return (cu->cu_error.re_status = RPC_TIMEDOUT); + } + - time_waited.tv_sec += cu->cu_wait.tv_sec; - time_waited.tv_usec += cu->cu_wait.tv_usec; - while (time_waited.tv_usec >= 1000000) @@ -47,34 +73,9 @@ Index: glibc-2.17.90/sunrpc/clnt_udp.c - * buggy in other cases because time_waited is not being - * updated. - */ - case -1: +- case -1: - if (errno == EINTR) - continue; -+ if (pollresult == 0 || errno == EINTR) { -+ if (anyup == 0) -+ { -+ anyup = is_network_up (cu->cu_sock); -+ if (!anyup) -+ return (cu->cu_error.re_status = RPC_CANTRECV); -+ } -+ -+ time_waited.tv_sec += cu->cu_wait.tv_sec; -+ time_waited.tv_usec += cu->cu_wait.tv_usec; -+ while (time_waited.tv_usec >= 1000000) -+ { -+ time_waited.tv_sec++; -+ time_waited.tv_usec -= 1000000; -+ } -+ if ((time_waited.tv_sec < timeout.tv_sec) || -+ ((time_waited.tv_sec == timeout.tv_sec) && -+ (time_waited.tv_usec < timeout.tv_usec))) -+ if (pollresult == 0) -+ goto send_again; -+ else -+ continue; -+ return (cu->cu_error.re_status = RPC_TIMEDOUT); -+ } -+ + /* errno != EINTR */ cu->cu_error.re_errno = errno; return (cu->cu_error.re_status = RPC_CANTRECV); diff --git a/glibc-2.20.tar.xz b/glibc-2.20.tar.xz deleted file mode 100644 index 797fc53..0000000 --- a/glibc-2.20.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f84b6d42aecc288d593c397b0a3d02260a33ee686bce0c634eb9b32798f36ba5 -size 12283992 diff --git a/glibc-2.21.tar.xz b/glibc-2.21.tar.xz new file mode 100644 index 0000000..e6aa0d9 --- /dev/null +++ b/glibc-2.21.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aeeb362437965a5d3f40b151094ca79def04a115bd363fdd4a9a0c69482923b8 +size 12322092 diff --git a/glibc-2.3.90-noversion.diff b/glibc-2.3.90-noversion.diff index 964fe99..4216fc4 100644 --- a/glibc-2.3.90-noversion.diff +++ b/glibc-2.3.90-noversion.diff @@ -1,8 +1,8 @@ -Index: glibc-2.19.90/elf/rtld.c +Index: glibc-2.20/elf/rtld.c =================================================================== ---- glibc-2.19.90.orig/elf/rtld.c -+++ glibc-2.19.90/elf/rtld.c -@@ -1740,6 +1740,52 @@ ERROR: ld.so: object '%s' cannot be load +--- glibc-2.20.orig/elf/rtld.c ++++ glibc-2.20/elf/rtld.c +@@ -1591,6 +1591,52 @@ ERROR: ld.so: object '%s' cannot be load } } diff --git a/glibc-nodate.patch b/glibc-nodate.patch index a5b2f5d..441713f 100644 --- a/glibc-nodate.patch +++ b/glibc-nodate.patch @@ -1,7 +1,7 @@ -Index: glibc-2.17.90/nscd/nscd_stat.c +Index: glibc-2.20.90/nscd/nscd_stat.c =================================================================== ---- glibc-2.17.90.orig/nscd/nscd_stat.c -+++ glibc-2.17.90/nscd/nscd_stat.c +--- glibc-2.20.90.orig/nscd/nscd_stat.c ++++ glibc-2.20.90/nscd/nscd_stat.c @@ -36,8 +36,13 @@ #endif /* HAVE_SELINUX */ @@ -9,11 +9,24 @@ Index: glibc-2.17.90/nscd/nscd_stat.c -/* We use this to make sure the receiver is the same. */ +/* We use this to make sure the receiver is the same. Capture mtime + of this file if possible. */ -+#if defined(__TIMESTAMP__) -+static const char compilation[21] = __TIMESTAMP__; ++#ifdef __TIMESTAMP__ ++static const char compilation[21]; +#else static const char compilation[21] = __DATE__ " " __TIME__; +#endif /* Statistic data for one database. */ struct dbstat +@@ -96,7 +101,12 @@ send_stats (int fd, struct database_dyn + + memset (&data, 0, sizeof (data)); + ++#ifdef __TIMESTAMP__ ++ /* Skip day of the week. */ ++ memcpy (data.version, __TIMESTAMP__ + 4, sizeof (compilation)); ++#else + memcpy (data.version, compilation, sizeof (compilation)); ++#endif + data.debug_level = debug_level; + data.runtime = time (NULL) - start_time; + data.client_queued = client_queued; diff --git a/glibc-resolv-mdnshint.diff b/glibc-resolv-mdnshint.diff index 29777e4..81c11d0 100644 --- a/glibc-resolv-mdnshint.diff +++ b/glibc-resolv-mdnshint.diff @@ -1,12 +1,12 @@ -Index: glibc-2.17.90/resolv/res_hconf.c +Index: glibc-2.20/resolv/res_hconf.c =================================================================== ---- glibc-2.17.90.orig/resolv/res_hconf.c -+++ glibc-2.17.90/resolv/res_hconf.c +--- glibc-2.20.orig/resolv/res_hconf.c ++++ glibc-2.20/resolv/res_hconf.c @@ -240,9 +240,12 @@ parse_line (const char *fname, int line_ if (c == NULL) { char *buf; -+ char *hint = ""; ++ const char *hint = ""; - if (__asprintf (&buf, _("%s: line %d: bad command `%s'\n"), - fname, line_num, start) < 0) diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 95b4d12..c41149b 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,22 @@ +------------------------------------------------------------------- +Mon Feb 9 09:26:01 UTC 2015 - schwab@suse.de + +- Update to glibc 2.21 release. + * A new semaphore algorithm has been implemented in generic C code for all + machines + * Added support for TSX lock elision of pthread mutexes on powerpc32, + powerpc64 and powerpc64le + * Optimized strcpy, stpcpy, strchrnul and strrchr implementations for + AArch64 + * i386 memcpy functions optimized with SSE2 unaligned load/store + * New locales: tu_IN, bh_IN, raj_IN, ce_RU + * The obsolete sigvec function has been removed +- Patches from upstream removed + * ifunc-x86-slow-sse4.patch + * pthread-mutex-trylock-elision.patch +- o-tmpfile.patch: Fix value of O_TMPFILE for architectures with + non-default O_DIRECTORY (BZ #17912) + ------------------------------------------------------------------- Tue Oct 28 08:56:47 UTC 2014 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 1f24478..37e8e69 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -1,7 +1,7 @@ # # spec file for package glibc-testsuite # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -100,10 +100,9 @@ BuildRequires: gd-devel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 -Version: 2.20 +Version: 2.21 Release: 0 -%define glibc_major_version 2.20 -%define git_id b8079dd0d360 +%define git_id 4e42b5b8f89f Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build #Source: glibc-%{version}-%{git_id}.tar.xz @@ -232,8 +231,6 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Fix misdetected Slow_SSE4_2 cpu feature bit (BZ #17501) -Patch1000: ifunc-x86-slow-sse4.patch ### # Patches awaiting upstream approval @@ -244,14 +241,14 @@ Patch2000: fix-locking-in-_IO_cleanup.patch Patch2002: ldd-system-interp.patch # PATCH-FIX-UPSTREAM Don't close or flush stdio streams on abort (BZ #15436) Patch2003: abort-no-flush.patch -# PATCH-FIX-UPSTREAM Properly handle forced elision in pthread_mutex_trylock (BZ #16657) -Patch2004: pthread-mutex-trylock-elision.patch # PATCH-FIX-UPSTREAM Speedup memset on x86-64 for large block sizes (BZ #16830) Patch2005: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) Patch2006: ibm93x-redundant-shift-si.patch # PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) Patch2007: pthread-mutexattr-gettype-kind.patch +# PATCH-FIX-UPSTREAM Fix value of O_TMPFILE for architectures with non-default O_DIRECTORY (BZ #17912) +Patch2008: o-tmpfile.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -452,15 +449,13 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 -%patch1000 -p1 - %patch2000 -p1 %patch2002 -p1 %patch2003 -p1 -%patch2004 -p1 %patch2005 -p1 %patch2006 -p1 %patch2007 -p1 +%patch2008 -p1 %patch3000 @@ -827,7 +822,7 @@ cc-base/elf/ldconfig -vn $destdir cd cc-noelision destdir=$RPM_BUILD_ROOT/%{_lib}/noelision mkdir -p $destdir -install -m 755 nptl/libpthread.so $destdir/libpthread-%{glibc_major_version}.so +install -m 755 nptl/libpthread.so $destdir/libpthread-%{version}.so cd .. cc-base/elf/ldconfig -vn $destdir %endif @@ -950,7 +945,7 @@ install -m 644 %{SOURCE21} %{buildroot}/usr/lib/systemd/system %ifarch armv6hl armv7hl # Provide compatibility link -ln -s ld-%{glibc_major_version}.so %{buildroot}/lib/ld-linux.so.3 +ln -s ld-%{version}.so %{buildroot}/lib/ld-linux.so.3 %endif # Move getconf to %{_libexecdir}/getconf/ to avoid cross device link @@ -1065,7 +1060,7 @@ exit 0 %doc %{_mandir}/man1/gencat.1.gz %doc %{_mandir}/man1/getconf.1.gz %doc %{_mandir}/man5/* -/%{_lib}/ld-%{glibc_major_version}.so +/%{_lib}/ld-%{version}.so # Each architecture has a different name for the dynamic linker: %ifarch %arm @@ -1104,58 +1099,58 @@ exit 0 /%{_lib}/ld-linux-aarch64.so.1 %endif -/%{_lib}/libBrokenLocale-%{glibc_major_version}.so +/%{_lib}/libBrokenLocale-%{version}.so /%{_lib}/libBrokenLocale.so.1 /%{_lib}/libSegFault.so -/%{_lib}/libanl-%{glibc_major_version}.so +/%{_lib}/libanl-%{version}.so /%{_lib}/libanl.so.1 -/%{_lib}/libc-%{glibc_major_version}.so +/%{_lib}/libc-%{version}.so /%{_lib}/libc.so.6* -/%{_lib}/libcidn-%{glibc_major_version}.so +/%{_lib}/libcidn-%{version}.so /%{_lib}/libcidn.so.1 -/%{_lib}/libcrypt-%{glibc_major_version}.so +/%{_lib}/libcrypt-%{version}.so /%{_lib}/libcrypt.so.1 -/%{_lib}/libowcrypt-%{glibc_major_version}.so +/%{_lib}/libowcrypt-%{version}.so /%{_lib}/libowcrypt.so.1 -/%{_lib}/libdl-%{glibc_major_version}.so +/%{_lib}/libdl-%{version}.so /%{_lib}/libdl.so.2* -/%{_lib}/libm-%{glibc_major_version}.so +/%{_lib}/libm-%{version}.so /%{_lib}/libm.so.6* -/%{_lib}/libnsl-%{glibc_major_version}.so +/%{_lib}/libnsl-%{version}.so /%{_lib}/libnsl.so.1 -/%{_lib}/libnss_compat-%{glibc_major_version}.so +/%{_lib}/libnss_compat-%{version}.so /%{_lib}/libnss_compat.so.2 -/%{_lib}/libnss_db-%{glibc_major_version}.so +/%{_lib}/libnss_db-%{version}.so /%{_lib}/libnss_db.so.2 -/%{_lib}/libnss_dns-%{glibc_major_version}.so +/%{_lib}/libnss_dns-%{version}.so /%{_lib}/libnss_dns.so.2 -/%{_lib}/libnss_files-%{glibc_major_version}.so +/%{_lib}/libnss_files-%{version}.so /%{_lib}/libnss_files.so.2 -/%{_lib}/libnss_hesiod-%{glibc_major_version}.so +/%{_lib}/libnss_hesiod-%{version}.so /%{_lib}/libnss_hesiod.so.2 -/%{_lib}/libnss_nis-%{glibc_major_version}.so +/%{_lib}/libnss_nis-%{version}.so /%{_lib}/libnss_nis.so.2 -/%{_lib}/libnss_nisplus-%{glibc_major_version}.so +/%{_lib}/libnss_nisplus-%{version}.so /%{_lib}/libnss_nisplus.so.2 -/%{_lib}/libpthread-%{glibc_major_version}.so +/%{_lib}/libpthread-%{version}.so /%{_lib}/libpthread.so.0 -/%{_lib}/libresolv-%{glibc_major_version}.so +/%{_lib}/libresolv-%{version}.so /%{_lib}/libresolv.so.2 -/%{_lib}/librt-%{glibc_major_version}.so +/%{_lib}/librt-%{version}.so /%{_lib}/librt.so.1 /%{_lib}/libthread_db-1.0.so /%{_lib}/libthread_db.so.1 -/%{_lib}/libutil-%{glibc_major_version}.so +/%{_lib}/libutil-%{version}.so /%{_lib}/libutil.so.1 %define optimized_libs() \ %dir %attr(0755,root,root) /%{_lib}/%1\ - /%{_lib}/%1/libc-%{glibc_major_version}.so\ + /%{_lib}/%1/libc-%{version}.so\ /%{_lib}/%1/libc.so.6*\ - /%{_lib}/%1/libm-%{glibc_major_version}.so\ + /%{_lib}/%1/libm-%{version}.so\ /%{_lib}/%1/libm.so.6*\ - /%{_lib}/%1/libpthread-%{glibc_major_version}.so\ + /%{_lib}/%1/libpthread-%{version}.so\ /%{_lib}/%1/libpthread.so.0\ - /%{_lib}/%1/librt-%{glibc_major_version}.so\ + /%{_lib}/%1/librt-%{version}.so\ /%{_lib}/%1/librt.so.1\ /%{_lib}/%1/libthread_db-1.0.so\ /%{_lib}/%1/libthread_db.so.1 diff --git a/glibc-utils.changes b/glibc-utils.changes index 95b4d12..c41149b 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,22 @@ +------------------------------------------------------------------- +Mon Feb 9 09:26:01 UTC 2015 - schwab@suse.de + +- Update to glibc 2.21 release. + * A new semaphore algorithm has been implemented in generic C code for all + machines + * Added support for TSX lock elision of pthread mutexes on powerpc32, + powerpc64 and powerpc64le + * Optimized strcpy, stpcpy, strchrnul and strrchr implementations for + AArch64 + * i386 memcpy functions optimized with SSE2 unaligned load/store + * New locales: tu_IN, bh_IN, raj_IN, ce_RU + * The obsolete sigvec function has been removed +- Patches from upstream removed + * ifunc-x86-slow-sse4.patch + * pthread-mutex-trylock-elision.patch +- o-tmpfile.patch: Fix value of O_TMPFILE for architectures with + non-default O_DIRECTORY (BZ #17912) + ------------------------------------------------------------------- Tue Oct 28 08:56:47 UTC 2014 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index bcf4f22..523f048 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -1,7 +1,7 @@ # # spec file for package glibc-utils # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -99,10 +99,9 @@ BuildRequires: gd-devel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 -Version: 2.20 +Version: 2.21 Release: 0 -%define glibc_major_version 2.20 -%define git_id b8079dd0d360 +%define git_id 4e42b5b8f89f Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build #Source: glibc-%{version}-%{git_id}.tar.xz @@ -231,8 +230,6 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Fix misdetected Slow_SSE4_2 cpu feature bit (BZ #17501) -Patch1000: ifunc-x86-slow-sse4.patch ### # Patches awaiting upstream approval @@ -243,14 +240,14 @@ Patch2000: fix-locking-in-_IO_cleanup.patch Patch2002: ldd-system-interp.patch # PATCH-FIX-UPSTREAM Don't close or flush stdio streams on abort (BZ #15436) Patch2003: abort-no-flush.patch -# PATCH-FIX-UPSTREAM Properly handle forced elision in pthread_mutex_trylock (BZ #16657) -Patch2004: pthread-mutex-trylock-elision.patch # PATCH-FIX-UPSTREAM Speedup memset on x86-64 for large block sizes (BZ #16830) Patch2005: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) Patch2006: ibm93x-redundant-shift-si.patch # PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) Patch2007: pthread-mutexattr-gettype-kind.patch +# PATCH-FIX-UPSTREAM Fix value of O_TMPFILE for architectures with non-default O_DIRECTORY (BZ #17912) +Patch2008: o-tmpfile.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -452,15 +449,13 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 -%patch1000 -p1 - %patch2000 -p1 %patch2002 -p1 %patch2003 -p1 -%patch2004 -p1 %patch2005 -p1 %patch2006 -p1 %patch2007 -p1 +%patch2008 -p1 %patch3000 @@ -827,7 +822,7 @@ cc-base/elf/ldconfig -vn $destdir cd cc-noelision destdir=$RPM_BUILD_ROOT/%{_lib}/noelision mkdir -p $destdir -install -m 755 nptl/libpthread.so $destdir/libpthread-%{glibc_major_version}.so +install -m 755 nptl/libpthread.so $destdir/libpthread-%{version}.so cd .. cc-base/elf/ldconfig -vn $destdir %endif @@ -950,7 +945,7 @@ install -m 644 %{SOURCE21} %{buildroot}/usr/lib/systemd/system %ifarch armv6hl armv7hl # Provide compatibility link -ln -s ld-%{glibc_major_version}.so %{buildroot}/lib/ld-linux.so.3 +ln -s ld-%{version}.so %{buildroot}/lib/ld-linux.so.3 %endif # Move getconf to %{_libexecdir}/getconf/ to avoid cross device link @@ -1065,7 +1060,7 @@ exit 0 %doc %{_mandir}/man1/gencat.1.gz %doc %{_mandir}/man1/getconf.1.gz %doc %{_mandir}/man5/* -/%{_lib}/ld-%{glibc_major_version}.so +/%{_lib}/ld-%{version}.so # Each architecture has a different name for the dynamic linker: %ifarch %arm @@ -1104,58 +1099,58 @@ exit 0 /%{_lib}/ld-linux-aarch64.so.1 %endif -/%{_lib}/libBrokenLocale-%{glibc_major_version}.so +/%{_lib}/libBrokenLocale-%{version}.so /%{_lib}/libBrokenLocale.so.1 /%{_lib}/libSegFault.so -/%{_lib}/libanl-%{glibc_major_version}.so +/%{_lib}/libanl-%{version}.so /%{_lib}/libanl.so.1 -/%{_lib}/libc-%{glibc_major_version}.so +/%{_lib}/libc-%{version}.so /%{_lib}/libc.so.6* -/%{_lib}/libcidn-%{glibc_major_version}.so +/%{_lib}/libcidn-%{version}.so /%{_lib}/libcidn.so.1 -/%{_lib}/libcrypt-%{glibc_major_version}.so +/%{_lib}/libcrypt-%{version}.so /%{_lib}/libcrypt.so.1 -/%{_lib}/libowcrypt-%{glibc_major_version}.so +/%{_lib}/libowcrypt-%{version}.so /%{_lib}/libowcrypt.so.1 -/%{_lib}/libdl-%{glibc_major_version}.so +/%{_lib}/libdl-%{version}.so /%{_lib}/libdl.so.2* -/%{_lib}/libm-%{glibc_major_version}.so +/%{_lib}/libm-%{version}.so /%{_lib}/libm.so.6* -/%{_lib}/libnsl-%{glibc_major_version}.so +/%{_lib}/libnsl-%{version}.so /%{_lib}/libnsl.so.1 -/%{_lib}/libnss_compat-%{glibc_major_version}.so +/%{_lib}/libnss_compat-%{version}.so /%{_lib}/libnss_compat.so.2 -/%{_lib}/libnss_db-%{glibc_major_version}.so +/%{_lib}/libnss_db-%{version}.so /%{_lib}/libnss_db.so.2 -/%{_lib}/libnss_dns-%{glibc_major_version}.so +/%{_lib}/libnss_dns-%{version}.so /%{_lib}/libnss_dns.so.2 -/%{_lib}/libnss_files-%{glibc_major_version}.so +/%{_lib}/libnss_files-%{version}.so /%{_lib}/libnss_files.so.2 -/%{_lib}/libnss_hesiod-%{glibc_major_version}.so +/%{_lib}/libnss_hesiod-%{version}.so /%{_lib}/libnss_hesiod.so.2 -/%{_lib}/libnss_nis-%{glibc_major_version}.so +/%{_lib}/libnss_nis-%{version}.so /%{_lib}/libnss_nis.so.2 -/%{_lib}/libnss_nisplus-%{glibc_major_version}.so +/%{_lib}/libnss_nisplus-%{version}.so /%{_lib}/libnss_nisplus.so.2 -/%{_lib}/libpthread-%{glibc_major_version}.so +/%{_lib}/libpthread-%{version}.so /%{_lib}/libpthread.so.0 -/%{_lib}/libresolv-%{glibc_major_version}.so +/%{_lib}/libresolv-%{version}.so /%{_lib}/libresolv.so.2 -/%{_lib}/librt-%{glibc_major_version}.so +/%{_lib}/librt-%{version}.so /%{_lib}/librt.so.1 /%{_lib}/libthread_db-1.0.so /%{_lib}/libthread_db.so.1 -/%{_lib}/libutil-%{glibc_major_version}.so +/%{_lib}/libutil-%{version}.so /%{_lib}/libutil.so.1 %define optimized_libs() \ %dir %attr(0755,root,root) /%{_lib}/%1\ - /%{_lib}/%1/libc-%{glibc_major_version}.so\ + /%{_lib}/%1/libc-%{version}.so\ /%{_lib}/%1/libc.so.6*\ - /%{_lib}/%1/libm-%{glibc_major_version}.so\ + /%{_lib}/%1/libm-%{version}.so\ /%{_lib}/%1/libm.so.6*\ - /%{_lib}/%1/libpthread-%{glibc_major_version}.so\ + /%{_lib}/%1/libpthread-%{version}.so\ /%{_lib}/%1/libpthread.so.0\ - /%{_lib}/%1/librt-%{glibc_major_version}.so\ + /%{_lib}/%1/librt-%{version}.so\ /%{_lib}/%1/librt.so.1\ /%{_lib}/%1/libthread_db-1.0.so\ /%{_lib}/%1/libthread_db.so.1 diff --git a/glibc-version.diff b/glibc-version.diff index b563a8c..ae13f25 100644 --- a/glibc-version.diff +++ b/glibc-version.diff @@ -8,7 +8,7 @@ Index: glibc-2.17.90/csu/version.c static const char banner[] = -"GNU C Library "PKGVERSION RELEASE" release version "VERSION", by Roland McGrath et al.\n\ +"GNU C Library "PKGVERSION RELEASE" release version "VERSION" (git "GITID"), by Roland McGrath et al.\n\ - Copyright (C) 2014 Free Software Foundation, Inc.\n\ + Copyright (C) 2015 Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions.\n\ There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\ PARTICULAR PURPOSE.\n\ diff --git a/glibc.changes b/glibc.changes index 95b4d12..c41149b 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,22 @@ +------------------------------------------------------------------- +Mon Feb 9 09:26:01 UTC 2015 - schwab@suse.de + +- Update to glibc 2.21 release. + * A new semaphore algorithm has been implemented in generic C code for all + machines + * Added support for TSX lock elision of pthread mutexes on powerpc32, + powerpc64 and powerpc64le + * Optimized strcpy, stpcpy, strchrnul and strrchr implementations for + AArch64 + * i386 memcpy functions optimized with SSE2 unaligned load/store + * New locales: tu_IN, bh_IN, raj_IN, ce_RU + * The obsolete sigvec function has been removed +- Patches from upstream removed + * ifunc-x86-slow-sse4.patch + * pthread-mutex-trylock-elision.patch +- o-tmpfile.patch: Fix value of O_TMPFILE for architectures with + non-default O_DIRECTORY (BZ #17912) + ------------------------------------------------------------------- Tue Oct 28 08:56:47 UTC 2014 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 8c78aaf..fd2c3bb 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,7 +1,7 @@ # # spec file for package glibc # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -100,10 +100,9 @@ BuildRequires: gd-devel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 -Version: 2.20 +Version: 2.21 Release: 0 -%define glibc_major_version 2.20 -%define git_id b8079dd0d360 +%define git_id 4e42b5b8f89f Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build #Source: glibc-%{version}-%{git_id}.tar.xz @@ -232,8 +231,6 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Fix misdetected Slow_SSE4_2 cpu feature bit (BZ #17501) -Patch1000: ifunc-x86-slow-sse4.patch ### # Patches awaiting upstream approval @@ -244,14 +241,14 @@ Patch2000: fix-locking-in-_IO_cleanup.patch Patch2002: ldd-system-interp.patch # PATCH-FIX-UPSTREAM Don't close or flush stdio streams on abort (BZ #15436) Patch2003: abort-no-flush.patch -# PATCH-FIX-UPSTREAM Properly handle forced elision in pthread_mutex_trylock (BZ #16657) -Patch2004: pthread-mutex-trylock-elision.patch # PATCH-FIX-UPSTREAM Speedup memset on x86-64 for large block sizes (BZ #16830) Patch2005: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) Patch2006: ibm93x-redundant-shift-si.patch # PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) Patch2007: pthread-mutexattr-gettype-kind.patch +# PATCH-FIX-UPSTREAM Fix value of O_TMPFILE for architectures with non-default O_DIRECTORY (BZ #17912) +Patch2008: o-tmpfile.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -452,15 +449,13 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 -%patch1000 -p1 - %patch2000 -p1 %patch2002 -p1 %patch2003 -p1 -%patch2004 -p1 %patch2005 -p1 %patch2006 -p1 %patch2007 -p1 +%patch2008 -p1 %patch3000 @@ -827,7 +822,7 @@ cc-base/elf/ldconfig -vn $destdir cd cc-noelision destdir=$RPM_BUILD_ROOT/%{_lib}/noelision mkdir -p $destdir -install -m 755 nptl/libpthread.so $destdir/libpthread-%{glibc_major_version}.so +install -m 755 nptl/libpthread.so $destdir/libpthread-%{version}.so cd .. cc-base/elf/ldconfig -vn $destdir %endif @@ -950,7 +945,7 @@ install -m 644 %{SOURCE21} %{buildroot}/usr/lib/systemd/system %ifarch armv6hl armv7hl # Provide compatibility link -ln -s ld-%{glibc_major_version}.so %{buildroot}/lib/ld-linux.so.3 +ln -s ld-%{version}.so %{buildroot}/lib/ld-linux.so.3 %endif # Move getconf to %{_libexecdir}/getconf/ to avoid cross device link @@ -1065,7 +1060,7 @@ exit 0 %doc %{_mandir}/man1/gencat.1.gz %doc %{_mandir}/man1/getconf.1.gz %doc %{_mandir}/man5/* -/%{_lib}/ld-%{glibc_major_version}.so +/%{_lib}/ld-%{version}.so # Each architecture has a different name for the dynamic linker: %ifarch %arm @@ -1104,58 +1099,58 @@ exit 0 /%{_lib}/ld-linux-aarch64.so.1 %endif -/%{_lib}/libBrokenLocale-%{glibc_major_version}.so +/%{_lib}/libBrokenLocale-%{version}.so /%{_lib}/libBrokenLocale.so.1 /%{_lib}/libSegFault.so -/%{_lib}/libanl-%{glibc_major_version}.so +/%{_lib}/libanl-%{version}.so /%{_lib}/libanl.so.1 -/%{_lib}/libc-%{glibc_major_version}.so +/%{_lib}/libc-%{version}.so /%{_lib}/libc.so.6* -/%{_lib}/libcidn-%{glibc_major_version}.so +/%{_lib}/libcidn-%{version}.so /%{_lib}/libcidn.so.1 -/%{_lib}/libcrypt-%{glibc_major_version}.so +/%{_lib}/libcrypt-%{version}.so /%{_lib}/libcrypt.so.1 -/%{_lib}/libowcrypt-%{glibc_major_version}.so +/%{_lib}/libowcrypt-%{version}.so /%{_lib}/libowcrypt.so.1 -/%{_lib}/libdl-%{glibc_major_version}.so +/%{_lib}/libdl-%{version}.so /%{_lib}/libdl.so.2* -/%{_lib}/libm-%{glibc_major_version}.so +/%{_lib}/libm-%{version}.so /%{_lib}/libm.so.6* -/%{_lib}/libnsl-%{glibc_major_version}.so +/%{_lib}/libnsl-%{version}.so /%{_lib}/libnsl.so.1 -/%{_lib}/libnss_compat-%{glibc_major_version}.so +/%{_lib}/libnss_compat-%{version}.so /%{_lib}/libnss_compat.so.2 -/%{_lib}/libnss_db-%{glibc_major_version}.so +/%{_lib}/libnss_db-%{version}.so /%{_lib}/libnss_db.so.2 -/%{_lib}/libnss_dns-%{glibc_major_version}.so +/%{_lib}/libnss_dns-%{version}.so /%{_lib}/libnss_dns.so.2 -/%{_lib}/libnss_files-%{glibc_major_version}.so +/%{_lib}/libnss_files-%{version}.so /%{_lib}/libnss_files.so.2 -/%{_lib}/libnss_hesiod-%{glibc_major_version}.so +/%{_lib}/libnss_hesiod-%{version}.so /%{_lib}/libnss_hesiod.so.2 -/%{_lib}/libnss_nis-%{glibc_major_version}.so +/%{_lib}/libnss_nis-%{version}.so /%{_lib}/libnss_nis.so.2 -/%{_lib}/libnss_nisplus-%{glibc_major_version}.so +/%{_lib}/libnss_nisplus-%{version}.so /%{_lib}/libnss_nisplus.so.2 -/%{_lib}/libpthread-%{glibc_major_version}.so +/%{_lib}/libpthread-%{version}.so /%{_lib}/libpthread.so.0 -/%{_lib}/libresolv-%{glibc_major_version}.so +/%{_lib}/libresolv-%{version}.so /%{_lib}/libresolv.so.2 -/%{_lib}/librt-%{glibc_major_version}.so +/%{_lib}/librt-%{version}.so /%{_lib}/librt.so.1 /%{_lib}/libthread_db-1.0.so /%{_lib}/libthread_db.so.1 -/%{_lib}/libutil-%{glibc_major_version}.so +/%{_lib}/libutil-%{version}.so /%{_lib}/libutil.so.1 %define optimized_libs() \ %dir %attr(0755,root,root) /%{_lib}/%1\ - /%{_lib}/%1/libc-%{glibc_major_version}.so\ + /%{_lib}/%1/libc-%{version}.so\ /%{_lib}/%1/libc.so.6*\ - /%{_lib}/%1/libm-%{glibc_major_version}.so\ + /%{_lib}/%1/libm-%{version}.so\ /%{_lib}/%1/libm.so.6*\ - /%{_lib}/%1/libpthread-%{glibc_major_version}.so\ + /%{_lib}/%1/libpthread-%{version}.so\ /%{_lib}/%1/libpthread.so.0\ - /%{_lib}/%1/librt-%{glibc_major_version}.so\ + /%{_lib}/%1/librt-%{version}.so\ /%{_lib}/%1/librt.so.1\ /%{_lib}/%1/libthread_db-1.0.so\ /%{_lib}/%1/libthread_db.so.1 diff --git a/ifunc-x86-slow-sse4.patch b/ifunc-x86-slow-sse4.patch deleted file mode 100644 index 7bc194c..0000000 --- a/ifunc-x86-slow-sse4.patch +++ /dev/null @@ -1,111 +0,0 @@ -2014-10-27 Andreas Schwab - - [BZ #17501] - * sysdeps/i386/i686/multiarch/strcasecmp.S (__strcasecmp): Fix - check for Slow_SSE4_2 feature bit. - * sysdeps/i386/i686/multiarch/strcmp.S (STRCMP): Likewise. - * sysdeps/i386/i686/multiarch/strncase.S (__strncasecmp): Likewise. - * sysdeps/x86_64/multiarch/strcmp.S (STRCMP, __strcascmp): - Likewise. Fix check for Fast_Unaligned_Load feature bit. - -Index: glibc-2.20/sysdeps/i386/i686/multiarch/strcasecmp.S -=================================================================== ---- glibc-2.20.orig/sysdeps/i386/i686/multiarch/strcasecmp.S -+++ glibc-2.20/sysdeps/i386/i686/multiarch/strcasecmp.S -@@ -37,7 +37,7 @@ ENTRY(__strcasecmp) - leal __strcasecmp_ssse3@GOTOFF(%ebx), %eax - testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx) - jz 2f -- testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx) -+ testl $bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx) - jnz 2f - leal __strcasecmp_sse4_2@GOTOFF(%ebx), %eax - 2: popl %ebx -@@ -58,7 +58,7 @@ ENTRY(__strcasecmp) - leal __strcasecmp_ssse3, %eax - testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features - jz 2f -- testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features -+ testl $bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features - jnz 2f - leal __strcasecmp_sse4_2, %eax - 2: ret -Index: glibc-2.20/sysdeps/i386/i686/multiarch/strcmp.S -=================================================================== ---- glibc-2.20.orig/sysdeps/i386/i686/multiarch/strcmp.S -+++ glibc-2.20/sysdeps/i386/i686/multiarch/strcmp.S -@@ -68,7 +68,7 @@ ENTRY(STRCMP) - leal __STRCMP_SSSE3@GOTOFF(%ebx), %eax - testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx) - jz 2f -- testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx) -+ testl $bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx) - jnz 2f - leal __STRCMP_SSE4_2@GOTOFF(%ebx), %eax - 2: popl %ebx -@@ -89,7 +89,7 @@ ENTRY(STRCMP) - leal __STRCMP_SSSE3, %eax - testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features - jz 2f -- testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features -+ testl $bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features - jnz 2f - leal __STRCMP_SSE4_2, %eax - 2: ret -Index: glibc-2.20/sysdeps/i386/i686/multiarch/strncase.S -=================================================================== ---- glibc-2.20.orig/sysdeps/i386/i686/multiarch/strncase.S -+++ glibc-2.20/sysdeps/i386/i686/multiarch/strncase.S -@@ -37,7 +37,7 @@ ENTRY(__strncasecmp) - leal __strncasecmp_ssse3@GOTOFF(%ebx), %eax - testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx) - jz 2f -- testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx) -+ testl $bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx) - jnz 2f - leal __strncasecmp_sse4_2@GOTOFF(%ebx), %eax - 2: popl %ebx -@@ -58,7 +58,7 @@ ENTRY(__strncasecmp) - leal __strncasecmp_ssse3, %eax - testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features - jz 2f -- testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features -+ testl $bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features - jnz 2f - leal __strncasecmp_sse4_2, %eax - 2: ret -Index: glibc-2.20/sysdeps/x86_64/multiarch/strcmp.S -=================================================================== ---- glibc-2.20.orig/sysdeps/x86_64/multiarch/strcmp.S -+++ glibc-2.20/sysdeps/x86_64/multiarch/strcmp.S -@@ -91,10 +91,10 @@ ENTRY(STRCMP) - 1: - #ifdef USE_AS_STRCMP - leaq __strcmp_sse2_unaligned(%rip), %rax -- testl $bit_Fast_Unaligned_Load, __cpu_features+CPUID_OFFSET+index_Fast_Unaligned_Load(%rip) -+ testl $bit_Fast_Unaligned_Load, __cpu_features+FEATURE_OFFSET+index_Fast_Unaligned_Load(%rip) - jnz 3f - #else -- testl $bit_Slow_SSE4_2, __cpu_features+CPUID_OFFSET+index_Slow_SSE4_2(%rip) -+ testl $bit_Slow_SSE4_2, __cpu_features+FEATURE_OFFSET+index_Slow_SSE4_2(%rip) - jnz 2f - leaq STRCMP_SSE42(%rip), %rax - testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip) -@@ -120,7 +120,7 @@ ENTRY(__strcasecmp) - testl $bit_AVX_Usable, __cpu_features+FEATURE_OFFSET+index_AVX_Usable(%rip) - jnz 3f - # endif -- testl $bit_Slow_SSE4_2, __cpu_features+CPUID_OFFSET+index_Slow_SSE4_2(%rip) -+ testl $bit_Slow_SSE4_2, __cpu_features+FEATURE_OFFSET+index_Slow_SSE4_2(%rip) - jnz 2f - leaq __strcasecmp_sse42(%rip), %rax - testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip) -@@ -146,7 +146,7 @@ ENTRY(__strncasecmp) - testl $bit_AVX_Usable, __cpu_features+FEATURE_OFFSET+index_AVX_Usable(%rip) - jnz 3f - # endif -- testl $bit_Slow_SSE4_2, __cpu_features+CPUID_OFFSET+index_Slow_SSE4_2(%rip) -+ testl $bit_Slow_SSE4_2, __cpu_features+FEATURE_OFFSET+index_Slow_SSE4_2(%rip) - jnz 2f - leaq __strncasecmp_sse42(%rip), %rax - testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip) diff --git a/noversion.tar.bz2 b/noversion.tar.bz2 index 070dd48..bde0dd1 100644 --- a/noversion.tar.bz2 +++ b/noversion.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3970c86754545a65f32f6595c3b638b9966e901827f2bc01db552b9cf9cf5bfc -size 1818 +oid sha256:6c47b7dccf2d318f2e2144322e6a931c46a7507f0e77a64fed3623860e10c5ab +size 1833 diff --git a/o-tmpfile.patch b/o-tmpfile.patch new file mode 100644 index 0000000..b8e357e --- /dev/null +++ b/o-tmpfile.patch @@ -0,0 +1,29 @@ +From 127ffc81a8565bebd134c0f43afba5ae7997bf97 Mon Sep 17 00:00:00 2001 +From: Andreas Schwab +Date: Sun, 1 Feb 2015 14:04:15 +0100 +Subject: [PATCH] Fix value of O_TMPFILE for architectures with non-default + O_DIRECTORY + + [BZ #17912] + * sysdeps/unix/sysv/linux/bits/fcntl-linux.h (__O_TMPFILE): Define + in terms of __O_DIRECTORY. +--- + sysdeps/unix/sysv/linux/bits/fcntl-linux.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h +index 3d28c84..d2baeb3 100644 +--- a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h ++++ b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h +@@ -97,7 +97,7 @@ + # define __O_DSYNC 010000 + #endif + #ifndef __O_TMPFILE +-# define __O_TMPFILE 020200000 ++# define __O_TMPFILE (020000000 | __O_DIRECTORY) + #endif + + #ifndef F_GETLK +-- +2.2.2 + diff --git a/pthread-mutex-trylock-elision.patch b/pthread-mutex-trylock-elision.patch deleted file mode 100644 index cc2fec3..0000000 --- a/pthread-mutex-trylock-elision.patch +++ /dev/null @@ -1,49 +0,0 @@ -[PATCH] Properly handle forced elision in pthread_mutex_trylock - - BZ #16657 - * nptl/pthread_mutex_trylock.c (__pthread_mutex_trylock): Use - FORCE_ELISION instead of DO_ELISION. - * sysdeps/unix/sysv/linux/x86/force-elision.h (DO_ELISION): - Remove. - -Index: glibc-2.19.90/nptl/pthread_mutex_trylock.c -=================================================================== ---- glibc-2.19.90.orig/nptl/pthread_mutex_trylock.c -+++ glibc-2.19.90/nptl/pthread_mutex_trylock.c -@@ -26,8 +26,8 @@ - #define lll_trylock_elision(a,t) lll_trylock(a) - #endif - --#ifndef DO_ELISION --#define DO_ELISION(m) 0 -+#ifndef FORCE_ELISION -+#define FORCE_ELISION(m, s) - #endif - - /* We don't force elision in trylock, because this can lead to inconsistent -@@ -77,8 +77,7 @@ __pthread_mutex_trylock (mutex) - return 0; - - case PTHREAD_MUTEX_TIMED_NP: -- if (DO_ELISION (mutex)) -- goto elision; -+ FORCE_ELISION (mutex, goto elision); - /*FALL THROUGH*/ - case PTHREAD_MUTEX_ADAPTIVE_NP: - case PTHREAD_MUTEX_ERRORCHECK_NP: -Index: glibc-2.19.90/sysdeps/unix/sysv/linux/x86/force-elision.h -=================================================================== ---- glibc-2.19.90.orig/sysdeps/unix/sysv/linux/x86/force-elision.h -+++ glibc-2.19.90/sysdeps/unix/sysv/linux/x86/force-elision.h -@@ -16,11 +16,6 @@ - License along with the GNU C Library; if not, see - . */ - --/* Check for elision on this lock without upgrading. */ --#define DO_ELISION(m) \ -- (__pthread_force_elision \ -- && (m->__data.__kind & PTHREAD_MUTEX_NO_ELISION_NP) == 0) \ -- - /* Automatically enable elision for existing user lock kinds. */ - #define FORCE_ELISION(m, s) \ - if (__pthread_force_elision \ diff --git a/pthread-mutexattr-gettype-kind.patch b/pthread-mutexattr-gettype-kind.patch index 2bf8709..0af5da6 100644 --- a/pthread-mutexattr-gettype-kind.patch +++ b/pthread-mutexattr-gettype-kind.patch @@ -24,7 +24,7 @@ Index: glibc-2.19/nptl/Makefile @@ -253,7 +253,7 @@ tests = tst-typesizes \ tst-exit1 tst-exit2 tst-exit3 \ tst-stdio1 tst-stdio2 \ - tst-stack1 tst-stack2 tst-stack3 tst-pthread-getattr \ + tst-stack1 tst-stack2 tst-stack3 tst-stack4 tst-pthread-getattr \ - tst-pthread-attr-affinity \ + tst-pthread-attr-affinity tst-pthread-mutexattr \ tst-unload \