aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-07-14Avoid C++ tests when the C++ cannot be linkedAdhemerval Zanella
* elf/Makefile [ifeq (yes,$(build-shared)) (tests)] (tst-nodelete): Add iff $CXX is set. [ifeq (yes,$(build-shared)) (modules-names)] (tst-nodelete-rtldmod): Likewise. (tst-nodelete-zmodiff): Likewise. * nptl/Makefile [[ifeq (,$(CXX))] (tests-unsupported)]: Add tst-once5.
2015-07-14Fix up ChangeLogSiddhesh Poyarekar
2015-07-14Whitespace fix in tst-tls-atexit.cSiddhesh Poyarekar
2015-07-13Add AArch64 versions of math_opt_barrier and math_force_eval that avoid ↵Wilco Dijkstra
going via memory.
2015-07-13Optimize the strlen implementation by using a page cross check and a fast checkWilco Dijkstra
for nul bytes which reverts to separate loop when a non-ASCII char is encountered. Speedup on test-strlen is ~10%, long ASCII strings are processed ~60% faster, and on random tests it is ~80% better.
2015-07-11Replace %ld with %jd and cast to intmax_tH.J. Lu
On x32, GCC 5.1 complains: tst-fmemopen2.c: In function ‘do_test_without_buffer’: tst-fmemopen2.c:124:15: error: format ‘%ld’ expects argument of type ‘long int’, but argument 2 has type ‘off_t {aka long long int}’ [-Werror=format=] printf ("FAIL: first ftello returned %ld, expected %zu\n", o, nstr); ^ tst-fmemopen2.c:135:15: error: format ‘%ld’ expects argument of type ‘long int’, but argument 2 has type ‘off_t {aka long long int}’ [-Werror=format=] printf ("FAIL: second ftello returned %ld, expected %zu\n", o, nbuf); ^ tst-fmemopen2.c:148:15: error: format ‘%ld’ expects argument of type ‘long int’, but argument 2 has type ‘off_t {aka long long int}’ [-Werror=format=] printf ("FAIL: third ftello returned %ld, expected %zu\n", o, nstr2); ^ tst-fmemopen2.c: In function ‘do_test_length_zero’: tst-fmemopen2.c:183:15: error: format ‘%ld’ expects argument of type ‘long int’, but argument 2 has type ‘off_t {aka long long int}’ [-Werror=format=] printf ("FAIL: first ftello returned %ld, expected 0\n", o); ^ This patch silences GCC. * stdio-common/tst-fmemopen2.c (do_test_without_buffer): Replace %ld with %jd and cast to intmax_t. (do_test_length_zero): Likewise.
2015-07-10NaCl: Make pthread_condattr_setclock reject CLOCK_MONOTONIC.Roland McGrath
2015-07-10tile: Regenerate ULPs.Chris Metcalf
Regenerated from scratch on tilegx.
2015-07-10math/test-fenvinline: avoid compiler warningChris Metcalf
On tile (and any other machine with no FP exceptions) the feenable_test() function will generate a "function defined but not used" warning because all of the callers are commented out. We already were ifdef'ing out the body of the function, so instead just ifdef out the entire function if FE_ALL_EXCEPT == 0.
2015-07-10Remove unnecessary mutex locks from tst-tls-atexit test caseSiddhesh Poyarekar
The locks don't synchronize with anything - they were likely introduced initially to synchronize with some main thread code, but that is no longer evident.
2015-07-10Avoid boolean coercion in tst-tls-atexit test caseSiddhesh Poyarekar
2015-07-10Clean up semaphore EINTR handling after Linux futex docs clarification.Torvald Riegel
The Linux kernel futex documentation now states that since Linux 2.6.22, FUTEX_WAIT does return EINTR only when interrupted by a signal, and not spuriously anymore. We only support more recent kernels, so clean up EINTR handling in the semaphore and update the comments.
2015-07-10Add and use new glibc-internal futex API.Torvald Riegel
This adds new functions for futex operations, starting with wait, abstimed_wait, reltimed_wait, wake. They add documentation and error checking according to the current draft of the Linux kernel futex manpage. Waiting with absolute or relative timeouts is split into separate functions. This allows for removing a few cases of code duplication in pthreads code, which uses absolute timeouts; also, it allows us to put platform-specific code to go from an absolute to a relative timeout into the platform-specific futex abstractions.. Futex operations that can be canceled are also split out into separate functions suffixed by "_cancelable". There are separate versions for both Linux and NaCl; while they currently differ only slightly, my expectation is that the separate versions of lowlevellock-futex.h will eventually be merged into futex-internal.h when we get to move the lll_ functions over to the new futex API.
2015-07-09The patch committed to fix bug #18435 caused regressions on aarch64Martin Sebor
and also powerpc64 and powerpc64le. See the discussion in the thread below for details. This change reverts the problematic bits leaving the added test in place and marking XFAIL in anticipation of fixing the bug in the near future. https://sourceware.org/ml/libc-alpha/2015-07/msg00141.html [BZ #18435] * nptl/pthreadP.h (pthread_cleanup_push, pthread_cleanup_pop): Revert commit ed225df3ad9cbac3c22ec3f0fbbed1f9c61d1c54. * nptl/Makefile (test-xfail-tst-once5): Define.
2015-07-09Provide __libc_fatal for rtld.Roland McGrath
2015-07-09PLT avoidance for _exit in rtld.Roland McGrath
2015-07-09Improve bndmov encoding with zero displacementH.J. Lu
If x86-64 assembler doesn't support MPX, we encode bndmov instruction by hand. When displacement is zero, assembler generates shorter encoding. This patch improves bndmov encoding with zero displacement so that ld.so is identical when using assemblers with and without MPX support. * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_resolve): Improve bndmov encoding with zero displacement.
2015-07-09Preserve bound registers for pointer pass/returnIgor Zamyatin
We need to save/restore bound registers and add a BND prefix before branches in _dl_runtime_profile so that bound registers for pointer pass and return are preserved when LD_AUDIT is used. [BZ #18134] * sysdeps/i386/configure.ac: Set HAVE_MPX_SUPPORT. * sysdeps/i386/configure: Regenerated. * sysdeps/i386/dl-trampoline.S (PRESERVE_BND_REGS_PREFIX): New. (_dl_runtime_profile): Save and restore Intel MPX return bound registers when calling _dl_call_pltexit. Add PRESERVE_BND_REGS_PREFIX before return. * sysdeps/i386/link-defines.sym (LRV_BND0_OFFSET): New. (LRV_BND1_OFFSET): Likewise. * sysdeps/x86/bits/link.h (La_i86_retval): Add lrv_bnd0 and lrv_bnd1. * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Fix typo in bndmov encoding. * sysdeps/x86_64/dl-trampoline.h: Properly save and restore Intel MPX bound registers. Add PRESERVE_BND_REGS_PREFIX before branch instructions to preserve bounds.
2015-07-09libio: Update powerpc64le libc.abilistAdhemerval Zanella
This patch adds the missing fmemopen entry for powerpc64le libc abilist check file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist
2015-07-09hurd: permit to use mlock from non-root processSamuel Thibault
* sysdeps/mach/hurd/mlock.c (mlock): When __get_privileged_ports returns an error, also try to use host port from __mach_host_self for the __vm_wire call. * sysdeps/mach/hurd/munlock.c (munlock): Likewise.
2015-07-09[AArch64][BZ 18648] change greg_t definition in ucontext.hSzabolcs Nagy
This is an ABI breaking change, but typedef int greg_t; is not a useful definition on aarch64. greg_t is usually used for defining gregset_t which is used in mcontext_t. The general registers in mcontext_t can only be accessed by target specific code and on aarch64 greg_t is not needed for that so this change is not supposed to break existing code, just fix the definition. [BZ #18648] * sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h (greg_t): Change the definition to elf_greg_t. (Added another BZ entry that was missed in the previous commit).
2015-07-09[AArch64][BZ 18400] fix elf_prpsinfo in procfs.hSzabolcs Nagy
Kernel uses int pr_uid, pr_gid, but glibc used unsigned short. This is an ABI breaking change, but the size and alignment of the struct and the layout of other members is not changed and there is no known usage of pr_uid and pr_gid so it is expected to be safe. [BZ #18400] * sysdeps/unix/sysv/linux/aarch64/sys/procfs.h (struct elf_prpsinfo): Fix pr_uid and pr_gid members.
2015-07-08BZ#18383: Conditionalize test-xfail-tst-tlsalign{,-static} on ARM assembler bug.Roland McGrath
2015-07-08Fix some places to use $(LN_S) makefile variable.Roland McGrath
2015-07-08Install a dummy <rpc/netdb.h> when not building sunrpc/.Roland McGrath
2015-07-08libio: Update tst-fmemopen2.cAdhemerval Zanella
This patch updates tst-fmemopen2 to check for fmemopen with NULL buffer inputs and also refactor the code a bit. The test relies on a POSIX compliant fmemopen implementation. * stdio-common/tst-fmemopen2.c (do_test): Add test for NULL and zero length buffers. * stdio-common/tst-fmemopen.c (do_test): Refactor to use test-skeleton.c.
2015-07-08libio: fmemopen rewrite to POSIX complianceAdhemerval Zanella
This patch added a new fmemopen version, for glibc 2.22, that aims to be POSIX complaint. It fixes some long-stading glibc fmemopen issues, such as: * it changes the way fseek with SEEK_END works on fmemopen to seek relative to buffer size instead of first '\0'. This is default mode and 'b' opening mode does not change internal behavior (bz#6544). * fix apending opening mode to use as start position either first null byte of len specified in function call (bz#13152 and #13151). * remove binary option 'b' and internal different handling (bz#12836) * fix seek/SEE_END with negative values (bz#14292). A compatibility symbol is provided to with old behavior for older symbols version (2.2.5). * include/stdio.h (fmemopen): Remove hidden prototype. (__fmemopen): Add new hidden prototype. * libio/Makefile: Add oldfmemopen object. * libio/Versions [GLIBC_2.22]: Add new fmemopen symbol. * libio/fmemopen.c (__fmemopen): Function rewrite to be POSIX compliance. * libio/oldfmemopen.c: New file: old fmemopen implementation for symbol compatibility. * stdio-common/Makefile [tests]: Add new tst-fmemopen3. * stdio-common/psiginfo.c [psiginfo]: Call __fmemopen instead of fmemopen. * stdio-common/tst-fmemopen3.c: New file: more fmemopen tests, focus on append and read mode. * sysdeps/unix/sysv/linux/aarch64/libc.abilist [GLIBC_2.22]: Add fmemopen. * sysdeps/unix/sysv/linux/alpha/libc.abilist [GLIBC_2.22]: Likewise. * sysdeps/unix/sysv/linux/arm/libc.abilist [GLIBC_2.22]: Likewise. * sysdeps/unix/sysv/linux/i386/libc.abilist [GLIBC_2.22]: Likewise. * sysdeps/unix/sysv/linux/ia64/libc.abilist [GLIBC_2.22]: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist [GLIBC_2.22]: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist [GLIBC_2.22]: Likewise. * sysdeps/unix/sysv/linux/microblaze/libc.abilist [GLIBC_2.22]: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist [GLIBC_2.22]: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist [GLIBC_2.22]: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist [GLIBC_2.22]: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist [GLIBC_2.22]: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist [GLIBC_2.22]: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist [GLIBC_2.22]: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist [GLIBC_2.22]: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist [GLIBC_2.22]: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist [GLIBC_2.22]: Likewise. * sysdeps/unix/sysv/linux/sh/libc.abilist [GLIBC_2.22]: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist [GLIBC_2.22]: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist [GLIBC_2.22]: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist [GLIBC_2.22]: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist [GLIBC_2.22]: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist [GLIBC_2.22]: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist [GLIBC_2.22]: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist [GLIBC_2.22]: Likewise. * sysdeps/unix/sysv/linux/hppa/libc.abilist [GLIBC_2.22]: Likewise. * sysdeps/unix/sysv/linux/nios2/libc.abilist [GLIBC_2.22]: Likewise.
2015-07-08Add missing Advanced API (RFC3542) (1) defines.Carlos O'Donell
Fixes bug 18643. Defines IPV6_RECVPATHMTU, IPV6_PATHMTU, and IPV6_DONTFRAG for Linux.
2015-07-08Use "|" instead of "+" when combine the _IO_LINE_BUF and _IO_UNBUFFERED flagsFeng Gao
Both of "_IO_UNBUFFERED" and "_IO_LINE_BUF" are the bit flags, but I find there are some codes looks like "_IO_LINE_BUF+_IO_UNBUFFERED", while some codes are "_IO_LINE_BUF|_IO_UNBUFFERED". I think the former is not good, even though the final result is same.
2015-07-08nscd: drop selinux/flask.h includeMike Frysinger
Building nscd w/selinux enabled yields a warning which yields an error: In file included from selinux.c:32:0: /usr/include/selinux/flask.h:5:2: error: #warning "Please remove any #include's of this header in your source code." I've done just that and it builds cleanly with libselinux-2.4.
2015-07-08pwd.h: add __nonnull markings [BZ #18641]Mike Frysinger
Mark all the functions that don't handle NULL pointers as __nonnull. POSIX does not require either behavior, so the prototypes should match the reality of the codebase.
2015-07-08Fix ruserok scalability with large ~/.rhosts file.Carlos O'Donell
Fixes bug 18557. The ruserok API does hosts checks first while it walks the user's ~/.rhosts file. This results in lots of DNS queries that could have been skipped if we short-circuit test the user portion first to see if would have had a failed match. This supports configurations where rlogin is used on internal secure networks with large numbers of users and machines. The Red Hat QE team did extensive testing on various rlogin combinations to validate this change, and in fact we found a defect in the first version which is fixed in this version.
2015-07-07Add forced deletion support to _dl_close_workerPavel Kopyl
https://sourceware.org/bugzilla/show_bug.cgi?id=17833 I've a shared library that contains both undefined and unique symbols. Then I try to call the following sequence of dlopen: 1. dlopen("./libfoo.so", RTLD_NOW) 2. dlopen("./libfoo.so", RTLD_LAZY | RTLD_GLOBAL) First dlopen call terminates with error because of undefined symbols, but STB_GNU_UNIQUE ones set DF_1_NODELETE flag and hence block library in the memory. The library goes into inconsistent state as several structures remain uninitialized. For instance, relocations for GOT table were not performed. By the time of second dlopen call this library looks like as it would be fully initialized but this is not true: any call through incorrect GOT table leads to segmentation fault. On some systems this inconsistency triggers assertions in the dynamic linker. This patch adds a parameter to _dl_close_worker to implement forced object deletion in case of dlopen() failure: 1. Clears DF_1_NODELETE bit if forced, to allow library to be removed from memory. 2. For each unique symbol that is defined in this object clears appropriate entry in _ns_unique_sym_table. [BZ #17833] * elf/Makefile (tests): Add tst-nodelete. (modules-names): Add tst-nodelete-uniquemod. (tst-nodelete-uniquemod.so-no-z-defs): New. (tst-nodelete-rtldmod.so-no-z-defs): Likewise. (tst-nodelete-zmod.so-no-z-defs): Likewise. ($(objpfx)tst-nodelete): Likewise. ($(objpfx)tst-nodelete.out): Likewise. (LDFLAGS-tst-nodelete): Likewise. (LDFLAGS-tst-nodelete-zmod.so): Likewise. * elf/dl-close.c (_dl_close_worker): Add a parameter to implement forced object deletion. (_dl_close): Pass false to _dl_close_worker. * elf/dl-open.c (_dl_open): Pass true to _dl_close_worker. * elf/tst-nodelete.cc: New file. * elf/tst-nodeletelib.cc: Likewise. * elf/tst-znodeletelib.cc: Likewise. * include/dlfcn.h (_dl_close_worker): Add a new parameter.
2015-07-07S390: Fix "backtrace() returns infinitely deep stack frames with ↵Stefan Liebler
makecontext()" [BZ #18508]. On s390/s390x backtrace(buffer, size) returns the series of called functions until "makecontext_ret" and additional entries (up to "size") with "makecontext_ret". GDB-backtrace is also warning: "Backtrace stopped: previous frame identical to this frame (corrupt stack?)" To reproduce this scenario you have to setup a new context with makecontext() and activate it with setcontext(). See e.g. cf() function in testcase stdlib/tst-makecontext.c. Or see bug in libgo "Bug 66303 - runtime.Caller() returns infinitely deep stack frames on s390x " (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66303). This patch omits the cfi_startproc/cfi_endproc directives in ENTRY/END macro of __makecontext_ret. Thus no frame information is generated in .eh_frame and backtrace stops after __makecontext_ret. There is also no .eh_frame info for _start or thread_start functions. ChangeLog: [BZ #18508] * stdlib/Makefile ($(objpfx)tst-makecontext3): Depend on $(libdl). * stdlib/tst-makecontext.c (cf): Test if _Unwind_Backtrace is not called infinitely times. (backtrace_helper): New function. (trace_arg): New struct. (st1): Enlarge stack size. * sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S: (__makecontext_ret): Omit cfi_startproc and cfi_endproc. * sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S: Likewise.
2015-07-07S390: Regenerate ULPs.Stefan Liebler
Regenerated ulps after recent changes. Tested on s390/s390x. All math-tests passes on s390 after this patch. ChangeLog: * sysdeps/s390/fpu/libm-test-ulps: Regenerated.
2015-07-07S390: Fix sem.h conformance test failures.Stefan Liebler
On s390 the following tests are failing due to unkown types time_t, pid_t: FAIL: conform/UNIX98/sys/sem.h/conform FAIL: conform/XOPEN2K/sys/sem.h/conform FAIL: conform/XOPEN2K8/sys/sem.h/conform FAIL: conform/XPG3/sys/sem.h/conform FAIL: conform/XPG4/sys/sem.h/conform This patch changes the s390 specific sem.h and includes sys/types.h instead of bits/types.h. All other archs include sys/types.h, too. Including bits/wordsize.h is obselete, because it is already inlcuded in sys/types.h -> bits/types.h. ChangeLog: * sysdeps/unix/sysv/linux/s390/bits/sem.h: Include sys/types.h instead of bits/types.h. Remove inclusion of bits/wordsize.h.
2015-07-07Add la_symbind32 to x86-64 audit testsH.J. Lu
la_symbind32 is used for x32 in x86-64 audit tests. We should define both la_symbind32 and la_symbind64 in x86-64 audit tests. * sysdeps/x86_64/tst-auditmod10b.c (la_symbind32): New. * sysdeps/x86_64/tst-auditmod4b.c (la_symbind32): Likewise. * sysdeps/x86_64/tst-auditmod5b.c (la_symbind32): Likewise. * sysdeps/x86_64/tst-auditmod6b.c (la_symbind32): Likewise. * sysdeps/x86_64/tst-auditmod6c.c (la_symbind32): Likewise. * sysdeps/x86_64/tst-auditmod7b.c (la_symbind32): Likewise.
2015-07-07Add and use sysdeps/i386/link-defines.symH.J. Lu
Define macros for fields in La_i86_regs and La_i86_retval and use them in dl-trampoline.S, instead of hardcoded values. * sysdeps/i386/Makefile (gen-as-const-headers)[elf]: Add link-defines.sym. * sysdeps/i386/dl-trampoline.S: Include <link-defines.h>. (_dl_runtime_profile): Use LONG_DOUBLE_SIZE, LRV_SIZE, LRV_EAX_OFFSET, LRV_EDX_OFFSET, LRV_ST0_OFFSET, LRV_ST1_OFFSET and LR_SIZE. * sysdeps/i386/link-defines.sym: New file.
2015-07-07Add a testcase for i386 LD_AUDITH.J. Lu
This patch adds a testcase for i386 LD_AUDIT to check function return and parameters passed in registers. * sysdeps/i386/Makefile (tests)[elf]: Add tst-audit3. (modules-names): Add tst-auditmod3a tst-auditmod3b. ($(objpfx)tst-audit3): New rule. ($(objpfx)tst-audit3.out): Likewise. * sysdeps/i386/tst-audit3.c: New file. * sysdeps/i386/tst-audit3.h: Likewise. * sysdeps/i386/tst-auditmod3a.c: Likewise. * sysdeps/i386/tst-auditmod3b.c: Likewise.
2015-07-07Do not create invalid pointers in C code of string functions.Torvald Riegel
Some of the x86 string functions create pointers based on input strings that may be outside of the input strings. When this happens in C code, the compiler can potentially detect this, leading to warnings in application code when those string functions are inlined. Perform those operations in the assembly code instead of the C code to fix this.
2015-07-07Update NEWSAndreas Schwab
2015-07-07Set errno to ENOMEM on overflow in sbrk (bug 18592)Cyril Hrubis
2015-07-06Inline __ieee754_sqrt and __ieee754_sqrtf. Also add external definitions.Wilco Dijkstra
2015-07-06Remove unused file sysdeps/ieee754/support.cWilco Dijkstra
2015-07-06[AArch64] make setcontext etc functions consistent with the kernelSzabolcs Nagy
since https://sourceware.org/ml/libc-alpha/2014-04/msg00006.html setcontext etc is no longer tied to the kernel use of ucontext. in that patch the ucontext reserved space is not used consistently with the kernel abi: the d8,d9 pair is saved in the slot of q8. this is ok (*context functions work together), but probably not desirable (ucontexts created by the kernel and getcontext are subtly different). the fix just replaces dN with qN in the save/restore code, which does a bit more than needed (saves/restores the top half of qN that is not callee saved), but this should not be an issue (and avoids having to deal with endianness). (kernel fpsimd context layout: the first 64bit contains 0x210 the fpsimd context size and 0x46508001 the FPSIMD_MAGIC, the second 64bit is for fpsr and fpcr, and the rest is the 128bit q0..q31 registers). given d8=8.1, d9=9.1,... d15=15.1, the context created by getcontext is current: (gdb) x/40xg ctx.uc_mcontext.__reserved 0x410df0 <ctx+464>: 0x0000021046508001 0x0000000000000000 0x410e00 <ctx+480>: 0x0000000000000000 0x0000000000000000 0x410e10 <ctx+496>: 0x0000000000000000 0x0000000000000000 0x410e20 <ctx+512>: 0x0000000000000000 0x0000000000000000 0x410e30 <ctx+528>: 0x0000000000000000 0x0000000000000000 0x410e40 <ctx+544>: 0x0000000000000000 0x0000000000000000 0x410e50 <ctx+560>: 0x0000000000000000 0x0000000000000000 0x410e60 <ctx+576>: 0x0000000000000000 0x0000000000000000 0x410e70 <ctx+592>: 0x0000000000000000 0x0000000000000000 0x410e80 <ctx+608>: 0x4020333333333333 0x4022333333333333 0x410e90 <ctx+624>: 0x0000000000000000 0x0000000000000000 0x410ea0 <ctx+640>: 0x4024333333333333 0x4026333333333333 0x410eb0 <ctx+656>: 0x0000000000000000 0x0000000000000000 0x410ec0 <ctx+672>: 0x4028333333333333 0x402a333333333333 0x410ed0 <ctx+688>: 0x0000000000000000 0x0000000000000000 0x410ee0 <ctx+704>: 0x402c333333333333 0x402e333333333333 0x410ef0 <ctx+720>: 0x0000000000000000 0x0000000000000000 0x410f00 <ctx+736>: 0x0000000000000000 0x0000000000000000 0x410f10 <ctx+752>: 0x0000000000000000 0x0000000000000000 0x410f20 <ctx+768>: 0x0000000000000000 0x0000000000000000 fixed: (gdb) x/40xg ctx.uc_mcontext.__reserved 0x410d70 <ctx+464>: 0x0000021046508001 0x0000000000000000 0x410d80 <ctx+480>: 0x0000000000000000 0x0000000000000000 0x410d90 <ctx+496>: 0x0000000000000000 0x0000000000000000 0x410da0 <ctx+512>: 0x0000000000000000 0x0000000000000000 0x410db0 <ctx+528>: 0x0000000000000000 0x0000000000000000 0x410dc0 <ctx+544>: 0x0000000000000000 0x0000000000000000 0x410dd0 <ctx+560>: 0x0000000000000000 0x0000000000000000 0x410de0 <ctx+576>: 0x0000000000000000 0x0000000000000000 0x410df0 <ctx+592>: 0x0000000000000000 0x0000000000000000 0x410e00 <ctx+608>: 0x4020333333333333 0x0000000000000000 0x410e10 <ctx+624>: 0x4022333333333333 0x0000000000000000 0x410e20 <ctx+640>: 0x4024333333333333 0x0000000000000000 0x410e30 <ctx+656>: 0x4026333333333333 0x0000000000000000 0x410e40 <ctx+672>: 0x4028333333333333 0x0000000000000000 0x410e50 <ctx+688>: 0x402a333333333333 0x0000000000000000 0x410e60 <ctx+704>: 0x402c333333333333 0x0000000000000000 0x410e70 <ctx+720>: 0x402e333333333333 0x0000000000000000 0x410e80 <ctx+736>: 0x0000000000000000 0x0000000000000000 0x410e90 <ctx+752>: 0x0000000000000000 0x0000000000000000 0x410ea0 <ctx+768>: 0x0000000000000000 0x0000000000000000 2015-07-06 Szabolcs Nagy <szabolcs.nagy@arm.com> * sysdeps/unix/sysv/linux/aarch64/getcontext.S (__getcontext): Use q registers instead of d ones so the layout is kernel abi compatible. * sysdeps/unix/sysv/linux/aarch64/setcontext.S (__setcontext): Likewise. * sysdeps/unix/sysv/linux/aarch64/swapcontext.S (__swapcontext): Likewise.# Please enter the commit message for your changes. Lines starting
2015-07-02Regenerate aarch64 libm-test-ulpsSzabolcs Nagy
* sysdeps/aarch64/libm-test-ulps: Regenerated.
2015-07-01Fix ldbl-128 expm1l (-min_subnorm) result sign (bug 18619).Joseph Myers
In the ldbl-128 implementation of expm1l, when expm1l's result should underflow to 0 (argument minus the least subnormal, in some rounding modes), it can be a zero of the wrong sign. This patch fixes this in the same way previously used for the x86 / x86_64 versions. Tested for mips64. [BZ #18619] * sysdeps/ieee754/ldbl-128/s_expm1l.c (__expm1l): Force underflow and return argument in case of subnormal argument.
2015-07-01The C++ 2011 std::call_once function is specified to allowMartin Sebor
the initialization routine to exit by throwing an exception. Such an execution, termed exceptional, requires call_once to propagate the exception to its caller. A program may contain any number of exceptional executions but only one returning execution (which, if it exists, must be the last execution with the same once flag). On POSIX systems such as Linux, std::call_once is implemented in terms of pthread_once. However, as discussed in libstdc++ bug 66146 - "call_once not C++11-compliant on ppc64le," GLIBC's pthread_once hangs when the initialization function exits by throwing an exception on at least arm and ppc64 (though apparently not on x86_64). This effectively prevents call_once from conforming to the C++ requirements since there doesn't appear to be a thread-safe way to work around this problem in libstdc++. This patch changes pthread_once to handle gracefully init functions that exit by throwing exceptions. It was successfully tested on ppc64, ppc64le, and x86_64. [BZ #18435] * nptl/Makefile: Add tst-once5.cc. * nptl/pthreadP.h (pthread_cleanup_push, pthread_cleanup_pop): Remove macro redefinitions. * nptl/tst-once5.cc: New test.
2015-07-01Regenerate powerpc-nofpu libm-test-ulps.Joseph Myers
* sysdeps/powerpc/nofpu/libm-test-ulps: Regenerated.
2015-07-01Regenerate ARM libm-test-ulps.Joseph Myers
* sysdeps/arm/libm-test-ulps: Regenerated.