about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* Fix pow overflow in non-default rounding modes (bug 16315).Joseph Myers2014-06-2314-233/+2953
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes bug 16315, bad pow handling of overflow/underflow in non-default rounding modes. Tests of pow are duly converted to ALL_RM_TEST to run all tests in all rounding modes. There are two main issues here. First, various implementations compute a negative result by negating a positive result, but this yields inappropriate overflow / underflow values for directed rounding, so either overflow / underflow results need recomputing in the correct sign, or the relevant overflowing / underflowing operation needs to be made to have a result of the correct sign. Second, the dbl-64 implementation sets FE_TONEAREST internally; in the overflow / underflow case, the result needs recomputing in the original rounding mode. Tested x86_64 and x86 and ulps updated accordingly. [BZ #16315] * sysdeps/i386/fpu/e_pow.S (__ieee754_pow): Ensure possibly overflowing or underflowing operations take place with sign of result. * sysdeps/i386/fpu/e_powf.S (__ieee754_powf): Likewise. * sysdeps/i386/fpu/e_powl.S (__ieee754_powl): Likewise. * sysdeps/ieee754/dbl-64/e_pow.c: Include <math.h>. (__ieee754_pow): Recompute overflowing and underflowing results in original rounding mode. * sysdeps/x86/fpu/powl_helper.c: Include <stdbool.h>. (__powl_helper): Allow negative argument X and scale negated value as needed. Avoid passing value outside [-1, 1] to f2xm1. * sysdeps/x86_64/fpu/e_powl.S (__ieee754_powl): Ensure possibly overflowing or underflowing operations take place with sign of result. * sysdeps/x86_64/fpu/multiarch/e_pow.c [HAVE_FMA4_SUPPORT]: Include <math.h>. * math/auto-libm-test-in: Add more tests of pow. * math/auto-libm-test-out: Regenerated. * math/libm-test.inc (pow_test): Use ALL_RM_TEST. (pow_tonearest_test_data): Remove. (pow_test_tonearest): Likewise. (pow_towardzero_test_data): Likewise. (pow_test_towardzero): Likewise. (pow_downward_test_data): Likewise. (pow_test_downward): Likewise. (pow_upward_test_data): Likewise. (pow_test_upward): Likewise. (main): Don't call removed functions. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
* powerpc: Consolidate nptl/ subdirectories under linux/....Roland McGrath2014-06-2359-736/+176
|
* Add generic HAVE_RM_CTX implementationWilco Dijkstra2014-06-232-19/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds a generic implementation of HAVE_RM_CTX using standard fenv calls. As a result math functions using SET_RESTORE_ROUND* macros do not suffer from a large slowdown on targets which do not implement optimized libc_fe*_ctx inline functions. Most of the libc_fe* inline functions are now unused and could be removed in the future (there are a few math functions left which use a mixture of standard fenv calls and libc_fe* inline functions - they could be updated to use SET_RESTORE_ROUND or improved to avoid expensive fenv manipulations across just a few FP instructions). libc_feholdsetround*_noex_ctx is added to enable better optimization of SET_RESTORE_ROUND_NOEX* implementations. Performance measurements on ARM and x86 of sin() show significant gains over the current default, fairly close to a highly optimized fenv_private: ARM x86 no fenv_private : 100% 100% generic HAVE_RM_CTX : 250% 350% fenv_private (CTX) : 250% 450% 2014-06-23 Will Newton <will.newton@linaro.org> Wilco <wdijkstr@arm.com> * sysdeps/generic/math_private.h: Add generic HAVE_RM_CTX implementation. Include get-rounding-mode.h. [!HAVE_RM_CTX]: Define HAVE_RM_CTX to zero. [!libc_feholdsetround_noex_ctx]: Define libc_feholdsetround_noex_ctx. [!libc_feholdsetround_noexf_ctx]: Define libc_feholdsetround_noexf_ctx. [!libc_feholdsetround_noexl_ctx]: Define libc_feholdsetround_noexl_ctx. (libc_feholdsetround_ctx): New function. (libc_feresetround_ctx): New function. (libc_feholdsetround_noex_ctx): New function. (libc_feresetround_noex_ctx): New function.
* MIPS: Move NPTL public headers to sysdeps/mips/nptl/.Roland McGrath2014-06-234-0/+7
|
* m68k: Consolidate nptl/ subdirectories under linux/...Roland McGrath2014-06-2334-0/+77
|
* SH: Consolidate nptl/ subdirectories under linux/.....Roland McGrath2014-06-2315-0/+31
|
* Update headers for Linux 3.15.Joseph Myers2014-06-233-0/+18
| | | | | | | | | | | | | | | | | | This patch updates glibc headers for changes / new definitions in Linux 3.15. In the course of my review I noticed that IPV6_PMTUDISC_INTERFACE was absent from glibc despite the inclusion of IP_PMTUDISC_INTERFACE; I added it along with IP_PMTUDISC_OMIT and IPV6_PMTUDISC_OMIT. I did not add FALLOC_FL_NO_HIDE_STALE given the kernel header comment that it is reserved. Tested x86_64. * sysdeps/unix/sysv/linux/bits/fcntl-linux.h [__USE_GNU] (FALLOC_FL_COLLAPSE_RANGE): New macro. [__USE_GNU] (FALLOC_FL_ZERO_RANGE): Likewise. * sysdeps/unix/sysv/linux/bits/in.h (IP_PMTUDISC_OMIT): Likewise. (IPV6_PMTUDISC_INTERFACE): Likewise. (IPV6_PMTUDISC_OMIT): Likewise.
* Remove unused labelAndreas Schwab2014-06-232-1/+5
|
* PowerPC: sync hwcap.h capabilitiesAdhemerval Zanella2014-06-232-0/+7
| | | | | | | Linux commit dd58a092c4202f2bd490adab7285b3ff77f8e467 added the PPC_FEATURE2_VEC_CRYPTO auvx capability to indicate whether to hardware supports vector crypto hardware instructions. This patch adds its definition to powerpc hwcap bits.
* elf/dl-lookup.c: Use __glibc_likely and __glibc_unlikelyWill Newton2014-06-232-20/+22
| | | | | | | | | | | | | | | | Convert all uses of __builtin_expect to __glibc_likely and __glibc_unlikely. Most of these are trivial boolean expressions but a few were not. In particular the use of __builtin_expect in the switch expression in do_lookup_x has been removed. Verified that there are no code changes on x86_64 and ARM aside from line numbers. ChangeLog: 2014-06-23 Will Newton <will.newton@linaro.org> * elf/dl-lookup.c: Use __glibc_unlikely and __glibc_likely rather than __builtin_expect.
* elf/dl-lookup.c: Remove unnecessary static variableWill Newton2014-06-232-4/+5
| | | | | | | | | | | | undefined_msg is only used once contrary to the comment. ChangeLog: 2014-06-23 Will Newton <will.newton@linaro.org> * elf/dl-lookup.c (undefined_msg): Remove variable. (_dl_lookup_symbol_x): Replace undefined_msg with string literal.
* elf/dl-lookup.c: Move STB_GNU_UNIQUE handling to a functionWill Newton2014-06-232-145/+165
| | | | | | | | | | | | | | | | Move handling of STB_GNU_UNIQUE symbols to a separate function from do_lookup_x in order to make the code more readable. The new function gets inlined with gcc 4.8 on ARM and the do_lookup_x code becomes a few bytes smaller. ChangeLog: 2014-06-23 Will Newton <will.newton@linaro.org> * elf/dl-lookup.c (do_lookup_unique): New function. (do_lookup_x): Move STB_GNU_UNIQUE handling code to a separate function.
* Don't ignore too long lines in nss_files (BZ #17079)Andreas Schwab2014-06-233-2/+10
|
* test-skeleton.c: Use stdout for error messagesWill Newton2014-06-232-23/+28
| | | | | | | | | | | | | | | | | | At the moment the test skeleton uses a mixture of stdout and stderr for error message output. Using stdout for all test output keeps all output correctly ordered and properly redirected to the output file. The suggestion to use stdout is also made on the wiki: https://sourceware.org/glibc/wiki/Testing/Testsuite#Writing_a_test_case ChangeLog: 2014-06-23 Will Newton <will.newton@linaro.org> * test-skeleton.c (signal_handler): Use printf and %m rather than perror. Use printf rather than fprintf to stderr. Use puts rather than fputs to stderr. (main): Likewise.
* nscd: Remove unused typedef and variable.Ludovic Courtès2014-06-222-14/+5
| | | | | | | | | The attached patch removed the unused ‘thread_info_t’ typedef and the ‘thread_info’ variable from nscd.c. The former conflicts with a GNU Mach typedef, and the latter conflicts with a GNU Mach function declaration: <https://lists.gnu.org/archive/html/bug-hurd/2014-06/msg00101.html>. Tested on x86_64-linux-gnu.
* Mention CVE-2014-4043 in NEWSAllan McRae2014-06-212-0/+10
|
* Move generic smp.h to nptl/Roland McGrath2014-06-202-1/+4
|
* Remove unused file rtld-lowlevel.h.Roland McGrath2014-06-202-43/+2
|
* Clean up HAVE_CONFIG_H and STDC_HEADERS.Roland McGrath2014-06-205-4/+20
|
* Clean up stack-coloring macros.Roland McGrath2014-06-207-38/+67
|
* Move linux bits/ files out of nptl/.Roland McGrath2014-06-205-308/+147
|
* Remove ARM __ASSUME_SIGFRAME_V2.Joseph Myers2014-06-215-59/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes ARM __ASSUME_SIGFRAME_V2 now that the 2.6.18-and-later signal frame layout can be assumed, renaming the affected functions accordingly now only one version of them is needed in glibc. (sigrestorer.S did not in fact include <kernel-features.h> and it appears that, unlike other such cases, it didn't get the header indirectly, so the v1 functions would have been compiled in even when sigaction.c didn't reference them.) (alpha and hppa also have architecture-specific __ASSUME_* macros that should now be removed: __ASSUME_FDATASYNC and __ASSUME_LWS_CAS respectively. I don't have any plans to do anything on that myself.) Tested on ARM. * sysdeps/unix/sysv/linux/arm/kernel-features.h (__ASSUME_SIGFRAME_V2): Remove macro. * sysdeps/unix/sysv/linux/arm/sigrestorer.S: Update comment. [!__ASSUME_SIGFRAME_V2]: Remove conditional code. (__default_sa_restorer_v2): Rename to __default_sa_restorer. (__default_rt_sa_restorer_v2): Rename to __default_rt_sa_restorer. * sysdeps/unix/sysv/linux/arm/sigaction.c (__default_sa_restorer): Declare as function. Remove conditional macro definitions. (__default_rt_sa_restorer): Likewise. (__default_sa_restorer_v1): Remove declaration. (__default_sa_restorer_v2): Likewise. (__default_rt_sa_restorer_v1): Likewise. (__default_rt_sa_restorer_v2): Likewise. * sysdeps/unix/sysv/linux/arm/Versions (GLIBC_PRIVATE): Remove __default_sa_restorer_v1, __default_rt_sa_restorer_v1, __default_sa_restorer_v2 and __default_rt_sa_restorer_v2.
* Missing new file from last commit.Roland McGrath2014-06-201-0/+3
|
* Move remaining SPARC code out of nptl/.Roland McGrath2014-06-2047-29/+133
|
* Include <kernel-features.h> explicitly where required.Joseph Myers2014-06-2010-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch makes files using __ASSUME_* macros include <kernel-features.h> explicitly, rather than relying on some other header (such as tls.h, lowlevellock.h or pthreadP.h) to include it implicitly. (I omitted cases where I've already posted or am testing the patch that stops the file from needing __ASSUME_* at all.) This accords with the general principle of making source files include the headers for anything they use, and also helps make it safe to remove <kernel-features.h> includes from any file that doesn't use __ASSUME_* (some of those may be stray includes left behind after increasing the minimum kernel version, others may never have been needed or may have become obsolete after some other change). Tested x86_64 that the disassembly of installed shared libraries is unchanged by this patch. * nptl/pthread_cond_wait.c: Include <kernel-features.h>. * nptl/pthread_rwlock_timedrdlock.c: Likewise. * nptl/pthread_rwlock_timedwrlock.c: Likewise. * nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.c: Likewise. * nscd/nscd.c: Likewise. * sysdeps/i386/nptl/tcb-offsets.sym: Likewise. * sysdeps/powerpc/nptl/tcb-offsets.sym: Likewise. * sysdeps/sh/nptl/tcb-offsets.sym: Likewise. * sysdeps/x86_64/nptl/tcb-offsets.sym: Likewise.
* Remove __ASSUME_SOCK_CLOEXEC / SOCK_CLOEXEC conditionals in Linux-specific code.Joseph Myers2014-06-203-65/+16
| | | | | | | | | | | | | | | | | | | | | | This patch removes conditionals on __ASSUME_SOCK_CLOEXEC, and on SOCK_CLOEXEC being defined, in Linux-specific code, now that all supported Linux kernel versions can be assumed to have this functionality. (The macro is also used in OS-independent code and is not defined for Hurd.) Tested x86_64 that the disassembly of installed shared libraries is unchanged by this patch. * nptl/sysdeps/unix/sysv/linux/mq_notify.c: Do not include <kernel-features.h>. (init_mq_netlink): Remove conditional have_sock_cloexec definitions. Remove code conditional on have_sock_cloexec < 0. (init_mq_netlink) [!SOCK_CLOEXEC]: Remove conditional code. (init_mq_netlink) [!__ASSUME_SOCK_CLOEXEC]: Likewise. * sysdeps/unix/sysv/linux/opensock.c: Do not include <kernel-features.h>. (__opensock) [SOCK_CLOEXEC]: Make code unconditional. (__opensock) [!__ASSUME_SOCK_CLOEXEC]: Remove conditional code.
* Add ifunc tests for x86_64 memset_chk and memsetH.J. Lu2014-06-203-1/+20
| | | | | | | | | | | | This patch adds ifunc tests for x86_64 memset_chk and memset. It also defines HAS_AVX2 with AVX2_Usable since AVX2 may not be usable even if processor has AVX2. * sysdeps/x86_64/multiarch/ifunc-impl-list.c (__libc_ifunc_impl_list): Add tests for memset_chk and memset. * sysdeps/x86_64/multiarch/init-arch.h (HAS_AVX2): Defined with AVX2_Usable.
* [BZ #16046] dl_iterate_phdr static executable testMaciej W. Rozycki2014-06-203-1/+52
|