aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-06-27Correctly report nscd child process status (BZ #17092)Arjun Shankar
The nscd parent process returns the result of a `wait' call rather than the exit status of the child it waits for. These two aren't exactly the same. In my case (and probably on most machines), the exit status is in the 2nd LSB of the result of `wait', and so: e.g. if the nscd child process returns 1, the parent returns 1 << 8, which Bash happily reports as 0.
2014-06-27Remove relro configure test.Joseph Myers
This patch removes the configure test for working -z relro. The use of -z relro in Makeconfig became unconditional with commit 2e6ab1df44c412bb9d30b26a4d8a679150a7e375 Author: Ulrich Drepper <drepper@redhat.com> Date: Sat Oct 28 06:44:04 2006 +0000 Remove conditional code which now is unnecessary. (commit reference from git://repo.or.cz/glibc/history), so since then the configure test has not controlled anything about how glibc is built - simply about whether configure succeeds and allows a build to be attempted. The test for whether the option did something useful (as opposed to whether it exists - which we can certainly just assume by now) was originally added in <https://sourceware.org/ml/libc-hacker/2004-09/msg00069.html> to disable the option in a case when it did nothing useful on ia64 (as a result of something deliberate in the linker on ia64). Since 2006 that disabling has been of no effect, and given that the current test does not set libc_relro_required for ia64, it does nothing whatever useful for the original motivating case. Also at around the same time in 2006 the test was made to give an error for missing or broken -z relro support on various architectures. So effectively all the test does now is verify that, on certain architectures, the linker has not been changed deliberately to make the option ineffective. I see no apparent reason why such a change should be expected, or why the build should be stopped if it were to be made (any more than we disallow build on ia64); I think we can trust binutils patch review to point out the consequences of any change to COMMONPAGESIZE setting. The only thing that might now make sense would be disabling the -z relro use on an architecture-specific basis if there were an architecture-specific reason to consider that to make sense; it would be for the ia64 maintainer to decide if that makes sense for ia64 at present, but I think that could be done through sysdeps Makefiles - no special configure tests needed. Tested for x86_64 that this patch makes no change to the installed shared libraries. Together with <https://sourceware.org/ml/libc-alpha/2014-06/msg00788.html> (pending review) this substantially eliminates architecture-specific cases from architecture-independent configure.ac files. There remains an i386 case in sysdeps/mach/hurd/configure.ac that should properly move to the i386 subdirectory. (There are also OS-specific cases outside OS-specific directories; in principle I think should should also move.) * configure.ac (libc_commonpagesize): Remove variable. (libc_relro_required): Likewise. (libc_cv_z_relro): Remove configure test. * configure: Regenerated. * sysdeps/aarch64/preconfigure (libc_commonpagesize): Do not set variable. (libc_relro_required): Likewise. * sysdeps/alpha/preconfigure (libc_commonpagesize): Likewise. (libc_relro_required): Likewise. * sysdeps/arm/preconfigure.ac (libc_commonpagesize): Likewise. (libc_relro_required): Likewise. * sysdeps/arm/preconfigure: Regenerated. * sysdeps/ia64/preconfigure: Remove file. * sysdeps/tile/preconfigure (libc_commonpagesize): Do not set variable. (libc_relro_required): Likewise.
2014-06-27Fix yn overflow handling in non-default rounding modes (bug 16561, bug 16562).Joseph Myers
This patch fixes bugs 16561 and 16562, bad results of yn in overflow cases in non-default rounding modes, both because an intermediate overflow in the recurrence does not get detected if the result is not an infinity and because an overflowing result may occur in the wrong sign. The fix is to set FE_TONEAREST mode internally for the parts of the function where such overflows can occur (which includes the call to y1 - where yn is used to compute a Bessel function of order -1, negating the result of y1 isn't correct for overflowing results in directed rounding modes) and then compute an overflowing value in the original rounding mode if the to-nearest result was an infinity. Tested x86_64 and x86 and ulps updated accordingly. Also tested for mips64 and powerpc32 to test the ldbl-128 and ldbl-128ibm changes. (The tests for these bugs were added in my previous y1 patch, so the only thing this patch has to do with the testsuite is enable yn testing in all rounding modes.) [BZ #16561] [BZ #16562] * sysdeps/ieee754/dbl-64/e_jn.c: Include <float.h>. (__ieee754_yn): Set FE_TONEAREST mode internally and then recompute overflowing results in original rounding mode. * sysdeps/ieee754/flt-32/e_jnf.c: Include <float.h>. (__ieee754_ynf): Set FE_TONEAREST mode internally and then recompute overflowing results in original rounding mode. * sysdeps/ieee754/ldbl-128/e_jnl.c: Include <float.h>. (__ieee754_ynl): Set FE_TONEAREST mode internally and then recompute overflowing results in original rounding mode. * sysdeps/ieee754/ldbl-128ibm/e_jnl.c: Include <float.h>. (__ieee754_ynl): Set FE_TONEAREST mode internally and then recompute overflowing results in original rounding mode. * sysdeps/ieee754/ldbl-96/e_jnl.c: Include <float.h>. (__ieee754_ynl): Set FE_TONEAREST mode internally and then recompute overflowing results in original rounding mode. * sysdeps/i386/fpu/fenv_private.h [!__SSE2_MATH__] (libc_feholdsetround_ctx): New macro. * math/libm-test.inc (yn_test): Use ALL_RM_TEST. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps : Likewise.
2014-06-26Fix MIPS64 *_nocancel gp setup.Joseph Myers
The 64-bit MIPS ABIs involve the caller setting up t9 ($25) to the address of the called function, and the called function then using this in a .cpsetup directive to compute gp. The .cpsetup directive needs to name the function to which t9 points for this purpose. In the definition of *_nocancel functions, the directive pointed to the normal entry point rather than the _nocancel one, resulting in segfaults when the _nocancel functions were used. This patch corrects the function name used in the directive. (It seems the bug was latent until Roland's not-cancel.h unification, with the _nocancel entry points not previously being used - so not user-visible in a release, so no Bugzilla entry required.) Tested mips64 sufficiently to confirm the previously seen segfaults are fixed. * sysdeps/unix/sysv/linux/mips/mips64/nptl/sysdep-cancel.h [__PIC__] (PSEUDO): Use name of _nocancel entry point in corresponding .cpsetup call.
2014-06-26ARM: Move more aeabi routine magic out of Linux-specific directoriesRoland McGrath
2014-06-26Update scripts/list-sources.sh for ports repository merge.Joseph Myers
scripts/list-sources.sh includes handling of ports that has been obsolete ever since the ports repository was merged into the libc repository. This patch removes that handling. Tested by regenerating libc.pot and examining the resulting changes. * scripts/list-sources.sh: Do not handle ports specially.
2014-06-26Add missing #include <fpu_control.h> to ARM fesetenv/feupdateenv.Roland McGrath
2014-06-26Add missing #include in spawn_faction_addopen.cRoland McGrath
2014-06-26Update miscellaneous files from upstream sources.Joseph Myers
This patch updates miscellaneous files from their upstream sources: texinfo.tex from Texinfo, config.guess and config.sub from config.git, install-sh from automake and move-if-change from gnulib. Tested x86_64 that installed shared libraries are unchanged by the patch; also looked at the generated libc.pdf manual. * manual/texinfo.tex: Update to version 2014-05-05.10 with trailing whitespace removed. * scripts/config.guess: Update to version 2014-03-23. * scripts/config.sub: Update to version 2014-05-01 * scripts/install-sh: Update to version 2013-12-25.23. * scripts/move-if-change: Update from gnulib.
2014-06-27Correctly attribute the mktime.c change to Paul EggertSiddhesh Poyarekar
I mentioned it on the list, but forgot to put that in the changelog.
2014-06-27Remove unnecessary include in memmove_chkSiddhesh Poyarekar
This also has the side-effect of fixing a couple of Wundef warnings raised from pagecopy.h. The generated code is identical before and after this patch.
2014-06-27Remove inline keyword from leapyear functionSiddhesh Poyarekar
This syncs up the code with gnulib.
2014-06-26Remove powerpc special cases in configure.ac.Joseph Myers
This patch removes two powerpc special cases in the main configure.ac. The test for rs6000 is irrelevant to currently supported configurations (config.guess reports rs6000 for some OSes, of which the only one currently supported by GCC is AIX, but not for Linux). There's no need either for a special case for powerpc*-*soft; --without-fp suffices, and GCC doesn't have any special handling of such a triplet. Not tested. * configure.ac: Do not test for machine being rs6000. Do not test for powerpc*-*soft. * configure: Regenerated.
2014-06-26Remove configure tests for assembler CFI support.Joseph Myers
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.
2014-06-26Fix Wundef warning for WIDE_CHAR_VERSIONSiddhesh Poyarekar
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.
2014-06-26Fix Wundef warning for ELF_MACHINE_NO_RELASiddhesh Poyarekar
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.
2014-06-26Fix Wundef warning for SEPARATE_KEYSiddhesh Poyarekar
The SEPARATE_KEY macro is never defined in any condition or architecture. It is effectively dead code, so remove it.
2014-06-26S390: Consolidate nptl/ subdirectories under linux/...Roland McGrath
2014-06-26Move remaining S390 code out of nptl/.Roland McGrath
2014-06-26S390: Consolidate NPTL/non versions of vforkRoland McGrath
2014-06-26S390: Consolidate NPTL/non versions of cloneRoland McGrath
2014-06-26AArch64: Consolidate nptl/ subdirectories under linux/...Roland McGrath
2014-06-25MIPS: Consolidate NPTL/non versions of cloneRoland McGrath
2014-06-25Remove __ASSUME_O_CLOEXEC / O_CLOEXEC conditionals in sysdeps/unix/sysv/linux/.Joseph Myers
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.
2014-06-25Move USE_REGPARMS define to sysdeps/i386/configure.ac.Joseph Myers
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.
2014-06-25Remove stray includes of kernel-features.h.Joseph Myers
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.
2014-06-25Remove BROKEN_PPC_ASM_CR0 configure test.Joseph Myers
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.
2014-06-25Move base_machine and machine settings from configure.ac to sysdeps ↵Joseph Myers
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.
2014-06-25SPARC: Consolidate unnecessary nptl/ subdirectories.Roland McGrath
2014-06-25SPARC: Consolidate nptl/ subdirectories under linux/...Roland McGrath
2014-06-25Update timezone code from tzcode 2014e.Joseph Myers
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.
2014-06-25Remove __ASSUME_XFS_RESTRICTED_CHOWN.Joseph Myers
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.
2014-06-25ARM: Add support for AT_HWCAP2 in _dl_procinfoWill Newton
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.
2014-06-25Update powerpc-fpu ULPs.Adhemerval Zanella
2014-06-25Update README and NEWS for ports directory removal.Joseph Myers
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.
2014-06-25Remove __ASSUME_UTIMENSAT.Joseph Myers
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.
2014-06-25Fix exp10 spurious underflows (bug 16560).Joseph Myers
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.
2014-06-25Remove __ASSUME_COMPLETE_READV_WRITEV.Joseph Myers
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.
2014-06-25sysdeps/posix/tempname.c: Merge from gnulibWill Newton
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.
2014-06-25m68k: Add compat symbols for scalbln*Andreas Schwab
2014-06-25Add compat symbols for scalb* in i386Siddhesh Poyarekar
Bring back symbols into libc.so for scalb* functions. They are no longer used but unfortunately they're now part of the ABI.
2014-06-24x86: Consolidate unnecessary nptl/ subdirectories.Roland McGrath
2014-06-24Fix x86/x86_64 expm1l spurious underflow exceptions (bug 16539).Joseph Myers
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.
2014-06-24Fix ldbl-128 erfl spurious underflows (bug 16287).Joseph Myers
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.
2014-06-24Move architecture cases out of sysdeps/unix/sysv/linux/configure.ac.Joseph Myers
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.
2014-06-24Fix namespace violation in pthreadtypes.h (BZ #17084)Siddhesh Poyarekar
This was causing conformtest failures on i386.
2014-06-24Add bug 16918 to NEWS.Wilco
2014-06-24Revert "Add bug 16918 to NEWS."Marcus Shawcroft
This reverts commit 222b787a6fd36601f5c5d22378176798327fcf31.
2014-06-24Optimize fesetenvWilco
Improve fesetenv to use an optimized implementation similar to feupdateenv. 2014-06-24 Wilco <wdijkstr@arm.com> * sysdeps/arm/fesetenv.c (fesetenv): Optimize implementation.
2014-06-24Add _FPU_MASK_RM and use it instead of FE_TOWARDZERO.Wilco
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.