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 <aurel...@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 <aure...@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 <sch...@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 <sch...@suse.de> ++ ++ * sysdeps/unix/sysv/linux/s390/pt-longjmp.c: Update reference to ++ renamed alias. ++ ++2017-08-08 Andreas Schwab <sch...@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 <r...@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 <fwei...@redhat.com> ++ ++ * scripts/check-local-headers.sh: Ignore nspr4 header file ++ directory in addition to nspr. ++ ++2017-10-04 Guido Trentalancia <gu...@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 <wdijk...@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