Joseph Myers [Fri, 20 Dec 2013 21:03:39 +0000 (21:03 +0000)]
Add more libm-test coverage of [a-c]* real functions.
Various libm functions have inadequate test coverage in libm-test.inc
/ auto-libm-test-in - failing to cover all the usual special cases
(infinities, NaNs, zero, large and small finite values, subnormals) as
well as a reasonable range of ordinary inputs and, where appropriate,
inputs close to the thresholds for underflow and overflow.
This patch improves test coverage for real functions [a-c]* (with the
expectation of adding more coverage for other functions later).
Tested x86_64 and x86 and ulps updated accordingly (and eight glibc
bugs and one C11 DR filed for issues found in the process).
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cbrt, cos and cosh.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acosh_test_data): Add more tests.
(atanh_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
Chris Leonard [Fri, 20 Dec 2013 17:12:00 +0000 (12:12 -0500)]
fix localedata/ChangeLog
Joseph Myers [Fri, 20 Dec 2013 16:27:15 +0000 (16:27 +0000)]
Revert spurious copying of ChangeLog to localedata/ChangeLog.
Chris Leonard [Fri, 20 Dec 2013 16:03:15 +0000 (11:03 -0500)]
Add lang_name to various locales.
Joseph Myers [Fri, 20 Dec 2013 13:10:07 +0000 (13:10 +0000)]
Update timezone code from tzcode 2013i.
Now we have Paul's support for version-3 tz files checked in, this
patch updates all the code we take (unmodified) from tzcode to version
2013i (which includes the support for generating version-3 tz files
where necessary).
Tested x86_64.
* timezone/checktab.awk: Update from tzcode 2013i.
* timezone/private.h: Likewise.
* timezone/scheck.c: Likewise.
* timezone/tzfile.h: Likewise.
* timezone/tzselect.ksh: Likewise.
* timezone/zdump.c: Likewise.
* timezone/zic.c: Likewise.
Joseph Myers [Fri, 20 Dec 2013 12:35:10 +0000 (12:35 +0000)]
Move tests of cpow from libm-test.inc to auto-libm-test-in.
This patch moves tests of cpow to auto-libm-test-in, adding the
required support to gen-auto-libm-tests.
Tested x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add tests of cpow.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (cpow_test_data): Use AUTO_TESTS_cc_c.
* * math/gen-auto-libm-tests.c (func_calc_method): Add value
mpc_cc_c.
(func_calc_desc): Add mpc_cc_c union field.
(test_functions): Add cpow.
(special_fill_2pi): New function.
(special_real_inputs): Add 2pi.
(calc_generic_results): Handle mpc_cc_c.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
Joseph Myers [Fri, 20 Dec 2013 12:32:44 +0000 (12:32 +0000)]
Move various TEST_c_c tests from libm-test.inc to auto-libm-test-inc.
This patch moves tests of ccos, ccosh, cexp, clog, csqrt, ctan and
ctanh to auto-libm-test-in, adding the required support to
gen-auto-libm-tests. Other TEST_c_c functions aren't moved for now
(although the relevant table entries are put in gen-auto-libm-tests
for it to know how to handle them): clog10 because of a known MPC bug
causing it to hang for at least some pure imaginary inputs (fixed in
SVN, but I'd rather not rely on unreleased versions of MPFR or MPC
even if relying on very recent releases); the inverse trig and
hyperbolic functions because of known slowness in special cases; and
csin / csinh because of observed slowness that I need to investigate
and report to the MPC maintainers. Slowness can be bypassed by moving
to incremental generation (only for new / changed tests) rather than
regenerating the whole of auto-libm-test-out every time, but that
needs implementing. (This patch takes the time for running
gen-auto-libm-tests from about one second to seven, on my system,
which I think is reasonable. The slow functions would make it take
several minutes at least, which seems unreasonable.)
Tested x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add tests of ccos, ccosh, cexp, clog,
csqrt, ctan and ctanh.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (TEST_COND_x86_64): New macro.
(TEST_COND_x86): Likewise.
(ccos_test_data): Use AUTO_TESTS_c_c.
(ccosh_test_data): Likewise.
(cexp_test_data): Likewise.
(clog_test_data): Likewise.
(csqrt_test_data): Likewise.
(ctan_test_data): Likewise.
(ctan_tonearest_test_data): Likewise.
(ctan_towardzero_test_data): Likewise.
(ctan_downward_test_data): Likewise.
(ctan_upward_test_data): Likewise.
(ctanh_test_data): Likewise.
(ctanh_tonearest_test_data): Likewise.
(ctanh_towardzero_test_data): Likewise.
(ctanh_downward_test_data): Likewise.
(ctanh_upward_test_data): Likewise.
* math/gen-auto-libm-tests.c (func_calc_method): Add value
mpc_c_c.
(func_calc_desc): Add mpc_c_c union field.
(FUNC_mpc_c_c): New macro.
(test_functions): Add cacos, cacosh, casin, casinh, catan, catanh,
ccos, ccosh, cexp, clog, clog10, csin, csinh, csqrt, ctan and
ctanh.
(special_fill_min_subnorm_p120): New function.
(special_real_inputs): Add min_subnorm_p120.
(calc_generic_results): Handle mpc_c_c.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
Siddhesh Poyarekar [Fri, 20 Dec 2013 10:31:03 +0000 (16:01 +0530)]
Consolidate code to compute sin and cos from lookup tables
This patch consolidates the multiple copies of code that looks up sin
and cos of a number from the lookup table and computes the final
value, into static functions. This does not have a noticeable
performance impact since the functions are inlined by gcc.
There is further scope for consolidation in the functions but they
cause a more noticable impact on performance (>5%) due to which I have
held back on them.
Siddhesh Poyarekar [Fri, 20 Dec 2013 10:28:19 +0000 (15:58 +0530)]
Remove more redundant computations in s_sin.c
Removed more redundant computations in the slow paths of the sin and
cos functions. The notable change is the passing of the most
significant bits of X to the slow functions to check if X is positive
so that just the absolute value of x can be passed and the repeated
ABS() operation is avoided.
Siddhesh Poyarekar [Fri, 20 Dec 2013 10:26:21 +0000 (15:56 +0530)]
Remove redundant arguments in reduce_and_compute
The A and DA arguments in reduce_and_compute are useless and hence
have been removed.
Siddhesh Poyarekar [Fri, 20 Dec 2013 10:25:34 +0000 (15:55 +0530)]
Remove some redundant computations in s_sin.c
There are multiple points in the code where the absolute value of a
number is computed multiple times or is computed even though the value
can only be positive. This change removes those redundant
computations. Tested on x86_64 to verify that there were no
regressions in the testsuite.
Joseph Myers [Thu, 19 Dec 2013 21:28:30 +0000 (21:28 +0000)]
Move tests of cabs and carg from libm-test.inc to auto-libm-test-in.
This patch moves tests of cabs and carg to auto-libm-test-in, adding
the required support to gen-auto-libm-tests.
Tested x86_64 and x86; no ulps updates needed.
* math/auto-libm-test-in: Add tests of cabs and carg.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (cabs_test_data): Use AUTO_TESTS_c_f.
(carg_test_data): Likewise.
* math/gen-auto-libm-tests.c (func_calc_method): Add value
mpc_c_f.
(func_calc_desc): Add mpc_c_f union field.
(test_functions): Add cabs and carg.
(calc_generic_results): Handle mpc_c_f.
Joseph Myers [Thu, 19 Dec 2013 21:26:36 +0000 (21:26 +0000)]
Don't make soft-fp symbols compat symbols for powerpc-nofpu.
sysdeps/powerpc/powerpc32/libgcc-compat.S makes certain symbols that
glibc once accidentally reexported from libgcc into compat symbols.
Where the exports were purely accidental, this is the right thing to
do. However, for powerpc-nofpu the soft-fp symbols are deliberately
exported from libc, given public versions in
sysdeps/powerpc/nofpu/Versions and used by libm in preference to the
libgcc versions that do not support the software exceptions and
rounding modes. The libc versions should also be usable by user
programs, though normally libgcc gets linked in first (meaning,
effectively, that the <fenv.h> functions are broken as regards their
expected effects on user arithmetic).
A longstanding todo item is to remove the functions in question from
libgcc (when built with recent enough glibc) - that is, remove them
from static libgcc and make them compat symbols in shared libgcc - so
that this works properly (this is one of the items mentioned at
<http://gcc.gnu.org/wiki/Software_floating_point> - parts of that page
are obviously out of date, but this item still applies). Doing this
requires first that the functions are actually available from libc for
new links, not just as compat symbols.
This patch stops the symbols in question being compat symbols for
powerpc-nofpu. The nofpu Versions entries for them are removed (the
symbols never were exported at GLIBC_2.3.2, only GLIBC_2.0, because
the compat symbols took precedence).
Tested powerpc-nofpu. The symbols are no longer compat symbols and
libm.so now properly gets undefined references to them (resolved to
libc.so) instead of the libgcc copies getting linked into libm as
before.
* sysdeps/powerpc/powerpc32/libgcc-compat.S
[_SOFT_FLOAT || __NO_FPRS__] (__fixdfdi_v_glibc20): Do not define
as a macro and a compat symbol.
[_SOFT_FLOAT || __NO_FPRS__] (__fixsfdi_v_glibc20): Likewise.
[_SOFT_FLOAT || __NO_FPRS__] (__fixunsdfdi_v_glibc20): Likewise.
[_SOFT_FLOAT || __NO_FPRS__] (__fixunssfdi_v_glibc20): Likewise.
[_SOFT_FLOAT || __NO_FPRS__] (__floatdidf_v_glibc20): Likewise.
[_SOFT_FLOAT || __NO_FPRS__] (__floaddisf_v_glibc20): Likewise.
[HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__fixdfdi): Do
not use .hidden.
[HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__fixsfdi):
Likewise.
[HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__fixunsdfdi):
Likewise.
[HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__fixunssfdi):
Likewise.
[HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__floaddidf):
Likewise.
[HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__floaddisf):
Likewise.
* sysdeps/powerpc/nofpu/Versions (libc): Remove __fixdfdi,
__fixsfdi, __fixunsdfdi, __fixunssfdi, __floatdidf and __floatdisf
from GLIBC_2.3.2.
Adhemerval Zanella [Thu, 19 Dec 2013 19:44:16 +0000 (13:44 -0600)]
Update powerpc-fpu ULPs.
Paul Pluzhnikov [Thu, 19 Dec 2013 18:51:50 +0000 (10:51 -0800)]
Fix white space as well.
Paul Pluzhnikov [Thu, 19 Dec 2013 18:48:01 +0000 (10:48 -0800)]
Fix incorrect power of 2 check in last commit.
Paul Pluzhnikov [Thu, 19 Dec 2013 18:25:23 +0000 (10:25 -0800)]
Cleanup compile warnings.
2013-12-19 Paul Pluzhnikov <ppluzhnikov@google.com>
* elf/dl-misc.c (ptr_to_signal_safe_allocator_header): New function.
(__signal_safe_memalign, __signal_safe_free): Use it.
(__signal_safe_realloc): Likewise.
Joseph Myers [Thu, 19 Dec 2013 17:36:10 +0000 (17:36 +0000)]
Update texinfo.tex, config.guess, config.sub from upstream.
This patch updates various miscellaneous files we take from upstream
GNU sources (texinfo.texi, config.guess, config.sub - various others
haven't changed upstream since we last updated them) to their current
upstream versions.
Tested x86_64.
* manual/texinfo.tex: Update to version 2013-11-26.10 with
trailing whitespace removed.
* scripts/config.guess: Update to version 2013-11-29.
* scripts/config.sub: Update to version 2013-10-01.
Joseph Myers [Thu, 19 Dec 2013 17:21:01 +0000 (17:21 +0000)]
Move tests of sincos from libm-test.inc to auto-libm-test-in.
This patch moves tests of sincos to auto-libm-test-in, adding the
required support to gen-auto-libm-tests.
Tested x86_64 and x86 and ulps updated accordingly.
(auto-libm-test-out diffs omitted below.)
* math/auto-libm-test-in: Add tests of sincos.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (sincos_test_data): Use AUTO_TESTS_fFF_11.
* math/gen-auto-libm-tests.c (func_calc_method): Add value
mpfr_f_11.
(func_calc_desc): Add mpfr_f_11 union field.
(test_functions): Add sincos.
(calc_generic_results): Handle mpfr_f_11.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
Andreas Schwab [Thu, 19 Dec 2013 14:38:48 +0000 (15:38 +0100)]
Fix uses of CALL_MCOUNT in ppc64 assembler sources
Joseph Myers [Thu, 19 Dec 2013 14:59:22 +0000 (14:59 +0000)]
Disable libm-test test name beautification for M_* constants.
math/gen-libm-test.pl has code to beautify names of various constants,
transforming the source form in libm-test.inc into the version
appearing in test names in libm-test-ulps files.
This has become decreasingly relevant over time for the M_* constants,
first as I changed the test names so only the arguments and not the
expected results appeared in them, then as tests have moved to
auto-libm-test-* so that automatically generated hex float constants
get used instead of M_* in test inputs.
This patch removes the beautification for all M_* constants. Tested
x86_64 and x86 and ulps updated accordingly. Even the one case where
this affected the name in the ulps files will disappear once complex
function tests are moved to auto-libm-test-*.
* math/gen-libm-test.pl (%beautify): Remove M_* constants.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
Joseph Myers [Thu, 19 Dec 2013 13:36:10 +0000 (13:36 +0000)]
Fix x86/x86_64 expm1 inaccuracy near 0 in directed rounding modes (bug 16293).
Bug 16293 is inaccuracy of x86/x86_64 versions of expm1, near 0 in
directed rounding modes, that arises from frndint rounding the
exponent to 1 or -1 instead of 0, resulting in large cancellation
error. This inaccuracy in turn affects other functions such as sinh
that use expm1. This patch fixes the problem by setting
round-to-nearest mode temporarily around the affected calls to
frndint. I don't think this is needed for other uses of frndint, such
as in exp itself, as only for expm1 is the cancellation error
significant.
Tested x86_64 and x86 and ulps updated accordingly.
* sysdeps/i386/fpu/e_expl.S (IEEE754_EXPL) [USE_AS_EXPM1L]: Set
round-to-nearest mode when using frndint.
* sysdeps/i386/fpu/s_expm1.S (__expm1): Likewise.
* sysdeps/i386/fpu/s_expm1f.S (__expm1f): Likewise.
* sysdeps/x86_64/fpu/e_expl.S (IEEE754_EXPL) [USE_AS_EXPM1L]:
Likewise.
* math/auto-libm-test-in: Add more tests of expm1. Do not expect
sinh test to fail.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (TEST_COND_x86_64): Remove macro.
(TEST_COND_x86): Likewise.
(expm1_tonearest_test_data): New array.
(expm1_test_tonearest): New function.
(expm1_towardzero_test_data): New array.
(expm1_test_towardzero): New function.
(expm1_downward_test_data): New array.
(expm1_test_downward): New function.
(expm1_upward_test_data): New array.
(expm1_test_upward): New function.
(main): Run the new test functions.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
Joseph Myers [Thu, 19 Dec 2013 13:32:42 +0000 (13:32 +0000)]
Add _DEFAULT_SOURCE feature test macro.
This patch adds a feature test macro _DEFAULT_SOURCE to enable the
default set of header declarations.
The intention is: if _DEFAULT_SOURCE is not used there is no change to
the set of __USE_* macros glibc defines; if it's used on its own, and
without compiler options such as -std=c99 that define __STRICT_ANSI__,
again, there is no change; if it's used together with the macros it
approximately (i.e., apart from __USE_POSIX_IMPLICITLY) implies
(-D_BSD_SOURCE -D_SVID_SOURCE -D_POSIX_C_SOURCE=200809L), again, there
is no change. Otherwise, it causes the relevant features to be
enabled, even if __STRICT_ANSI__, or another feature test macro, would
cause them to be disabled.
This macro deliberately bundles the POSIX.1-2008 (non-X/Open)
functionality with the BSD/SVID/"misc" functionality, rather than
defining a macro that gives just the latter, as many of the header
cleanups resulting from removing _BSD_SOURCE and _SVID_SOURCE support
are only possible when BSD/SVID/"misc" is always bundled with
POSIX.1-2008.
Tested x86_64.
* include/features.h: Update comment documenting feature test
macros. Mention _DEFAULT_SOURCE in comment.
[_GNU_SOURCE] (_DEFAULT_SOURCE): Undefine and redefine.
[_DEFAULT_SOURCE]: Undefine and redefine _DEFAULT_SOURCE,
_BSD_SOURCE and _SVID_SOURCE.
[!__STRICT_ANSI__ && !_ISOC99_SOURCE && !_POSIX_SOURCE &&
!_POSIX_C_SOURCE && !_XOPEN_SOURCE && !_BSD_SOURCE &&
!_SVID_SOURCE]: Likewise.
[_DEFAULT_SOURCE && !_POSIX_SOURCE && !_POSIX_C_SOURCE]
(__USE_POSIX_IMPLICITLY): Define.
[_DEFAULT_SOURCE && !_POSIX_SOURCE && !_POSIX_C_SOURCE]
(_POSIX_SOURCE): Undefine and redefine.
[_DEFAULT_SOURCE && !_POSIX_SOURCE && !_POSIX_C_SOURCE]
(_POSIX_C_SOURCE): Likewise.
* manual/creature.texi (_DEFAULT_SOURCE): Document.
(Feature Test Macros): Update documentation of default features.
Rajalakshmi Srinivasaraghavan [Thu, 19 Dec 2013 11:45:54 +0000 (06:45 -0500)]
benchtests: Add strtok benchmark
Allan McRae [Thu, 19 Dec 2013 01:53:22 +0000 (11:53 +1000)]
Stop partial menu generation in INSTALL file
The commit
d136c6dc resulted in menu text for the "Top" node being added
to the INSTALL file on regeneration. As the full menu is not displayed
in the plain text file anyway, suppress the menu section completely to
avoid the additional text.
Also regenerate the INSTALL file to commit a small formatting change
introduced in the same commit.
Paul Pluzhnikov [Thu, 19 Dec 2013 00:46:18 +0000 (16:46 -0800)]
Patch 2/4 of the effort to make TLS access async-signal-safe.
Add a signal-safe malloc replacement.
2013-12-18 Andrew Hunter <ahh@google.com>
* sysdeps/generic/ldsodefs.h (__signal_safe_memalign): New prototype.
(__signal_safe_malloc, __signal_safe_free): Likewise.
(__signal_safe_realloc, __signal_safe_calloc): Likewise.
* elf/dl-misc.c (__signal_safe_allocator_header): New struct.
(__signal_safe_memalign, __signal_safe_malloc): New function.
(__signal_safe_free, __signal_safe_realloc): Likewise.
(__signal_safe_calloc): Likewise.
* elf/dl-tls.c (allocate_dtv, _dl_clear_dtv): Call signal-safe
functions.
(_dl_deallocate_tls, _dl_update_slotinfo): Likewise.
Paul Pluzhnikov [Thu, 19 Dec 2013 00:24:19 +0000 (16:24 -0800)]
Patch 3/4 of the effort to make TLS access async-signal-safe.
Factor out _dl_clear_dtv.
2013-12-18 Andrew Hunter <ahh@google.com>
* elf/Versions (ld): Add _dl_clear_dtv.
* sysdeps/generic/ldsodefs.h (_dl_clear_dtv): New prototype.
* elf/dl-tls.c (_dl_clear_dtv): New function.
* nptl/allocatestack.c (get_cached_stack): Call _dl_clear_dtv.
Paul Pluzhnikov [Wed, 18 Dec 2013 23:07:11 +0000 (15:07 -0800)]
Patch [1/4] async-signal safe TLS.
2013-12-18 Andrew Hunter <ahh@google.com>
* sysdeps/generic/ldsodefs.h (_dl_mask_all_signals): New prototype.
(_dl_unmask_signals): Likewise.
* sysdeps/mach/hurd/dl-sysdep.h (_dl_mask_all_signals): New stub.
(_dl_unmask_all_signals): Likewise.
* sysdeps/unix/sysv/linux/dl-sysdep.h (_dl_mask_all_signals): New prototype.
(_dl_unmask_all_signals): Likewise.
* sysdeps/unix/sysv/linux/dl-sysdep.c (_dl_mask_all_signals): New function.
(_dl_unmask_signals): Likewise.
Brooks Moses [Wed, 18 Dec 2013 19:06:37 +0000 (11:06 -0800)]
Updated NEWS to mention resolution of bug 15846.
Brooks Moses [Thu, 12 Dec 2013 00:58:12 +0000 (16:58 -0800)]
Add error reporting (via errno) to getauxval().
[BZ 15846] As discussed in the recent thread on my $EXEC_ORIGIN patch
and in BZ 15846, getauxval() presently has no unambiguous way of
reporting an error condition. It currently returns zero on error, but
this may also be a valid result for some auxv entries. As there is no
clear invalid result for all current and future auxv entries, this patch
sets errno (following a suggestion in the BZ entry).
This version of the patch also adds documentation and tests for the
value-not-found conditions in getauxval().
Joseph Myers [Wed, 18 Dec 2013 17:59:29 +0000 (17:59 +0000)]
Move tests of jn and yn from libm-test.inc to auto-libm-test-in.
This patch moves tests of jn and yn to auto-libm-test-in, adding the
required support for gen-auto-libm-tests (and adding a missing
assertion there and fixing logic that was broken for functions with
integer arguments).
Tested x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add tests of jn and yn.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (jn_test_data): Use AUTO_TESTS_if_f.
(yn_test_data): Likewise.
* math/gen-auto-libm-tests.c (func_calc_method): Add value
mpfr_if_f.
(func_calc_desc): Add mpfr_if_f union field.
(FUNC_mpfr_if_f): New macro.
(test_functions): Add jn and yn.
(calc_generic_results): Assert type of second input for
mpfr_ff_f. Handle mpfr_if_f.
(output_for_one_input_case): Disable all checking for arguments
fitting floating-point types in case of an integer argument.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
Joseph Myers [Wed, 18 Dec 2013 15:17:39 +0000 (15:17 +0000)]
Update powerpc-nofpu localplt.data for fegetround hidden_proto / hidden_def.
My recent changes that added libm_hidden_proto / libm_hidden_def for
fegetround had the side effect of removing the need for a
localplt.data entry for fegetround for powerpc-nofpu. This patch
removes that entry. Tested powerpc-nofpu.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/localplt.data:
Don't expect fegetround reference in libm.so.
Ondřej Bílka [Wed, 18 Dec 2013 13:29:47 +0000 (14:29 +0100)]
Add missing deftp to fix commit
4d84e6addd62bdc256627af.
Marcus Shawcroft [Tue, 17 Dec 2013 18:12:30 +0000 (18:12 +0000)]
Compile e_sqrt.c with -ffp-contract=off.
Marcus Shawcroft [Wed, 18 Dec 2013 10:00:07 +0000 (10:00 +0000)]
[AArch64] Save and restore q0-q7 on entry to dynamic linker.
[BZ #15128] Ensure all argument passing registers are saved and
restored on entry to dynamic linker.
Joseph Myers [Wed, 18 Dec 2013 11:46:16 +0000 (11:46 +0000)]
Mark some hypot tests no-test-inline.
As needed on x86.
* math/auto-libm-test-in: Mark some hypot tests no-test-inline.
* math/auto-libm-test-out: Regenerated.
Joseph Myers [Wed, 18 Dec 2013 11:38:27 +0000 (11:38 +0000)]
Fix ldbl-128 logl for subnormals (bug 16338).
This patch fixes bug 16338, ldbl-128 logl not handling subnormals
(with consequent inaccuracy for lgammal as well). The fix is simply
to use __frexpl when determining the exponent, as done already in
log2l and log10l. Given the lack of testing of small arguments to any
of the log* functions, appropriate tests are added for all of them.
Tested x86_64 and x86 and ulps updated accordingly, and spot tests
also run for mips64 to confirm the ldbl-128 fix.
Note that while this fixes lgammal inaccuracy for small positive
arguments, I suspect that there will still be problems with spurious
underflows in that case.
* sysdeps/ieee754/ldbl-128/e_logl.c (__ieee754_logl): Use __frexpl
to determine exponent and adjust argument to have exponent of -1.
* math/auto-libm-test-in: Add more tests of log, log10, log1p and
log2.
* math/auto-libm-test-out: Regenerated.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
Ondřej Bílka [Wed, 18 Dec 2013 10:16:47 +0000 (11:16 +0100)]
Update documentation after dropping PER_THREAD conditional.
In probes documentation we described what happens when PER_THREAD is
disabled which is now not relevant.
Andreas Schwab [Wed, 18 Dec 2013 01:53:27 +0000 (11:53 +1000)]
Remove use of SSE4.2 functions for strstr on i686
The SSE4.2 have been removed from x86_64 by commit
584b18eb. This patch
fixes the build on i686, which attempts to use the removed files.
Joseph Myers [Tue, 17 Dec 2013 18:53:32 +0000 (18:53 +0000)]
Remove unused files from sysdeps/unix/bsd/bsd4.4/bits/.
Paul Eggert [Wed, 18 Sep 2013 20:15:12 +0000 (13:15 -0700)]
Support TZ transition times < 00:00:00.
This is needed for version-3 tz-format files; it supports time
stamps past 2037 for America/Godthab (the only entry in the tz
database for which this change is relevant).
* manual/time.texi (TZ Variable): Document transition times
from -167:59:59 through -00:00:01.
* time/tzset.c (tz_rule): Time of day is now signed.
(__tzset_parse_tz): Parse negative time of day.
Paul Eggert [Wed, 18 Sep 2013 20:01:11 +0000 (13:01 -0700)]
Document TZ transition times >= 25:00:00.
* manual/time.texi (TZ Variable): Document transition times from
25:00:00 through 167:59:59. These are already supported, and this
support will help with version-3 tz-format files.
Paul Eggert [Wed, 18 Sep 2013 19:58:13 +0000 (12:58 -0700)]
* manual/time.texi (TZ Variable): Modernize North America example
to reflect current (i.e., 2007-and-later) daylight saving rules.
Paul Eggert [Wed, 18 Sep 2013 19:54:53 +0000 (12:54 -0700)]
* manual/time.texi (TZ Variable): POSIX.1 hour can be 24.
Joseph Myers [Tue, 17 Dec 2013 18:12:52 +0000 (18:12 +0000)]
Remove various unused files from sysdeps/unix/bsd/.
Joseph Myers [Tue, 17 Dec 2013 18:11:48 +0000 (18:11 +0000)]
Remove libbsd-compat dummy library.
Joseph Myers [Tue, 17 Dec 2013 18:05:42 +0000 (18:05 +0000)]
Remove __FAVOR_BSD.
Marcus Shawcroft [Tue, 17 Dec 2013 13:29:04 +0000 (13:29 +0000)]
[AArch64] Implement FUTEX_*_REQUEUE_PI
Adhemerval Zanella [Tue, 17 Dec 2013 16:23:00 +0000 (10:23 -0600)]
Update powerpc-fpu ULPs.
Joseph Myers [Tue, 17 Dec 2013 13:43:40 +0000 (13:43 +0000)]
Fix dbl-64 hypot spurious underflows (bug 16314).
Joseph Myers [Tue, 17 Dec 2013 13:42:13 +0000 (13:42 +0000)]
Fix hypot handling of subnormals (bug 16316, bug 16330).
Marcus Shawcroft [Tue, 17 Dec 2013 13:03:01 +0000 (13:03 +0000)]
[AArch64] libm-test-ulps regenerated from scratch.
Marcus Shawcroft [Tue, 17 Dec 2013 12:28:10 +0000 (12:28 +0000)]
[AArch64] Back out sqrt() addition to libm-test-ulps.
Kaz Kojima [Tue, 17 Dec 2013 00:00:05 +0000 (09:00 +0900)]
Make soft-float sh use soft-fp fma/fmaf.
Roland McGrath [Mon, 16 Dec 2013 22:09:52 +0000 (14:09 -0800)]
Clean up setjmp use in dl-error.c.
Joseph Myers [Mon, 16 Dec 2013 21:18:07 +0000 (21:18 +0000)]
Move tests of atan2, hypot and pow from libm-test.inc to auto-libm-test-in.
Joseph Myers [Mon, 16 Dec 2013 18:25:54 +0000 (18:25 +0000)]
Add missing bug number to NEWS.
Will Newton [Wed, 6 Nov 2013 16:07:25 +0000 (16:07 +0000)]
manual/memory.texi: Document aligned_alloc.
ChangeLog:
2013-12-16 Will Newton <will.newton@linaro.org>
* manual/memory.texi (Malloc Examples): Mention aligned_alloc.
(Aligned Memory Blocks): Add documentation for aligned_alloc
and suggest it as an alternative to posix_memalign.
(Hooks for Malloc): Document __memalign_hook is also called
for aligned_alloc. (Summary of Malloc): Add summary for
aligned alloc. Document __memalign_hook is also called
for aligned_alloc.
Will Newton [Wed, 6 Nov 2013 09:48:10 +0000 (09:48 +0000)]
manual/memory.texi: Bring aligned allocation docs up to date.
The current documentation suggests using memalign and valloc which
are now considered obsolete, so suggest using posix_memalign instead.
Also document the possible error return and errno values for memalign
and posix_memalign and improve documentation of __memalign_hook.
ChangeLog:
2013-12-16 Will Newton <will.newton@linaro.org>
* manual/memory.texi (Malloc Examples): Clarify default
alignment documentation. Suggest posix_memalign rather
than memalign or valloc.
(Aligned Memory Blocks): Remove suggestion to use memalign
or valloc. Remove obsolete comment about BSD.
Document memalign errno values and mark the function obsolete.
Document posix_memalign returned error codes. Mark valloc
as obsolete. (Hooks for Malloc): __memalign_hook is also
called for posix_memalign and valloc.
(Summary of Malloc): Add posix_memalign to function summary.
__memalign_hook is also called for posix_memalign and valloc.
Siddhesh Poyarekar [Mon, 16 Dec 2013 14:33:04 +0000 (20:03 +0530)]
Minor code cleanup in s_sin.c
- Remove redundant mynumber union definitions
- Clean up a clumsy ternary operator
- Rename TAYLOR_SINCOS to TAYLOR_SIN since we're only expanding the
sin Taylor series in it.
Allan McRae [Mon, 16 Dec 2013 11:45:27 +0000 (21:45 +1000)]
Set AUTOCONF variable when maintainer-mode is not used
Fixes build issue introduced in
8894bad3 when configure.ac is altered
and maintainer-mode is not enabled.
Allan McRae [Mon, 16 Dec 2013 02:44:14 +0000 (12:44 +1000)]
Update file name in x86_64 ifunc list
File name update missed in commit
584b18eb.
Allan McRae [Mon, 16 Dec 2013 01:25:04 +0000 (11:25 +1000)]
Add --enable-maintainer-mode configure option
Autoconf is tested for and run if needed only when --enable-maintainer-mode
is used on configure. This results in the autom4te.cache directory only
being written in the source directory during configure if automatic
autoconf usage is requested.
Fixes BZ #14120.
Allan McRae [Mon, 16 Dec 2013 01:21:08 +0000 (11:21 +1000)]
Add systemd unit file for nscd
Provide an example systemd unit and tmpfile for running nscd.
Ondřej Bílka [Sat, 14 Dec 2013 18:33:56 +0000 (19:33 +0100)]
Add strstr with unaligned loads. Fixes bug 12100.
A sse42 version of strstr used pcmpistr instruction which is quite
ineffective. A faster way is look for pairs of characters which is uses
sse2, is faster than pcmpistr and for real strings a pairs we look for
are relatively rare.
For linear time complexity we use buy or rent technique which switches
to two-way algorithm when superlinear behaviour is detected.
Kaz Kojima [Sat, 14 Dec 2013 01:12:32 +0000 (10:12 +0900)]
Move sysdeps/sh/sh4/fpu/bits/fenv.h to sysdeps/sh/bits/.
Adhemerval Zanella [Fri, 13 Dec 2013 21:05:56 +0000 (16:05 -0500)]
PowerPC: Update NEWS with ppc64 STT_GNU_IFUNC support
Adhemerval Zanella [Fri, 13 Dec 2013 20:38:01 +0000 (15:38 -0500)]
PowerPC: multiarch hypot/hypotf for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 20:37:23 +0000 (15:37 -0500)]
PowerPC: multiarch modf/modff for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 20:36:33 +0000 (15:36 -0500)]
PowerPC: multiarch logb/logbl/logbf for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 20:35:44 +0000 (15:35 -0500)]
PowerPC: multiarch isinf/isinff for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 20:34:52 +0000 (15:34 -0500)]
PowerPC: multiarch finite/finitef for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 20:33:54 +0000 (15:33 -0500)]
PowerPC: multiarch llrint/lrint for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 20:32:58 +0000 (15:32 -0500)]
PowerPC: multiarch copysign/copysignf for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 20:30:57 +0000 (15:30 -0500)]
PowerPC: multiarch trunc/truncf for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 20:06:01 +0000 (15:06 -0500)]
PowerPC: multiarch round/roundf for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 20:04:04 +0000 (15:04 -0500)]
PowerPC: multiarch floor/floorf for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 20:02:32 +0000 (15:02 -0500)]
PowerPC: multiarch ceil/ceilf for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 20:01:54 +0000 (15:01 -0500)]
PowerPC: multiarch llround/lround for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 20:01:10 +0000 (15:01 -0500)]
PowerPC: multiarch isnan/isnanf for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 19:58:02 +0000 (14:58 -0500)]
PowerPC: Adjust multiarch Implies for PowerPC64
This patch adds Implies files on multiarch folder for POWER chips so
multirach is enabled when building with --with-cpu and powerN
option.
Adhemerval Zanella [Fri, 13 Dec 2013 19:56:09 +0000 (14:56 -0500)]
PowerPC: Cleaning up uneeded sqrt routines
For PPC64, all the wrappers at sysdeps are superfluous: they are
basically the same implementation from math/w_sqrt.c with the
'#ifdef _IEEE_LIBM'. And the power4 version just force the 'fsqrt'
instruction utilization with an inline assembly, which is already
handled by math_private.h __ieee754_sqrt implementation.
Adhemerval Zanella [Fri, 13 Dec 2013 19:55:22 +0000 (14:55 -0500)]
PowerPC: multiarch stpcpy for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 19:54:41 +0000 (14:54 -0500)]
PowerPC: multiarch strcpy for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 19:54:08 +0000 (14:54 -0500)]
PowerPC: multiarch wordcopy for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 19:53:25 +0000 (14:53 -0500)]
PowerPC: multiarch wcscpy for PowerPC64.
Adhemerval Zanella [Fri, 13 Dec 2013 19:52:48 +0000 (14:52 -0500)]
PowerPC: multiarch wcsrchr for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 19:51:36 +0000 (14:51 -0500)]
PowerPC: multiarch wcschr for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 19:50:26 +0000 (14:50 -0500)]
PowerPC: multiarch strchrnul for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 19:49:54 +0000 (14:49 -0500)]
PowerPC: multiarch strchr for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 19:48:48 +0000 (14:48 -0500)]
PowerPC: multiarch strncmp for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 19:40:28 +0000 (14:40 -0500)]
PowerPC: multiarch strncasecmp for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 19:39:51 +0000 (14:39 -0500)]
PowerPC: multiarch strcasecmp for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 19:38:50 +0000 (14:38 -0500)]
PowerPC: multiarch strnlen for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 19:38:17 +0000 (14:38 -0500)]
PowerPC: multiarch strlen for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 19:37:26 +0000 (14:37 -0500)]
PowerPC: multiarch rawmemchr for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 19:36:50 +0000 (14:36 -0500)]
PowerPC: multiarch memrchr for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 19:35:28 +0000 (14:35 -0500)]
PowerPC: multiarch memchr for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 19:34:06 +0000 (14:34 -0500)]
PowerPC: multiarch mempcpy for PowerPC64
Adhemerval Zanella [Fri, 13 Dec 2013 19:33:16 +0000 (14:33 -0500)]
PowerPC: multiarch memset/bzero for PowerPC64