aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-12-04PowerPC64: Add __private_ss field to TCB headerUlrich Weigand
The TCB header on Intel contains a field __private_ss that is used to efficiently implement the -fsplit-stack GCC feature. In order to prepare for a possible future implementation of that feature on powerpc64, we'd like to reserve a similar field in the TCB header as well. (It would be good if this went in with or before the ELFv2 patches to ensure that this field will be available always in the ELFv2 environment.) The field needs to be added at the front of tcbhead_t structure to avoid changing the ABI; see the recent discussion when adding the EBB fields.
2013-12-04PowerPC64: Report overflow on @h and @ha relocationsAlan Modra
This patch updates glibc in accordance with the binutils patch checked in here: https://sourceware.org/ml/binutils/2013-10/msg00372.html This changes the various R_PPC64_..._HI and _HA relocations to report 32-bit overflows. The motivation is that existing uses of @h / @ha are to build up 32-bit offsets (for the "medium model" TOC access that GCC now defaults to), and we'd really like to see failures at link / load time rather than silent truncations. For those rare cases where a modifier is needed to build up a 64-bit constant, new relocations _HIGH / _HIGHA are supported. The patch also fixes a bug in overflow checking for the R_PPC64_ADDR30 and R_PPC64_ADDR32 relocations.
2013-12-04PowerPC64: Fix incorrect CFI in *context routinesUlrich Weigand
The context established by "makecontext" has a link register pointing back to an error path within the makecontext routine. This is currently covered by the CFI FDE for makecontext itself, which is simply wrong for the stack frame *inside* the context. When trying to unwind (e.g. doing a backtrace) in a routine inside a context created by makecontext, this can lead to uninitialized stack slots being accessed, causing the unwinder to crash in the worst case. Similarly, during parts of the "setcontext" routine, when the stack pointer has already been switched to point to the new context, the address range is still covered by the CFI FDE for setcontext. When trying to unwind in that situation (e.g. backtrace from an async signal handler for profiling), it is again possible that the unwinder crashes. Theses are all problems in existing code, but the changes in stack frame layout appear to make the "worst case" much more likely in the ELFv2 ABI context. This causes regressions e.g. in the libgo testsuite on ELFv2. This patch fixes this by ending the makecontext/setcontext FDEs before those problematic parts of the assembler, similar to what is already done on other platforms. This fixes the libgo regression on ELFv2.
2013-12-04Allow strptime read outputs from strftime. Fixes bug 4772.Ondřej Bílka
2013-12-04benchtests: skip over blank lines in benchmark input filesSiddhesh Poyarekar
2013-12-04Clarify documentation on how functions use timezone. Fixes bug 926.Paul Eggert
2013-12-04Update powerpc-fpu ULPs.Adhemerval Zanella
2013-12-04Refactor several debug routines.Ondřej Bílka
To simplify additions of debug routines we replace a custom function implementation by a simple call.
2013-12-03Update MIPS dl-lookup.c from generic version.Joseph Myers
2013-12-03Fix exp missing underflows (bug 15268, bug 15425).Joseph Myers
2013-12-03Fix exp2 errno setting on underflow (bug 16283).Joseph Myers
2013-12-03Properly handle shm_open validation. Fixes bug 16274.Ondřej Bílka
2013-12-03Fix erfc errno setting on underflow (bug 6786).Joseph Myers
2013-12-03Move TEST_f_f tests for [e-j]* functions from libm-test.inc to ↵Joseph Myers
auto-libm-test-in.
2013-12-03Add bug number to ChangeLog and NEWSAurelien Jarno
2013-12-03locale: don't crash if locale-archive contains all zerosAurelien Jarno
In case of power failure followed by filesystem issues locale-archive can end-up containing all zeros. In that case all calls to setlocale() generate a SIGFPE. This renders a system with a default non-C locale unbootable. Avoid this by ignoring the locale instead of generating a SIGFPE.
2013-12-03[BZ #16195] Fix build warnings from systemtap probes in non-systemtap ↵Siddhesh Poyarekar
configurations Joseph pointed out in the bug report (and in an earlier thread) that systemtap probes cause build time warnings like the following: ../sysdeps/ieee754/dbl-64/e_atan2.c:602:4: warning: the address of 'p' will always evaluate as 'true' [-Waddress] due to the fact that we're now passing non-weak variables to LIBC_PROBE in the libm probes. This happens only on configurations that do not enable systemtap. The macro definition of LIBC_PROBE in this case only acts as a sanity checker to ensure that the number parameters passed to LIBC_PROBE is equal to the argument count parameter passed before it. This can be done in a much simpler manner by just adding a macro definition for each number of arguments. I am assuming here that we don't really want to bother with supporting LIBC_PROBE with an indeterminate number of arguments and if there is a need for a probe to have more data than what is currently supported (4 arguments), one could simply add an additional macro here.
2013-12-02Document shm_open.Ondřej Bílka
2013-12-02Add ChangeLog entry for sqrt tests.Steve Ellcey
2013-12-02Benchmark test for sqrt function.Steve Ellcey
2013-12-02Remove redundant GAIH_OKIFUNSPEC and GAIH_EAI.Pavel Simerda
Only gaih_inet() and gaih_inet_serv() use a special bit flag denoted by the GAIH_OKIFUNSPEC macro. Only the return value of gaih_inet_serv() is actively checked for the bit flag which is redundant because it just copies the nonzero property of the value otherwise returned. The return value of gaih_inet() is only checked for being zero and then the bit flag is filtered out. As the bit flag is set only for otherwise nonzero return values, it doesn't affect the zero comparison. GAIH_EAI just an alias to ~GAIH_OKIFUNSPEC.
2013-12-02getaddrinfo: remove dead codePavel Simerda
2013-12-02Use herrnop directlySiddhesh Poyarekar
H_ERRNO_ARGS is unnecessary since we this file is specifically for hosts lookup.
2013-12-02Fix ChangeLog formattingSiddhesh Poyarekar
2013-12-02Return fixed version of breaking of RPATH when $ORIGIN contains colonsOndřej Bílka
2013-12-02Update powerpc-fpu ULPs.Adhemerval Zanella
2013-12-01Add lang_name to various locales.Chris Leonard
2013-11-30Move TEST_f_f tests for [a-c]* functions from libm-test.inc to ↵Joseph Myers
auto-libm-test-in.
2013-11-29Fix exp10 errno setting on underflow (bug 6787).Joseph Myers
2013-11-29Fix x86 sqrt rounding (bug 14032).Joseph Myers
2013-11-29Test sqrt in all rounding modes.Joseph Myers
2013-11-29Start generating libm tests automatically with MPFR.Joseph Myers
2013-11-29Add 16214 to NEWSSiddhesh Poyarekar
2013-11-29[BZ #16214] S/390: Fix TLS GOT pointer setup.Andreas Krebbel
2013-11-28Document libm accuracy goals.Joseph Myers
2013-11-28Remove unused ldbl-96 functions (bug 15004).Joseph Myers
2013-11-28Add powerpc-nofpu/e500 support functions for atomic compound assignment and ↵Joseph Myers
FLT_ROUNDS.
2013-11-28Document some libm error handling intents.Joseph Myers
2013-11-28Fix dbl-64 e_sqrt.c for non-default rounding modes (bug 16271).Joseph Myers
2013-11-28Get canonical name in getaddrinfo from hosts file for AF_INET (fixes 16077)Siddhesh Poyarekar
AF_INET lookup in hosts file uses _nss_files_gethostbyname2_r, which is not capable of returning a canonical name if it has found one. This change adds _nss_files_gethostbyname3_r, which wraps around _nss_files_gethostbyname2_r and then returns result.h_name as the canonical name.
2013-11-28Make memset in calloc a tail call.Ondřej Bílka
2013-11-27Add lang_name to various locales.Chris Leonard
2013-11-27MIPS: Fix RLIM64_INFINITY constant for O32 and N32 ABIsAurelien Jarno
Fix the RLIM64_INFINITY constant for O32 and N32 ABIs to match the kernel one. Change the getrlimit64/setrlimit64 into old compat symbols, and provide the Linux generic getrlimit64/setrlimit64 functions as GLIBC_2_19 version.
2013-11-27MIPS: Add wrappers to get/setrlimit64 to fix RLIM64_INFINITY constantAurelien Jarno
RLIM64_INFINITY was supposed to be a glibc convention rather than anything seen by the kernel, but it ended being passed to the kernel through the prlimit64 syscall. On O32 and N32 ABIs, we therefore end-up with different values on the userland and kernel side: * On the kernel side, the value is defined for all architectures as include/uapi/linux/resource.h: #define RLIM64_INFINITY (~0ULL) * On the GNU libc side, the value is defined in ports/sysdeps/unix/sysv/linux/mips/bits/resource.h: For the O32 and N32 ABI: # define RLIM64_INFINITY 0x7fffffffffffffffULL and for the N64 ABI: # define RLIM64_INFINITY 0xffffffffffffffffUL This was not a problem until the prlimit64 syscall was wired in the 2.6.36 kernel. Given the GLIBC uses the prlimit64 syscall to implement getrlimit64 and setrlimit64, pam_limits.so is setting the limits to a very big value instead of infinity. As a normal user process can later only decrease the value and not increase it, it will later get and EPERM error when trying to set the value to infinity with setrlimit. The GLIBC has this constant for more than 7 years, and as it is defined in a header file, it means a lot of binaries are in the wild. This patch fixes that by adding a wrapper to fix the value passed to or received from the kernel, before or after calling the prlimit64 syscall.
2013-11-26Also remove benchtests/bench-strsep-ifunc.cOndřej Bílka
2013-11-26aarch64: Enable ifunc support.Will Newton
Add support for handling the R_AARCH64_IRELATIVE relocation and STT_GNU_IFUNC symbols to the aarch64 port. ports/ChangeLog.aarch64: 2013-11-26 Will Newton <will.newton@linaro.org> * sysdeps/aarch64/dl-irel.h: Include ldsodefs.h. (ELF_MACHINE_IRELA): Define. (elf_ifunc_invoke): Pass hwcap to ifunc resolver function. (elf_irela): New function. * sysdeps/aarch64/dl-machine.h: Include dl-irel.h. (elf_machine_rela) Handle STT_GNU_IFUNC symbols and R_AARCH64_IRELATIVE relocations. (elf_machine_lazy_rel): Handle R_AARCH64_IRELATIVE relocations.
2013-11-26Avoid "left shift count >= width of type" warnings in soft-fp code.Uros Bizjak
2013-11-26NEWS: Only public headers have __unused/__block changed.Carlos O'Donell
2013-11-26NEWS: Mention __unused and __block removal.Carlos O'Donell
2013-11-26PowerPC: Fix __fe_nomask_env missing symbolAdhemerval Zanella
This patch fix the missing symbol __fe_nomask_env from commit 41e8926aa4b7f17bc95984737ee82a254ad0911c for GLIBC_2.1.