about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
* Remove configure tests for assembler CFI support.Joseph Myers2014-06-2611-246/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes configure tests for assembler CFI support (and thereby eliminates an architecture-specific case in the main configure.ac), instead assuming that support is present unconditionally. The main test was added in 2003 around the time CFI support was added to the assembler. cfi_personality and cfi_lsda support were added to the assembler in 2006. cfi_sections support was added in 2009, a few weeks before binutils 2.20 was released; it's in 2.20, the minimum supported version, so even that configure test is obsolete. Tested x86_64 that the installed shared libraries are unchanged by this patch. * configure.ac (libc_cv_asm_cfi_directives): Remove configure test. * configure: Regenerated. * config.h.in (HAVE_ASM_CFI_DIRECTIVES): Remove macro undefine. * sysdeps/arm/configure.ac (libc_cv_asm_cfi_directive_sections): Remove configure test. * sysdeps/arm/configure: Regenerated. * sysdeps/nptl/configure.ac: Do not check libc_cv_asm_cfi_directives. * sysdeps/nptl/configure: Regenerated. * sysdeps/x86_64/nptl/configure.ac: Remove file. * sysdeps/x86_64/nptl/configure: Remove generated file. * b/sysdeps/generic/sysdep.h [HAVE_ASM_CFI_DIRECTIVES]: Make code unconditional. [!HAVE_ASM_CFI_DIRECTIVES]: Remove conditional code.
* Fix Wundef warning for WIDE_CHAR_VERSIONSiddhesh Poyarekar2014-06-263-13/+20
| | | | | | fnmatch.c defines WIDE_CHAR_VERSION as 1 for wide chars, but does not define it for the non-wide char bits. Define it and also undef it in fnmatch_loop.c like all other macros.
* Fix Wundef warning for ELF_MACHINE_NO_RELASiddhesh Poyarekar2014-06-2617-1/+35
| | | | | | | This patch defines ELF_MACHINE_NO_RELA on all architectures. Tested only on x86_64 to verify that the sources before and after are identical except for two instructions that pass the current line number in dl-machine.h to assert_fail.
* Fix Wundef warning for SEPARATE_KEYSiddhesh Poyarekar2014-06-262-20/+7
| | | | | The SEPARATE_KEY macro is never defined in any condition or architecture. It is effectively dead code, so remove it.
* S390: Consolidate nptl/ subdirectories under linux/...Roland McGrath2014-06-2631-13/+70
|
* Move remaining S390 code out of nptl/.Roland McGrath2014-06-2629-22/+81
|
* S390: Consolidate NPTL/non versions of vforkRoland McGrath2014-06-268-117/+31
|
* S390: Consolidate NPTL/non versions of cloneRoland McGrath2014-06-265-22/+6
|
* AArch64: Consolidate nptl/ subdirectories under linux/...Roland McGrath2014-06-2621-0/+44
|
* MIPS: Consolidate NPTL/non versions of cloneRoland McGrath2014-06-253-10/+6
|
* Remove __ASSUME_O_CLOEXEC / O_CLOEXEC conditionals in sysdeps/unix/sysv/linux/.Joseph Myers2014-06-254-56/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes conditionals on __ASSUME_O_CLOEXEC, and on O_CLOEXEC being defined, in sysdeps/unix/sysv/linux/, now that O_CLOEXEC support can be unconditionally assumed. The patch is conservative in what it changes and further followup cleanups may be possible. It may be possible to remove dl-opendir.c, but the patch does not do so, just removing a redundant undefine and redefine of __ASSUME_O_CLOEXEC. Also, __ASSUME_O_CLOEXEC is defined unconditionally for Hurd as well as Linux. Thus, if we decide that O_CLOEXEC support is a required feature of any glibc port, we could remove __ASSUME_O_CLOEXEC and all conditionals on it throughout glibc, rather than just cleaning up sysdeps/unix/sysv/linux/. Tested x86_64 that the disassembly of installed shared libraries is unchanged by this patch. * sysdeps/unix/sysv/linux/dl-opendir.c (__ASSUME_O_CLOEXEC): Do not undefine and redefine. * sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs) [O_CLOEXEC]: Make code unconditional. (__get_nprocs) [!O_CLOEXEC]: Remove conditional code. * sysdeps/unix/sysv/linux/shm_open.c: Do not include <kernel-features.h>. [O_CLOEXEC && !__ASSUME_O_CLOEXEC] (have_o_cloexec): Remove conditional variable definition. (shm_open) [O_CLOEXEC]: Make code unconditional. (shm_open) [!O_CLOEXEC || !__ASSUME_O_CLOEXEC]: Remove conditional code.
* Move USE_REGPARMS define to sysdeps/i386/configure.ac.Joseph Myers2014-06-255-9/+10
| | | | | | | | | | | | | This patch moves the USE_REGPARMS define from the toplevel configure.ac to sysdeps/i386/configure.ac. Tested x86 that the disassembly of installed shared libraries is unchanged by this patch. * configure.ac (USE_REGPARMS): Don't define here. * configure: Regenerated. * sysdeps/i386/configure.ac (USE_REGPARMS): Define here. * sysdeps/i386/configure: Regenerated.
* Remove stray includes of kernel-features.h.Joseph Myers2014-06-25130-185/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that files using __ASSUME_* macros have been made by <https://sourceware.org/ml/libc-alpha/2014-06/msg00543.html> to include <kernel-features.h> directly, any include from a file not using __ASSUME_* macros can safely be removed (as there will no longer be some other file relying on indirect inclusion via a header from which the include is being removed). This patch removes such unnecessary kernel-features.h includes. Tested x86_64 that disassembly of installed shared libraries is unchanged by this patch, except for line numbers in calls to __assert_fail from libc.so and ld.so. 2014-06-23 Joseph Myers <joseph@codesourcery.com> * nptl/createthread.c: Don't include kernel-features.h. * nptl/pthread_cancel.c: Likewise. * nptl/pthread_condattr_setclock.c: Likewise. * nptl/sysdeps/unix/sysv/linux/pt-raise.c: Likewise. * nptl/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: Likewise. * nptl/sysdeps/unix/sysv/linux/pthread_kill.c: Likewise. * nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c: Likewise. * nptl/sysdeps/unix/sysv/linux/raise.c: Likewise. * nptl/sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: Likewise. * nptl/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: Likewise. * nptl/sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: Likewise. * nptl/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: Likewise. * nptl/sysdeps/unix/sysv/linux/timer_create.c: Likewise. * nptl/sysdeps/unix/sysv/linux/timer_delete.c: Likewise. * nptl/sysdeps/unix/sysv/linux/timer_getoverr.c: Likewise. * nptl/sysdeps/unix/sysv/linux/timer_gettime.c: Likewise. * nptl/sysdeps/unix/sysv/linux/timer_routines.c: Likewise. * nptl/sysdeps/unix/sysv/linux/timer_settime.c: Likewise. * nscd/gai.c: Likewise. * nss/nss_db/db-open.c: Likewise. * sysdeps/generic/ldsodefs.h: Likewise. * sysdeps/sh/nptl/tls.h: Likewise. * sysdeps/unix/sysv/linux/aarch64/sigaction.c: Likewise. * sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h: Likewise. * sysdeps/unix/sysv/linux/aarch64/vfork.S: Likewise. * sysdeps/unix/sysv/linux/adjtime.c: Likewise. * sysdeps/unix/sysv/linux/alpha/xstatconv.h: Likewise. * sysdeps/unix/sysv/linux/arm/sigaction.c: Likewise. * sysdeps/unix/sysv/linux/arm/sigcontextinfo.h: Likewise. * sysdeps/unix/sysv/linux/check_pf.c: Likewise. * sysdeps/unix/sysv/linux/clock_getcpuclockid.c: Likewise. * sysdeps/unix/sysv/linux/clock_getres.c: Likewise. * sysdeps/unix/sysv/linux/clock_gettime.c: Likewise. * sysdeps/unix/sysv/linux/clock_nanosleep.c: Likewise. * sysdeps/unix/sysv/linux/clock_settime.c: Likewise. * sysdeps/unix/sysv/linux/dl-execstack.c: Likewise. * sysdeps/unix/sysv/linux/dl-osinfo.h: Likewise. * sysdeps/unix/sysv/linux/dl-sysdep.c: Likewise. * sysdeps/unix/sysv/linux/generic/futimesat.c: Likewise. * sysdeps/unix/sysv/linux/generic/poll.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/fcntl.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/pread.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/pread64.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/preadv.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/preadv64.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/pwritev.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/pwritev64.c: Likewise. * sysdeps/unix/sysv/linux/getcwd.c: Likewise. * sysdeps/unix/sysv/linux/getpagesize.c: Likewise. * sysdeps/unix/sysv/linux/getsysstats.c: Likewise. * sysdeps/unix/sysv/linux/i386/fxstat.c: Likewise. * sysdeps/unix/sysv/linux/i386/lxstat.c: Likewise. * sysdeps/unix/sysv/linux/i386/mmap.S: Likewise. * sysdeps/unix/sysv/linux/i386/mmap64.S: Likewise. * sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise. * sysdeps/unix/sysv/linux/i386/vfork.S: Likewise. * sysdeps/unix/sysv/linux/i386/xstat.c: Likewise. * sysdeps/unix/sysv/linux/ia64/system.c: Likewise. * sysdeps/unix/sysv/linux/if_index.c: Likewise. * sysdeps/unix/sysv/linux/ifaddrs.c: Likewise. * sysdeps/unix/sysv/linux/ifreq.c: Likewise. * sysdeps/unix/sysv/linux/ldsodefs.h: Likewise. * sysdeps/unix/sysv/linux/lutimes.c: Likewise. * sysdeps/unix/sysv/linux/m68k/vfork.S: Likewise. * sysdeps/unix/sysv/linux/microblaze/nptl/vfork.S: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/accept4.c: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/recvmmsg.c: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/sendmmsg.c: Likewise. * sysdeps/unix/sysv/linux/mips/pread.c: Likewise. * sysdeps/unix/sysv/linux/mips/pread64.c: Likewise. * sysdeps/unix/sysv/linux/mips/pwrite.c: Likewise. * sysdeps/unix/sysv/linux/mips/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/mips/sigaction.c: Likewise. * sysdeps/unix/sysv/linux/mmap64.c: Likewise. * sysdeps/unix/sysv/linux/netlinkaccess.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/chown.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/pread64.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: Likewise. * sysdeps/unix/sysv/linux/pread.c: Likewise. * sysdeps/unix/sysv/linux/pread64.c: Likewise. * sysdeps/unix/sysv/linux/prof-freq.c: Likewise. * sysdeps/unix/sysv/linux/pwrite.c: Likewise. * sysdeps/unix/sysv/linux/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/mmap.S: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/mmap64.S: Likewise. * sysdeps/unix/sysv/linux/s390/system.c: Likewise. * sysdeps/unix/sysv/linux/sh/pread.c: Likewise. * sysdeps/unix/sysv/linux/sh/pread64.c: Likewise. * sysdeps/unix/sysv/linux/sh/pwrite.c: Likewise. * sysdeps/unix/sysv/linux/sh/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/sigaction.c: Likewise. * sysdeps/unix/sysv/linux/sigpending.c: Likewise. * sysdeps/unix/sysv/linux/sigprocmask.c: Likewise. * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c: Likewise. * sysdeps/unix/sysv/linux/sparc/system.c: Likewise. * sysdeps/unix/sysv/linux/syslog.c: Likewise. * sysdeps/unix/sysv/linux/system.c: Likewise. * sysdeps/unix/sysv/linux/testrtsig.h: Likewise. * sysdeps/unix/sysv/linux/timespec_get.c: Likewise. * sysdeps/unix/sysv/linux/ttyname.c: Likewise. * sysdeps/unix/sysv/linux/ttyname_r.c: Likewise. * sysdeps/unix/sysv/linux/utimensat.c: Likewise. * sysdeps/unix/sysv/linux/x86_64/sigaction.c: Likewise. * sysdeps/unix/sysv/linux/xstatconv.h: Likewise.
* Remove BROKEN_PPC_ASM_CR0 configure test.Joseph Myers2014-06-254-50/+4
| | | | | | | | | | | | | | | One piece of architecture-specific code in the main configure.ac is the powerpc test that can define BROKEN_PPC_ASM_CR0. There's no need to move this to a sysdeps configure script, or to work out what bug it was testing in May 1998 to see if it's still relevant, since nothing in the source tree now uses the results of this test. Thus, this patch just removes the test in question. Not tested. * configure.ac (libc_cv_c_asmcr0_bug): Remove configure test. * configure: Regenerated. * config.h.in (BROKEN_PPC_ASM_CR0): Remove macro.
* Move base_machine and machine settings from configure.ac to sysdeps ↵Joseph Myers2014-06-258-71/+65
| | | | | | | | | | | | | | | | | | | | | | preconfigure fragments. This patch makes non-ex-ports architectures set base_machine and machine based on the original configured machine value in preconfigure fragments, like ex-ports architectures, rather than in the toplevel configure.ac. Tested x86 that the disassembly of installed shared libraries is unchanged by the patch. * configure.ac (base_machine): Do not set specially for particular machines here. * configure: Regenerated. * sysdeps/powerpc/preconfigure: Move machine and base_machine settings from configure.ac. * sysdeps/i386/preconfigure: New file. * sysdeps/s390/preconfigure: Likewise. * sysdeps/sh/preconfigure: Likewise. * sysdeps/sparc/preconfigure: Likewise.
* SPARC: Consolidate unnecessary nptl/ subdirectories.Roland McGrath2014-06-2533-8/+68
|
* SPARC: Consolidate nptl/ subdirectories under linux/...Roland McGrath2014-06-2531-0/+75
|
* Update timezone code from tzcode 2014e.Joseph Myers2014-06-256-84/+145
| | | | | | | | | | | | | This patch updates the timezone code from tzcode 2014e (the previous version used was 2013i). Tested x86_64. * timezone/checktab.awk: Update from tzcode 2014e. * timezone/private.h: Likewise. * timezone/tzfile.h: Likewise. * timezone/zdump.c: Likewise. * timezone/zic.c: Likewise.
* Remove __ASSUME_XFS_RESTRICTED_CHOWN.Joseph Myers2014-06-253-34/+9
| | | | | | | | | | | | | | | | | | This patch removes the __ASSUME_XFS_RESTRICTED_CHOWN macro, now it can be presumed to be defined unconditionally. I'm not sure if what's left of __statfs_chown_restricted is actually useful (if not, a followup could remove it), but I left it there to keep the patch conservative and avoid changing the code generated for glibc. Tested x86_64 that the disassembly of installed shared libraries is unchanged by the patch. * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_XFS_RESTRICTED_CHOWN): Remove macro. * sysdeps/unix/sysv/linux/pathconf.c (__statfs_chown_restricted) [__ASSUME_XFS_RESTRICTED_CHOWN]: Make code unconditional. (__statfs_chown_restricted) [!__ASSUME_XFS_RESTRICTED_CHOWN]: Remove conditional code.
* ARM: Add support for AT_HWCAP2 in _dl_procinfoWill Newton2014-06-253-28/+56
| | | | | | | | | | | | | | | | | | | Add support for the new HWCAP2 values for ARMv8 added in the 3.15 kernel. Tested using QEMU which supports these extensions. ChangeLog: 2014-06-25 Will Newton <will.newton@linaro.org> * sysdeps/unix/sysv/linux/arm/dl-procinfo.c (_dl_arm_cap_flags): Add HWCAP2 values. * sysdeps/unix/sysv/linux/arm/dl-procinfo.h (_DL_HWCAP_COUNT): Increase to 37. (_DL_HWCAP_LAST): New define. (_DL_HWCAP2_LAST): New define. (_dl_procinfo): Add support for printing AT_HWCAP2 entries. (_dl_string_hwcap): Use _dl_hwcap_string.
* Update powerpc-fpu ULPs.Adhemerval Zanella2014-06-252-4/+70
|
* Update README and NEWS for ports directory removal.Joseph Myers2014-06-253-4/+6
| | | | | | | | | | | | | | | This patch updates README to remove a mention of the ports directory. It also adds a NEWS item for the merge of ports into the main sysdeps tree (I think it's NEWS-worthy, although not strictly a user-visible feature). Other remaining ports references to resolve: a comment in manual/signal.texi (not giving a literal path, but maybe should change anyway); a comment in config.h.in (path should be updated); scripts/list-sources.sh (appears to date back to ports being a separate repository). * README: Do not mention ports directory.
* Remove __ASSUME_UTIMENSAT.Joseph Myers2014-06-253-88/+11
| | | | | | | | | | | | | | | | | | | | | | | This patch removes the __ASSUME_UTIMENSAT macro, now it can be unconditionally assumed to be true. This shows that the only live uses of __ASSUME_UTIMES are in utimes.c and they are only live for hppa. I intend a followup patch to make __ASSUME_UTIMES into an hppa-specific macro (not used or defined outside sysdeps/unix/sysv/linux/hppa/). Tested x86_64 that the disassembly of installed shared libraries is unchanged by this patch. * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_UTIMENSAT): Remove macro. * sysdeps/unix/sysv/linux/futimes.c: Do not include <kernel-features.h>. [__NR_utimensat && !__ASSUME_UTIMENSAT] (miss_utimensat): Remove conditional variable definition. (__futimes): Update comment. (__futimes) [__ASSUME_UTIMENSAT]: Make code unconditional. (__futimes) [!__ASSUME_UTIMENSAT]: Remove conditional code.
* Fix exp10 spurious underflows (bug 16560).Joseph Myers2014-06-257-0/+709
| | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes spurious underflows from exp10 for arguments near 0 (part of bug 16560; that bug also includes spurious underflows from exp2, which are not fixed by this patch). The problem is underflows in the internal computation converting the exp10 argument to arguments for exp (with extra precision), and the fix is simply to return 1 early for arguments near enough to 0 (just as arguments with large enough magnitude have their own overflow / underflow logic at the start of the function). Tested x86_64 and x86 and ulps updated accordingly; also tested for powerpc32 and mips64 to validate the ldbl-128ibm and ldbl-128 changes. [BZ #16560] * sysdeps/ieee754/dbl-64/e_exp10.c (__ieee754_exp10): Return 1 for arguments close to 0. * sysdeps/ieee754/ldbl-128/e_exp10l.c (__ieee754_exp10l): Likewise. * sysdeps/ieee754/ldbl-128ibm/e_exp10l.c (__ieee754_exp10l): Likewise. * math/auto-libm-test-in: Add more tests of exp10. * math/auto-libm-test-out: Regenerated. * sysdeps/x86_64/fpu/libm-test-ulps: Update.
* Remove __ASSUME_COMPLETE_READV_WRITEV.Joseph Myers2014-06-254-52/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes the __ASSUME_COMPLETE_READV_WRITEV kernel-features.h macro, now that it can be unconditionally assumed to be true. (The relevant kernel feature was added some time between 2.0 and 2.2, and this macro is only used in sysdeps/unix/sysv/linux/.) Tested x86_64 that the disassembly of installed shared libraries is unchanged by this patch. * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_COMPLETE_READV_WRITEV): Remove macro. * sysdeps/unix/sysv/linux/readv.c: Do not include <kernel-features.h>. [!__ASSUME_COMPLETE_READV_WRITEV]: Remove conditional code. [!UIO_FASTIOV] (UIO_FASTIOV): Remove macro. (__libc_readv) [__ASSUME_COMPLETE_READV_WRITEV]: Make code unconditional. (__libc_readv) [!__ASSUME_COMPLETE_READV_WRITEV]: Remove conditional code. * sysdeps/unix/sysv/linux/writev.c: Do not include <kernel-features.h>. [!__ASSUME_COMPLETE_READV_WRITEV]: Remove conditional code. [!UIO_FASTIOV] (UIO_FASTIOV): Remove macro. (__libc_writev) [__ASSUME_COMPLETE_READV_WRITEV]: Make code unconditional. (__libc_writev) [!__ASSUME_COMPLETE_READV_WRITEV]: Remove conditional code.
* sysdeps/posix/tempname.c: Merge from gnulibWill Newton2014-06-252-62/+30
| | | | | | | | | | | | | | | | | | Partial merge from gnulib which fixes a number of -Wundef warnings. The parts that differ from gnulib are the header comment, use of __glibc_unlikely, a #define of __secure_getenv and the use of tabs. The majority of the patch is cosmetic comment changes, the only runtime change is an abort if an unknown kind is passed to __gen_tempname. ChangeLog: 2014-06-25 Will Newton <will.newton@linaro.org> * sysdeps/posix/tempname.c: Merge from gnulib, cosmetic comment changes throughout the file. Remove checks for HAVE_*_H definitions that are not required. (__gen_tempname): Call abort if an unknown kind value is passed.
* m68k: Add compat symbols for scalbln*Andreas Schwab2014-06-252-0/+12
|
* Add compat symbols for scalb* in i386Siddhesh Poyarekar2014-06-255-1/+23
| | | | | Bring back symbols into libc.so for scalb* functions. They are no longer used but unfortunately they're now part of the ABI.
* x86: Consolidate unnecessary nptl/ subdirectories.Roland McGrath2014-06-2412-4/+25
|
* Fix x86/x86_64 expm1l spurious underflow exceptions (bug 16539).Joseph Myers2014-06-246-11/+122
| | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes bug 16539, spurious underflow exceptions from x86 / x86-64 expm1l. The problem is that the computation of a base-2 exponent with extra precision involves spurious underflows for arguments that are small but not subnormal, so a check is added to just return the argument in those cases. (If the argument *is* subnormal, underflowing is correct and the existing code will always underflow, so it suffices to keep using the existing code in that case; some expm1 implementations have a bug (bug 16353) with missing underflow exceptions, but I don't think there's such a bug in this particular version.) Tested x86_64 and x86; no ulps updates needed. (auto-libm-test-out diffs omitted below.) [BZ #16539] * sysdeps/i386/fpu/e_expl.S (IEEE754_EXPL) [USE_AS_EXPM1L]: Just return the argument for normal arguments with exponent below -64. * sysdeps/x86_64/fpu/e_expl.S (IEEE754_EXPL) [USE_AS_EXPM1L]: Likewise. * math/auto-libm-test-in: Add another test of expm1. * math/auto-libm-test-out: Regenerated.
* Fix ldbl-128 erfl spurious underflows (bug 16287).Joseph Myers2014-06-245-12/+324
| | | | | | | | | | | | | | | | | | | | This patch fixes bug 16287, spurious underflows from ldbl-128 erfl arising from it calling erfcl for arguments with absolute value at least 1.0, although for large positive arguments erfcl correctly underflows but erfl shouldn't. The fix is simply to avoid calling erfcl, and just return 1, for arguments above a cut-off large enough that erfl correctly rounds to-nearest as 1 but not so large that erfcl underflows. Tested mips64. Also tested x86_64 and x86 to confirm the new tests (taken from the tests of erfc) don't cause any problems there; no ulps updates needed. [BZ #16287] * sysdeps/ieee754/ldbl-128/s_erfl.c (__erfl): Return 1 without calling __erfcl for arguments at least 16. * math/auto-libm-test-in: Add more tests of erf. * math/auto-libm-test-out: Regenerated.
* Move architecture cases out of sysdeps/unix/sysv/linux/configure.ac.Joseph Myers2014-06-2417-120/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Continuing the process of making non-ex-ports architectures follow the preferred sysdeps practices followed by ex-ports architectures - that is, putting things in architecture-specific sysdeps files rather than having architecture-specific cases in architecture-independent files - this patch moves architecture cases out of sysdeps/unix/sysv/linux/configure.ac into (new or existing) configure fragments for each architecture. (In the case of the arch_minimum_kernel setting for x32, sysdeps/unix/sysv/linux/x86_64/x32/configure already has such a setting so the setting in sysdeps/unix/sysv/linux/configure.ac was a duplicate that could just be removed - though I haven't tested for x32.) Tested for x86_64 and x86 that the patch causes no changes to the installed shared libraries or ldd (or any part of the installation except for the parts that always change because the files contain timestamps - nscd and static libraries). * sysdeps/unix/sysv/linux/configure.ac: Remove cases for individual architectures. * sysdeps/unix/sysv/linux/configure: Regenerated. * sysdeps/unix/sysv/linux/i386/configure.ac: New file. * sysdeps/unix/sysv/linux/i386/configure: New generated file. * sysdeps/unix/sysv/linux/powerpc/configure.ac (ldd_rewrite_script): Define variable. * sysdeps/unix/sysv/linux/powerpc/configure: Regenerated. * sysdeps/unix/sysv/linux/powerpc/powerpc32/configure.ac: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc32/configure: New generated file. * sysdeps/unix/sysv/linux/s390/configure.ac: New file. * sysdeps/unix/sysv/linux/s390/configure: New generated file. * sysdeps/unix/sysv/linux/sh/configure.ac: New file. * sysdeps/unix/sysv/linux/sh/configure: New generated file. * sysdeps/unix/sysv/linux/sparc/configure.ac: New file. * sysdeps/unix/sysv/linux/sparc/configure: New generated file. * sysdeps/unix/sysv/linux/x86_64/configure.ac: New file. * sysdeps/unix/sysv/linux/x86_64/configure: New generated file.
* Fix namespace violation in pthreadtypes.h (BZ #17084)Siddhesh Poyarekar2014-06-243-4/+10
| | | | This was causing conformtest failures on i386.
* Add bug 16918 to NEWS.Wilco2014-06-242-3/+8
|
* Revert "Add bug 16918 to NEWS."Marcus Shawcroft2014-06-242-12/+3
| | | | This reverts commit 222b787a6fd36601f5c5d22378176798327fcf31.
* Optimize fesetenvWilco2014-06-242-15/+24
| | | | | | | | | Improve fesetenv to use an optimized implementation similar to feupdateenv. 2014-06-24 Wilco <wdijkstr@arm.com> * sysdeps/arm/fesetenv.c (fesetenv): Optimize implementation.
* Add _FPU_MASK_RM and use it instead of FE_TOWARDZERO.Wilco2014-06-245-13/+23
| | | | | | | | | | | | | 2014-06-24 Wilco <wdijkstr@arm.com> * sysdeps/arm/fpu_control.h (_FPU_MASK_RM): Define. * sysdeps/arm/fenv_private.h (libc_fesetround_vfp) (libc_feholdexcept_setround_vfp) (libc_feholdsetround_vfp) (libc_feresetround_vfp) (libc_feholdsetround_vfp_ctx) (libc_feresetround_vfp_ctx): Use _FPU_MASK_RM. * sysdeps/arm/fesetround.c (fesetround): Use _FPU_MASK_RM. * sysdeps/arm/get-rounding-mode.h (get_rounding_mode): Use _FPU_MASK_RM.
* Remove an unused include.Wilco2014-06-242-1/+4
| | | | | | 2014-06-24 Wilco <wdijkstr@arm.com> * sysdeps/arm/fsetexcptflg.c (fesetexceptflag): Remove unused include.
* Cleanup fenv implementationWilco2014-06-245-4/+7
| | | | | | | | | | | Remove some spaces before libm_hidden_def. 2014-06-24 Wilco <wdijkstr@arm.com> * sysdeps/arm/feholdexcpt.c (feholdexcept): Remove space. * sysdeps/arm/fesetenv.c (fesetenv): Remove space. * sysdeps/arm/fesetround.c (fesetround): Remove space. * sysdeps/arm/fraiseexcpt.c (feraiseexcept): Remove space.
* Add bug 16918 to NEWS.Wilco2014-06-242-3/+12
|
* Rewrite feupdateenvWilco2014-06-242-6/+44
| | | | | | | | | | | | This patch rewrites feupdateenv to improve performance by avoiding unnecessary FPSCR reads/writes. It fixes bug 16918 by passing the correct return value. 2014-06-24 Wilco <wdijkstr@arm.com> [BZ #16918] * sysdeps/arm/feupdateenv.c (feupdateenv): Rewrite to reduce FPSCR accesses and fix return value.
* Speed up the ARM fenv implementation by avoiding unnecessary FPSCRWilco2014-06-246-23/+38
| | | | | | | | | | | | | writes if the FPSCR remains unchanged. 2014-06-24 Wilco <wdijkstr@arm.com> * sysdeps/arm/fclrexcpt.c (feclearexcept): Optimize to avoid unnecessary FPSCR writes. * sysdeps/arm/fedisblxcpt.c (fedisableexcept): Likewise. * sysdeps/arm/feenablxcpt.c (feenableexcept): Likewise. * sysdeps/arm/fsetexcptflg.c (fesetexceptflag): Likewise. * sysdeps/arm/setfpucw.c (__setfpucw): Likewise.
* Use libc calls defined by fenv_private.h to implement several fenv functionsWilco2014-06-247-102/+75
| | | | | | | | | | | | | | | | rather than duplicating functionality. To make this work for softfp builds, ensure functions in fenv_private are not conditionally compiled. 2014-06-24 Wilco <wdijkstr@arm.com> * sysdeps/arm/fegetround.c (fegetround): Call get_rounding_mode. * sysdeps/arm/feholdexcpt.c (feholdexcept): Call libc_feholdexcept_vfp. * sysdeps/arm/fesetround.c (fesetround): Call libc_fesetround_vfp. * sysdeps/arm/fgetexcptflg.c (fegetexceptflag): Call libc_fetestexcept_vfp. * sysdeps/arm/ftestexcept.c (fetestexcept): Call libc_fetestexcept_vfp. * sysdeps/arm/fenv_private.h: Move libc_*_vfp functions outside of __SOFTFP__ ifdef so that they can be built for softfp.
* Fix build warning in pthread_rwlock_*Siddhesh Poyarekar2014-06-242-1/+4
| | | | | | | The first argument of elision_adapt and that of ELISION_*LOCK have different signs since __elision_rwcount is signed char * and the argument of elision_adapt is uint8_t *. Modified elision_adapt to accept signed char * instead of uint8_t *.
* Print offending diff when check-abi failsSiddhesh Poyarekar2014-06-242-1/+7
| | | | | | The earlier version of check-abi would print a diff of the expected ABI vs the built ABI when there was a difference. Bring back this behaviour.
* Add missing #include in get-rounding-mode.hRoland McGrath2014-06-232-0/+4
|
* Remove an unused variable in fstatvfs.Roland McGrath2014-06-232-1/+5
|
* Fix cosh spurious underflows from expm1 (bug 16354), inaccurate results near ↵Joseph Myers2014-06-2310-338/+458
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 0 (bug 17061). This patch fixes bug 16354, spurious underflows from cosh when a tiny argument is passed to expm1 and expm1 correctly underflows although the final result of cosh should be 1. As noted in that bug, some cases are latent because of expm1 implementations not raising underflow (bug 16353), but all the implementations are fixed similarly. They already contained checks for tiny arguments, but the checks were too late to avoid underflow from expm1 (although they would avoid underflow from subsequent squaring of the result of expm1); they are moved before the expm1 calls. The thresholds used for considering arguments tiny are not particularly consistent in how they relate to the precision of the floating-point format in question. They are, however, all sufficient to ensure that the round-to-nearest result of cosh is indeed 1 below the threshold (although sometimes they are smaller than necessary). But the previous logic did not return 1, but the previously computed 1 + expm1(abs(x)) value. And the thresholds in the ldbl-128 and ldbl-128ibm code (0x1p-71L - I suspect 0x3f8b was intended in the code instead of 0x3fb8 - and (roughly) 0x1p-55L) are not sufficient for that value to be 1. So by moving the test for tiny arguments, and consequently returning 1 directly now the expm1 value hasn't been computed by that point, this patch also fixes bug 17061, the (large number of ulps) inaccuracy for small arguments in those implementations. Tests for that bug are duly added. Tested x86_64 and x86 and ulps updated accordingly. Also tested for mips64 and powerpc32 to validate the ldbl-128 and ldbl-128ibm changes. [BZ #16354] [BZ #17061] * sysdeps/ieee754/dbl-64/e_cosh.c (__ieee754_cosh): Check for small arguments before calling __expm1. * sysdeps/ieee754/flt-32/e_coshf.c (__ieee754_coshf): Check for small arguments before calling __expm1f. * sysdeps/ieee754/ldbl-128/e_coshl.c (__ieee754_coshl): Check for small arguments before calling __expm1l. * sysdeps/ieee754/ldbl-128ibm/e_coshl.c (__ieee754_coshl): Likewise. * sysdeps/ieee754/ldbl-96/e_coshl.c (__ieee754_coshl): Likewise. * math/auto-libm-test-in: Add more cosh tests. Do not allow spurious underflow for some cosh tests. * math/auto-libm-test-out: Regenerated. * sysdeps/i386/fpu/libm-test-ulps: Update.
* Set errno for y1 overflow (bug 17050).Joseph Myers2014-06-238-5/+1796
| | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes bug 17050, missing errno setting for y1 overflow (for small positive arguments). An appropriate check is added for overflow directly in the __ieee754_y1 implementation, similar to the check present for yn (doing it there rather than in the wrapper also avoids yn needing to repeat the check when called for order 1 or -1 and it uses __ieee754_y1). Tested x86_64 and x86; no ulps update needed. Also tested for mips64 to verify the ldbl-128 fix (the ldbl-128ibm code just #includes the ldbl-128 file). [BZ #17050] * sysdeps/ieee754/dbl-64/e_j1.c: Include <errno.h>. (__ieee754_y1): Set errno if return value overflows. * sysdeps/ieee754/flt-32/e_j1f.c: Include <errno.h>. (__ieee754_y1f): Set errno if return value overflows. * sysdeps/ieee754/ldbl-128/e_j1l.c: Include <errno.h>. (__ieee754_y1l): Set errno if return value overflows. * sysdeps/ieee754/ldbl-96/e_j1l.c: Include <errno.h>. (__ieee754_y1l): Set errno if return value overflows. * math/auto-libm-test-in: Add more tests of y0, y1 and yn. * math/auto-libm-test-out: Regenerated.
* Test cpow in all rounding modes.Joseph Myers2014-06-238-135/+251
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch enables testing of cpow in all rounding modes using ALL_RM_TEST. There were two reasons this was previously deferred: * MPC has complicated rounding-mode-dependent rules for the signs of exact zero real or imaginary parts in the result of mpc_pow. Annex G does not impose any such requirements and I don't think glibc should try to implement any particular logic here. This patch adds support for gen-auto-libm-tests passing the IGNORE_ZERO_INF_SIGN flag to libm-test.inc. * Error accumulations in some tests in non-default rounding modes exceed the maximum error permitted in libm-test.inc. This patch marks the problem tests with xfail-rounding. (It might be possible to reduce the accumulations a bit by using round-to-nearest when cpow calls clog, but I don't think there's much point; the implementation approach for cpow is fundamentally deficient, as discussed in the existing bug for cpow inaccuracy which can reasonably be considered to cover these less-inaccurate cases as well. It's possible that the test "cpow 2 0 10 0" will also need xfail-rounding on some platforms.) Tested x86_64 and x86 and ulps updated accordingly. * math/gen-auto-libm-tests.c: Document use of ignore-zero-inf-sign. (input_flag_type): Add value flag_ignore_zero_inf_sign. (input_flags): Add ignore-zero-inf-sign. (output_for_one_input_case): Handle flag_ignore_zero_inf_sign. * math/gen-libm-test.pl (generate_testfile): Handle ignore-zero-inf-sign. * math/auto-libm-test-in: Mark some cpow tests with ignore-zero-inf-sign and some with xfail-rounding. * math/auto-libm-test-out: Regenerated. * math/libm-test.inc (cpow_test): Use ALL_RM_TEST. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.