[glibc] 02/02: debian/patches/git-updates.diff: update from upstream stable branch.
This is an automated email from the git hooks/post-receive script.
aurel32 pushed a commit to branch glibc-2.26
in repository glibc.
commit 7820b3798ab1fa8558976251dadf555bd56bb259
Author: Aurelien Jarno <aurelien@aurel32.net>
Date: Wed Nov 22 00:23:13 2017 +0100
debian/patches/git-updates.diff: update from upstream stable branch.
---
debian/changelog | 1 +
debian/patches/git-updates.diff | 630 +++++++++++++++++++++++++++++++++++++++-
2 files changed, 627 insertions(+), 4 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index 4f82917..63e5b3e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -7,6 +7,7 @@ glibc (2.26-0experimental1) UNRELEASED; urgency=medium
* Bump build-dependency on binutils to >= 2.25, as required by glibc 2.26.
* debian/testsuite-xfail-debian.mk: re-add double-lround XFAILs for
mips64el.
+ * debian/patches/git-updates.diff: update from upstream stable branch.
-- Aurelien Jarno <aurel32@debian.org> Sun, 19 Nov 2017 13:44:52 +0100
diff --git a/debian/patches/git-updates.diff b/debian/patches/git-updates.diff
index 7e072fe..c79e921 100644
--- a/debian/patches/git-updates.diff
+++ b/debian/patches/git-updates.diff
@@ -1,10 +1,53 @@
GIT update of git://sourceware.org/git/glibc.git/release/2.26/master from glibc-2.26
diff --git a/ChangeLog b/ChangeLog
-index 8dbfc7eaff..d67ad031bc 100644
+index 8dbfc7eaff..0dcbe3bc69 100644
--- a/ChangeLog
+++ b/ChangeLog
-@@ -1,3 +1,847 @@
+@@ -1,3 +1,890 @@
++2017-08-09 Andreas Schwab <schwab@suse.de>
++
++ * nptl/Makefile (tests) [$(build-shared) = yes]: Add
++ tst-compat-forwarder.
++ (modules-names): Add tst-compat-forwarder-mod.
++ ($(objpfx)tst-compat-forwarder): Depend on
++ $(objpfx)tst-compat-forwarder-mod.so.
++ * nptl/tst-compat-forwarder.c: New file.
++ * nptl/tst-compat-forwarder-mod.c: New file.
++
++2017-08-09 Andreas Schwab <schwab@suse.de>
++
++ * sysdeps/unix/sysv/linux/s390/pt-longjmp.c: Update reference to
++ renamed alias.
++
++2017-08-08 Andreas Schwab <schwab@suse.de>
++
++ [BZ #21041]
++ * nptl/pt-longjmp.c (longjmp, siglongjmp): Don't use IFUNC resolver.
++ * nptl/pt-system.c (system): Likewise.
++
++2017-11-21 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
++
++ * sysdeps/powerpc/powerpc64/power7/memcpy.S: Replace
++ lxvd2x/stxvd2x with lvx/stvx.
++ * sysdeps/powerpc/powerpc64/power7/memmove.S: Likewise.
++
++2017-10-04 Florian Weimer <fweimer@redhat.com>
++
++ * scripts/check-local-headers.sh: Ignore nspr4 header file
++ directory in addition to nspr.
++
++2017-10-04 Guido Trentalancia <guido@trentalancia.net>
++
++ [BZ #17956]
++ * configure.ac (--enable-nss-crypt): Use NSPR include directory.
++ * configure: Regenerate.
++ * crypt/Makefile (nss-cpp-flags): New variable.
++ (CPPFLAGS-sha256-crypt.c, CPPFLAGS-sha512-crypt.c)
++ (CPPFLAGS-md5-crypt.c): Use it.
++ * scripts/check-local-headers.sh: Ignore nspr header file
++ directory.
++
+2017-10-18 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * malloc/malloc.c (malloc_state): Use int for have_fastchunks since
@@ -876,10 +919,10 @@ index 9bb707c168..828a445f24 100644
# Don't try to use -lc when making libc.so itself.
# Also omits crti.o and crtn.o, which we do not want
diff --git a/NEWS b/NEWS
-index 8295f20c0a..ea1c1f1c04 100644
+index 8295f20c0a..e7b62a8d46 100644
--- a/NEWS
+++ b/NEWS
-@@ -5,6 +5,54 @@ See the end for copying conditions.
+@@ -5,6 +5,55 @@ See the end for copying conditions.
Please send GNU C library bug reports via <http://sourceware.org/bugzilla/>
using `glibc' in the "product" field.
@@ -901,6 +944,7 @@ index 8295f20c0a..ea1c1f1c04 100644
+The following bugs are resolved with this release:
+
+ [16750] ldd: Never run file directly.
++ [17956] crypt: Use NSPR header files in addition to NSS header files
+ [21242] assert: Suppress pedantic warning caused by statement expression
+ [21265] x86-64: Use fxsave/xsave/xsavec in _dl_runtime_resolve
+ [21780] posix: Set p{read,write}v2 to return ENOTSUP
@@ -1110,6 +1154,61 @@ index 0000000000..8c06402825
+ <http://www.gnu.org/licenses/>. */
+
+#include <tst-assert-c++.cc>
+diff --git a/configure b/configure
+index d8e1c50e11..47d8c75248 100755
+--- a/configure
++++ b/configure
+@@ -3547,8 +3547,12 @@ if test x$nss_crypt = xyes; then
+ if test $? -ne 0; then
+ as_fn_error $? "cannot find include directory with nss-config" "$LINENO" 5
+ fi
++ nspr_includes=-I$(nspr-config --includedir 2>/dev/null)
++ if test $? -ne 0; then
++ as_fn_error $? "cannot find include directory with nspr-config" "$LINENO" 5
++ fi
+ old_CFLAGS="$CFLAGS"
+- CFLAGS="$CFLAGS $nss_includes"
++ CFLAGS="$CFLAGS $nss_includes $nspr_includes"
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+diff --git a/configure.ac b/configure.ac
+index 77456aa8d9..e8a1ab3562 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -330,8 +330,12 @@ if test x$nss_crypt = xyes; then
+ if test $? -ne 0; then
+ AC_MSG_ERROR([cannot find include directory with nss-config])
+ fi
++ nspr_includes=-I$(nspr-config --includedir 2>/dev/null)
++ if test $? -ne 0; then
++ AC_MSG_ERROR([cannot find include directory with nspr-config])
++ fi
+ old_CFLAGS="$CFLAGS"
+- CFLAGS="$CFLAGS $nss_includes"
++ CFLAGS="$CFLAGS $nss_includes $nspr_includes"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([typedef int PRBool;
+ #include <hasht.h>
+ #include <nsslowhash.h>
+diff --git a/crypt/Makefile b/crypt/Makefile
+index 0280fba8a7..8bbbf2a121 100644
+--- a/crypt/Makefile
++++ b/crypt/Makefile
+@@ -37,9 +37,11 @@ routines += $(libcrypt-routines)
+ endif
+
+ ifeq ($(nss-crypt),yes)
+-CPPFLAGS-sha256-crypt.c = -DUSE_NSS -I$(shell nss-config --includedir)
+-CPPFLAGS-sha512-crypt.c = -DUSE_NSS -I$(shell nss-config --includedir)
+-CPPFLAGS-md5-crypt.c = -DUSE_NSS -I$(shell nss-config --includedir)
++nss-cpp-flags := -DUSE_NSS \
++ -I$(shell nss-config --includedir) -I$(shell nspr-config --includedir)
++CPPFLAGS-sha256-crypt.c = $(nss-cpp-flags)
++CPPFLAGS-sha512-crypt.c = $(nss-cpp-flags)
++CPPFLAGS-md5-crypt.c = $(nss-cpp-flags)
+ LDLIBS-crypt.so = -lfreebl3
+ else
+ libcrypt-routines += md5 sha256 sha512
diff --git a/elf/dl-tunables.c b/elf/dl-tunables.c
index 231fb8ca93..d9975ef2d0 100644
--- a/elf/dl-tunables.c
@@ -2160,6 +2259,37 @@ index 06523bfe9c..0c808216a4 100644
# define __HAVE_GENERIC_SELECTION 1
#else
# define __HAVE_GENERIC_SELECTION 0
+diff --git a/nptl/Makefile b/nptl/Makefile
+index 5cb1bb2c3d..9ca6d01b8c 100644
+--- a/nptl/Makefile
++++ b/nptl/Makefile
+@@ -367,7 +367,7 @@ tests += tst-cancelx2 tst-cancelx3 tst-cancelx4 tst-cancelx5 \
+ tst-cleanupx0 tst-cleanupx1 tst-cleanupx2 tst-cleanupx3 tst-cleanupx4 \
+ tst-oncex3 tst-oncex4
+ ifeq ($(build-shared),yes)
+-tests += tst-atfork2 tst-tls4 tst-_res1 tst-fini1
++tests += tst-atfork2 tst-tls4 tst-_res1 tst-fini1 tst-compat-forwarder
+ tests-internal += tst-tls3 tst-tls3-malloc tst-tls5 tst-stackguard1
+ tests-nolibpthread += tst-fini1
+ ifeq ($(have-z-execstack),yes)
+@@ -379,7 +379,7 @@ modules-names = tst-atfork2mod tst-tls3mod tst-tls4moda tst-tls4modb \
+ tst-tls5mod tst-tls5moda tst-tls5modb tst-tls5modc \
+ tst-tls5modd tst-tls5mode tst-tls5modf tst-stack4mod \
+ tst-_res1mod1 tst-_res1mod2 tst-execstack-mod tst-fini1mod \
+- tst-join7mod
++ tst-join7mod tst-compat-forwarder-mod
+ extra-test-objs += $(addsuffix .os,$(strip $(modules-names))) \
+ tst-cleanup4aux.o tst-cleanupx4aux.o
+ test-extras += tst-cleanup4aux tst-cleanupx4aux
+@@ -718,6 +718,8 @@ $(objpfx)tst-oddstacklimit.out: $(objpfx)tst-oddstacklimit $(objpfx)tst-basic1
+ $(evaluate-test)
+ endif
+
++$(objpfx)tst-compat-forwarder: $(objpfx)tst-compat-forwarder-mod.so
++
+ # The tests here better do not run in parallel
+ ifneq ($(filter %tests,$(MAKECMDGOALS)),)
+ .NOTPARALLEL:
diff --git a/nptl/allocatestack.c b/nptl/allocatestack.c
index ce2e24af95..dff5d3469e 100644
--- a/nptl/allocatestack.c
@@ -2199,6 +2329,99 @@ index 29216077a2..869e926f17 100644
pd->robust_prev = &pd->robust_head;
#endif
pd->robust_head.list = &pd->robust_head;
+diff --git a/nptl/pt-longjmp.c b/nptl/pt-longjmp.c
+index 2ef757e687..8f3c6b3a09 100644
+--- a/nptl/pt-longjmp.c
++++ b/nptl/pt-longjmp.c
+@@ -25,21 +25,14 @@
+ symbol in libpthread, but the historical ABI requires it. For static
+ linking, there is no need to provide anything here--the libc version
+ will be linked in. For shared library ABI compatibility, there must be
+- longjmp and siglongjmp symbols in libpthread.so; so we define them using
+- IFUNC to redirect to the libc function. */
++ longjmp and siglongjmp symbols in libpthread.so.
+
+-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22)
+-
+-# if HAVE_IFUNC
+-
+-# undef INIT_ARCH
+-# define INIT_ARCH()
+-# define DEFINE_LONGJMP(name) libc_ifunc (name, &__libc_longjmp)
+-
+-extern __typeof(longjmp) longjmp_ifunc;
+-extern __typeof(siglongjmp) siglongjmp_ifunc;
++ With an IFUNC resolver, it would be possible to avoid the indirection,
++ but the IFUNC resolver might run before the __libc_longjmp symbol has
++ been relocated, in which case the IFUNC resolver would not be able to
++ provide the correct address. */
+
+-# else /* !HAVE_IFUNC */
++#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22)
+
+ static void __attribute__ ((noreturn, used))
+ longjmp_compat (jmp_buf env, int val)
+@@ -47,14 +40,10 @@ longjmp_compat (jmp_buf env, int val)
+ __libc_longjmp (env, val);
+ }
+
+-# define DEFINE_LONGJMP(name) strong_alias (longjmp_compat, name)
+-
+-# endif /* HAVE_IFUNC */
+-
+-DEFINE_LONGJMP (longjmp_ifunc)
+-compat_symbol (libpthread, longjmp_ifunc, longjmp, GLIBC_2_0);
++strong_alias (longjmp_compat, longjmp_alias)
++compat_symbol (libpthread, longjmp_alias, longjmp, GLIBC_2_0);
+
+-strong_alias (longjmp_ifunc, siglongjmp_ifunc)
+-compat_symbol (libpthread, siglongjmp_ifunc, siglongjmp, GLIBC_2_0);
++strong_alias (longjmp_alias, siglongjmp_alias)
++compat_symbol (libpthread, siglongjmp_alias, siglongjmp, GLIBC_2_0);
+
+ #endif
+diff --git a/nptl/pt-system.c b/nptl/pt-system.c
+index f8ca6ba0d9..b30ddf2b39 100644
+--- a/nptl/pt-system.c
++++ b/nptl/pt-system.c
+@@ -25,29 +25,21 @@
+ libpthread, but the historical ABI requires it. For static linking,
+ there is no need to provide anything here--the libc version will be
+ linked in. For shared library ABI compatibility, there must be a
+- 'system' symbol in libpthread.so; so we define it using IFUNC to
+- redirect to the libc function. */
++ 'system' symbol in libpthread.so.
+
+-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22)
+-
+-# if HAVE_IFUNC
+-
+-extern __typeof(system) system_ifunc;
+-# undef INIT_ARCH
+-# define INIT_ARCH()
+-libc_ifunc (system_ifunc, &__libc_system)
++ With an IFUNC resolver, it would be possible to avoid the indirection,
++ but the IFUNC resolver might run before the __libc_system symbol has
++ been relocated, in which case the IFUNC resolver would not be able to
++ provide the correct address. */
+
+-# else /* !HAVE_IFUNC */
++#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22)
+
+ static int __attribute__ ((used))
+ system_compat (const char *line)
+ {
+ return __libc_system (line);
+ }
+-strong_alias (system_compat, system_ifunc)
+-
+-# endif /* HAVE_IFUNC */
+-
+-compat_symbol (libpthread, system_ifunc, system, GLIBC_2_0);
++strong_alias (system_compat, system_alias)
++compat_symbol (libpthread, system_alias, system, GLIBC_2_0);
+
+ #endif
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index 6e7d6ff09e..c5ae04692e 100644
--- a/nptl/pthreadP.h
@@ -2267,6 +2490,81 @@ index 6f2fc808ff..e1f911bf29 100644
imutexattr = ((const struct pthread_mutexattr *) mutexattr
?: &default_mutexattr);
+diff --git a/nptl/tst-compat-forwarder-mod.c b/nptl/tst-compat-forwarder-mod.c
+new file mode 100644
+index 0000000000..823bfa22de
+--- /dev/null
++++ b/nptl/tst-compat-forwarder-mod.c
+@@ -0,0 +1,28 @@
++/* Copyright (C) 2017 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
++ <http://www.gnu.org/licenses/>. */
++
++/* Call the function system through a statically initialized pointer. */
++
++#include <stdlib.h>
++
++int (*system_function) (const char *) = system;
++
++void
++call_system (void)
++{
++ system_function (NULL);
++}
+diff --git a/nptl/tst-compat-forwarder.c b/nptl/tst-compat-forwarder.c
+new file mode 100644
+index 0000000000..f96806b7fe
+--- /dev/null
++++ b/nptl/tst-compat-forwarder.c
+@@ -0,0 +1,35 @@
++/* Copyright (C) 2017 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
++ <http://www.gnu.org/licenses/>. */
++
++/* Test that the compat forwaders in libpthread work correctly. */
++
++#include <support/test-driver.h>
++
++extern void call_system (void);
++
++int
++do_test (void)
++{
++ /* Calling the system function from a shared library that is not linked
++ against libpthread, when the main program is linked against
++ libpthread, should not crash. */
++ call_system ();
++
++ return 0;
++}
++
++#include <support/test-driver.c>
diff --git a/nss/Makefile b/nss/Makefile
index d9f6d41181..8efb2a56fa 100644
--- a/nss/Makefile
@@ -8719,6 +9017,19 @@ index 06ea3dbd14..da3325f80c 100644
static int
wrap_res_query (int type, unsigned char *answer, int answer_length)
+diff --git a/scripts/check-local-headers.sh b/scripts/check-local-headers.sh
+index 7859f613b2..0cde6e8e92 100755
+--- a/scripts/check-local-headers.sh
++++ b/scripts/check-local-headers.sh
+@@ -33,7 +33,7 @@ exec ${AWK} -v includedir="$includedir" '
+ BEGIN {
+ status = 0
+ exclude = "^" includedir \
+- "/(.*-.*-.*/|.*-.*/|)(asm[-/]|arch|linux/|selinux/|mach/|mach_debug/|device/|hurd/(((hurd|ioctl)_types|paths)\\.h|ioctls\\.defs|ihash\\.h)|cthreads\\.h|gd|nss3/|c\\+\\+/|sys/(capability|sdt(|-config))\\.h|libaudit\\.h)"
++ "/(.*-.*-.*/|.*-.*/|)(asm[-/]|arch|linux/|selinux/|mach/|mach_debug/|device/|hurd/(((hurd|ioctl)_types|paths)\\.h|ioctls\\.defs|ihash\\.h)|cthreads\\.h|gd|nss3/|nspr4?/|c\\+\\+/|sys/(capability|sdt(|-config))\\.h|libaudit\\.h)"
+ }
+ /^[^ ]/ && $1 ~ /.*:/ { obj = $1 }
+ {
diff --git a/scripts/gen-tunables.awk b/scripts/gen-tunables.awk
index ccdd0c6c71..622199061a 100644
--- a/scripts/gen-tunables.awk
@@ -15032,6 +15343,302 @@ index 3cfe1793da..a8127e89f7 100644
libc_ifunc_redirected (__redirect___isnan, __isnan,
(hwcap2 & PPC_FEATURE2_ARCH_2_07)
+diff --git a/sysdeps/powerpc/powerpc64/power7/memcpy.S b/sysdeps/powerpc/powerpc64/power7/memcpy.S
+index 641c7e2118..c9b6507d1b 100644
+--- a/sysdeps/powerpc/powerpc64/power7/memcpy.S
++++ b/sysdeps/powerpc/powerpc64/power7/memcpy.S
+@@ -91,63 +91,63 @@ L(aligned_copy):
+ srdi 12,cnt,7
+ cmpdi 12,0
+ beq L(aligned_tail)
+- lxvd2x 6,0,src
+- lxvd2x 7,src,6
++ lvx 6,0,src
++ lvx 7,src,6
+ mtctr 12
+ b L(aligned_128loop)
+
+ .align 4
+ L(aligned_128head):
+ /* for the 2nd + iteration of this loop. */
+- lxvd2x 6,0,src
+- lxvd2x 7,src,6
++ lvx 6,0,src
++ lvx 7,src,6
+ L(aligned_128loop):
+- lxvd2x 8,src,7
+- lxvd2x 9,src,8
+- stxvd2x 6,0,dst
++ lvx 8,src,7
++ lvx 9,src,8
++ stvx 6,0,dst
+ addi src,src,64
+- stxvd2x 7,dst,6
+- stxvd2x 8,dst,7
+- stxvd2x 9,dst,8
+- lxvd2x 6,0,src
+- lxvd2x 7,src,6
++ stvx 7,dst,6
++ stvx 8,dst,7
++ stvx 9,dst,8
++ lvx 6,0,src
++ lvx 7,src,6
+ addi dst,dst,64
+- lxvd2x 8,src,7
+- lxvd2x 9,src,8
++ lvx 8,src,7
++ lvx 9,src,8
+ addi src,src,64
+- stxvd2x 6,0,dst
+- stxvd2x 7,dst,6
+- stxvd2x 8,dst,7
+- stxvd2x 9,dst,8
++ stvx 6,0,dst
++ stvx 7,dst,6
++ stvx 8,dst,7
++ stvx 9,dst,8
+ addi dst,dst,64
+ bdnz L(aligned_128head)
+
+ L(aligned_tail):
+ mtocrf 0x01,cnt
+ bf 25,32f
+- lxvd2x 6,0,src
+- lxvd2x 7,src,6
+- lxvd2x 8,src,7
+- lxvd2x 9,src,8
++ lvx 6,0,src
++ lvx 7,src,6
++ lvx 8,src,7
++ lvx 9,src,8
+ addi src,src,64
+- stxvd2x 6,0,dst
+- stxvd2x 7,dst,6
+- stxvd2x 8,dst,7
+- stxvd2x 9,dst,8
++ stvx 6,0,dst
++ stvx 7,dst,6
++ stvx 8,dst,7
++ stvx 9,dst,8
+ addi dst,dst,64
+ 32:
+ bf 26,16f
+- lxvd2x 6,0,src
+- lxvd2x 7,src,6
++ lvx 6,0,src
++ lvx 7,src,6
+ addi src,src,32
+- stxvd2x 6,0,dst
+- stxvd2x 7,dst,6
++ stvx 6,0,dst
++ stvx 7,dst,6
+ addi dst,dst,32
+ 16:
+ bf 27,8f
+- lxvd2x 6,0,src
++ lvx 6,0,src
+ addi src,src,16
+- stxvd2x 6,0,dst
++ stvx 6,0,dst
+ addi dst,dst,16
+ 8:
+ bf 28,4f
+diff --git a/sysdeps/powerpc/powerpc64/power7/memmove.S b/sysdeps/powerpc/powerpc64/power7/memmove.S
+index 93baa69ee2..667c6e2092 100644
+--- a/sysdeps/powerpc/powerpc64/power7/memmove.S
++++ b/sysdeps/powerpc/powerpc64/power7/memmove.S
+@@ -92,63 +92,63 @@ L(aligned_copy):
+ srdi 12,r5,7
+ cmpdi 12,0
+ beq L(aligned_tail)
+- lxvd2x 6,0,r4
+- lxvd2x 7,r4,6
++ lvx 6,0,r4
++ lvx 7,r4,6
+ mtctr 12
+ b L(aligned_128loop)
+
+ .align 4
+ L(aligned_128head):
+ /* for the 2nd + iteration of this loop. */
+- lxvd2x 6,0,r4
+- lxvd2x 7,r4,6
++ lvx 6,0,r4
++ lvx 7,r4,6
+ L(aligned_128loop):
+- lxvd2x 8,r4,7
+- lxvd2x 9,r4,8
+- stxvd2x 6,0,r11
++ lvx 8,r4,7
++ lvx 9,r4,8
++ stvx 6,0,r11
+ addi r4,r4,64
+- stxvd2x 7,r11,6
+- stxvd2x 8,r11,7
+- stxvd2x 9,r11,8
+- lxvd2x 6,0,r4
+- lxvd2x 7,r4,6
++ stvx 7,r11,6
++ stvx 8,r11,7
++ stvx 9,r11,8
++ lvx 6,0,r4
++ lvx 7,r4,6
+ addi r11,r11,64
+- lxvd2x 8,r4,7
+- lxvd2x 9,r4,8
++ lvx 8,r4,7
++ lvx 9,r4,8
+ addi r4,r4,64
+- stxvd2x 6,0,r11
+- stxvd2x 7,r11,6
+- stxvd2x 8,r11,7
+- stxvd2x 9,r11,8
++ stvx 6,0,r11
++ stvx 7,r11,6
++ stvx 8,r11,7
++ stvx 9,r11,8
+ addi r11,r11,64
+ bdnz L(aligned_128head)
+
+ L(aligned_tail):
+ mtocrf 0x01,r5
+ bf 25,32f
+- lxvd2x 6,0,r4
+- lxvd2x 7,r4,6
+- lxvd2x 8,r4,7
+- lxvd2x 9,r4,8
++ lvx 6,0,r4
++ lvx 7,r4,6
++ lvx 8,r4,7
++ lvx 9,r4,8
+ addi r4,r4,64
+- stxvd2x 6,0,r11
+- stxvd2x 7,r11,6
+- stxvd2x 8,r11,7
+- stxvd2x 9,r11,8
++ stvx 6,0,r11
++ stvx 7,r11,6
++ stvx 8,r11,7
++ stvx 9,r11,8
+ addi r11,r11,64
+ 32:
+ bf 26,16f
+- lxvd2x 6,0,r4
+- lxvd2x 7,r4,6
++ lvx 6,0,r4
++ lvx 7,r4,6
+ addi r4,r4,32
+- stxvd2x 6,0,r11
+- stxvd2x 7,r11,6
++ stvx 6,0,r11
++ stvx 7,r11,6
+ addi r11,r11,32
+ 16:
+ bf 27,8f
+- lxvd2x 6,0,r4
++ lvx 6,0,r4
+ addi r4,r4,16
+- stxvd2x 6,0,r11
++ stvx 6,0,r11
+ addi r11,r11,16
+ 8:
+ bf 28,4f
+@@ -488,63 +488,63 @@ L(aligned_copy_bwd):
+ srdi r12,r5,7
+ cmpdi r12,0
+ beq L(aligned_tail_bwd)
+- lxvd2x v6,r4,r6
+- lxvd2x v7,r4,r7
++ lvx v6,r4,r6
++ lvx v7,r4,r7
+ mtctr 12
+ b L(aligned_128loop_bwd)
+
+ .align 4
+ L(aligned_128head_bwd):
+ /* for the 2nd + iteration of this loop. */
+- lxvd2x v6,r4,r6
+- lxvd2x v7,r4,r7
++ lvx v6,r4,r6
++ lvx v7,r4,r7
+ L(aligned_128loop_bwd):
+- lxvd2x v8,r4,r8
+- lxvd2x v9,r4,r9
+- stxvd2x v6,r11,r6
++ lvx v8,r4,r8
++ lvx v9,r4,r9
++ stvx v6,r11,r6
+ subi r4,r4,64
+- stxvd2x v7,r11,r7
+- stxvd2x v8,r11,r8
+- stxvd2x v9,r11,r9
+- lxvd2x v6,r4,r6
+- lxvd2x v7,r4,7
++ stvx v7,r11,r7
++ stvx v8,r11,r8
++ stvx v9,r11,r9
++ lvx v6,r4,r6
++ lvx v7,r4,7
+ subi r11,r11,64
+- lxvd2x v8,r4,r8
+- lxvd2x v9,r4,r9
++ lvx v8,r4,r8
++ lvx v9,r4,r9
+ subi r4,r4,64
+- stxvd2x v6,r11,r6
+- stxvd2x v7,r11,r7
+- stxvd2x v8,r11,r8
+- stxvd2x v9,r11,r9
++ stvx v6,r11,r6
++ stvx v7,r11,r7
++ stvx v8,r11,r8
++ stvx v9,r11,r9
+ subi r11,r11,64
+ bdnz L(aligned_128head_bwd)
+
+ L(aligned_tail_bwd):
+ mtocrf 0x01,r5
+ bf 25,32f
+- lxvd2x v6,r4,r6
+- lxvd2x v7,r4,r7
+- lxvd2x v8,r4,r8
+- lxvd2x v9,r4,r9
++ lvx v6,r4,r6
++ lvx v7,r4,r7
++ lvx v8,r4,r8
++ lvx v9,r4,r9
+ subi r4,r4,64
+- stxvd2x v6,r11,r6
+- stxvd2x v7,r11,r7
+- stxvd2x v8,r11,r8
+- stxvd2x v9,r11,r9
++ stvx v6,r11,r6
++ stvx v7,r11,r7
++ stvx v8,r11,r8
++ stvx v9,r11,r9
+ subi r11,r11,64
+ 32:
+ bf 26,16f
+- lxvd2x v6,r4,r6
+- lxvd2x v7,r4,r7
++ lvx v6,r4,r6
++ lvx v7,r4,r7
+ subi r4,r4,32
+- stxvd2x v6,r11,r6
+- stxvd2x v7,r11,r7
++ stvx v6,r11,r6
++ stvx v7,r11,r7
+ subi r11,r11,32
+ 16:
+ bf 27,8f
+- lxvd2x v6,r4,r6
++ lvx v6,r4,r6
+ subi r4,r4,16
+- stxvd2x v6,r11,r6
++ stvx v6,r11,r6
+ subi r11,r11,16
+ 8:
+ bf 28,4f
diff --git a/sysdeps/powerpc/powerpc64/tls-macros.h b/sysdeps/powerpc/powerpc64/tls-macros.h
index 42a95ec5c1..79a0b2579c 100644
--- a/sysdeps/powerpc/powerpc64/tls-macros.h
@@ -16034,6 +16641,21 @@ index def9a0bc57..d2800c6657 100644
return -1;
}
return pwritev64 (fd, vector, count, offset);
+diff --git a/sysdeps/unix/sysv/linux/s390/pt-longjmp.c b/sysdeps/unix/sysv/linux/s390/pt-longjmp.c
+index d324237edd..0221ac2cf5 100644
+--- a/sysdeps/unix/sysv/linux/s390/pt-longjmp.c
++++ b/sysdeps/unix/sysv/linux/s390/pt-longjmp.c
+@@ -26,8 +26,8 @@
+ /* In glibc release 2.19 new versions of longjmp-functions were introduced,
+ but were reverted before 2.20. Thus both versions are the same function. */
+
+-strong_alias (longjmp_ifunc, __v2longjmp)
++strong_alias (longjmp_alias, __v2longjmp)
+ compat_symbol (libpthread, __v2longjmp, longjmp, GLIBC_2_19);
+-strong_alias (siglongjmp_ifunc, __v2siglongjmp)
++strong_alias (siglongjmp_alias, __v2siglongjmp)
+ compat_symbol (libpthread, __v2siglongjmp, siglongjmp, GLIBC_2_19);
+ #endif /* SHLIB_COMPAT (libpthread, GLIBC_2_19, GLIBC_2_20)) */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/glob64.c b/sysdeps/unix/sysv/linux/s390/s390-32/glob64.c
new file mode 100644
index 0000000000..d220e22e30
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-glibc/glibc.git
Reply to: