I think there is sparc-specific bug introduced by commit 'Avoid "anonymous" code in pthread_spin_lock' from 3 May 2012 https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=e2dbf201abdfa13fc4035a1a8888ecec91bef44c The bug exists since 2.16 version of glibc. New version of pthread_spin_lock for sparc64 and sparcv8+ doesn't do "ldstub" to lock the spinlock, if there were any spins on spinlock, locked by another thread. Original implementation of pthread_spin_lock: Try to lock spinlock and return if spinlock was locked, go to 2: and spin, waiting spinlock to unlock then go to 1: to try lock it ("1: ldstub [%0], %%g2\n" " orcc %%g2, 0x0, %%g0\n" " bne,a 2f\n" " ldub [%0], %%g2\n" ".subsection 2\n" "2: orcc %%g2, 0x0, %%g0\n" " bne,a 2b\n" " ldub [%0], %%g2\n" " b,a 1b\n" ".previous" : /* no outputs */ : "r" (lock) : "g2", "memory", "cc"); Code after patch: Try to lock spinlock and return if spinlock was locked, go to 2: and spin, waiting spinlock to unlock then return ENTRY(pthread_spin_lock) ldstub [%o0], %g1 brnz,pn %g1, 2f membar #StoreLoad | #StoreStore 1: retl mov 0, %o0 2: ldub [%o0], %g1 brnz,pt %g1, 2b membar #LoadLoad ba,a,pt %xcc, 1b END(pthread_spin_lock) With newer code, pthread_spin_lock may return without actually locking the spinlock. This is incorrect according to The Open Group Base Specifications Issue 6 http://pubs.opengroup.org/onlinepubs/009695299/functions/pthread_spin_lock.html > The pthread_spin_lock() function shall lock the spin lock referenced by lock. I have short test: $ cat pthread_spin_test.c #include <pthread.h> #include <stdio.h> #include <unistd.h> void* thread(void *arg) { pthread_spinlock_t *lock = (pthread_spinlock_t*) arg; printf("Thread started, lock locked by main, value is %08x\n", *(int*)lock); pthread_spin_lock(lock); printf("Lock now locked by thread, value is %08x\n", *(int*)lock); pthread_spin_unlock(lock); printf("Lock now unlocked by thread, value is %08x\n", *(int*)lock); return NULL; } int main() { pthread_t thr1; pthread_spinlock_t lock; pthread_spin_init(&lock, PTHREAD_PROCESS_PRIVATE); printf("Lock created, value is %08x after init\n", *(int*)&lock); pthread_spin_lock(&lock); printf("Lock locked by main, value is %08x\n", *(int*)&lock); pthread_create(&thr1, NULL, thread, (void*)&lock); sleep(1); pthread_spin_unlock(&lock); pthread_join(thr1, NULL); return 0; } With glibc-2.7 it always outputs 0xFF as value of locked spinlock: Lock created, value is 00000000 after init Lock locked by main, value is ff000000 Thread started, lock locked by main, value is ff000000 Lock now locked by thread, value is ff000000 Lock now unlocked by thread, value is 00000000 And with glibc-2.16, spinlock locked by thread has incorrect value 0 (unlocked): Lock created, value is 00000000 after init Lock locked by main, value is ff000000 Thread started, lock locked by main, value is ff000000 Lock now locked by thread, value is 00000000 <<<< Lock now unlocked by thread, value is 00000000 To fix the bug, I think it can be enough to move "1:" label before ldstub in files nptl/sysdeps/sparc/sparc64/pthread_spin_lock.S nptl/sysdeps/sparc/sparc32/pthread_spin_lock.S
Created attachment 7613 [details] 0001-Fixed-pthread_spin_lock-on-sparc32-64-bug-16882.patch This is a patch (based on a5b's description)
I think a5b's idea is the correct fix. Patches and a new test are attached.
Created attachment 7614 [details] 0002-New-test-for-pthread_spin_lock-bug-16882.patch A testcase (independent of particular implementation)
I've tested it on sparc32 and sparc64, on the master branch. And this patch should also work on release/2.x/master for 2.16 to 2.19.
On Fri, May 23, 2014 at 02:26:35PM +0000, culu.gyx at gmail dot com wrote: > https://sourceware.org/bugzilla/show_bug.cgi?id=16882 > > --- Comment #4 from GUO Yixuan <culu.gyx at gmail dot com> --- > I've tested it on sparc32 and sparc64, on the master branch. And this patch > should also work on release/2.x/master for 2.16 to 2.19. > Could you send this patch to libc-alpha@sourceware.org so it could be reviewed?
(In reply to Ondrej Bilka from comment #5) > On Fri, May 23, 2014 at 02:26:35PM +0000, culu.gyx at gmail dot com wrote: > > https://sourceware.org/bugzilla/show_bug.cgi?id=16882 > > > > --- Comment #4 from GUO Yixuan <culu.gyx at gmail dot com> --- > > I've tested it on sparc32 and sparc64, on the master branch. And this patch > > should also work on release/2.x/master for 2.16 to 2.19. > > > Could you send this patch to libc-alpha@sourceware.org so it could be > reviewed? All right, I've just sent the patches.
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, master has been updated via 196939fb0ede8b588019f7ff0779dffbfc35787d (commit) via b42eca7d39d7d263815a4457c318eb57ee2686a4 (commit) from f9d2d03254a58d92635a311a42253eeed5a40a47 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=196939fb0ede8b588019f7ff0779dffbfc35787d commit 196939fb0ede8b588019f7ff0779dffbfc35787d Author: Guo Yixuan <culu.gyx@gmail.com> Date: Thu May 29 21:53:16 2014 -0700 New test for pthread_spin_lock (bug 16882) * nptl/tst-spin4.c: New test. * nptl/Makefile (tests): Add tst-spin4. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b42eca7d39d7d263815a4457c318eb57ee2686a4 commit b42eca7d39d7d263815a4457c318eb57ee2686a4 Author: Guo Yixuan <culu.gyx@gmail.com> Date: Thu May 29 21:43:15 2014 -0700 Fixed pthread_spin_lock on sparc32/64 (bug 16882) [BZ #16882] * nptl/sysdeps/sparc/sparc32/pthread_spin_lock.S (pthread_spin_lock): Branch out of spin loop to proper location. * nptl/sysdeps/sparc/sparc64/pthread_spin_lock.S (pthread_spin_lock): Likewise. ----------------------------------------------------------------------- Summary of changes: ChangeLog | 11 +++ nptl/Makefile | 2 +- nptl/sysdeps/sparc/sparc32/pthread_spin_lock.S | 4 +- nptl/sysdeps/sparc/sparc64/pthread_spin_lock.S | 4 +- nptl/tst-spin4.c | 109 ++++++++++++++++++++++++ 5 files changed, 125 insertions(+), 5 deletions(-) create mode 100644 nptl/tst-spin4.c
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.16/master has been updated via 02b1a8f86665320e961c2d12882ca0ba6112540a (commit) from c3e44c48727747659e313f09bc5557b6c1007e49 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=02b1a8f86665320e961c2d12882ca0ba6112540a commit 02b1a8f86665320e961c2d12882ca0ba6112540a Author: Guo Yixuan <culu.gyx@gmail.com> Date: Tue Jun 3 16:19:11 2014 -0700 Fixed pthread_spin_lock on sparc32/64 (bug 16882) [BZ #16882] * nptl/sysdeps/sparc/sparc32/pthread_spin_lock.S (pthread_spin_lock): Branch out of spin loop to proper location. * nptl/sysdeps/sparc/sparc64/pthread_spin_lock.S (pthread_spin_lock): Likewise. * nptl/tst-spin4.c: New test. * nptl/Makefile (tests): Add tst-spin4. ----------------------------------------------------------------------- Summary of changes: ChangeLog | 11 +++ NEWS | 2 +- nptl/Makefile | 2 +- nptl/sysdeps/sparc/sparc32/pthread_spin_lock.S | 4 +- nptl/sysdeps/sparc/sparc64/pthread_spin_lock.S | 4 +- nptl/tst-spin4.c | 109 ++++++++++++++++++++++++ 6 files changed, 126 insertions(+), 6 deletions(-) create mode 100644 nptl/tst-spin4.c
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.17/master has been updated via 05573613e0b4f99f2718f62957c77d5842df3592 (commit) from 8c19f86e356cd28180eb199f07670de5f32f82b9 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=05573613e0b4f99f2718f62957c77d5842df3592 commit 05573613e0b4f99f2718f62957c77d5842df3592 Author: Guo Yixuan <culu.gyx@gmail.com> Date: Tue Jun 3 16:19:11 2014 -0700 Fixed pthread_spin_lock on sparc32/64 (bug 16882) [BZ #16882] * nptl/sysdeps/sparc/sparc32/pthread_spin_lock.S (pthread_spin_lock): Branch out of spin loop to proper location. * nptl/sysdeps/sparc/sparc64/pthread_spin_lock.S (pthread_spin_lock): Likewise. * nptl/tst-spin4.c: New test. * nptl/Makefile (tests): Add tst-spin4. ----------------------------------------------------------------------- Summary of changes: ChangeLog | 11 +++ NEWS | 2 +- nptl/Makefile | 2 +- nptl/sysdeps/sparc/sparc32/pthread_spin_lock.S | 4 +- nptl/sysdeps/sparc/sparc64/pthread_spin_lock.S | 4 +- nptl/tst-spin4.c | 109 ++++++++++++++++++++++++ 6 files changed, 126 insertions(+), 6 deletions(-) create mode 100644 nptl/tst-spin4.c
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.18/master has been updated via d4deb63367247eaddcbe10b872d39ff70659eaf4 (commit) from f2b605ed8882a922c403386b2af7e7a5eecbf39f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d4deb63367247eaddcbe10b872d39ff70659eaf4 commit d4deb63367247eaddcbe10b872d39ff70659eaf4 Author: Guo Yixuan <culu.gyx@gmail.com> Date: Tue Jun 3 16:19:11 2014 -0700 Fixed pthread_spin_lock on sparc32/64 (bug 16882) [BZ #16882] * nptl/sysdeps/sparc/sparc32/pthread_spin_lock.S (pthread_spin_lock): Branch out of spin loop to proper location. * nptl/sysdeps/sparc/sparc64/pthread_spin_lock.S (pthread_spin_lock): Likewise. * nptl/tst-spin4.c: New test. * nptl/Makefile (tests): Add tst-spin4. ----------------------------------------------------------------------- Summary of changes: ChangeLog | 11 +++ NEWS | 2 +- nptl/Makefile | 2 +- nptl/sysdeps/sparc/sparc32/pthread_spin_lock.S | 4 +- nptl/sysdeps/sparc/sparc64/pthread_spin_lock.S | 4 +- nptl/tst-spin4.c | 109 ++++++++++++++++++++++++ 6 files changed, 126 insertions(+), 6 deletions(-) create mode 100644 nptl/tst-spin4.c
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.19/master has been updated via 344e61df0200af758e794b9843ffb37bd89e5259 (commit) from 690bb11f6080800be584d5db7b0b0ff61253c461 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=344e61df0200af758e794b9843ffb37bd89e5259 commit 344e61df0200af758e794b9843ffb37bd89e5259 Author: Guo Yixuan <culu.gyx@gmail.com> Date: Tue Jun 3 16:19:11 2014 -0700 Fixed pthread_spin_lock on sparc32/64 (bug 16882) [BZ #16882] * nptl/sysdeps/sparc/sparc32/pthread_spin_lock.S (pthread_spin_lock): Branch out of spin loop to proper location. * nptl/sysdeps/sparc/sparc64/pthread_spin_lock.S (pthread_spin_lock): Likewise. * nptl/tst-spin4.c: New test. * nptl/Makefile (tests): Add tst-spin4. ----------------------------------------------------------------------- Summary of changes: ChangeLog | 11 +++ NEWS | 2 +- nptl/Makefile | 2 +- nptl/sysdeps/sparc/sparc32/pthread_spin_lock.S | 4 +- nptl/sysdeps/sparc/sparc64/pthread_spin_lock.S | 4 +- nptl/tst-spin4.c | 109 ++++++++++++++++++++++++ 6 files changed, 126 insertions(+), 6 deletions(-) create mode 100644 nptl/tst-spin4.c
Fixed in mainline and all relevant branches.
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The annotated tag, glibc-2.20 has been created at 9bcede1abfb0fa62d54b7cfce5c72d56e2f7b95c (tag) tagging b8079dd0d360648e4e8de48656c5c38972621072 (commit) replaces glibc-2.19 tagged by Allan McRae on Sun Sep 7 18:17:29 2014 +1000 - Log ----------------------------------------------------------------- The GNU C Library ================= The GNU C Library version 2.20 is now available. The GNU C Library is used as *the* C library in the GNU systems and is widely used on systems with the Linux kernel. The GNU C Library is primarily designed to be a portable and high performance C library. It follows all relevant standards including ISO C11 and POSIX.1-2008. It is also internationalized and has one of the most complete internationalization interfaces known. The GNU C Library webpage is at http://www.gnu.org/software/libc/ Packages for the 2.20 release may be downloaded from: http://ftpmirror.gnu.org/libc/ http://ftp.gnu.org/gnu/libc/ The mirror list is at http://www.gnu.org/order/ftp.html NEWS for version 2.20 ==================== * The following bugs are resolved with this release: 6804, 9894, 12994, 13347, 13651, 14308, 14770, 15119, 15132, 15347, 15514, 15698, 15804, 15894, 15946, 16002, 16064, 16095, 16194, 16198, 16275, 16284, 16287, 16315, 16348, 16349, 16354, 16357, 16362, 16447, 16516, 16532, 16539, 16545, 16561, 16562, 16564, 16574, 16599, 16600, 16609, 16610, 16611, 16613, 16619, 16623, 16629, 16632, 16634, 16639, 16642, 16648, 16649, 16670, 16674, 16677, 16680, 16681, 16683, 16689, 16695, 16701, 16706, 16707, 16712, 16713, 16714, 16724, 16731, 16739, 16740, 16743, 16754, 16758, 16759, 16760, 16770, 16786, 16789, 16791, 16796, 16799, 16800, 16815, 16823, 16824, 16831, 16838, 16839, 16849, 16854, 16876, 16877, 16878, 16882, 16885, 16888, 16890, 16892, 16912, 16915, 16916, 16917, 16918, 16922, 16927, 16928, 16932, 16943, 16958, 16965, 16966, 16967, 16977, 16978, 16984, 16990, 16996, 17009, 17022, 17031, 17042, 17048, 17050, 17058, 17061, 17062, 17069, 17075, 17078, 17079, 17084, 17086, 17088, 17092, 17097, 17125, 17135, 17137, 17150, 17153, 17187, 17213, 17259, 17261, 17262, 17263, 17319, 17325, 17354. * Reverted change of ABI data structures for s390 and s390x: On s390 and s390x the size of struct ucontext and jmp_buf was increased in 2.19. This change is reverted in 2.20. The introduced 2.19 symbol versions of getcontext, setjmp, _setjmp, __sigsetjmp, longjmp, _longjmp, siglongjmp are preserved pointing straight to the same implementation as the old ones. Given that, new callers will simply provide a too-big buffer to these functions. Any applications/libraries out there that embed jmp_buf or ucontext_t in an ABI-relevant data structure that have already been rebuilt against 2.19 headers will have to rebuilt again. This is necessary in any case to revert the breakage in their ABI caused by the glibc change. * Support for file description locks is added to systems running the Linux kernel. The standard file locking interfaces are extended to operate on file descriptions, not file descriptors, via the use of F_OFD_GETLK, F_OFD_SETLK, and F_OFD_SETLKW. File description locks are associated with an open file instead of a process. * Optimized strchr implementation for AArch64. Contributed by ARM Ltd. * The minimum Linux kernel version that this version of the GNU C Library can be used with is 2.6.32. * Running the testsuite no longer terminates as soon as a test fails. Instead, a file tests.sum (xtests.sum from "make xcheck") is generated, with PASS or FAIL lines for individual tests. A summary of the results is printed, including a list of failing lists, and "make check" exits with error status if there were any unexpected failures. "make check stop-on-test-failure=y" may be used to keep the old behavior. * The am33 port, which had not worked for several years, has been removed from ports. * The _BSD_SOURCE and _SVID_SOURCE feature test macros are no longer supported; they now act the same as _DEFAULT_SOURCE (but generate a warning). Except for cases where _BSD_SOURCE enabled BSD interfaces that conflicted with POSIX (support for which was removed in 2.19), the interfaces those macros enabled remain available when compiling with _GNU_SOURCE defined, with _DEFAULT_SOURCE defined, or without any feature test macros defined. * Optimized strcmp implementation for ARMv7. Contributed by ARM Ltd. * Added support for TX lock elision of pthread mutexes on s390 and s390x. This may improve lock scaling of existing programs on TX capable systems. The lock elision code is only built with --enable-lock-elision=yes and then requires a GCC version supporting the TX builtins. With lock elision default mutexes are elided via __builtin_tbegin, if the cpu supports transactions. By default lock elision is not enabled and the elision code is not built. * CVE-2014-4043 The posix_spawn_file_actions_addopen implementation did not copy the path argument. This allowed programs to cause posix_spawn to deference a dangling pointer, or use an unexpected pathname argument if the string was modified after the posix_spawn_file_actions_addopen invocation. * All supported architectures now use the main glibc sysdeps directory instead of some being in a separate "ports" directory (which was distributed separately before glibc 2.17). * The NPTL implementation of POSIX pthreads is no longer an "add-on". On configurations that support it (all Linux configurations), it's now used regardless of the --enable-add-ons switch to configure. It is no longer possible to build such configurations without pthreads support. * Locale names, including those obtained from environment variables (LANG and the LC_* variables), are more tightly checked for proper syntax. setlocale will now fail (with EINVAL) for locale names that are overly long, contain slashes without starting with a slash, or contain ".." path components. (CVE-2014-0475) Previously, some valid locale names were silently replaced with the "C" locale when running in AT_SECURE mode (e.g., in a SUID program). This is no longer necessary because of the additional checks. * On x86-64, the dynamic linker's lazy-binding support is now compatible with application code using Intel MPX instructions. (With all previous versions, the MPX register state could be clobbered when making calls into or out of a shared library.) Note that while the new dynamic linker is compatible with all known x86 hardware whether or not it supports Intel MPX, some x86 instruction-set emulators might fail to handle the new instruction encodings. This is known to affect Valgrind versions up through 3.9 (but will be fixed in the forthcoming 3.10 release), and might affect other tools that do instruction emulation. * Support for loadable gconv transliteration modules has been removed. The support for transliteration modules has been non-functional for over a decade, and the removal is prompted by security defects. The normal gconv conversion modules are still supported. Transliteration with //TRANSLIT is still possible, and the //IGNORE specifier continues to be supported. (CVE-2014-5119) * Decoding a crafted input sequence in the character sets IBM933, IBM935, IBM937, IBM939, IBM1364 could result in an out-of-bounds array read, resulting a denial-of-service security vulnerability in applications which use functions related to iconv. (CVE-2014-6040) Contributors ============ This release was made possible by the contributions of many people. The maintainers are grateful to everyone who has contributed changes or bug reports. These include: Adam Conrad Adhemerval Zanella Alan Modra Allan McRae Andi Kleen Andreas Krebbel Andreas Schwab Arjun Shankar Aurelien Jarno Bernard Ogden Carlos O'Donell Chris Metcalf David Holsgrove David S. Miller David Svoboda Dominik Vogt Dylan Alex Simon Eric Wong Florian Weimer Guo Yixuan H.J. Lu Ian Bolton Igor Zamyatin Jeff Layton Jim Meyering Joey Ye Jose E. Marchesi Joseph Anthony Pasquale Holsten Joseph Myers Julian Brown Khem Raj Konstantin Serebryany Kyle McMartin Ling Ma Ludovic Courtès Maciej W. Rozycki Marcus Shawcroft Mark Wielaard Marko Myllynen Meador Inge Mike Frysinger Ondřej Bílka Paul Eggert Paul Pluzhnikov Peter TB Brett Rajalakshmi Srinivasaraghavan Rasmus Villemoes Richard Earnshaw Richard Henderson Roland McGrath Sami Kerola Samuel Thibault Sean Anderson Serge Hallyn Siddhesh Poyarekar Sihai Yao Stefan Liebler Steve Ellcey Tomas Dohnalek Torvald Riegel Venkataramanan Kumar Vidya Ranganathan Wilco Wilco Dijkstra Will Newton Yang Yingliang Yufeng Zhang Yury Gribov Yvan Roux -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAABAgAGBQJUDBTZAAoJEPmf/g/q6Zm99pwH/1dlaqMxZ1SB7Nzk1C95URs+ AOihIh+Q5EYgqD3GnYp/evfMaHzZN7TTncZLXmDq6Ui7UiafYddFL91x06q/NzWN veCipwZC/RgCtQmEAkonVeREKauYrA4OGar86cU3HCIrpG2lGs/QXlhjvB/0HEay 3EJR90lARmZTjFX6nx78uiAzlpfPWhOiallr+Q6WTO4LSyIsf5obyaTNGNWAmWIj uotYaWjHr+cLwmiYxgO+6JuSOv7HxutnNer82hCH+k/2ppXyIh5RjqRbvbZFscax VNnfC5Hg/khzZdVXZXowAOkDvLagiQIwSHfTep80p5NeP+aJ2A+CK1ARYY0y8ts= =Yk2q -----END PGP SIGNATURE----- Adam Conrad (2): Allow sys/auxv.h to be used from the testsuite on powerpc and sparc. Revert incorrect removal of the XDR currency from locale/iso-4217.def Adhemerval Zanella (68): PowerPC: Update powerpc-fpu ULPs. PowerPC: Optimized isnan/isnanf for POWER8 PowerPC: Optimized isinf/isinff for POWER8 PowerPC: Optimized finite/finitef for POWER8 PowerPC: llrint/llrintf POWER8 optimization PowerPC: llround/llroundf POWER8 optimization PowerPC: Update powerpc-fpu ULPs. PowerPC: Fix modf/modff optimization return sign PowerPC: strncat optimization for PPC64 PowerPC: Fix bzero definition for static libc for PPC64 PowerPC: Fix strspn for static build PowerPC: Fix bzero definition for static libc for PPC32 Add truncl tests related to BZ#16414 PowerPC: remove wrong ceill implementation for PowerPC64 PowerPC: remove wrong nearbyintl implementation for PPC64 PowerPC: remove wrong roundl implementation for PowerPC64 Add stardard definition on conform processing PowerPC: optimized strcspn for PPC64/POWER7 PowerPC: optimized strpbrk for POWER7 PowerPC: Fix -Wundef warning for __PTHREAD_MUTEX_HAVE_ELISION. Update powerpc-fpu ULPs. PowerPC: Revert __PTHREAD_MUTEX_HAVE_ELISION change Fix localplt check for GNU_IFUNC PowerPC: Fix little endian enconding for mfvsrd PowerPC: Fix nearbyint/nearbyintf result for FE_DOWNWARD PowerPC: define _CALL_ELF if compiler does not PowerPC: Fix --disable-multi-arch builds Move __PTHREAD_SPINS definition to architecture specific header Define _STRING_ARCH_unaligned unconditionally PowerPC: Add fenv macros for long double PowerPC: Sync pthread_once with default implementation PowerPC: Suppress unnecessary FPSCR write Fix More fixes for unsafe compiler optimization PowerPC: ifunc improvement for internal calls Fix elf/tst-tls9-static build PowerPC: clean BSD Terminal Modes expectation in termios.h PowerPC: Fix multiarch hypotf PPC64 path PowerPC: Fix copysignf optimization macro Update powerpc-fpu ULPs. PowerPC: Fix memchr ifunc hidden symbol for PPC32 PowerPC: Remove unneeded copysign[f] macros PowerPC: Remove 64 bits instructions in PPC32 code PowerPC: Consolidate NPTL/non versions of vfork PowerPC: Consolidate NPTL/non versions of clone PowerPC: Move powerpc64 timer_*.c out of nptl/ PowerPC: Move NPTL ABI headers to sysdeps. PowerPC: Move remaining nptl/sysdeps/unix/sysv/linux/powerpc/ files. Update powerpc-fpu ULPs. PowerPC: Fix optimized strncat strlen call Fix ChangeLog indentation. Update powerpc-fpu ULPs. Fix ChangeLog indentation. PowerPC: Move powerpc code out of nptl/ subdirectory PowerPC: sync hwcap.h capabilities Update powerpc-fpu ULPs. Update powerpc-fpu ULPs. PowerPC: Guard CALL_ELF check for ppc64 only in link.h PowerPC: memmove default implementation cleanup PowerPC: optimized memmove for POWER7/PPC64 PowerPC: optimized memmove for POWER7/PPC32 PowerPC: Align power7 memcpy using VSX to quadword PowerPC: Add ifunc tests for memmove PowerPC: Fix compiler warnings PowerPC: Cleanup powerpc memmove PowerPC: Fix build due missing lll_robust_trylock PowerPC: Fix gprof entry point for LE PowerPC: Fix termios definitions Alan Modra (7): Fix s_copysign stack temp for PowerPC64 ELFv2 Fix reference to toc symbol. Correct prefetch hint in power7 memrchr. Correct IBM long double nextafterl. Correct IBM long double frexpl. Update fixed bug list Correct DT_PPC64_NUM Allan McRae (27): Open development for 2.20 Fix qsort argument order in collation example Update Esperanto translations Fix variable used in sed expression in timezone/Makefile Update Swedish translations Mention CVE-2014-4043 in NEWS Add missing changelog entry for commit ab7ac0f2 Add fixed bug to NEWS Update Spanish translations Regenerate libc.po Update Spanish translation Update Dutch translation Update Sweedish translation Update Bulgarian translation Update German translation Update Czech translation Update Polish translation Update Russian translation Update French translation Update Ukrainian translation Update Vietnamese translation Update x86 ULPs Update Catalan translation Update Esperanto translation Update Korean translation Update contrib.texi Update version.h and include/features.h for 2.20 release Andi Kleen (5): Fix dwarf2 unwinding through futex functions. Add a fast path for C rd/wrlock v2 Add adaptive elision to rwlocks Remove x86 assembler rwlock code Add fallback file for elide.h Andreas Krebbel (3): BZ #16447: Fix ldbl-128 expl implementation. NEWS: Add 16447 to fixed bugs list. NEWS: Add comment about changed ABI on s390 and s390x. Andreas Schwab (45): Move m68k from ports to libc Whitespace fixes Fix memory leak in _nss_dns_gethostbyname4_r with big DNS answer Properly fix memory leak in _nss_dns_gethostbyname4_r with big DNS answer Add GLIBC_2.17 to librt in Version.def Fix race conditions in pldd that may leave the process stopped after detaching nscd: also invalidate netgroup cache on reload Account for alloca use when collecting interface addresses (bug 16002) Fix use of half-initialized result in getaddrinfo when using nscd (bug 16743) Setup LOCPATH for tst-ftell-active-handler and tst-ftell-partial-wide in libio Fix use of uninitialized variable ChangeLog cleanup Correctly handle %p in wprintf (BZ #16890) Fix implicit declaration Don't use catomic functions in mcount (BZ #16912) Fix parsing of getai result from nscd for IPv6-only request Fix unbound stack use in NIS NSS module Fix typo in assertion Fix macro warning on HAVE_PT_CHOWN Remove last use of USE___THREAD Fix searching localedef input on I18NPATH (BZ #16984) Remove second argument from TLS_INIT_TP macro Fix invalid file descriptor reuse while sending DNS query (BZ #15946) Install uz_UZ.UTF-8 locale (BZ #16095) ChangeLog fix m68k: avoid pointer to integer conversion warning m68k: Consolidate NPTL/non versions of vfork m68k: Consolidate NPTL/non versions of clone Update feature guard for strdup/strndup in <bits/string2.h> Pass $TIMEOUTFACTOR to tests also in cross testing Fix typo in preprocessor conditional m68k: update libm test ULPs Don't read past end of pattern in fnmatch (BZ #17062) Fix memory leak in regexp compiler (BZ #17069) Fix another memory leak in regexp compiler (BZ #17069) Don't ignore too long lines in nss_files (BZ #17079) Remove unused label m68k: Add compat symbols for scalbln* Update i386 libm test ULPs Fix missing newline in test output m68k: update libm test ULPs ChangeLog fix m68k: use generic lowlevellock.h Fix -Wundef warning for HAVE_IFUNC Fix missing <math_private.h> in ldbl-96 fma Arjun Shankar (1): Correctly report nscd child process status (BZ #17092) Aurelien Jarno (5): SPARC: add EFD_SEMAPHORE in <bits/eventfd.h> (BZ #16916) ptsname_r: don't leak uninitialized memory (BZ #16917) SPARC: add prlimit and prlimit64 in <bits/resource.h> (BZ #16943) fix nl_langinfo with static linking (BZ #16915) Fix strtold on 32-bit sparc (and probably others) (BZ #16965) Bernard Ogden (3): hppa: Remove lowlevellock.c. MIPS - Remove mips lowlevellock.h. Check value of futex before updating in __lll_timedlock Carlos O'Donell (27): BZ #16613: Support TLS in audit libraries. BZ #16632: Change [_BSD/_SVID]_SOURCE warning. Add a new "Inter-Process Communication" chapter. Use @Theglibc{} in manual/ipc.texi. Promote do_lookup_x:check_match to a full function. Add header and standard information to threads.texi. Revert 4248f0da6ff9e7dd63464cdecec2dec332dfc2f0. hppa: Regenerate ULPs. hppa: Regenerate ULPs again. hppa: Remove fma ulps from libm-test-ulps. hppa: Add _STACK_GROWS_* cases to pthread_attr_[sg]etstack. Fix ChangeLog formatting. manual/ipc.texi: Fix AC-safety notes. nscd: Make SELinux checks dynamic. Support _r_debug for static binaries. manual: Sort overview listing by manual order. hppa: Use r25 as second input to __longjmp. hppa: Use lll_futex_wake. hppa: Update lowlevellock.h. Relocate hppa from ports to libc. Remove ports README and update machine ChangeLogs. Final update to ports ChangeLog. Fix -Wundef warning for FEATURE_INDEX_1. Remove nested function mi_arena from malloc_info. hppa: Add ABI baselines. hppa: Remove GLIBC_2.3 from librt.abilist. NEWS: Typo fix: s/wil /will /g Chris Metcalf (7): Move tilegx, tilepro, and linux-generic from ports to libc. tile: Fix cut-and-paste bug in commit fcccd5128. math: make test-fenv-preserve.c a no-op if FE_ALL_EXCEPT == 0. crypt: don't include ufc-crypt.h multiple times tile: move sysdeps/unix/sysv/linux/tile nptl files. tile: Consolidate NPTL/non versions of vfork [BZ #17354] tile: Fix up corner cases with signed relocations David Holsgrove (2): [MicroBlaze]: Move MicroBlaze from ports to sysdeps. MicroBlaze: Add missing sysdep-cancel.h implementation David S. Miller (17): Fix tst-sscanf and tst-swscanf on 64-bit. Regenerate sparc ULPs. Fix sigaction conform test failures on sparc. Fix some sparc conform test failures in siginfo.h Fix some sparc -Wundef build warnings. Correct sparc CPP guards for EMT_TAGOVF. Add round-mode context support to sparc. Fix v9/64-bit strcmp when string ends in multiple zero bytes. NEWS: Add 16885 to fixed bug list. Fix some termios.h conformtest failures on sparc. Fix excessive ULP for y1_upward (0x2p+0) in test-float and test-ifloat. Update Sparc ULPS. Fixup ChangeLog and add missing NEWS entry for previous commits. Consolidate sparc clone, fork, and vfork implementations. Update Sparc ULPs. Update sparc ULPS. Get rid of sparc specific NPTL internaltypes.h header. David Svoboda (1): manual: clarify buffer behavior in getline [BZ #5666] Dominik Vogt (1): S/390: Port of lock elision to System/z Dylan Alex Simon (1): Update x86_64 libm-test-ulps on AMD family 21h model 1 (bug 16545). Eric Wong (1): Avoid stat/fstat in statvfs/fstatvfs (BZ #15132) Florian Weimer (12): misc/sys/select.h (__FD_MASK): Avoid signed integer overflow. Check for syscall error in the SETXID implementation in NPTL (bug 13347). Update NEWS for fixed bug 13347 posix_spawn_file_actions_addopen needs to copy the path argument (BZ 17048) Fix tautological comparison in non-executed part of tst-setuid2 (BZ #17058) setlocale: Use the heap for the copy of the locale argument _nl_find_locale: Improve handling of crafted locale names [BZ #17137] manual: Update the locale documentation nptl: Fix abort in case of set*id failure [BZ #17135] __gconv_translit_find: Disable function [BZ #17187] Fix typo in CVE ID CVE-2014-6040: Crashes on invalid input in IBM gconv modules [BZ #17325] Guo Yixuan (2): Fixed pthread_spin_lock on sparc32/64 (bug 16882) New test for pthread_spin_lock (bug 16882) H.J. Lu (8): Check AVX-512 assembler support first Replace __int128 with __int128_t in bits/link.h Use 3 bytes for __pad1 in pthread_rwlock_t for x32 Remove sysdeps/x86_64/multiarch/rtld-strlen.S Add ifunc tests for x86_64 memset_chk and memset Enable AVX2 optimized memset only if -mavx2 works Replace cpuid asm statement with __cpuid_count Mention fixes for BZs 16194 and 16275 in NEWS Ian Bolton (4): [AArch64] Provide initial implementation of math_private.h. [AArch64] Define HAVE_RM_CTX and related hooks. Add fenv test support for AArch64. [AArch64] Suppress unnecessary FPSR and FPCR writes. Igor Zamyatin (3): Save and restore AVX-512 zmm registers to x86-64 ld.so Save/restore bound registers in _dl_runtime_resolve Save/restore bound registers for _dl_runtime_profile Jeff Layton (1): fcntl-linux.h: add new definitions and manual updates for open file description locks Jim Meyering (1): regex: don't deref NULL upon heap allocation failure Joey Ye (1): Fix ARM NAN fraction bits. Jose E. Marchesi (1): Fix sparc memcpy data corruption when using niagara2 optimized routines. Joseph Anthony Pasquale Holsten (1): Fix typo in comment in res_query.c Joseph Myers (158): Remove am33 port. Move shared sysdeps files from alpha to arm. Move arm from ports to libc. Fix whitespace in ARM files to allow move. Remove mips dependency on alpha. Move shared umount.c from hppa to mips. Move mips from ports to libc. Fix whitespace in MIPS files to allow move. Merge MIPS dl-lookup.c into generic file. Regenerate x86_64 ulps. Remove _BSD_SOURCE and _SVID_SOURCE. soft-fp: support after-rounding tininess detection. Make ABI tests generate .out files. Stop io/ftwtest deleting its own output. Remove indirection in stdio-common tests dependencies. Remove reference to subdir_lint.out. Combine __USE_BSD and __USE_SVID into __USE_MISC. Update MIPS math-tests.h for GCC 4.9 using soft-fp. Clean up trivially redundant __USE_MISC conditionals. Split up rules for tests that compare output with baselines. Split up rules for tests using mtrace and something else. Fix gen-auto-libm-tests sticky bit setting for negative results. Move tests of fma from libm-test.inc to auto-libm-test-in. Move tests of clog10 from libm-test.inc to auto-libm-test-in. Update ARM HWCAP data. Fix __ASSUME_ACCEPT4 issues (bug 16609). Fix __ASSUME_RECVMMSG issues (bug 16610). Fix __ASSUME_SENDMMSG issues (bug 16611). Complete _BSD_SOURCE / _SVID_source followup cleanup. Generate .test-result files for tests with special rules. Consistently include Makeconfig after defining subdir. Support expected failures in .test-result files. Fix libm-test.inc:print_complex_max_error handling of some error cases. Don't include individual test ulps in libm-test-ulps. Automatically check sanity of ulps from libm tests. Adjust how gen-auto-libm-tests handles before-rounding/after-rounding cases. Don't define __ASSUME_UTIMES for linux-generic architectures. Prepare libm-test.inc structures for multi-rounding-mode testing. Remove INSTALL_INFO setting in manual/Makefile. conformtest: correct set of standards for which some headers are tested. conformtest: correct set of standards for which more headers are tested. Enumerate tests with special rules in tests-special variable. conformtest: clean up POSIX expectations for semaphore.h, signal.h, tar.h. conformtest: split up running of tests from makefile. Generate overall summary of test results. Make tests consistently use *.out output files. Count miscellaneous files built on host for testing as tests. Include all of <time.h> from <sched.h> for older standards (bug 16670). Fix POSIX namespace for <bits/siginfo.h> (bug 16674). Add libm-test.inc macro for all-rounding-modes testing. Fix nextafter overflow in non-default rounding modes (bug 16677). Fix MIPS libc_feresetround*_ctx to preserve exceptions. Fix __ASSUME_PSELECT for MicroBlaze (bug 16642). Regenerate INSTALL. Do not terminate default test runs on test failure. Add libm-test support for per-rounding-mode manually specified results. Test rint and nearbyint with same inputs, in all rounding modes. Exit with error status on check-abi failure. Test scalbn and scalbln in all rounding modes, add more tests of negative arguments. Fix __ASSUME_PREADV and __ASSUME_PWRITEV for Alpha and MicroBlaze (bug 16649). Use ALL_RM_TEST for more libm tests. Make libm-test support ALL_RM_TEST with AUTO_TESTS_*. Test most libm functions in all rounding modes. Fix log (1) in round-downward mode (bug 16731). Fix -Wundef warnings for _ABI* on MIPS. Fix dbl-64 exp overflow/underflow in non-default rounding modes (bug 16284). Fix implicit __isinf declarations in exp. Relax gen-auto-libm-tests may-underflow rules, test log1p in all rounding modes. Add empty GLIBC_2.2.5 version to elf/Versions. Make x86_64 fegetenv preserve exception mask (bug 16198). Fix x86/x86_64 expl/exp10l spurious underflows (bug 16348). Fix clog10 (-0 +/- 0i) (bug 16362). Fix scalb spurious "invalid" exceptions (bug 16770). Fix futimesat for older MicroBlaze kernels (bug 16648). Correct robust mutex / PI futex kernel assumptions (bug 9894). Set errno for atan2 underflow (bug 16349). Set errno for scalb errors (bug 6803, bug 6804). Fix clog / clog10 sign of zero result in round-downward mode (bug 16789). Fix catan, catanh, __ieee754_logf in round-downward mode (bug 16799, bug 16800). conformtest: clean up POSIX expectations for stdlib.h, string.h. Increase minimum Linux kernel version to 2.6.32. Include SSE state in i386 fenv_t (bug 16064). Clean up kernel version conditionals for pre-2.6.32 kernels. Clean up ARM old-ABI symbol versioning relics. Reduce kernel-features.h duplication. Fix erf underflow handling near 0 (bug 16516). Fix acosh (1) in round-downward mode (bug 16927). Fix cacos (+Inf + finite*i) in round-downward mode (bug 16928). Fix log1pl (LDBL_MAX) in FE_UPWARD mode (bug 16564). Use existing makefile variables for dependencies on glibc libraries. Fix ARM build with GCC trunk. Consistently use $(elf-objpfx). Don't mention linuxthreads in Depend files. Fix log10 (1) in round-downward mode (bug 16977). Define TSVTX in tar.h for older POSIX (bug 16978). Include LOCPATH in default test environment. Don't require test wrappers to preserve environment variables, use more consistent environment. Remove redundant C locale settings. conformtest: clean up POSIX expectations for termios.h, time.h. Remove special makefile rules / .sh files for some localedata tests. Fix log2 (1) in round-downward mode (bug 17042). conformtest: clean up POSIX expectations for sys/mman.h, sys/stat.h, sys/types.h. Add CFI to x86 ceil / floor / trunc (bug 16681). Use $(rtld-prefix) more consistently. Fix __ieee754_logl (-LDBL_MAX) in FE_DOWNWARD mode (bug 17022). Remove __ASSUME_ATFCTS conditionals in sysdeps/unix/sysv/linux/. Remove __ASSUME_ADJ_OFFSET_SS_READ. Remove __ASSUME_AT_RANDOM. Remove __ASSUME_F_GETOWN_EX. Remove __ASSUME_SOCK_CLOEXEC / SOCK_CLOEXEC conditionals in Linux-specific code. Include <kernel-features.h> explicitly where required. Remove ARM __ASSUME_SIGFRAME_V2. Update headers for Linux 3.15. Fix pow overflow in non-default rounding modes (bug 16315). Test cpow in all rounding modes. Set errno for y1 overflow (bug 17050). Fix cosh spurious underflows from expm1 (bug 16354), inaccurate results near 0 (bug 17061). Move architecture cases out of sysdeps/unix/sysv/linux/configure.ac. Fix ldbl-128 erfl spurious underflows (bug 16287). Fix x86/x86_64 expm1l spurious underflow exceptions (bug 16539). Remove __ASSUME_COMPLETE_READV_WRITEV. Fix exp10 spurious underflows (bug 16560). Remove __ASSUME_UTIMENSAT. Update README and NEWS for ports directory removal. Remove __ASSUME_XFS_RESTRICTED_CHOWN. Update timezone code from tzcode 2014e. Move base_machine and machine settings from configure.ac to sysdeps preconfigure fragments. Remove BROKEN_PPC_ASM_CR0 configure test. Remove stray includes of kernel-features.h. Move USE_REGPARMS define to sysdeps/i386/configure.ac. Remove __ASSUME_O_CLOEXEC / O_CLOEXEC conditionals in sysdeps/unix/sysv/linux/. Remove configure tests for assembler CFI support. Remove powerpc special cases in configure.ac. Update miscellaneous files from upstream sources. Update scripts/list-sources.sh for ports repository merge. Fix MIPS64 *_nocancel gp setup. Fix yn overflow handling in non-default rounding modes (bug 16561, bug 16562). Remove relro configure test. Remove shlib-versions ABI names support. Fix ldbl-128 powl sign of result in overflow / underflow cases (bug 17097). Rename soft-fp extended.h, op-common.h variables to avoid risk of shadowing. Rename soft-fp op-[1248].h variables to avoid risk of shadowing. Fix ldbl-128 expm1l spurious underflow (bug 16539). Regenerate ARM libm-test-ulps. Regenerate powerpc-nofpu libm-test-ulps. Regenerate MIPS libm-test-ulps. MicroBlaze: Update kernel-features.h for syscalls added in 3.15 Move architecture shlib-versions files to Linux-specific directories. Refactor handling of /lib64 etc. cases, move out of sysdeps/gnu/configure.ac. Split x86_64 out of main Linux kernel-features.h. Split i386 out of main Linux kernel-features.h. Split sparc out of main Linux kernel-features.h. Split powerpc out of main Linux kernel-features.h. Split sh out of main Linux kernel-features.h. Split s390 out of main Linux kernel-features.h. Fix fallback fesetenv and feupdateenv on FE_NOMASK_ENV (bug 17088). Fix powerpc-nofpu __fe_enabled_env and __fe_nonieee_env (bug 17261). Fix powerpc32 __get_clockfreq for non-power4 (bug 17263). Julian Brown (1): ARM: Fix R_ARM_IRELATIVE RELA relocations. Khem Raj (1): Define __GI_fegetenv for e500 libm Konstantin Serebryany (2): Remove nested functions: crypt/md5-crypt.c Remove redundant nested function b64_from_24bit Kyle McMartin (1): [AARCH64] correct alignment of TLS_TCB_ALIGN (BZ #16796) Ling Ma (2): Add x86_64 memset optimized for AVX2 Improve 64bit memcpy performance for Haswell CPU with AVX instruction Ludovic Courtès (1): nscd: Remove unused typedef and variable. Maciej W. Rozycki (8): ARM: soft-fp NaN representation correction [BZ #17075] ARM: Fix immediate calculation of R_ARM_TLS_DESC stdlib/tst-qsort2.c: Fix off-by-one argc interpretation error [BZ #16046] dl_iterate_phdr static executable test sysdeps/unix/sysv/linux/bits/socket.h: Correct formatting test-skeleton: Kill any child process's offspring stdlib/tst-strtod-overflow: Bump timeout up yet [BZ #17078] ARM: R_ARM_TLS_DESC prelinker support Marcus Shawcroft (7): Relocate AArch64 from ports to libc. [AArch64] Optional trapping exceptions support. [AArch64] Regenerate libm-test-ulps. Revert "ARM: Improve fenv implementation" [AArch64] Regenerate libm-test-ulps Revert "Add bug 16918 to NEWS." Revert "aarch64: Add hp-timing.h" Mark Wielaard (1): i386 TLS_INIT_TP might produce bogus asm changing stack pointer [BZ #17319] Marko Myllynen (1): Replace __int128 with __int128_t Meador Inge (1): get_nprocs: Only return explictly set cache values (BZ #16996) Mike Frysinger (23): linux_fsinfo.h: sync with current linux/magic.h tzselect: stop requiring ksh linux: bits/in.h: sync with latest kernel headers linux: bits/in.h: sync with latest kernel headers tst-longjmp_chk: add comments and convert to test-skeleton tests: unify fortification handler logic tst-longjmp_chk3: new test for checking sigaltstack edge cases tst-backtrace4: expand output even on failures manual: setjmp: fix typos/grammar sem_open: allow RAMFS_MAGIC for mount points shm_open: sync with logic in sem_open ia64: relocate out of ports/ subdir tst-longjmp_chk2: add comments/sanity check manual: time: fix typo in IST example sotruss: drop ksh support and add basic POSIX shell support delete ksh checks stop supporting bash-1.x tst-setcontext: fix style add ChangeLog for previous commit ia64: define nocancel entry points in PSEUDO add ChangeLog for previous commit tst-gettext2: make setup more robust detect broken linker handling of __ehdr_start Ondřej Bílka (20): Remove THREAD_STATS. Deduplicate setenv. Fix previous commit. Use glibc_likely instead __builtin_expect. Remove unused variable from stdlib/setenv.c Deduplicate resolv/nss_dns/dns-host.c Simplify calloc implementation. Fix two spaces after sentence. Make strtok benchmark competive. Add changelog. Fix recvmmsg comment. Fix types of stream hook functions in manual. Fix typo in nptl/sockperf.c Fix typo in nscd/selinux.c fix changelog. Remove duplicate code in elf/dl-deps.c. revert commit fdfd175d46ac6a810ebdeb2a2936e6d7d13995ab Remove mi_arena nested function. Fix typo in manual. Fix memory overrun in getifaddrs_internal. Fixes bug 15698. Paul Eggert (2): Sync up mktime with gnulib misc/sys/cdefs.h: Add _Noreturn macro for pre-C11 compilers Paul Pluzhnikov (8): 2014-03-12 Paul Pluzhnikov <ppluzhnikov@google.com> Add missing elf/tst-pie2.c -- should have been in Fix BZ #16634. Address post-commit patch comments. 2014-03-26 Paul Pluzhnikov <ppluzhnikov@google.com> 2014-03-27 Paul Pluzhnikov <ppluzhnikov@google.com> 2014-04-11 Paul Pluzhnikov <ppluzhnikov@google.com> Fix typo on ChangeLog. Peter TB Brett (1): Use statvfs64() for pathconf(_PC_NAME_MAX). Rajalakshmi Srinivasaraghavan (3): print length in strrchr benchtest PowerPC: strrchr optimization for POWER7/PPC64 PowerPC: Fix nearbyintl failure for few inputs Rasmus Villemoes (1): manual: Update prototypes for alphasort and friends Richard Earnshaw (1): [AArch64] Add optimized strchr. Richard Henderson (55): Relocate alpha from ports to libc alpha: Regenerate sysdeps/alpha/libm-test-ulps alpha: Fix __pointer_chk_guard definition for the testsuite alpha: Enable unwind tables for backtrace.c alpha: Remove alpha-linux pthread_once.c Merge remote-tracking branch 'origin/roland/nptl-alpha' alpha: Create __syscall_nocancel entry points alpha: Define ELF_MACHINE_NO_RELA alpha: Remove bits/siginfo.h (BZ 16966) alpha: fix sa_flags type (BZ 16967) aarch64: Merge rtld_errno offset with memory reference aarch64: Merge __local_multiple_threads offset with memory reference alpha: Remove nptl/fork.c alpha: Merge standard and nptl clone.S alpha: Consolidate NPTL/non versions of vfork alpha: Move remaining files out of sysdeps/unix/sysv/linux/alpha/nptl/ Only support ifunc in nptl/pt-vfork.c Only provide non-default symbols in libpthread for vfork alpha: Do non-default symbols in pt-vfork.S aarch64: Fix DO_CALL block comment aarch64: Remove DOARGS/UNDOARGS macros aarch64: Tidy syscall error check arm,aarch64: Remove SINGLE_THREAD_P_PIC aarch64: Tabify sysdep-cancel.h aarch64: Share code in syscall-cancel.h aarch64: Pass regno parameter to SINGLE_THREAD_P aarch64: Improve syscall-cancel stack frame aarch64: Use tpidr_el0 rather than __read_tp in librt aarch64: Use tpidr_el0 rather than __errno_location in librt aarch64: Rely on syscalls preserving registers aarch64: Fix error return from __ioctl aarch64: Remove PSEUDO_RET aarch64: Consolidate NPTL/non versions of clone aarch64: Consolidate NPTL/non versions of vfork aarch64: Remove nptl/vfork.S alpha: Update libm-test-ulps alpha: Fix isnan powerpc: Remove dummy hp-timing.h Removing HP_TIMING_ZERO as unused Removing HP_TIMING_ACCUM as unused Remove HP_TIMING_DIFF_INIT and dl_hp_timing_overhead Unify hp-timing implementations aarch64: Add hp-timing.h Always provide HP_SMALL_TIMING_AVAIL Rely on HP_TIMING_AVAIL implies HP_SMALL_TIMING_AVAIL Changelog for last 8 patches alpha: Remove round and roundf implementations alpha: Fix lround implementations alpha: Implement math_opt_barrier and math_force_eval alpha: Remove nearbyint and nearbyintf implementations aarch64: Update libm-test-ulps Force eval for fma implementations alpha: Remove linux lowlevellock.h alpha: Remove linux lowlevellock.h alpha: Fix exception raising from soft-fp Roland McGrath (150): Avoid comma operator warnings. Remove unused %include lines from Versions files. Remove obsolete SHLIB_COMPAT conditionalization in Versions files. Add missing } in Versions file. Fix fallout from Joseph's untested Makeconfig change. Retire the separate ChangeLog files in nptl/ and nptl_db/ subdirs. ARM: Fix up setjmp/longjmp changes sfi_* macro use. ChangeLog format fix. Use __ehdr_start, when available, for rtld to get its own headers. Fix two stray cases using #ifdef vs #if for TLS_TCB_AT_TP. Compile with -Wundef. Get rid of Versions.def source file Remove "Compiled on ..." crapola from version text. Work around binutils bugs in 2.23 and older Move bits/mman-linux.h out of sysdeps/unix/sysv/linux/. Add comments about non-Linux use of bits/mman-linux.h. Kludge fix for Versions.def regression Factor mmap/munmap of PT_LOAD segments out of _dl_map_object_from_fd et al. Add deprecation header text to remaining ports/ChangeLog* files. Move ports/ChangeLog* files to ChangeLog.old-ports*, remove ports/ directory. Deconditionalize use of LLL_LOCK_INITIALIZER in bits/libc-lock.h. Fix -Wundef warnings for _IO_JUMPS_OFFSET. Fix -Wundef issues in generated errlist.c. Move rules for Linux-specific pldd program to Linux-specific Makefile. Move ARM internal unwind.h header to the right sysdeps directory. Fix -Wundef for _UTSNAME_DOMAIN_LENGTH. Some configure-related decrufting. Silence a missing-noreturn warning for _Unwind_Resume. Make armv7 strcmp assembly compatible with ARM mode and SFI. Clean up __exit_thread. Consolidate NPTL vs non clone.S for ARM. Consolidate NPTL configury for ARM/Linux. Verbatim NPTL file moves for ARM/Linux. Move NPTL public ABI headers for ARM to sysdeps/arm/nptl/. ARM: Consolidate NPTL/non versions of vfork x86: Consolidate NPTL/non versions of vfork Move NPTL public ABI headers for x86 to sysdeps/x86/nptl/. x86: Consolidate NPTL/non versions of clone Move x86_64 timer_*.c out of nptl/ Move x86_64 compat-timer.h out of nptl/ x86_64: Remove useless pthread_spin_{init,unlock} wrapper files. Update s390 timer_*.c files for x86_64 file moves. Consolidate not-cancel.h files. x86: Consolidate NPTL fork. Move remaining nptl/sysdeps/unix/sysv/linux/x86_64/ files. i386: Remove useless pthread_spin_{init,unlock} wrapper files. Update alpha and ia64 timer_*.c files for x86_64 file moves. Fix powerpc fork after i386 reorganization. Move remaining nptl/sysdeps/unix/sysv/linux/i386/ files. Fix mips fork after i386 reorganization. Move remaining files out of nptl/sysdeps/unix/sysv/linux/x86/. x86: Move abilist files out of nptl/ subdirectories. Split arch-fork.h from fork.h Add stub arch-fork.h header. ARM: Convert fork.c to arch-fork.h Alpha: Convert fork.c to arch-fork.h Fix __waitpid_nocancel link error. AArch64: Convert fork.c to arch-fork.h SH: Convert fork.c to arch-fork.h IA64: Convert fork.c to arch-fork.h tile: Convert fork.c to arch-fork.h SH: Consolidate NPTL/non versions of clone m68k: Convert fork.c to arch-fork.h SH: Consolidate NPTL/non versions of vfork Move NPTL public ABI headers for SH to sysdeps/sh/nptl/. Start cleaning up TLS initial value for pthread_create. ARM: Define TLS_DEFINE_INIT_TP MIPS: Define TLS_DEFINE_INIT_TP HPPA: Define TLS_DEFINE_INIT_TP m68k: Define TLS_DEFINE_INIT_TP SH: Define TLS_DEFINE_INIT_TP AArch64: Define TLS_DEFINE_INIT_TP PowerPC: Define TLS_DEFINE_INIT_TP Alpha: Define TLS_DEFINE_INIT_TP S390: Define TLS_DEFINE_INIT_TP Tile: Define TLS_DEFINE_INIT_TP Move x86_64 code out of nptl/ subdirectory. Move SH code out of nptl/ subdirectory. Move i386 code out of nptl/ subdirectory. Consolidate NPTL sigprocmask. Get rid of nptl/sysdeps/pthread/ subdirectory Use list.h in posix-timer code. SPARC: Convert fork.c to arch-fork.h SPARC: Define TLS_DEFINE_INIT_TP Move SPARC code out of nptl/sysdeps/sparc/. Move SPARC public headers out of nptl/ S390: Convert fork.c to arch-fork.h Move S390 code out of nptl/sysdeps/s390/. S390: Move NPTL public headers to sysdeps/s390/nptl/. Move remaining SPARC code out of nptl/. Missing new file from last commit. Move linux bits/ files out of nptl/. Clean up stack-coloring macros. Clean up HAVE_CONFIG_H and STDC_HEADERS. Remove unused file rtld-lowlevel.h. Move generic smp.h to nptl/ SH: Consolidate nptl/ subdirectories under linux/..... m68k: Consolidate nptl/ subdirectories under linux/... MIPS: Move NPTL public headers to sysdeps/mips/nptl/. powerpc: Consolidate nptl/ subdirectories under linux/.... Remove an unused variable in fstatvfs. Add missing #include in get-rounding-mode.h x86: Consolidate unnecessary nptl/ subdirectories. SPARC: Consolidate nptl/ subdirectories under linux/... SPARC: Consolidate unnecessary nptl/ subdirectories. MIPS: Consolidate NPTL/non versions of clone AArch64: Consolidate nptl/ subdirectories under linux/... S390: Consolidate NPTL/non versions of clone S390: Consolidate NPTL/non versions of vfork Move remaining S390 code out of nptl/. S390: Consolidate nptl/ subdirectories under linux/... Add missing #include in spawn_faction_addopen.c Add missing #include <fpu_control.h> to ARM fesetenv/feupdateenv. ARM: Move more aeabi routine magic out of Linux-specific directories MIPS: Consolidate NPTL/non versions of vfork MIPS: Consolidate nptl/ subdirectories under linux/... ARM: Split Linuxism out of sysdeps/arm/nptl/tls.h MicroBlaze: Convert fork.c to arch-fork.h MicroBlaze: Define TLS_DEFINE_INIT_TP MicroBlaze: Move NPTL public headers to sysdeps/microblaze/nptl/. MicroBlaze: Consolidate NPTL/non versions of vfork MicroBlaze: Consolidate nptl/ subdirectories under linux/... Add missing #include for MIN/MAX users. Add missing #include for MIN use in dl-sysdep.c. S390: Quash unused variable warning due to no-op THREAD_SET_POINTER_GUARD. Robustify Linux kernel headers configure checks Add missing #include in sysdeps/alpha/fpu/s_nearbyint.c Fix unwind.h configure check for bare environment. Fix ia64 build error in lll_futex_timed_wait_bitset Get rid of nptl/sysdeps/ entirely! NPTL is no longer an add-on! Remove old stub lowlevellock.h file. It is not even useful as documentation. Get rid of lll_robust_trylock. Get rid of lll_robust_dead. ChangeLog fixup for last commit. Remove declarations of two nonexistent variables from nptl/pthreadP.h. Separate Linuxisms from lowlevellock.h, make a generic one Add generic/stub implementations of pthread_{kill,sigmask,sigqueue}. ARM: Clean up EABI-related configury Split nptl-signals.h out from pthreadP.h Use __builtin_trap for ABORT_INSTRUCTION. Add __safe_fatal and use it in __pthread_unwind forwarder fallback. ARM: Move PTR_MANGLE et al out of Linux-specific file. Remove sysdeps/unix/sysv/linux/arm/lowlevellock.h IA64: Consolidate NPTL/non versions of clone IA64: Consolidate NPTL/non versions of vfork IA64: Define TLS_DEFINE_INIT_TP IA64: Move NPTL public headers to sysdeps/ia64/nptl/. IA64: Consolidate nptl/ subdirectories under linux/... NEWS: Mention x86-64 ld.so use of Intel MPX instructions. Sami Kerola (1): tzselect: use zonedir instead of current working directory Samuel Thibault (5): hurd: Do not allow unmapping address 0 hurd: Move dtv, dtv_t, tcbhead_t declaration to per-arch file. hurd: Add i386 fields to TLS structure Simplify atomicity of socket creation in bind. Fix hang on fork Sean Anderson (1): malloc: fix comment typo Serge Hallyn (1): misc/sys/xattr.h: guard against linux uapi header inclusion Siddhesh Poyarekar (85): Minor formatting fix Fix sign of input to bsloww1 (BZ #16623) Fix ChangeLog formatting Fix missing ChangeLog nscd: Improved support for tracking startup failure in nscd service (BZ #16639) Separate ftell from fseek logic and avoid modifying FILE data (#16532) Use cached offset in ftell when reliable Fix up formatting Fix up formatting in tst-ftell-active-handler.c Mark nscd service as forking in systemd service file (BZ #16639) Provide correct buffer length to netgroup queries in nscd (BZ #16695) Get rid of __LT_SPINLOCK_INIT Fix up return codes for tests in tst-ftell-active-handler Fix offset caching for streams and use it for ftell (BZ #16680) Change offset in fdopen only if setting O_APPEND Fix -Wundef warnins for __FP_FAST_FMA* Implement benchmarking script in python ChangeLog formatting fix benchtests: Move bench.py to benchtests/scripts/ Fix nscd lookup for innetgr when netgroup has wildcards (BZ #16758) Avoid overlapping addresses to stpcpy calls in nscd (BZ #16760) Return NULL for wildcard values in getnetgrent from nscd (BZ #16759) [benchtests] Use inputs file for modf Make bench.out in json format Detailed benchmark outputs for functions benchtests: Link against objects in build directory Include atomic.h in sem_wait.c and sem_trywait.c Use test-skeleton.c in tst-sem3 and tst-sem4 Do not fail if one of the two responses to AF_UNSPEC fails (BZ #14308) Consolidate code to initialize nscd dataset header Initialize all of datahead structure in nscd (BZ #16791) Return EAI_AGAIN for AF_UNSPEC when herrno is TRY_AGAIN (BZ #16849) Fix formatting Fix date in ChangeLog Use NSS_STATUS_TRYAGAIN to indicate insufficient buffer (BZ #16878) benchtests: Add new directive for benchmark initialization hook Fix offset computation for append+ mode on switching from read (BZ #16724) Add mmap usage in malloc_info output Fix formatting in malloc_info Fix format specifier for n_mmaps Inline nested function check_list Validate bench.out against a JSON schema Remove unnecessary $(.) Fix ChangeLog and NEWS goof-up Print offending diff when check-abi fails Fix build warning in pthread_rwlock_* Fix namespace violation in pthreadtypes.h (BZ #17084) Add compat symbols for scalb* in i386 Fix Wundef warning for SEPARATE_KEY Fix Wundef warning for ELF_MACHINE_NO_RELA Fix Wundef warning for WIDE_CHAR_VERSION Remove inline keyword from leapyear function Remove unnecessary include in memmove_chk Correctly attribute the mktime.c change to Paul Eggert Fix Wundef warning for MEMCPY_OK_FOR_FWD_MEMMOVE Remove MULTI_PTRS_ARE_ALIASES in dns-hosts.c Add comment to gethnamaddr.c to warn that the file is unmaintained Fix typo in macro name Fix typo and formatting in loadmsgcat.c Fix -Wundef warning on PAGE_COPY_THRESHOLD Don't use __glibc_unlikely in shared code Fix Wundef warning for __STDC_VERSION__ Sync up loadmsgcat.c with gettext Restore subdir conditional for tst-timer dependency. Add comment for MEMCPY_OK_FOR_FWD_MEMMOVE Fix Wundef warning with SHOJI_IS_RIGHT Fix Wundef warning for ELF_MACHINE_NO_REL on i386 Check value at resplen2 if it is not NULL Fix Wundef warning for __cplusplus Fix -Wmaybe-uninitialized warning in xdr.c Add comment about SIZE initialization in xdr.c Fix crash when system has no ipv6 address [BZ #17125] Fix -Wundef warning for HAVE_OBSTACK Fix -Wundef warning for HAVE_SYS_PARAM_H Fix Wundef warning for HAVE_STRFTIME Fix -Wundef warning for HAVE_LOCALTIME_R Sync up error.c with gnulib Fix -Wundef warnings in fnmatch.c Check if DEBUG is defined in regex_internal.c Fix -Wundef warnings in regex_internal.h Disable x87 inline functions for x86_64 and SSE [BZ #17262] Fix comment error that Jakub pointed out but I forgot to fix Remove unnecessary uses of NOT_IN_libc Remove redundant CPPFLAGS for some programs Remove NOT_IN_libc definition for pthread_atfork Sihai Yao (1): Detect if AVX2 is usable Stefan Liebler (24): S/390: Regenerate ULPs. S390: Fix -Wundef warning for __PTHREAD_MUTEX_HAVE_ELISION. Use += before-compile instead of a :=. S390: Correct type of sa_flags in struct sigaction for POSIX conformance S390: Define SIZE_MAX as unsigned long (BZ #16712). S390: Fix namespace violation in struct stat (BZ #16714). NEWS: Add 16712, 16713, 16714 to fixed bug list. S/390: Unify 31 and 64 bit configure.ac [BZ #16824] Fix failing y1 due to too large ulps in downward/upward rounding mode. [BZ #14770] S/390: Require Binutils >= 2.24 for target S/390. S/390: Regenerate ULPs [BZ #16823] Fix log1pl returning wrong infinity sign Mention BZ16823 in NEWS Fix typo in tst-mutex5 ifndef -> ifdef Disable lock elision for PTHREAD_MUTEX_NORMAL. S/390: Regenerate ULPs. posix_spawn_faction_addopen: Add missing string.h include directive Fix pthread.h in installed-headers list. Generate en_GB.UTF-8 during testing [BZ #6803] Set errno for scalbln, scalbn S/390: Regenerate ULPs S/390: Revert the jmp_buf/ucontext_t ABI change. S390: Fix remaining ONE_DIRECTION warning messages NEWS: Explain the s390 jmp_buf / ucontext_t ABI change reversal. Steve Ellcey (7): Add macros and inline functions to mips math_private.h file. 2014-04-29 Steve Ellcey <sellcey@mips.com> 2014-05-01 Steve Ellcey <sellcey@mips.com> 2014-05-01 Steve Ellcey <sellcey@mips.com> 2014-05-01 Steve Ellcey <sellcey@mips.com> 2014-05-07 Steve Ellcey <sellcey@mips.com> Add 16922 to list of bugs fixed. Tomas Dohnalek (1): Generate .test-result files for ordinary tests. Torvald Riegel (2): benchtests: Add pthread_once common-case test. Fixed and unified pthread_once. Venkataramanan Kumar (1): aarch64: Add setjmp and longjmp SystemTap probes Vidya Ranganathan (4): PowerPC: strspn optimization for PPC64/POWER7 PowerPC: strncpy/stpncpy optimization for PPC64/POWER7 PowerPC: Optimized strcmp for PPC64/POWER7 PowerPC: strcat optimization for PPC64/POWER7 Wilco (18): Add fenv test support for targets which don't have FP traps. ARM: Improve fenv implementation ARM: Improve fenv implementation [AArch64] Rewrite feupdateenv (BZ 17009). [AArch64] Remove ISB after FPCR write. [AArch64] Cleanup declarations in math_private.h. [AArch64] Switch from FE_TOWARDZERO to _FPU_FPCR_RM_MASK Add FE_NOMASK_ENV return value test. Use libc calls defined by fenv_private.h to implement several fenv functions Speed up the ARM fenv implementation by avoiding unnecessary FPSCR Rewrite feupdateenv Add bug 16918 to NEWS. Cleanup fenv implementation Remove an unused include. Add _FPU_MASK_RM and use it instead of FE_TOWARDZERO. Optimize fesetenv Add bug 16918 to NEWS. Fix performance issue in misaligned strcpy. Wilco Dijkstra (3): [ARM] Add support for fenv_private on ARM. Add generic HAVE_RM_CTX implementation This patch adds new function libc_feholdsetround_noex_aarch64_ctx, enabling Will Newton (49): malloc/mtrace.c: Cosmetic cleanup. include/stap-probe.h: Add comment about SystemTap argument format manual/probes.texi: Add documentation of setjmp/longjmp probes manual/probes.texi: Use "triggered" instead of "hit" ARM: Add SystemTap probes to longjmp and setjmp. manual/setjmp.texi: Improve clarity of Sys V context doc Fix __PTHREAD_MUTEX_HAVE_ELISION -Wundef warning Fix HP_SMALL_TIMING_AVAIL -Wundef warnings Fix _IO_JUMPS_OFFSET -Wundef warnings Fix __STRICT_ANSI__ -Wundef warnings Fix HAVE_RM_CTX -Wundef warnings Revert "Fix HAVE_RM_CTX -Wundef warnings" Revert "Fix _IO_JUMPS_OFFSET -Wundef warnings" Revert "Fix HP_SMALL_TIMING_AVAIL -Wundef warnings" Revert "Fix __PTHREAD_MUTEX_HAVE_ELISION -Wundef warning" aarch64: Remove inaccurate comment from sysdep.h benchtests/bench-strtod.c: Increase timeout value benchtests: Add benchtests for ffs and ffsll benchtests: Build ffs and ffsl benchtests with -fno-builtin elf/dl-lookup.c: Remove obsolete comment about nested function string: Cosmetic cleanup of string functions malloc: Fix MALLOC_DEBUG -Wundef warning benchtests: Improve readability of JSON output aarch64: Re-implement setcontext without rt_sigreturn syscall stdlib/tst-setcontext.c: Check for clobbering of signal stack manual/setjmp.texi: Clarify setcontext and signal handlers text ARM: Remove lowlevellock.c NEWS: Add 15119 to fixed bug list ARM: Add optimized ARMv7 strcmp implementation ARM: Allow auto-detection of linker relro feature malloc: Add mallopt test. stdlib/gmp-impl.h: Silence -Wundef warning for USE_STACK_ALLOC AArch64: Fix handling of nocancel syscall failures ARM: Fix handling of concurrent TLS descriptor resolution malloc/malloc.c: Avoid calling sbrk unnecessarily with zero test-skeleton.c: Use stdout for error messages elf/dl-lookup.c: Move STB_GNU_UNIQUE handling to a function elf/dl-lookup.c: Remove unnecessary static variable elf/dl-lookup.c: Use __glibc_likely and __glibc_unlikely sysdeps/posix/tempname.c: Merge from gnulib ARM: Add support for AT_HWCAP2 in _dl_procinfo malloc/obstack: Merge from gnulib ARM: Define ELF_MACHINE_NO_REL string/memchr.c: Merge from gnulib Fix -Wundef warnings for SHARED iconv/loop.c: Fix -Wundef warning with !_STRING_ARCH_unaligned ARM: Fix compiler warnings from atomic.h AArch64: Remove lowlevellock.h Add BZ #16892 to NEWS Yang Yingliang (1): Fix lll_unlock twice in pthread_cond_broadcast Yufeng Zhang (1): [AArch64] Use GCC builtins to count leading/tailing zeros. Yury Gribov (1): Update ARM ulps for VFPv4 (bug 16600). Yvan Roux (1): AArch64: Remove asm/ptrace.h inclusion in sys/user.h and sys/procfs.h -----------------------------------------------------------------------