Compare commits

..
Author SHA1 Message Date
Ryan S. Arnold ac58450e8c Add #include <stdint.h> for uint[32|64]_t usage in installed headers. 2013-05-01 10:59:42 -05:00
Richard Smith 0695940b8a Use __gnu_inline__ for __extern_always_inline in g++-4.2
Use the __gnu_inline__ attribute in _FORTIFY_SOURCE's __extern_always_inline
macro whenever the compiler supports it. Previously this macro only included
the __gnu_inline__ attribute in C++ mode for gcc >= 4.3. However,
__gnu_inline__ semantics are always desired for the __extern_always_inline
functions, and are available in g++ 4.2 (and some releases of g++ 4.1, and
also in Clang, which claims to be g++ 4.2).

This change stops g++-4.2 from emitting weak definitions for the fortify
wrapper functions if they can't be inlined, and also improves Clang
compatibility.
2013-05-01 21:59:01 +10:00
Joseph Myers 10de07f5fd Fix catan, catanh spurious underflows (bug 15423). 2013-05-01 10:07:00 +00:00
Adhemerval Zanella cb4d54147e Update powerpc libm-test ULPs 2013-04-30 08:51:02 -05:00
Joseph Myers 296f21e7bd Add bug 15416 to NEWS. 2013-04-30 11:29:32 +00:00
Joseph Myers caf84319c1 Fix catan, catanh inaccuracy from atan2 denominators near 0 (bug 15416). 2013-04-30 11:27:35 +00:00
Siddhesh Poyarekar 6dbe713d85 Format s_sin.c 2013-04-30 14:18:57 +05:30
Siddhesh Poyarekar f0ee064b7d Allow multiple input domains to be run in the same benchmark program
Some math functions have distinct performance characteristics in
specific domains of inputs, where some inputs return via a fast path
while other inputs require multiple precision calculations, that too
at different precision levels.  The way to implement different domains
was to have a separate source file and benchmark definition, resulting
in separate programs.

This clutters up the benchmark, so this change allows these domains to
be consolidated into the same input file.  To do this, the input file
format is now enhanced to allow comments with a preceding # and
directives with two # at the begining of a line.  A directive that
looks like:

tells the benchmark generation script that what follows is a different
domain of inputs.  The value of the 'name' directive (in this case,
foo) is used in the output.  The two input domains are then executed
sequentially and their results collated separately.  with the above
directive, there would be two lines in the result that look like:

func(): ....
func(foo): ...
2013-04-30 14:17:57 +05:30
Siddhesh Poyarekar d569c6eeb4 Maintain runtime of each benchmark at ~10 seconds
The idea to run benchmarks for a constant number of iterations is
problematic.  While the benchmarks may run for 10 seconds on x86_64,
they could run for about 30 seconds on powerpc and worse, over 3
minutes on arm.  Besides that, adding a new benchmark is cumbersome
since one needs to find out the number of iterations needed for a
sufficient runtime.

A better idea would be to run each benchmark for a specific amount of
time.  This patch does just that.  The run time defaults to 10 seconds
and it is configurable at command line:

  make BENCH_DURATION=5 bench
2013-04-30 14:10:20 +05:30
Roland McGrath a6a242fe7c Make stub fchdir.c define __fchdir. 2013-04-29 14:30:37 -07:00
Joseph Myers f2da779309 Integrate errno testing better in libm-test.inc. 2013-04-29 20:36:48 +00:00
Andreas Jaeger c3ed8088e4 BZ#15084: Apparent typos in strings in res_debug.c
[BZ #15084]
	* resolv/res_debug.c (p_option): Fix strings for RES_USEBSTRING
	and RES_USEVC.
2013-04-29 21:17:30 +02:00
Andreas Jaeger f1a24198af BZ#15085: Fix comments/strings for RES_NOCHECKNAME
[BZ #15085]
	* resolv/resolv.h (RES_NOCHECKNAME): Mark as unimplemented.
	* resolv/res_debug.c (p_option): Mark RES_NOCHECKNAME as
	unimplemented.
2013-04-29 21:11:13 +02:00
Andreas Jaeger 9ce3b2cbd2 BZ#15380: Fix initstate error return
[BZ #15380]
	* stdlib/random.c (__initstate): Return NULL if
	__initstate fails.
2013-04-29 21:02:16 +02:00
Andreas Jaeger b1a36ceb3b BZ#15086: Fix res_debug printing of options
[BZ# 15086]
	* resolv/res_debug.c (p_option): Handle RES_NOALIASES,
	RES_KEEPTSIG, RES_BLAST, RES_NOIP6DOTINT, RES_SNGLKUP,
	RES_SNGLKUPREOP.
2013-04-29 21:00:57 +02:00
Adhemerval Zanella 7e7b6f36a9 Update powerpc libm-test ULPs 2013-04-29 12:10:03 -05:00
Joseph Myers 4d14f4499d Add missing semicolons to libm-test.inc tests. 2013-04-29 13:48:19 +00:00
Joseph Myers 5b4217d71f Fix catan, catanh spurious overflows (bug 15409). 2013-04-27 14:57:41 +00:00
Nik Kalach d5ba74f764 Fix ia_FR postal format
2013-04-27  Nik Kalach  <nikka@fedoraproject.org>

	[BZ #15221]
	* locales/ia_FR: Fix postal_fmt definition.
2013-04-27 16:54:47 +02:00
Andreas Jaeger 4220c3ef77 Fix guards for qecvt
[BZ #15007]
	* stdlib/stdlib.h: Update guards for qecvt.
	* stdlib/bits/stdlib-ldbl.h: Sync guards for qecvt etc with
	<stdlib.h>.
2013-04-27 16:21:53 +02:00
Allan McRae 4721b2d1ca Update i386 libm-test ULPs 2013-04-27 15:13:12 +10:00
Joseph Myers 9457fd952c Fix catan, catanh missing underflows (bug 15406). 2013-04-26 19:26:22 +00:00
Joseph Myers f0302940e7 Fix csin, csinh, ccos, ccosh missing underflows (bug 15405). 2013-04-26 19:25:19 +00:00
Adhemerval Zanella aa630f590c PowerPC: modf optimization fix
This patch fix the 3c0265394d commits
by correctly setting minimum architecture for modf PPC optimization
to power5+ instead of power5 (since only on power5+ round/ceil will
be inline to inline assembly).
2013-04-26 13:00:56 -05:00
Markus Trippelsdorf 1b8359836d Update x86_64 ULPs
2013-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>

	* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2013-04-26 09:30:46 +02:00
Joseph Myers 804f604cdd Add missing bug numbers to NEWS. 2013-04-25 19:34:30 +00:00
Joseph Myers 73709b2611 Move x86_64-specific audit tests to sysdeps/x86_64/. 2013-04-25 19:23:11 +00:00
Paul Pluzhnikov 1ef74943ce Get rid of __STDC_FORMAT_MACROS, __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS 2013-04-25 11:08:31 -07:00
Maciej W. Rozycki ae9552cf7b Declare __ehdr_start with hidden visibility.
This avoids a linker bug triggering for MIPS SVR4 binaries:

http://sourceware.org/bugzilla/show_bug.cgi?id=15365

and regardless serves as a documentation of intent.
2013-04-25 16:14:49 +01:00
Maciej W. Rozycki 93fd48c5f6 soft-fp: s/sNAN/NAN/ -- no sNaNs are ever produced. 2013-04-25 16:02:26 +01:00
Carlos O'Donell 418601aa84 math: Use accurate answers for cos and sincos.
Use the most accurate hex literals possible for the answers to the
cos and sincos tests that vary according to the error in the rounding
of PI/2.

---

2013-04-24  Carlos O'Donell  <carlos@redhat.com>

	* math/libm-test.inc (cos_test): Use accurate hex constants.
	(sincost_test): Likewise.
2013-04-24 16:29:33 -04:00
Joseph Myers 5e22180060 Add catan, catanh tests at +/- 1 and +/- i. 2013-04-24 20:14:15 +00:00
Joseph Myers 77f143fdb4 Use suffixed floating-point constants in float and long double catan/catanh. 2013-04-24 18:59:37 +00:00
Joseph Myers 2f38fbfe09 Fix catan, catanh inaccuracy through use of log (bug 15394). 2013-04-24 18:49:13 +00:00
Siddhesh Poyarekar 45d69176e8 Mention files in which fast/slow paths of math functions are implemented 2013-04-24 14:07:40 +05:30
Roland McGrath d6f9bc519d Fix name space use in last commit. 2013-04-23 15:57:25 -07:00
Roland McGrath 87f51853ce Add generic POSIX implementation of C11 timespec_get. 2013-04-23 15:28:59 -07:00
Adhemerval Zanella 3c0265394d PowerPC: modf optimization
This patch implements modf/modff optimization for POWER by focus
on FP operations instead of relying in integer ones.
2013-04-23 13:38:52 -05:00
Siddhesh Poyarekar ff491d14a2 Consistently use ISSPACE to check for whitespace
Resolves #14888.

This only really manifests itself when there are no spaces between
format specifiers, which is not allowed by POSIX, but is allowed by
the glibc implementation.
2013-04-23 15:32:42 +05:30
Andreas Schwab 7ed3f4e859 Remove non-standard initialisation of flexible array member
This avoids GCC bug 28865.
2013-04-23 10:31:03 +02:00
Heiko Carstens 5c95f7b66b S/390: Change struct statfs[64] member types to unsigned values
Kay Sievers reported that coreutils' stat tool has a problem with
s390's statfs[64] definition:

> The definition of struct statfs::f_type needs a fix. s390 is the only
> architecture in the kernel that uses an int and expects magic
> constants lager than INT_MAX to fit into.
>
> A fix is needed to make Fedora boot on s390, it currently fails to do
> so. Userspace does not want to add code to paper-over this issue.

[...]

> Even coreutils cannot handle it:
>   #define RAMFS_MAGIC  0x858458f6
>   # stat -f -c%t /
>   ffffffff858458f6
>
>   #define BTRFS_SUPER_MAGIC 0x9123683E
>   # stat -f -c%t /mnt
>   ffffffff9123683e

The bug is caused by an implicit sign extension within the stat tool:

out_uint_x (pformat, prefix_len, statfsbuf->f_type);

where the format finally will be "%lx".
A similar problem can be found in the 'tail' tool.
s390 is the only architecture which has an int type f_type member in
struct statfs[64]. Other architectures have either unsigned ints or
long values, so that the problem doesn't occur there.

Therefore change the type of the f_type member to unsigned int, so
that we get zero extension instead sign extension when assignment to
a long value happens.

Reported-by: Kay Sievers <kay@vrfy.org>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
2013-04-23 08:59:35 +02:00
Jan-Benedict Glaw d34c915826 Fix getent to call endspent rather than endpwent for shadow database. 2013-04-22 10:44:31 -07:00
Siddhesh Poyarekar da1304bcc8 Consolidate pthread_attr value validation
Define inline functions that wrap around validation for each of the
pthread attributes to reduce duplication in code.
2013-04-22 10:28:31 +05:30
Siddhesh Poyarekar 2169712d9c Minor cleanup in getaddrinfo
Replace repeated computations of alloca size with a local variable
that stores the computed value.
2013-04-22 10:24:00 +05:30
David S. Miller 29c5de9984 Russian translations update.
* po/ru.po: Update Russion translation from translation project.
2013-04-21 15:36:14 -04:00
129 changed files with 9388 additions and 1918 deletions
+449
View File
@@ -1,3 +1,452 @@
2013-05-01 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
* bits/elfclass.h: Add missing #include <stdint.h> due to
uint[32|64]_t usage.
* bits/netdb.h: Likewise.
* sysdeps/powerpc/bits/link.h: Likewise.
* sysdeps/s390/bits/link.h: Likewise.
* sysdeps/sh/bits/link.h: Likewise.
* sysdeps/sparc/bits/link.h: Likewise.
* sysdeps/unix/sysv/linux/powerpc/bits/ppc.h: Likewise.
* sysdeps/unix/sysv/linux/s390/bits/elfclass.h: Likewise.
* sysdeps/x86/bits/link.h: Likewise.
* inet/netinet/icmp6.h: Likewise.
* inet/netinet/ip6.h: Likewise.
* nis/rpcsvc/nis.h: Likewise.
* nis/rpcsvc/nislib.h: Likewise.
* sunrpc/rpc/auth_des.h: Likewise.
* sunrpc/rpc/xdr.h: Likewise.
2013-05-01 Richard Smith <richard@metafoo.co.uk>
* misc/sys/cdefs.h (__extern_inline, __extern_always_inline)
[__GNUC__ && (__GNUC_STDC_INLINE__ || __GNUC_GNU_INLINE__)]:
Use __attribute__ ((__gnu_inline__)).
[__GNUC__ && !(__GNUC_STDC_INLINE__ || __GNUC_GNU_INLINE__)]:
Don't use __attribute__ ((__gnu_inline__)).
2013-05-01 Joseph Myers <joseph@codesourcery.com>
[BZ #15423]
* math/s_catan.c (__catan): Handle small real or imaginary part of
input specially to avoid spurious underflow.
* math/s_catanf.c (__catanf): Likewise.
* math/s_catanh.c (__catanh): Likewise.
* math/s_catanhf.c (__catanhf): Likewise.
* math/s_catanhl.c (__catanhl): Likewise.
* math/s_catanl.c (__catanl): Likewise.
* math/libm-test.inc (catan_test): Add more tests.
(catanh_test): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-04-30 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
* sysdeps/powerpc/fpu/libm-test-ulps: Update.
2013-04-30 Joseph Myers <joseph@codesourcery.com>
[BZ #15416]
* math/s_catan.c (__catan): Compute expressions 1 - x^2 - y^2 more
accurately for denominator in atan2.
* math/s_catanf.c (__catanf): Likewise.
* math/s_catanh.c (__catanh): Likewise.
* math/s_catanhf.c (__catanhf): Likewise.
* math/s_catanhl.c (__catanhl): Likewise.
* math/s_catanl.c (__catanl): Likewise.
* math/libm-test.inc (catan_test): Add more tests.
(catanh_test): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-04-30 Siddhesh Poyarekar <siddhesh@redhat.com>
* sysdeps/ieee754/dbl-64/s_sin.c: Format code.
* benchtests/Makefile (bench): Remove slow benchmarks.
* benchtests/atan-inputs: Add slow benchmark inputs.
* benchtests/bench-modf.c (NUM_VARIANTS): Define.
(BENCH_FUNC): Accept variant offset.
(VARIANT): Define.
* benchtests/bench-skeleton.c (main): Run benchmark for each
variant.
* benchtests/cos-inputs: Add slow benchmark inputs.
* benchtests/exp-inputs: Likewise.
* benchtests/pow-inputs: Likewise.
* benchtests/sin-inputs: Likewise.
* benchtests/slowatan-inputs: Remove.
* benchtests/slowatan.c: Remove.
* benchtests/slowcos-inputs: Remove.
* benchtests/slowcos.c: Remove.
* benchtests/slowexp-inputs: Remove.
* benchtests/slowexp.c: Remove.
* benchtests/slowpow-inputs: Remove.
* benchtests/slowpow.c: Remove.
* benchtests/slowsin-inputs: Remove.
* benchtests/slowsin.c: Remove.
* benchtests/slowtan-inputs: Remove.
* benchtests/slowtan.c: Remove.
* benchtests/tan-inputs: Add slow benchmark inputs.
* scripts/bench.pl: Parse comments and directives.
* benchtests/Makefile: Remove *-ITER. Define BENCH_DURATION
in CPPFLAGS.
($(objpfx)bench-%.c): Remove *-ITER.
* benchtests/bench-modf.c: Remove definition of ITER.
* benchtests/bench-skeleton.c (TIMESPEC_AFTER): New macro.
(main): Loop for DURATION seconds instead of fixed number of
iterations.
* scripts/bench.pl: Don't expect iterations in parameters.
2013-04-29 Roland McGrath <roland@hack.frob.com>
* io/fchdir.c (__fchdir): Renamed from fchdir.
(fchdir): Define as weak alias.
2013-04-29 Joseph Myers <joseph@codesourcery.com>
* math/libm-test.inc (ERRNO_UNCHANGED): New macro.
(ERRNO_EDOM): Likewise.
(ERRNO_ERANGE): Likewise.
(noErrnoTests): New variable.
(init_max_error): Set errno to 0.
(test_single_errno): New function.
(test_errno): Likewise.
(check_float_internal): Call test_errno. Set errno to 0.
(check_complex): Refer to errno tests in comment.
(check_int): Call test_errno. Set errno to 0.
(check_long): Likewise.
(check_bool): Likewise.
(check_longlong): Likewise.
(cos_test): Use ERRNO_* flags for errno tests instead of
check_int.
(expm1_test): Likewise.
(fmod_test): Likewise.
(ilogb_test): Likewise.
(lgamma_test): Likewise.
(pow_test): Likewise.
(remainder_test): Likewise.
(sin_test): Likewise.
(tan_test): Likewise.
(yn_test): Likewise.
(initialize): Set errno to 0.
(main): Print number of errno tests.
* math/gen-libm-test.pl (parse_args): Allow ERRNO flags on tests.
2013-04-29 Andreas Jaeger <aj@suse.de>
[BZ #15084]
* resolv/res_debug.c (p_option): Fix strings for RES_USEBSTRING
and RES_USEVC.
[BZ #15085]
* resolv/resolv.h (RES_NOCHECKNAME): Mark as unimplemented.
* resolv/res_debug.c (p_option): Mark RES_NOCHECKNAME as
unimplemented.
[BZ #15380]
* stdlib/random.c (__initstate): Return NULL if
__initstate fails.
[BZ #15086]
* resolv/res_debug.c (p_option): Handle RES_NOALIASES,
RES_KEEPTSIG, RES_BLAST, RES_NOIP6DOTINT, RES_SNGLKUP,
RES_SNGLKUPREOP.
2013-04-29 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
* sysdeps/powerpc/fpu/libm-test-ulps: Update.
2013-04-29 Joseph Myers <joseph@codesourcery.com>
* math/libm-test.inc (cacos_test): Add missing semicolons at ends
of individual tests.
(casin_test): Likewise.
(casinh_test): Likewise.
2013-04-27 Joseph Myers <joseph@codesourcery.com>
[BZ #15409]
* math/s_catan.c (__catan): Handle arguments with large real or
imaginary part separately without squaring.
* math/s_catanf.c (__catanf): Likewise.
* math/s_catanh.c (__catanh): Likewise.
* math/s_catanhf.c (__catanhf): Likewise.
* math/s_catanhl.c [LDBL_MANT_DIG == 106] (LDBL_EPSILON): Undefine
and redefine.
(__catanhl): Handle arguments with large real or imaginary part
separately without squaring.
* math/s_catanl.c [LDBL_MANT_DIG == 106] (LDBL_EPSILON): Undefine
and redefine.
(__catanl): Handle arguments with large real or imaginary part
separately without squaring.
* math/libm-test.inc (catan_test): Add more tests.
(catanh_test): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-04-27 Andreas Jaeger <aj@suse.de>
[BZ #15007]
* stdlib/stdlib.h: Update guards for qecvt.
* stdlib/bits/stdlib-ldbl.h: Sync guards for qecvt etc with
<stdlib.h>.
2013-04-27 Allan McRae <allan@archlinux.org>
* sysdeps/i386/fpu/libm-test-ulps: Update.
2013-04-26 Joseph Myers <joseph@codesourcery.com>
[BZ #15406]
* math/s_catan.c: Include <float.h>.
(__catan): Ensure underflow exception occurs for underflowed
result.
* math/s_catanf.c: Include <float.h>.
(__catanf): Ensure underflow exception occurs for underflowed
result.
* math/s_catanh.c: Include <float.h>.
(__catanh): Ensure underflow exception occurs for underflowed
result.
* math/s_catanhf.c: Include <float.h>.
(__catanhf): Ensure underflow exception occurs for underflowed
result.
* math/s_catanhl.c: Include <float.h>.
(__catanhl): Ensure underflow exception occurs for underflowed
result.
* math/s_catanl.c: Include <float.h>.
(__catanl): Ensure underflow exception occurs for underflowed
result.
* math/libm-test.inc (catan_test): Add more tests.
(catanh_test): Likewise.
[BZ #15405]
* math/s_ccosh.c (__ccosh): Ensure underflow exception occurs for
underflowed result.
* math/s_ccoshf.c (__ccoshf): Likewise.
* math/s_ccoshl.c (__ccoshl): Likewise.
* math/s_csin.c (__csin): Likewise.
* math/s_csinf.c (__csinf): Likewise.
* math/s_csinh.c (__csinh): Likewise.
* math/s_csinhf.c (__csinhf): Likewise.
* math/s_csinhl.c (__csinhl): Likewise.
* math/s_csinl.c (__csinl): Likewise.
* math/libm-test.inc (ccos_test): Add more tests.
(ccosh_test): Likewise.
(csin_test): Likewise.
(csinh_test): Likewise.
2013-04-26 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
* sysdeps/powerpc/power5/fpu/s_modf.c: Moved to ...
* sysdeps/powerpc/power5+/fpu/s_modf.c: ... this.
* sysdeps/powerpc/power5/fpu/s_modff.c: Moved to ...
* sysdeps/powerpc/power5+/fpu/s_modff.c: ... this.
* sysdeps/powerpc/powerpc32/power5+/Implies: Add powerpc/power5+ and
powerpc/power5+/fpu folders.
* sysdeps/powerpc/powerpc64/power5+/Implies: Likewise.
2013-04-26 Markus Trippelsdorf <markus@trippelsdorf.de>
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2013-04-25 Joseph Myers <joseph@codesourcery.com>
* elf/Makefile [$(config-machine) = x86_64] (tests): Remove
additions to variable.
[$(config-machine) = x86_64] (modules-names): Likewise.
($(objpfx)tst-audit3): Remove dependency.
($(objpfx)tst-audit3.out): Likewise.
($(objpfx)tst-audit4): Likewise.
($(objpfx)tst-audit4.out): Likewise.
($(objpfx)tst-audit5): Likewise.
($(objpfx)tst-audit5.out): Likewise.
($(objpfx)tst-audit6): Likewise.
($(objpfx)tst-audit6.out): Likewise.
($(objpfx)tst-audit7): Likewise.
($(objpfx)tst-audit7.out): Likewise.
(tst-audit3-ENV): Remove variable.
(tst-audit4-ENV): Likewise.
(tst-audit5-ENV): Likewise.
(tst-audit6-ENV): Likewise.
(tst-audit7-ENV): Likewise.
[$(config-cflags-avx) = yes] (AVX-CFLAGS): Likewise.
[$(config-cflags-avx) = yes] (CFLAGS-tst-audit4.c): Remove
addition to variable.
[$(config-cflags-avx) = yes] (CFLAGS-tst-auditmod4a.c): Likewise.
[$(config-cflags-avx) = yes] (CFLAGS-tst-auditmod4b.c): Likewise.
[$(config-cflags-avx) = yes] (CFLAGS-tst-auditmod6b.c): Likewise.
[$(config-cflags-avx) = yes] (CFLAGS-tst-auditmod6c.c): Likewise.
[$(config-cflags-avx) = yes] (CFLAGS-tst-auditmod7b.c): Likewise.
* sysdeps/x86_64/Makefile [$(subdir) = elf] (tests): Add
tst-audit3, tst-audit4 and tst-audit5.
[$(subdir) = elf && $(config-cflags-avx) = yes] (tests): Add
tst-audit6 and tst-audit7.
[$(subdir) = elf] (modules-names): Add audit modules for those
tests.
[$(subdir) = elf] ($(objpfx)tst-audit3): New dependency.
[$(subdir) = elf] ($(objpfx)tst-audit3.out): Likewise.
[$(subdir) = elf] ($(objpfx)tst-audit4): Likewise.
[$(subdir) = elf] ($(objpfx)tst-audit4.out): Likewise.
[$(subdir) = elf] ($(objpfx)tst-audit5): Likewise.
[$(subdir) = elf] ($(objpfx)tst-audit5.out): Likewise.
[$(subdir) = elf] ($(objpfx)tst-audit6): Likewise.
[$(subdir) = elf] ($(objpfx)tst-audit6.out): Likewise.
[$(subdir) = elf] ($(objpfx)tst-audit7): Likewise.
[$(subdir) = elf] ($(objpfx)tst-audit7.out): Likewise.
[$(subdir) = elf] (tst-audit3-ENV): New variable.
[$(subdir) = elf] (tst-audit4-ENV): Likewise.
[$(subdir) = elf] (tst-audit5-ENV): Likewise.
[$(subdir) = elf] (tst-audit6-ENV): Likewise.
[$(subdir) = elf] (tst-audit7-ENV): Likewise.
[$(subdir) = elf && $(config-cflags-avx) = yes] (AVX-CFLAGS):
Likewise.
[$(subdir) = elf && $(config-cflags-avx) = yes]
(CFLAGS-tst-audit4.c): Append $(AVX-CFLAGS).
[$(subdir) = elf && $(config-cflags-avx) = yes]
(CFLAGS-tst-auditmod4a.c): Likewise.
[$(subdir) = elf && $(config-cflags-avx) = yes]
(CFLAGS-tst-auditmod4b.c): Likewise.
[$(subdir) = elf && $(config-cflags-avx) = yes]
(CFLAGS-tst-auditmod6b.c): Likewise.
[$(subdir) = elf && $(config-cflags-avx) = yes]
(CFLAGS-tst-auditmod6c.c): Likewise.
[$(subdir) = elf && $(config-cflags-avx) = yes]
(CFLAGS-tst-auditmod7b.c): Likewise.
* elf/tst-audit3.c: Move to ...
* sysdeps/x86_64/tst-audit3.c: ... here.
* elf/tst-audit4.c: Move to ...
* sysdeps/x86_64/tst-audit4.c: ... here.
* elf/tst-audit5.c: Move to ...
* sysdeps/x86_64/tst-audit5.c: ... here.
* elf/tst-audit6.c: Move to ...
* sysdeps/x86_64/tst-audit6.c: ... here.
* elf/tst-audit7.c: Move to ...
* sysdeps/x86_64/tst-audit7.c: ... here.
* elf/tst-auditmod3a.c: Move to ...
* sysdeps/x86_64/tst-auditmod3a.c: ... here.
* elf/tst-auditmod3b.c: Move to ...
* sysdeps/x86_64/tst-auditmod3b.c: ... here.
* elf/tst-auditmod4a.c: Move to ...
* sysdeps/x86_64/tst-auditmod4a.c: ... here.
* elf/tst-auditmod4b.c: Move to ...
* sysdeps/x86_64/tst-auditmod4b.c: ... here.
* elf/tst-auditmod5a.c: Move to ...
* sysdeps/x86_64/tst-auditmod5a.c: ... here.
* elf/tst-auditmod5b.c: Move to ...
* sysdeps/x86_64/tst-auditmod5b.c: ... here.
* elf/tst-auditmod6a.c: Move to ...
* sysdeps/x86_64/tst-auditmod6a.c: ... here.
* elf/tst-auditmod6b.c: Move to ...
* sysdeps/x86_64/tst-auditmod6b.c: ... here.
* elf/tst-auditmod6c.c: Move to ...
* sysdeps/x86_64/tst-auditmod6c.c: ... here.
* elf/tst-auditmod7a.c: Move to ...
* sysdeps/x86_64/tst-auditmod7a.c: ... here.
* elf/tst-auditmod7b.c: Move to ...
* sysdeps/x86_64/tst-auditmod7b.c: ... here.
2013-04-25 Paul Pluzhnikov <ppluzhnikov@google.com>
[BZ #15366]
* sysdeps/generic/inttypes.h (PRId8, PRId16, etc.):
define unconditionally.
* sysdeps/generic/stdint.h (INT8_MIN, INT16_MIN, etc.):
define unconditionally.
(INT8_C, INT16_C, etc.): Likewise.
2013-04-25 Maciej W. Rozycki <macro@codesourcery.com>
* csu/libc-start.c (__libc_start_main) [!SHARED]: Declare
__ehdr_start with hidden visibility.
* soft-fp/op-common.h (_FP_SQRT): s/sNAN/NAN/ in a comment.
2013-04-24 Carlos O'Donell <carlos@redhat.com>
* math/libm-test.inc (cos_test): Use accurate hex constants.
(sincost_test): Likewise.
2013-04-24 Joseph Myers <joseph@codesourcery.com>
* math/libm-test.inc (catan_test): Add more tests.
(catanh_test): Likewise.
* math/s_catanf.c (__catanf): Use suffixed floating-point
constants.
* math/s_catanhf.c (__catanhf): Likewise.
* math/s_catanhl.c (__catanhl): Likewise.
* math/s_catanl.c (__catanl): Likewise.
[BZ #15394]
* math/s_catan.c (__catan): Calculate imaginary part of result
with log1p not log unless computing log of number close to 0.
* math/s_catanf.c (__catanf): Likewise.
* math/s_catanl.c (__catanl): Likewise.
* math/s_catanh.c (__catanh): Calculate real part of result with
log1p not log unless computing log of number close to 0.
* math/s_catanhf.c (__catanhf): Likewise.
* math/s_catanhl.c (__catanhl): Likewise.
* math/libm-test.inc (catan_test): Add more tests.
(catanh_test): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-04-24 Siddhesh Poyarekar <siddhesh@redhat.com>
* benchtests/Makefile: Mention files in which fast and slow
paths of math functions are implemented.
2013-04-23 Roland McGrath <roland@hack.frob.com>
* sysdeps/posix/timespec_get.c: New file.
2013-04-23 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
* sysdeps/powerpc/power5/fpu/s_modf.c: New file: modf optimization for
POWER.
* sysdeps/powerpc/power5/fpu/s_modff.c: New file: modff optimization
for POWER.
* sysdeps/powerpc/powerpc64/power5/Implies: Add powerpc/power5 and
powerpc/power5/fpu folders.
* sysdeps/powerpc/powerpc32/power5/Implies: Likewise.
* benchtests/Makefile: Add modf testcase.
* benchtests/bench-modf.c: New file: Benchmark test for mo
2013-04-23 Siddhesh Poyarekar <siddhesh@redhat.com>
[BZ #14888]
* time/Makefile (tests): Add tst-strptime-whitespace.
* time/strptime_l.c (get_number): Use ISSPACE.
(__strptime_internal): Likewise.
* time/tst-strptime-whitespace.c: New test case.
2013-04-23 Andreas Schwab <schwab@linux-m68k.org>
* nss/nss_files/files-init.c (TF): Don't initialize flexible array
member.
(_nss_files_init): Set it here.
2013-04-23 Heiko Carstens <heiko.carstens@de.ibm.com>
* sysdeps/unix/sysv/linux/s390/bits/statfs.h: Change types of
f_type, f_bsize, f_namelen, f_frsize, f_flags,and f_spare to
unsigned.
2013-04-22 Jan-Benedict Glaw <jbglaw@getslash.de>
* nss/getent.c (shadow_keys): Call endspent, not endpwent.
2013-04-22 Siddhesh Poyarekar <siddhesh@redhat.com>
* sysdeps/posix/getaddrinfo.c (getaddrinfo): Compute results
size just once.
2013-04-21 David S. Miller <davem@davemloft.net>
* po/ru.po: Update Russion translation from translation project.
2013-04-17 Adam Conrad <adconrad@0c3.net>
* sysdeps/unix/sysv/linux/sys/fsuid.h: Remove __wur from setfsuid
+6 -5
View File
@@ -10,11 +10,12 @@ Version 2.18
* The following bugs are resolved with this release:
10060, 10062, 10357, 11120, 11561, 12723, 13550, 13889, 13951, 13988,
14142, 14176, 14200, 14293, 14317, 14327, 14478, 14496, 14686, 14812,
14920, 14964, 14981, 14982, 14985, 14994, 14996, 15003, 15006, 15020,
15023, 15036, 15054, 15055, 15062, 15078, 15160, 15214, 15232, 15234,
15283, 15285, 15287, 15304, 15305, 15307, 15309, 15327, 15330, 15335,
15336, 15337, 15342, 15346, 15361.
14142, 14176, 14200, 14280, 14293, 14317, 14327, 14478, 14496, 14686,
14812, 14888, 14920, 14964, 14981, 14982, 14985, 14994, 14996, 15003,
15006, 15007, 15020, 15023, 15036, 15054, 15055, 15062, 15078, 15084,
15085, 15086, 15160, 15214, 15221, 15232, 15234, 15283, 15285, 15287,
15304, 15305, 15307, 15309, 15327, 15330, 15335, 15336, 15337, 15342,
15346, 15361, 15366, 15380, 15394, 15405, 15406, 15409, 15416, 15423.
* CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla
#15078).
+9 -64
View File
@@ -23,12 +23,6 @@
# - Append the function name to the bench variable
# - Define foo-ITER with the number of iterations you want to run. Keep it
# high enough that the overhead of clock_gettime is only a small fraction of
# the total run time of the test. A good idea would be to keep the run time
# of each test at around 10 seconds for x86_64. That is just a guideline,
# since some scenarios may require higher run times.
# - Define foo-ARGLIST as a colon separated list of types of the input
# arguments. Use `void` if function does not take any inputs. Put in quotes
# if the input argument is a pointer, e.g.:
@@ -45,92 +39,36 @@
# See pow-inputs for an example.
subdir := benchtests
bench := exp pow rint sin cos tan atan \
slowexp slowpow slowsin slowcos slowtan slowatan
bench := exp pow rint sin cos tan atan modf
# exp function fast path
exp-ITER = 5e8
exp-ARGLIST = double
exp-RET = double
LDFLAGS-bench-exp = -lm
# pow function fast path
pow-ITER = 2e8
pow-ARGLIST = double:double
pow-RET = double
LDFLAGS-bench-pow = -lm
rint-ITER = 250000000
rint-ARGLIST = double
rint-RET = double
LDFLAGS-bench-rint = -lm
# exp function slowest path
slowexp-ITER = 3e5
slowexp-ARGLIST = double
slowexp-RET = double
slowexp-INCLUDE = slowexp.c
LDFLAGS-bench-slowexp = -lm
# sin function fast path
sin-ITER = 3e9
sin-ARGLIST = double
sin-RET = double
LDFLAGS-bench-sin = -lm
# cos function fast path
cos-ITER = 3e9
cos-ARGLIST = double
cos-RET = double
LDFLAGS-bench-cos = -lm
# tan function fast path
tan-ITER = 3e9
tan-ARGLIST = double
tan-RET = double
LDFLAGS-bench-tan = -lm
# atan function fast path
atan-ITER = 6e9
atan-ARGLIST = double
atan-RET = double
LDFLAGS-bench-atan = -lm
# pow function slowest path
slowpow-ITER = 1e5
slowpow-ARGLIST = double:double
slowpow-RET = double
slowpow-INCLUDE = slowpow.c
LDFLAGS-bench-slowpow = -lm
# sin function slowest path
slowsin-ITER = 3e7
slowsin-ARGLIST = double
slowsin-RET = double
slowsin-INCLUDE = slowsin.c
LDFLAGS-bench-slowsin = -lm
# cos function slowest path
slowcos-ITER = 3e7
slowcos-ARGLIST = double
slowcos-RET = double
slowcos-INCLUDE = slowcos.c
LDFLAGS-bench-slowcos = -lm
# tan function slowest path
slowtan-ITER = 3e7
slowtan-ARGLIST = double
slowtan-RET = double
slowtan-INCLUDE = slowtan.c
LDFLAGS-bench-slowtan = -lm
# atan function slowest path
slowatan-ITER = 3e8
slowatan-ARGLIST = double
slowatan-RET = double
slowatan-INCLUDE = slowatan.c
LDFLAGS-bench-slowatan = -lm
# Rules to build and execute the benchmarks. Do not put any benchmark
@@ -141,6 +79,13 @@ include ../Rules
binaries-bench := $(addprefix $(objpfx)bench-,$(bench))
# The default duration: 10 seconds.
ifndef BENCH_DURATION
BENCH_DURATION := 10
endif
CPPFLAGS-nonlib = -DDURATION=$(BENCH_DURATION)
# This makes sure CPPFLAGS-nonlib and CFLAGS-nonlib are passed
# for all these modules.
cpp-srcs-left := $(binaries-bench:=.c)
@@ -176,5 +121,5 @@ $(objpfx)bench-%.c: %-inputs $(bench-deps)
cat $($*-INCLUDE); \
fi; \
$(..)scripts/bench.pl $(patsubst %-inputs,%,$<) \
$($*-ITER) $($*-ARGLIST) $($*-RET); } > $@-tmp
$($*-ARGLIST) $($*-RET); } > $@-tmp
mv -f $@-tmp $@
+6
View File
@@ -1,3 +1,9 @@
0x1.000000c5cba86p0
0x1.000001883003ap0
0x1.00000dfb2b674p0
# atan slowest path at 768 bits
# Implemented in sysdeps/ieee754/dbl-64/mpatan.c
## name: 768bits
0x1.000000c5cba87p0
0x1.000001883003bp0
0x1.00000dfb2b675p0
@@ -1,5 +1,4 @@
/* Define slowpow.
Copyright (C) 2013 Free Software Foundation, Inc.
/* Copyright (C) 2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,4 +15,30 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#define slowpow pow
extern double modf (double, double *);
#define CALL_BENCH_FUNC(j, i) modf (in[j].arg0, &i);
struct args
{
double arg0;
} in[] =
{
{ 42.42 },
{ -42.42 }
};
#define NUM_VARIANTS 1
#define NUM_SAMPLES(v) (sizeof (in) / sizeof (struct args))
static volatile double ret = 0.0;
#define BENCH_FUNC(v, j) \
({ \
double iptr; \
ret = CALL_BENCH_FUNC (j, iptr); \
})
#define FUNCNAME "modf"
#define VARIANT(v) FUNCNAME "()"
#include "bench-skeleton.c"
+50 -25
View File
@@ -22,13 +22,17 @@
#include <time.h>
#include <inttypes.h>
#define TIMESPEC_AFTER(a, b) \
(((a).tv_sec == (b).tv_sec) ? \
((a).tv_nsec > (b).tv_nsec) : \
((a).tv_sec > (b).tv_sec))
int
main (int argc, char **argv)
{
unsigned long i, j, k;
uint64_t total = 0, max = 0, min = 0x7fffffffffffffff;
struct timespec start, end;
unsigned long i, k;
struct timespec start, end, runtime;
memset (&runtime, 0, sizeof (runtime));
memset (&start, 0, sizeof (start));
memset (&end, 0, sizeof (end));
@@ -39,37 +43,58 @@ main (int argc, char **argv)
Measurements close to the minimum clock resolution won't make much sense,
but it's better than having nothing at all. */
unsigned long iters = 1000 * start.tv_nsec;
unsigned long total_iters = ITER / iters;
for (i = 0; i < NUM_SAMPLES; i++)
for (int v = 0; v < NUM_VARIANTS; v++)
{
for (j = 0; j < total_iters; j ++)
/* Run for approximately DURATION seconds. */
clock_gettime (CLOCK_MONOTONIC_RAW, &runtime);
runtime.tv_sec += DURATION;
double d_total_i = 0;
uint64_t total = 0, max = 0, min = 0x7fffffffffffffff;
while (1)
{
clock_gettime (CLOCK_PROCESS_CPUTIME_ID, &start);
for (k = 0; k < iters; k++)
BENCH_FUNC(i);
clock_gettime (CLOCK_PROCESS_CPUTIME_ID, &end);
for (i = 0; i < NUM_SAMPLES (v); i++)
{
clock_gettime (CLOCK_PROCESS_CPUTIME_ID, &start);
for (k = 0; k < iters; k++)
BENCH_FUNC (v, i);
clock_gettime (CLOCK_PROCESS_CPUTIME_ID, &end);
uint64_t cur = (end.tv_nsec - start.tv_nsec
+ ((end.tv_sec - start.tv_sec)
* (uint64_t) 1000000000));
uint64_t cur = (end.tv_nsec - start.tv_nsec
+ ((end.tv_sec - start.tv_sec)
* (uint64_t) 1000000000));
if (cur > max)
max = cur;
if (cur > max)
max = cur;
if (cur < min)
min = cur;
if (cur < min)
min = cur;
total += cur;
total += cur;
d_total_i += iters;
}
struct timespec curtime;
memset (&curtime, 0, sizeof (curtime));
clock_gettime (CLOCK_MONOTONIC_RAW, &curtime);
if (TIMESPEC_AFTER (curtime, runtime))
goto done;
}
}
double d_total_s = total * 1e-9;
double d_iters = iters;
double d_total_i = (double)ITER * NUM_SAMPLES;
printf (FUNCNAME ": ITERS:%g: TOTAL:%gs, MAX:%gns, MIN:%gns, %g iter/s\n",
d_total_i, d_total_s, max / d_iters, min / d_iters,
d_total_i / d_total_s);
double d_total_s;
double d_iters;
done:
d_total_s = total * 1e-9;
d_iters = iters;
printf ("%s: ITERS:%g: TOTAL:%gs, MAX:%gns, MIN:%gns, %g iter/s\n",
VARIANT (v),
d_total_i, d_total_s, max / d_iters, min / d_iters,
d_total_i / d_total_s);
}
return 0;
}
+8
View File
@@ -3,3 +3,11 @@
0x1.00000162a932ap0
0x1.000002d452a11p0
0x1.000005bc7d86cp0
# cos slow path at 768 bits
# Implemented in sysdeps/ieee754/dbl-64/sincos32.c
## name: 768bits
0x1.000000cf4a2a2p0
0x1.0000010b239a9p0
0x1.00000162a932bp0
0x1.000002d452a10p0
0x1.000005bc7d86dp0
+4
View File
@@ -1 +1,5 @@
42
# Slowest path with computation in 768 bit precision.
# Implemented in: sysdeps/ieee754/dbl-64/mpexp.c
## name: 768bits
708.00096423260981737257679924368858
+4
View File
@@ -1 +1,5 @@
42.0, 42.0
# pow slowest path at 768 bits
# Implemented in sysdeps/ieee754/dbl-64/slowpow.c
## name: 768bits
1.0000000000000020, 1.5
+10
View File
@@ -5,3 +5,13 @@
4.0
4.7
5.9
# sin slowest path at 768 bits
# Implemented in sysdeps/ieee754/dbl-64/sincos32.c
## name: 768bits
0.93340582292648832662962377071381
2.3328432680770916363144351635128
3.7439477503636453548097051680088
3.9225160069792437411706487182528
4.0711651639931289992091478779912
4.7858438478542097982426639646292
5.9840767662578002727968851104379
-3
View File
@@ -1,3 +0,0 @@
0x1.000000c5cba87p0
0x1.000001883003bp0
0x1.00000dfb2b675p0
-5
View File
@@ -1,5 +0,0 @@
0x1.000000cf4a2a2p0
0x1.0000010b239a9p0
0x1.00000162a932bp0
0x1.000002d452a10p0
0x1.000005bc7d86dp0
-19
View File
@@ -1,19 +0,0 @@
/* Define slowcos.
Copyright (C) 2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#define slowcos cos
-1
View File
@@ -1 +0,0 @@
708.00096423260981737257679924368858
-1
View File
@@ -1 +0,0 @@
1.0000000000000020, 1.5
-7
View File
@@ -1,7 +0,0 @@
0.93340582292648832662962377071381
2.3328432680770916363144351635128
3.7439477503636453548097051680088
3.9225160069792437411706487182528
4.0711651639931289992091478779912
4.7858438478542097982426639646292
5.9840767662578002727968851104379
-19
View File
@@ -1,19 +0,0 @@
/* Define slowsin.
Copyright (C) 2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#define slowsin sin
-1
View File
@@ -1 +0,0 @@
0x1.dffffffffff1fp-22
-19
View File
@@ -1,19 +0,0 @@
/* Define slowtan.
Copyright (C) 2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#define slowtan tan
+4
View File
@@ -1 +1,5 @@
0x1.dffffffffff1ep-22
# tan slowest path at 768 bits
# Implemented in sysdeps/ieee754/dbl-64/mptan.c
## name: 768bits
0x1.dffffffffff1fp-22
+1
View File
@@ -7,6 +7,7 @@
#endif
#include <bits/wordsize.h>
#include <stdint.h>
#define __ELF_NATIVE_CLASS __WORDSIZE
+1
View File
@@ -19,6 +19,7 @@
# error "Never include <bits/netdb.h> directly; use <netdb.h> instead."
#endif
#include <stdint.h>
/* Description of data base entry for a single network. NOTE: here a
poor assumption is made. The network number is expected to fit
+2 -1
View File
@@ -161,7 +161,8 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL),
So we can set up _dl_phdr and _dl_phnum even without any
information from auxv. */
extern const ElfW(Ehdr) __ehdr_start __attribute__ ((weak));
extern const ElfW(Ehdr) __ehdr_start
__attribute__ ((weak, visibility ("hidden")));
if (&__ehdr_start != NULL)
{
assert (__ehdr_start.e_phentsize == sizeof *GL(dl_phdr));
-47
View File
@@ -152,12 +152,6 @@ selinux-enabled := $(shell cat /selinux/enforce 2> /dev/null)
ifneq ($(selinux-enabled),1)
tests-execstack-yes = tst-execstack tst-execstack-needed tst-execstack-prog
endif
ifeq (x86_64,$(config-machine))
tests += tst-audit3 tst-audit4 tst-audit5
ifeq (yes,$(config-cflags-avx))
tests += tst-audit6 tst-audit7
endif
endif
endif
ifeq ($(run-built-tests),yes)
tests: $(objpfx)tst-leaks1-mem $(objpfx)tst-leaks1-static-mem \
@@ -220,13 +214,6 @@ modules-names += tst-piemod1
tests += tst-pie1
tests-pie += tst-pie1
endif
ifeq (x86_64,$(config-machine))
modules-names += tst-auditmod3a tst-auditmod3b \
tst-auditmod4a tst-auditmod4b \
tst-auditmod5a tst-auditmod5b \
tst-auditmod6a tst-auditmod6b tst-auditmod6c \
tst-auditmod7a tst-auditmod7b
endif
modules-execstack-yes = tst-execstack-mod
extra-test-objs += $(addsuffix .os,$(strip $(modules-names)))
# We need this variable to be sure the test modules get the right CPPFLAGS.
@@ -1001,27 +988,6 @@ tst-audit1-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so
$(objpfx)tst-audit2.out: $(objpfx)tst-auditmod1.so
tst-audit2-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so
$(objpfx)tst-audit3: $(objpfx)tst-auditmod3a.so
$(objpfx)tst-audit3.out: $(objpfx)tst-auditmod3b.so
tst-audit3-ENV = LD_AUDIT=$(objpfx)tst-auditmod3b.so
$(objpfx)tst-audit4: $(objpfx)tst-auditmod4a.so
$(objpfx)tst-audit4.out: $(objpfx)tst-auditmod4b.so
tst-audit4-ENV = LD_AUDIT=$(objpfx)tst-auditmod4b.so
$(objpfx)tst-audit5: $(objpfx)tst-auditmod5a.so
$(objpfx)tst-audit5.out: $(objpfx)tst-auditmod5b.so
tst-audit5-ENV = LD_AUDIT=$(objpfx)tst-auditmod5b.so
$(objpfx)tst-audit6: $(objpfx)tst-auditmod6a.so
$(objpfx)tst-audit6.out: $(objpfx)tst-auditmod6b.so \
$(objpfx)tst-auditmod6c.so
tst-audit6-ENV = LD_AUDIT=$(objpfx)tst-auditmod6b.so:$(objpfx)tst-auditmod6c.so
$(objpfx)tst-audit7: $(objpfx)tst-auditmod7a.so
$(objpfx)tst-audit7.out: $(objpfx)tst-auditmod7b.so
tst-audit7-ENV = LD_AUDIT=$(objpfx)tst-auditmod7b.so
$(objpfx)tst-audit8: $(common-objpfx)math/libm.so
$(objpfx)tst-audit8.out: $(objpfx)tst-auditmod1.so
tst-audit8-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so
@@ -1149,19 +1115,6 @@ $(objpfx)tst-initorder2.out: $(objpfx)tst-initorder2
$< > $@
cmp $@ tst-initorder2.exp > /dev/null
ifeq (yes,$(config-cflags-avx))
AVX-CFLAGS=-mavx
ifeq (yes,$(config-cflags-novzeroupper))
AVX-CFLAGS+=-mno-vzeroupper
endif
CFLAGS-tst-audit4.c += $(AVX-CFLAGS)
CFLAGS-tst-auditmod4a.c += $(AVX-CFLAGS)
CFLAGS-tst-auditmod4b.c += $(AVX-CFLAGS)
CFLAGS-tst-auditmod6b.c += $(AVX-CFLAGS)
CFLAGS-tst-auditmod6c.c += $(AVX-CFLAGS)
CFLAGS-tst-auditmod7b.c += $(AVX-CFLAGS)
endif
$(objpfx)tst-relsort1: $(libdl)
$(objpfx)tst-relsort1mod1.so: $(libm) $(objpfx)tst-relsort1mod2.so
$(objpfx)tst-relsort1mod2.so: $(libm)
+1
View File
@@ -20,6 +20,7 @@
#include <inttypes.h>
#include <string.h>
#include <stdint.h>
#include <sys/types.h>
#include <netinet/in.h>
+1
View File
@@ -19,6 +19,7 @@
#define _NETINET_IP6_H 1
#include <inttypes.h>
#include <stdint.h>
#include <netinet/in.h>
struct ip6_hdr
+2 -2
View File
@@ -21,11 +21,11 @@
/* Change the current directory to FD. */
int
fchdir (fd)
int fd;
__fchdir (int fd)
{
__set_errno (ENOSYS);
return -1;
}
weak_alias (__fchdir, fchdir)
stub_warning (fchdir)
+5
View File
@@ -1,3 +1,8 @@
2013-04-27 Nik Kalach <nikka@fedoraproject.org>
[BZ #15221]
* locales/ia_FR: Fix postal_fmt definition.
2013-02-01 Andreas Jaeger <aj@suse.de>
* CHECKSUMS: Remove file.
+5 -5
View File
@@ -5,7 +5,7 @@ escape_char /
% Language: ia
% Territory: FR
% Revision: 1.0
% Date: 2012-11-26
% Date: 2013-03-01
% Application: general
% Users: general
% Charset: UTF-8
@@ -21,7 +21,7 @@ fax ""
language "Interlingua"
territory "France"
revision "1.0"
date "2012-11-26"
date "2013-03-01"
category ia_FR:2000;LC_IDENTIFICATION
category ia_FR:2000;LC_CTYPE
@@ -120,9 +120,9 @@ END LC_NAME
LC_ADDRESS
postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
<U0074><U0025><U0068><U0074><U0025><U0065><U0074><U0025><U0072><U0025>/
<U004E><U0025><U007A><U0074><U0025><U0054><U0025>/
<U004E><U0025><U0063><U0025><U004E>"
<U0025><U0074><U0025><U0068><U0025><U0074><U0025><U0065><U0025><U0074>/
<U0025><U0072><U0025><U004E><U0025><U007A><U0025><U0074><U0025><U0054>/
<U0025><U004E><U0025><U0063><U0025><U004E>"
country_post "<U0046>"
country_ab2 "<U0046><U0052>"
country_ab3 "<U0046><U0052><U0041>"
+1 -1
View File
@@ -295,7 +295,7 @@ sub parse_args {
# consistency check
if ($current_arg == $#args) {
die ("wrong number of arguments")
unless ($args[$current_arg] =~ /EXCEPTION|IGNORE_ZERO_INF_SIGN/);
unless ($args[$current_arg] =~ /EXCEPTION|ERRNO|IGNORE_ZERO_INF_SIGN/);
} elsif ($current_arg < $#args) {
die ("wrong number of arguments");
} elsif ($current_arg > ($#args+1)) {
+1395 -567
View File
File diff suppressed because it is too large Load Diff
+71 -10
View File
@@ -20,7 +20,7 @@
#include <complex.h>
#include <math.h>
#include <math_private.h>
#include <float.h>
__complex__ double
__catan (__complex__ double x)
@@ -61,21 +61,82 @@ __catan (__complex__ double x)
}
else
{
double r2, num, den;
if (fabs (__real__ x) >= 16.0 / DBL_EPSILON
|| fabs (__imag__ x) >= 16.0 / DBL_EPSILON)
{
__real__ res = __copysign (M_PI_2, __real__ x);
if (fabs (__real__ x) <= 1.0)
__imag__ res = 1.0 / __imag__ x;
else if (fabs (__imag__ x) <= 1.0)
__imag__ res = __imag__ x / __real__ x / __real__ x;
else
{
double h = __ieee754_hypot (__real__ x / 2.0, __imag__ x / 2.0);
__imag__ res = __imag__ x / h / h / 4.0;
}
}
else
{
double den, absx, absy;
r2 = __real__ x * __real__ x;
absx = fabs (__real__ x);
absy = fabs (__imag__ x);
if (absx < absy)
{
double t = absx;
absx = absy;
absy = t;
}
den = 1 - r2 - __imag__ x * __imag__ x;
if (absy < DBL_EPSILON / 2.0)
den = (1.0 - absx) * (1.0 + absx);
else if (absx >= 1.0)
den = (1.0 - absx) * (1.0 + absx) - absy * absy;
else if (absx >= 0.75 || absy >= 0.5)
den = -__x2y2m1 (absx, absy);
else
den = (1.0 - absx) * (1.0 + absx) - absy * absy;
__real__ res = 0.5 * __ieee754_atan2 (2.0 * __real__ x, den);
__real__ res = 0.5 * __ieee754_atan2 (2.0 * __real__ x, den);
num = __imag__ x + 1.0;
num = r2 + num * num;
if (fabs (__imag__ x) == 1.0
&& fabs (__real__ x) < DBL_EPSILON * DBL_EPSILON)
__imag__ res = (__copysign (0.5, __imag__ x)
* (M_LN2 - __ieee754_log (fabs (__real__ x))));
else
{
double r2 = 0.0, num, f;
den = __imag__ x - 1.0;
den = r2 + den * den;
if (fabs (__real__ x) >= DBL_EPSILON * DBL_EPSILON)
r2 = __real__ x * __real__ x;
__imag__ res = 0.25 * __ieee754_log (num / den);
num = __imag__ x + 1.0;
num = r2 + num * num;
den = __imag__ x - 1.0;
den = r2 + den * den;
f = num / den;
if (f < 0.5)
__imag__ res = 0.25 * __ieee754_log (f);
else
{
num = 4.0 * __imag__ x;
__imag__ res = 0.25 * __log1p (num / den);
}
}
}
if (fabs (__real__ res) < DBL_MIN)
{
volatile double force_underflow = __real__ res * __real__ res;
(void) force_underflow;
}
if (fabs (__imag__ res) < DBL_MIN)
{
volatile double force_underflow = __imag__ res * __imag__ res;
(void) force_underflow;
}
}
return res;
+73 -10
View File
@@ -20,7 +20,7 @@
#include <complex.h>
#include <math.h>
#include <math_private.h>
#include <float.h>
__complex__ float
__catanf (__complex__ float x)
@@ -61,21 +61,84 @@ __catanf (__complex__ float x)
}
else
{
float r2, num, den;
if (fabsf (__real__ x) >= 16.0f / FLT_EPSILON
|| fabsf (__imag__ x) >= 16.0f / FLT_EPSILON)
{
__real__ res = __copysignf ((float) M_PI_2, __real__ x);
if (fabsf (__real__ x) <= 1.0f)
__imag__ res = 1.0f / __imag__ x;
else if (fabsf (__imag__ x) <= 1.0f)
__imag__ res = __imag__ x / __real__ x / __real__ x;
else
{
float h = __ieee754_hypotf (__real__ x / 2.0f,
__imag__ x / 2.0f);
__imag__ res = __imag__ x / h / h / 4.0f;
}
}
else
{
float den, absx, absy;
r2 = __real__ x * __real__ x;
absx = fabsf (__real__ x);
absy = fabsf (__imag__ x);
if (absx < absy)
{
float t = absx;
absx = absy;
absy = t;
}
den = 1 - r2 - __imag__ x * __imag__ x;
if (absy < FLT_EPSILON / 2.0f)
den = (1.0f - absx) * (1.0f + absx);
else if (absx >= 1.0f)
den = (1.0f - absx) * (1.0f + absx) - absy * absy;
else if (absx >= 0.75f || absy >= 0.5f)
den = -__x2y2m1f (absx, absy);
else
den = (1.0f - absx) * (1.0f + absx) - absy * absy;
__real__ res = 0.5 * __ieee754_atan2f (2.0 * __real__ x, den);
__real__ res = 0.5f * __ieee754_atan2f (2.0f * __real__ x, den);
num = __imag__ x + 1.0;
num = r2 + num * num;
if (fabsf (__imag__ x) == 1.0f
&& fabsf (__real__ x) < FLT_EPSILON * FLT_EPSILON)
__imag__ res = (__copysignf (0.5f, __imag__ x)
* ((float) M_LN2
- __ieee754_logf (fabsf (__real__ x))));
else
{
float r2 = 0.0f, num, f;
den = __imag__ x - 1.0;
den = r2 + den * den;
if (fabsf (__real__ x) >= FLT_EPSILON * FLT_EPSILON)
r2 = __real__ x * __real__ x;
__imag__ res = 0.25 * __ieee754_logf (num / den);
num = __imag__ x + 1.0f;
num = r2 + num * num;
den = __imag__ x - 1.0f;
den = r2 + den * den;
f = num / den;
if (f < 0.5f)
__imag__ res = 0.25f * __ieee754_logf (f);
else
{
num = 4.0f * __imag__ x;
__imag__ res = 0.25f * __log1pf (num / den);
}
}
}
if (fabsf (__real__ res) < FLT_MIN)
{
volatile float force_underflow = __real__ res * __real__ res;
(void) force_underflow;
}
if (fabsf (__imag__ res) < FLT_MIN)
{
volatile float force_underflow = __imag__ res * __imag__ res;
(void) force_underflow;
}
}
return res;
+71 -9
View File
@@ -20,7 +20,7 @@
#include <complex.h>
#include <math.h>
#include <math_private.h>
#include <float.h>
__complex__ double
__catanh (__complex__ double x)
@@ -56,19 +56,81 @@ __catanh (__complex__ double x)
}
else
{
double i2 = __imag__ x * __imag__ x;
if (fabs (__real__ x) >= 16.0 / DBL_EPSILON
|| fabs (__imag__ x) >= 16.0 / DBL_EPSILON)
{
__imag__ res = __copysign (M_PI_2, __imag__ x);
if (fabs (__imag__ x) <= 1.0)
__real__ res = 1.0 / __real__ x;
else if (fabs (__real__ x) <= 1.0)
__real__ res = __real__ x / __imag__ x / __imag__ x;
else
{
double h = __ieee754_hypot (__real__ x / 2.0, __imag__ x / 2.0);
__real__ res = __real__ x / h / h / 4.0;
}
}
else
{
if (fabs (__real__ x) == 1.0
&& fabs (__imag__ x) < DBL_EPSILON * DBL_EPSILON)
__real__ res = (__copysign (0.5, __real__ x)
* (M_LN2 - __ieee754_log (fabs (__imag__ x))));
else
{
double i2 = 0.0;
if (fabs (__imag__ x) >= DBL_EPSILON * DBL_EPSILON)
i2 = __imag__ x * __imag__ x;
double num = 1.0 + __real__ x;
num = i2 + num * num;
double num = 1.0 + __real__ x;
num = i2 + num * num;
double den = 1.0 - __real__ x;
den = i2 + den * den;
double den = 1.0 - __real__ x;
den = i2 + den * den;
__real__ res = 0.25 * (__ieee754_log (num) - __ieee754_log (den));
double f = num / den;
if (f < 0.5)
__real__ res = 0.25 * __ieee754_log (f);
else
{
num = 4.0 * __real__ x;
__real__ res = 0.25 * __log1p (num / den);
}
}
den = 1 - __real__ x * __real__ x - i2;
double absx, absy, den;
__imag__ res = 0.5 * __ieee754_atan2 (2.0 * __imag__ x, den);
absx = fabs (__real__ x);
absy = fabs (__imag__ x);
if (absx < absy)
{
double t = absx;
absx = absy;
absy = t;
}
if (absy < DBL_EPSILON / 2.0)
den = (1.0 - absx) * (1.0 + absx);
else if (absx >= 1.0)
den = (1.0 - absx) * (1.0 + absx) - absy * absy;
else if (absx >= 0.75 || absy >= 0.5)
den = -__x2y2m1 (absx, absy);
else
den = (1.0 - absx) * (1.0 + absx) - absy * absy;
__imag__ res = 0.5 * __ieee754_atan2 (2.0 * __imag__ x, den);
}
if (fabs (__real__ res) < DBL_MIN)
{
volatile double force_underflow = __real__ res * __real__ res;
(void) force_underflow;
}
if (fabs (__imag__ res) < DBL_MIN)
{
volatile double force_underflow = __imag__ res * __imag__ res;
(void) force_underflow;
}
}
return res;
+73 -9
View File
@@ -20,7 +20,7 @@
#include <complex.h>
#include <math.h>
#include <math_private.h>
#include <float.h>
__complex__ float
__catanhf (__complex__ float x)
@@ -56,19 +56,83 @@ __catanhf (__complex__ float x)
}
else
{
float i2 = __imag__ x * __imag__ x;
if (fabsf (__real__ x) >= 16.0f / FLT_EPSILON
|| fabsf (__imag__ x) >= 16.0f / FLT_EPSILON)
{
__imag__ res = __copysignf ((float) M_PI_2, __imag__ x);
if (fabsf (__imag__ x) <= 1.0f)
__real__ res = 1.0f / __real__ x;
else if (fabsf (__real__ x) <= 1.0f)
__real__ res = __real__ x / __imag__ x / __imag__ x;
else
{
float h = __ieee754_hypotf (__real__ x / 2.0f,
__imag__ x / 2.0f);
__real__ res = __real__ x / h / h / 4.0f;
}
}
else
{
if (fabsf (__real__ x) == 1.0f
&& fabsf (__imag__ x) < FLT_EPSILON * FLT_EPSILON)
__real__ res = (__copysignf (0.5f, __real__ x)
* ((float) M_LN2
- __ieee754_logf (fabsf (__imag__ x))));
else
{
float i2 = 0.0f;
if (fabsf (__imag__ x) >= FLT_EPSILON * FLT_EPSILON)
i2 = __imag__ x * __imag__ x;
float num = 1.0 + __real__ x;
num = i2 + num * num;
float num = 1.0f + __real__ x;
num = i2 + num * num;
float den = 1.0 - __real__ x;
den = i2 + den * den;
float den = 1.0f - __real__ x;
den = i2 + den * den;
__real__ res = 0.25 * (__ieee754_logf (num) - __ieee754_logf (den));
float f = num / den;
if (f < 0.5f)
__real__ res = 0.25f * __ieee754_logf (f);
else
{
num = 4.0f * __real__ x;
__real__ res = 0.25f * __log1pf (num / den);
}
}
den = 1 - __real__ x * __real__ x - i2;
float absx, absy, den;
__imag__ res = 0.5 * __ieee754_atan2f (2.0 * __imag__ x, den);
absx = fabsf (__real__ x);
absy = fabsf (__imag__ x);
if (absx < absy)
{
float t = absx;
absx = absy;
absy = t;
}
if (absy < FLT_EPSILON / 2.0f)
den = (1.0f - absx) * (1.0f + absx);
else if (absx >= 1.0f)
den = (1.0f - absx) * (1.0f + absx) - absy * absy;
else if (absx >= 0.75f || absy >= 0.5f)
den = -__x2y2m1f (absx, absy);
else
den = (1.0f - absx) * (1.0f + absx) - absy * absy;
__imag__ res = 0.5f * __ieee754_atan2f (2.0f * __imag__ x, den);
}
if (fabsf (__real__ res) < FLT_MIN)
{
volatile float force_underflow = __real__ res * __real__ res;
(void) force_underflow;
}
if (fabsf (__imag__ res) < FLT_MIN)
{
volatile float force_underflow = __imag__ res * __imag__ res;
(void) force_underflow;
}
}
return res;
+78 -8
View File
@@ -20,7 +20,14 @@
#include <complex.h>
#include <math.h>
#include <math_private.h>
#include <float.h>
/* To avoid spurious overflows, use this definition to treat IBM long
double as approximating an IEEE-style format. */
#if LDBL_MANT_DIG == 106
# undef LDBL_EPSILON
# define LDBL_EPSILON 0x1p-106L
#endif
__complex__ long double
__catanhl (__complex__ long double x)
@@ -56,19 +63,82 @@ __catanhl (__complex__ long double x)
}
else
{
long double i2 = __imag__ x * __imag__ x;
if (fabsl (__real__ x) >= 16.0L / LDBL_EPSILON
|| fabsl (__imag__ x) >= 16.0L / LDBL_EPSILON)
{
__imag__ res = __copysignl (M_PI_2l, __imag__ x);
if (fabsl (__imag__ x) <= 1.0L)
__real__ res = 1.0L / __real__ x;
else if (fabsl (__real__ x) <= 1.0L)
__real__ res = __real__ x / __imag__ x / __imag__ x;
else
{
long double h = __ieee754_hypotl (__real__ x / 2.0L,
__imag__ x / 2.0L);
__real__ res = __real__ x / h / h / 4.0L;
}
}
else
{
if (fabsl (__real__ x) == 1.0L
&& fabsl (__imag__ x) < LDBL_EPSILON * LDBL_EPSILON)
__real__ res = (__copysignl (0.5L, __real__ x)
* (M_LN2l - __ieee754_logl (fabsl (__imag__ x))));
else
{
long double i2 = 0.0;
if (fabsl (__imag__ x) >= LDBL_EPSILON * LDBL_EPSILON)
i2 = __imag__ x * __imag__ x;
long double num = 1.0 + __real__ x;
num = i2 + num * num;
long double num = 1.0L + __real__ x;
num = i2 + num * num;
long double den = 1.0 - __real__ x;
den = i2 + den * den;
long double den = 1.0L - __real__ x;
den = i2 + den * den;
__real__ res = 0.25 * (__ieee754_logl (num) - __ieee754_logl (den));
long double f = num / den;
if (f < 0.5L)
__real__ res = 0.25L * __ieee754_logl (f);
else
{
num = 4.0L * __real__ x;
__real__ res = 0.25L * __log1pl (num / den);
}
}
den = 1 - __real__ x * __real__ x - i2;
long double absx, absy, den;
__imag__ res = 0.5 * __ieee754_atan2l (2.0 * __imag__ x, den);
absx = fabsl (__real__ x);
absy = fabsl (__imag__ x);
if (absx < absy)
{
long double t = absx;
absx = absy;
absy = t;
}
if (absy < LDBL_EPSILON / 2.0L)
den = (1.0L - absx) * (1.0L + absx);
else if (absx >= 1.0L)
den = (1.0L - absx) * (1.0L + absx) - absy * absy;
else if (absx >= 0.75L || absy >= 0.5L)
den = -__x2y2m1l (absx, absy);
else
den = (1.0L - absx) * (1.0L + absx) - absy * absy;
__imag__ res = 0.5L * __ieee754_atan2l (2.0L * __imag__ x, den);
}
if (fabsl (__real__ res) < LDBL_MIN)
{
volatile long double force_underflow = __real__ res * __real__ res;
(void) force_underflow;
}
if (fabsl (__imag__ res) < LDBL_MIN)
{
volatile long double force_underflow = __imag__ res * __imag__ res;
(void) force_underflow;
}
}
return res;
+78 -9
View File
@@ -20,7 +20,14 @@
#include <complex.h>
#include <math.h>
#include <math_private.h>
#include <float.h>
/* To avoid spurious overflows, use this definition to treat IBM long
double as approximating an IEEE-style format. */
#if LDBL_MANT_DIG == 106
# undef LDBL_EPSILON
# define LDBL_EPSILON 0x1p-106L
#endif
__complex__ long double
__catanl (__complex__ long double x)
@@ -61,21 +68,83 @@ __catanl (__complex__ long double x)
}
else
{
long double r2, num, den;
if (fabsl (__real__ x) >= 16.0L / LDBL_EPSILON
|| fabsl (__imag__ x) >= 16.0L / LDBL_EPSILON)
{
__real__ res = __copysignl (M_PI_2l, __real__ x);
if (fabsl (__real__ x) <= 1.0L)
__imag__ res = 1.0L / __imag__ x;
else if (fabsl (__imag__ x) <= 1.0L)
__imag__ res = __imag__ x / __real__ x / __real__ x;
else
{
long double h = __ieee754_hypotl (__real__ x / 2.0L,
__imag__ x / 2.0L);
__imag__ res = __imag__ x / h / h / 4.0L;
}
}
else
{
long double den, absx, absy;
r2 = __real__ x * __real__ x;
absx = fabsl (__real__ x);
absy = fabsl (__imag__ x);
if (absx < absy)
{
long double t = absx;
absx = absy;
absy = t;
}
den = 1 - r2 - __imag__ x * __imag__ x;
if (absy < LDBL_EPSILON / 2.0L)
den = (1.0L - absx) * (1.0L + absx);
else if (absx >= 1.0L)
den = (1.0L - absx) * (1.0L + absx) - absy * absy;
else if (absx >= 0.75L || absy >= 0.5L)
den = -__x2y2m1l (absx, absy);
else
den = (1.0L - absx) * (1.0L + absx) - absy * absy;
__real__ res = 0.5 * __ieee754_atan2l (2.0 * __real__ x, den);
__real__ res = 0.5L * __ieee754_atan2l (2.0L * __real__ x, den);
num = __imag__ x + 1.0;
num = r2 + num * num;
if (fabsl (__imag__ x) == 1.0L
&& fabsl (__real__ x) < LDBL_EPSILON * LDBL_EPSILON)
__imag__ res = (__copysignl (0.5L, __imag__ x)
* (M_LN2l - __ieee754_logl (fabsl (__real__ x))));
else
{
long double r2 = 0.0L, num, f;
den = __imag__ x - 1.0;
den = r2 + den * den;
if (fabsl (__real__ x) >= LDBL_EPSILON * LDBL_EPSILON)
r2 = __real__ x * __real__ x;
__imag__ res = 0.25 * __ieee754_logl (num / den);
num = __imag__ x + 1.0L;
num = r2 + num * num;
den = __imag__ x - 1.0L;
den = r2 + den * den;
f = num / den;
if (f < 0.5L)
__imag__ res = 0.25L * __ieee754_logl (f);
else
{
num = 4.0L * __imag__ x;
__imag__ res = 0.25L * __log1pl (num / den);
}
}
}
if (fabsl (__real__ res) < LDBL_MIN)
{
volatile long double force_underflow = __real__ res * __real__ res;
(void) force_underflow;
}
if (fabsl (__imag__ res) < LDBL_MIN)
{
volatile long double force_underflow = __imag__ res * __imag__ res;
(void) force_underflow;
}
}
return res;
+13
View File
@@ -82,6 +82,19 @@ __ccosh (__complex__ double x)
__real__ retval = __ieee754_cosh (__real__ x) * cosix;
__imag__ retval = __ieee754_sinh (__real__ x) * sinix;
}
if (fabs (__real__ retval) < DBL_MIN)
{
volatile double force_underflow
= __real__ retval * __real__ retval;
(void) force_underflow;
}
if (fabs (__imag__ retval) < DBL_MIN)
{
volatile double force_underflow
= __imag__ retval * __imag__ retval;
(void) force_underflow;
}
}
else
{
+13
View File
@@ -82,6 +82,19 @@ __ccoshf (__complex__ float x)
__real__ retval = __ieee754_coshf (__real__ x) * cosix;
__imag__ retval = __ieee754_sinhf (__real__ x) * sinix;
}
if (fabsf (__real__ retval) < FLT_MIN)
{
volatile float force_underflow
= __real__ retval * __real__ retval;
(void) force_underflow;
}
if (fabsf (__imag__ retval) < FLT_MIN)
{
volatile float force_underflow
= __imag__ retval * __imag__ retval;
(void) force_underflow;
}
}
else
{
+13
View File
@@ -82,6 +82,19 @@ __ccoshl (__complex__ long double x)
__real__ retval = __ieee754_coshl (__real__ x) * cosix;
__imag__ retval = __ieee754_sinhl (__real__ x) * sinix;
}
if (fabsl (__real__ retval) < LDBL_MIN)
{
volatile long double force_underflow
= __real__ retval * __real__ retval;
(void) force_underflow;
}
if (fabsl (__imag__ retval) < LDBL_MIN)
{
volatile long double force_underflow
= __imag__ retval * __imag__ retval;
(void) force_underflow;
}
}
else
{
+13
View File
@@ -88,6 +88,19 @@ __csin (__complex__ double x)
if (negate)
__real__ retval = -__real__ retval;
if (fabs (__real__ retval) < DBL_MIN)
{
volatile double force_underflow
= __real__ retval * __real__ retval;
(void) force_underflow;
}
if (fabs (__imag__ retval) < DBL_MIN)
{
volatile double force_underflow
= __imag__ retval * __imag__ retval;
(void) force_underflow;
}
}
else
{
+13
View File
@@ -88,6 +88,19 @@ __csinf (__complex__ float x)
if (negate)
__real__ retval = -__real__ retval;
if (fabsf (__real__ retval) < FLT_MIN)
{
volatile float force_underflow
= __real__ retval * __real__ retval;
(void) force_underflow;
}
if (fabsf (__imag__ retval) < FLT_MIN)
{
volatile float force_underflow
= __imag__ retval * __imag__ retval;
(void) force_underflow;
}
}
else
{
+13
View File
@@ -88,6 +88,19 @@ __csinh (__complex__ double x)
if (negate)
__real__ retval = -__real__ retval;
if (fabs (__real__ retval) < DBL_MIN)
{
volatile double force_underflow
= __real__ retval * __real__ retval;
(void) force_underflow;
}
if (fabs (__imag__ retval) < DBL_MIN)
{
volatile double force_underflow
= __imag__ retval * __imag__ retval;
(void) force_underflow;
}
}
else
{
+13
View File
@@ -88,6 +88,19 @@ __csinhf (__complex__ float x)
if (negate)
__real__ retval = -__real__ retval;
if (fabsf (__real__ retval) < FLT_MIN)
{
volatile float force_underflow
= __real__ retval * __real__ retval;
(void) force_underflow;
}
if (fabsf (__imag__ retval) < FLT_MIN)
{
volatile float force_underflow
= __imag__ retval * __imag__ retval;
(void) force_underflow;
}
}
else
{
+13
View File
@@ -88,6 +88,19 @@ __csinhl (__complex__ long double x)
if (negate)
__real__ retval = -__real__ retval;
if (fabsl (__real__ retval) < LDBL_MIN)
{
volatile long double force_underflow
= __real__ retval * __real__ retval;
(void) force_underflow;
}
if (fabsl (__imag__ retval) < LDBL_MIN)
{
volatile long double force_underflow
= __imag__ retval * __imag__ retval;
(void) force_underflow;
}
}
else
{
+13
View File
@@ -88,6 +88,19 @@ __csinl (__complex__ long double x)
if (negate)
__real__ retval = -__real__ retval;
if (fabsl (__real__ retval) < LDBL_MIN)
{
volatile long double force_underflow
= __real__ retval * __real__ retval;
(void) force_underflow;
}
if (fabsl (__imag__ retval) < LDBL_MIN)
{
volatile long double force_underflow
= __imag__ retval * __imag__ retval;
(void) force_underflow;
}
}
else
{
+6 -8
View File
@@ -318,10 +318,12 @@
# define __attribute_artificial__ /* Ignore */
#endif
/* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
inline semantics, unless -fgnu89-inline is used. */
#if (!defined __cplusplus || __GNUC_PREREQ (4,3)) && defined __GNUC__
# if defined __GNUC_STDC_INLINE__ || defined __cplusplus
#ifdef __GNUC__
/* One of these will be defined if the __gnu_inline__ attribute is
available. In C++, __GNUC_GNU_INLINE__ will be defined even though
__inline does not use the GNU inlining rules. If neither macro is
defined, this version of GCC only supports GNU inline semantics. */
# if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
# define __extern_inline extern __inline __attribute__ ((__gnu_inline__))
# define __extern_always_inline \
extern __always_inline __attribute__ ((__gnu_inline__))
@@ -329,10 +331,6 @@
# define __extern_inline extern __inline
# define __extern_always_inline extern __always_inline
# endif
#elif defined __GNUC__ /* C++ and GCC <4.3. */
# define __extern_inline extern __inline
# define __extern_always_inline \
extern __always_inline
#else /* Not GCC. */
# define __extern_inline /* Ignore */
# define __extern_always_inline /* Ignore */
+1
View File
@@ -33,6 +33,7 @@
#define _RPCSVC_NIS_H 1
#include <features.h>
#include <stdint.h>
#include <rpc/rpc.h>
#include <rpcsvc/nis_tags.h>
+1
View File
@@ -20,6 +20,7 @@
#define __RPCSVC_NISLIB_H__
#include <features.h>
#include <stdint.h>
__BEGIN_DECLS
+17 -3
View File
@@ -1,7 +1,21 @@
2013-04-19 Roland McGrath <roland@hack.frob.com>
2013-04-22 Siddhesh Poyarekar <siddhesh@redhat.com>
* pthread_attr_getstack.c: Fail with EINVAL if the stack address has
not been set.
* pthreadP.h (check_sched_policy_attr): New inline function.
(check_sched_priority_attr): Likewise.
(check_stacksize_attr): Likewise.
(__kernel_cpumask_size, __determine_cpumask_size): Declare
extern.
(check_cpuset_attr): New inline function.
* pthread_attr_setschedparam (__pthread_attr_setschedparam):
Use check_sched_priority_attr.
* pthread_attr_setschedpolicy.c
(__pthread_attr_setschedpolicy): Use check_sched_policy_attr.
* pthread_attr_setstack.c (__pthread_attr_setstack): Use
check_stacksize_attr.
* pthread_attr_setstacksize.c (__pthread_attr_setstacksize):
Likewise.
* sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
(__pthread_attr_setaffinity_new): Use check_cpuset_attr.
2013-04-11 Andreas Schwab <schwab@suse.de>
+63 -1
View File
@@ -31,7 +31,7 @@
#include <pthread-functions.h>
#include <atomic.h>
#include <kernel-features.h>
#include <errno.h>
/* Atomic operations on TLS memory. */
#ifndef THREAD_ATOMIC_CMPXCHG_VAL
@@ -589,4 +589,66 @@ extern void __wait_lookup_done (void) attribute_hidden;
# define USE_REQUEUE_PI(mut) 0
#endif
/* Returns 0 if POL is a valid scheduling policy. */
static inline int
check_sched_policy_attr (int pol)
{
if (pol == SCHED_OTHER || pol == SCHED_FIFO || pol == SCHED_RR)
return 0;
return EINVAL;
}
/* Returns 0 if PR is within the accepted range of priority values for
the scheduling policy POL or EINVAL otherwise. */
static inline int
check_sched_priority_attr (int pr, int pol)
{
int min = __sched_get_priority_min (pol);
int max = __sched_get_priority_max (pol);
if (min >= 0 && max >= 0 && pr >= min && pr <= max)
return 0;
return EINVAL;
}
/* Returns 0 if ST is a valid stack size for a thread stack and EINVAL
otherwise. */
static inline int
check_stacksize_attr (size_t st)
{
if (st >= PTHREAD_STACK_MIN)
return 0;
return EINVAL;
}
/* Defined in pthread_setaffinity.c. */
extern size_t __kernel_cpumask_size attribute_hidden;
extern int __determine_cpumask_size (pid_t tid);
/* Returns 0 if CS and SZ are valid values for the cpuset and cpuset size
respectively. Otherwise it returns an error number. */
static inline int
check_cpuset_attr (const cpu_set_t *cs, const size_t sz)
{
if (__kernel_cpumask_size == 0)
{
int res = __determine_cpumask_size (THREAD_SELF->tid);
if (res)
return res;
}
/* Check whether the new bitmask has any bit set beyond the
last one the kernel accepts. */
for (size_t cnt = __kernel_cpumask_size; cnt < sz; ++cnt)
if (((char *) cs)[cnt] != '\0')
/* Found a nonzero byte. This means the user request cannot be
fulfilled. */
return EINVAL;
return 0;
}
#endif /* pthreadP.h */
-3
View File
@@ -31,9 +31,6 @@ __pthread_attr_getstack (attr, stackaddr, stacksize)
assert (sizeof (*attr) >= sizeof (struct pthread_attr));
iattr = (struct pthread_attr *) attr;
if (!(iattr->flags & ATTR_FLAG_STACKADDR))
return EINVAL;
/* Store the result. */
*stackaddr = (char *) iattr->stackaddr - iattr->stacksize;
*stacksize = iattr->stacksize;
+4 -5
View File
@@ -30,11 +30,10 @@ __pthread_attr_setschedparam (attr, param)
assert (sizeof (*attr) >= sizeof (struct pthread_attr));
struct pthread_attr *iattr = (struct pthread_attr *) attr;
int min = sched_get_priority_min (iattr->schedpolicy);
int max = sched_get_priority_max (iattr->schedpolicy);
if (min == -1 || max == -1
|| param->sched_priority > max || param->sched_priority < min)
return EINVAL;
int ret = check_sched_priority_attr (param->sched_priority,
iattr->schedpolicy);
if (ret)
return ret;
/* Copy the new values. */
memcpy (&iattr->schedparam, param, sizeof (struct sched_param));
+3 -2
View File
@@ -32,8 +32,9 @@ __pthread_attr_setschedpolicy (attr, policy)
iattr = (struct pthread_attr *) attr;
/* Catch invalid values. */
if (policy != SCHED_OTHER && policy != SCHED_FIFO && policy != SCHED_RR)
return EINVAL;
int ret = check_sched_policy_attr (policy);
if (ret)
return ret;
/* Store the new values. */
iattr->schedpolicy = policy;
+3 -2
View File
@@ -39,8 +39,9 @@ __pthread_attr_setstack (attr, stackaddr, stacksize)
iattr = (struct pthread_attr *) attr;
/* Catch invalid sizes. */
if (stacksize < PTHREAD_STACK_MIN)
return EINVAL;
int ret = check_stacksize_attr (stacksize);
if (ret)
return ret;
#ifdef EXTRA_PARAM_CHECKS
EXTRA_PARAM_CHECKS;
+3 -2
View File
@@ -37,8 +37,9 @@ __pthread_attr_setstacksize (attr, stacksize)
iattr = (struct pthread_attr *) attr;
/* Catch invalid sizes. */
if (stacksize < PTHREAD_STACK_MIN)
return EINVAL;
int ret = check_stacksize_attr (stacksize);
if (ret)
return ret;
iattr->stacksize = stacksize;
@@ -25,9 +25,6 @@
#include <shlib-compat.h>
/* Defined in pthread_setaffinity.c. */
extern size_t __kernel_cpumask_size attribute_hidden;
extern int __determine_cpumask_size (pid_t tid);
int
@@ -47,21 +44,10 @@ __pthread_attr_setaffinity_new (pthread_attr_t *attr, size_t cpusetsize,
}
else
{
if (__kernel_cpumask_size == 0)
{
int res = __determine_cpumask_size (THREAD_SELF->tid);
if (res != 0)
/* Some serious problem. */
return res;
}
int ret = check_cpuset_attr (cpuset, cpusetsize);
/* Check whether the new bitmask has any bit set beyond the
last one the kernel accepts. */
for (size_t cnt = __kernel_cpumask_size; cnt < cpusetsize; ++cnt)
if (((char *) cpuset)[cnt] != '\0')
/* Found a nonzero byte. This means the user request cannot be
fulfilled. */
return EINVAL;
if (ret)
return ret;
if (iattr->cpusetsize != cpusetsize)
{
+1 -1
View File
@@ -841,7 +841,7 @@ shadow_keys (int number, char *key[])
setspent ();
while ((sp = getspent ()) != NULL)
print_shadow (sp);
endpwent ();
endspent ();
return result;
}
+8 -1
View File
@@ -18,6 +18,7 @@
#ifdef USE_NSCD
#include <string.h>
#include <nscd/nscd.h>
@@ -30,7 +31,7 @@ static union \
{ \
.file = \
{ \
.fname = filename, ## __VA_ARGS__ \
__VA_ARGS__ \
} \
}
@@ -45,16 +46,22 @@ TF (netgr, "/etc/netgroup");
void
_nss_files_init (void (*cb) (size_t, struct traced_file *))
{
strcpy (pwd_traced_file.file.fname, "/etc/passwd");
cb (pwddb, &pwd_traced_file.file);
strcpy (grp_traced_file.file.fname, "/etc/group");
cb (grpdb, &grp_traced_file.file);
strcpy (hst_traced_file.file.fname, "/etc/hosts");
cb (hstdb, &hst_traced_file.file);
strcpy (resolv_traced_file.file.fname, "/etc/resolv.conf");
cb (hstdb, &resolv_traced_file.file);
strcpy (serv_traced_file.file.fname, "/etc/services");
cb (servdb, &serv_traced_file.file);
strcpy (netgr_traced_file.file.fname, "/etc/netgroup");
cb (netgrdb, &netgr_traced_file.file);
}
+6 -6
View File
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libc 2.17-pre1\n"
"POT-Creation-Date: 2012-12-07 15:10-0500\n"
"PO-Revision-Date: 2012-12-15 11:25+0400\n"
"PO-Revision-Date: 2013-04-21 11:25+0400\n"
"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
"Language-Team: Russian <gnu@mx.ru>\n"
"Language: ru\n"
@@ -3131,11 +3131,11 @@ msgstr "не удалось высвободить занятую аргумен
#: nis/nis_error.h:1 nis/ypclnt.c:832 nis/ypclnt.c:920 posix/regcomp.c:131
#: sysdeps/gnu/errlist.c:20
msgid "Success"
msgstr "Победа"
msgstr "Выполнено"
#: nis/nis_error.h:2
msgid "Probable success"
msgstr "Вероятный успех"
msgstr "Вероятно выполнено"
#: nis/nis_error.h:3
msgid "Not found"
@@ -3143,11 +3143,11 @@ msgstr "Не найдено"
#: nis/nis_error.h:4
msgid "Probably not found"
msgstr "Вероятно, не найдено"
msgstr "Вероятно не найдено"
#: nis/nis_error.h:5
msgid "Cache expired"
msgstr "Время жизни кэша истекло "
msgstr "Время жизни кэша истекло"
#: nis/nis_error.h:6
msgid "NIS+ servers unreachable"
@@ -3159,7 +3159,7 @@ msgstr "Неизвестный объект"
#: nis/nis_error.h:8
msgid "Server busy, try again"
msgstr "Сервер занят, попробуйте еще раз"
msgstr "Сервер занят, попробуйте ещё раз"
#: nis/nis_error.h:9
msgid "Generic system error"
+5
View File
@@ -1,3 +1,8 @@
2013-05-01 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
* sysdeps/aarch64/bits/link.h: Add missing #include <stdint.h>
due to uint[32|64]_t usage.
2013-03-19 Andreas Schwab <schwab@suse.de>
* sysdeps/unix/sysv/linux/aarch64/configure.in: Set
+11
View File
@@ -1,3 +1,14 @@
2013-05-01 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
* sysdeps/unix/sysv/linux/alpha/bits/elfclass.h: Add missing #include
<stdint.h> due to uint[32|64]_t usage.
* sysdeps/unix/sysv/linux/alpha/bits/netdb.h: Likewise.
2013-05-01 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
* sysdeps/alpha/bits/link.h: Add missing #include <stdint.h> due to
uint[32|64]_t usage.
2013-03-06 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/alpha/bits/mman.h (MAP_HUGE_MASK)
+5
View File
@@ -1,3 +1,8 @@
2013-05-01 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
* sysdeps/arm/bits/link.h: Add missing #include <stdint.h> due to
uint[32|64]_t usage.
2013-04-19 Roland McGrath <roland@hack.frob.com>
* sysdeps/arm/sysdep.h
+5
View File
@@ -1,3 +1,8 @@
2013-05-01 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
* sysdeps/hppa/bits/link.h: Add missing #include <stdint.h> due to
uint[32|64]_t usage.
2013-04-02 Thomas Schwinge <thomas@codesourcery.com>
* sysdeps/hppa/math_private.h: New file.
+5
View File
@@ -1,3 +1,8 @@
2013-05-01 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
* sysdeps/ia64/bits/link.h: Add missing #include <stdint.h> due to
uint[32|64]_t usage.
2013-03-12 Mike Frysinger <vapier@gentoo.org>
* sysdeps/unix/sysv/linux/ia64/sysdep.h (INTERNAL_SYSCALL_DECL): Add
+5
View File
@@ -1,3 +1,8 @@
2013-05-01 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
* sysdeps/m68k/bits/link.h: Add missing #include <stdint.h> due to
uint[32|64]_t usage.
2013-04-11 Andreas Schwab <schwab@suse.de>
* sysdeps/m68k/m680x0/fpu/libm-test-ulps: Update
+5
View File
@@ -1,3 +1,8 @@
2013-05-01 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
* sysdeps/microblaze/bits/link.h: Add missing #include <stdint.h> due
to uint[32|64]_t usage.
2013-03-28 David Holsgrove <david.holsgrove@xilinx.com>
* sysdeps/microblaze/Implies: New file.
+5
View File
@@ -1,3 +1,8 @@
2013-05-01 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
* sysdeps/mips/bits/link.h: Add missing #include <stdint.h> due to
uint[32|64]_t usage.
2013-04-02 Thomas Schwinge <thomas@codesourcery.com>
* sysdeps/mips/math_private.h: New file.
+2
View File
@@ -20,6 +20,8 @@
# error "Never include <bits/link.h> directly; use <link.h> instead."
#endif
#include <stdint.h>
/* Registers for entry into PLT on AArch64. */
typedef struct La_aarch64_regs
{
+1
View File
@@ -19,6 +19,7 @@
# error "Never include <bits/link.h> directly; use <link.h> instead."
#endif
#include <stdint.h>
/* Registers for entry into PLT on Alpha. */
typedef struct La_alpha_regs
+1
View File
@@ -19,6 +19,7 @@
# error "Never include <bits/link.h> directly; use <link.h> instead."
#endif
#include <stdint.h>
/* Registers for entry into PLT on ARM. */
typedef struct La_arm_regs
+2
View File
@@ -19,6 +19,8 @@
# error "Never include <bits/link.h> directly; use <link.h> instead."
#endif
#include <stdint.h>
/* Registers for entry into PLT on hppa. */
typedef struct La_hppa_regs
{
+2
View File
@@ -19,6 +19,8 @@
# error "Never include <bits/link.h> directly; use <link.h> instead."
#endif
#include <stdint.h>
/* Registers for entry into PLT on ia64. */
typedef struct La_ia64_regs
{
+1
View File
@@ -19,6 +19,7 @@
# error "Never include <bits/link.h> directly; use <link.h> instead."
#endif
#include <stdint.h>
/* Registers for entry into PLT on M68K. */
typedef struct La_m68k_regs
+2
View File
@@ -20,6 +20,8 @@
# error "Never include <bits/link.h> directly; use <link.h> instead."
#endif
#include <stdint.h>
/* Registers for entry into PLT on Microblaze. */
typedef struct La_microblaze_regs
{
+1
View File
@@ -20,6 +20,7 @@
#endif
#include <sgidefs.h>
#include <stdint.h>
#if _MIPS_SIM == _ABIO32
@@ -7,6 +7,7 @@
#endif
#include <bits/wordsize.h>
#include <stdint.h>
#define __ELF_NATIVE_CLASS __WORDSIZE
@@ -19,6 +19,7 @@
# error "Never include <bits/netdb.h> directly; use <netdb.h> instead."
#endif
#include <stdint.h>
/* Description of data base entry for a single network. NOTE: here a
poor assumption is made. The network number is expected to fit
+9 -3
View File
@@ -573,7 +573,7 @@ p_option(u_long option) {
case RES_INIT: return "init";
case RES_DEBUG: return "debug";
case RES_AAONLY: return "aaonly(unimpl)";
case RES_USEVC: return "usevc";
case RES_USEVC: return "use-vc";
case RES_PRIMARY: return "primry(unimpl)";
case RES_IGNTC: return "igntc";
case RES_RECURSE: return "recurs";
@@ -582,11 +582,17 @@ p_option(u_long option) {
case RES_DNSRCH: return "dnsrch";
case RES_INSECURE1: return "insecure1";
case RES_INSECURE2: return "insecure2";
case RES_NOALIASES: return "noaliases";
case RES_USE_INET6: return "inet6";
case RES_ROTATE: return "rotate";
case RES_NOCHECKNAME: return "no-check-names";
case RES_USEBSTRING: return "ip6-bytstring";
case RES_NOCHECKNAME: return "no-check-names(unimpl)";
case RES_KEEPTSIG: return "keeptsig(unimpl)";
case RES_BLAST: return "blast";
case RES_USEBSTRING: return "ip6-bytestring";
case RES_NOIP6DOTINT: return "no-ip6-dotint";
case RES_USE_EDNS0: return "edns0";
case RES_SNGLKUP: return "single-request";
case RES_SNGLKUPREOP: return "single-request-reopen";
case RES_USE_DNSSEC: return "dnssec";
case RES_NOTLDQUERY: return "no-tld-query";
/* XXX nonreentrant */
+1 -1
View File
@@ -207,7 +207,7 @@ struct res_sym {
#define RES_NOALIASES 0x00001000 /* shuts off HOSTALIASES feature */
#define RES_USE_INET6 0x00002000 /* use/map IPv6 in gethostbyname() */
#define RES_ROTATE 0x00004000 /* rotate ns list after each query */
#define RES_NOCHECKNAME 0x00008000 /* do not check names for sanity. */
#define RES_NOCHECKNAME 0x00008000 /* do not check names for sanity (!IMPL) */
#define RES_KEEPTSIG 0x00010000 /* do not strip TSIG records */
#define RES_BLAST 0x00020000 /* blast all recursive servers */
#define RES_USEBSTRING 0x00040000 /* IPv6 reverse lookup with byte
+96 -21
View File
@@ -22,36 +22,48 @@ use warnings;
# Generate a benchmark source file for a given input.
if (@ARGV < 2) {
die "Usage: bench.pl <function> <iterations> [parameter types] [return type]"
die "Usage: bench.pl <function> [parameter types] [return type]"
}
my $arg;
my $func = $ARGV[0];
my $iters = $ARGV[1];
my @args;
my $ret = "void";
my $getret = "";
my $retval = "";
if (@ARGV >= 3) {
@args = split(':', $ARGV[2]);
if (@ARGV >= 2) {
@args = split(':', $ARGV[1]);
}
if (@ARGV == 4) {
$ret = $ARGV[3];
if (@ARGV == 3) {
$ret = $ARGV[2];
}
my $decl = "extern $ret $func (";
# Function has no arguments.
if (@args == 0 || $args[0] eq "void") {
print "$decl void);\n";
print "#define CALL_BENCH_FUNC(j) $func();\n";
print "#define NUM_SAMPLES (1)\n";
print "#define CALL_BENCH_FUNC(i,j) $func();\n";
print "#define NUM_VARIANTS (1)\n";
print "#define NUM_SAMPLES(v) (1)\n";
print "#define VARIANT(v) FUNCNAME \"()\"\n"
}
# The function has arguments, so parse them and populate the inputs.
else {
my $num = 0;
my $bench_func = "#define CALL_BENCH_FUNC(j) $func (";
my $struct = "struct args {";
my $bench_func = "#define CALL_BENCH_FUNC(v, i) $func (";
my $struct =
"struct _variants
{
const char *name;
int count;
struct args *in;
};\n";
my $arg_struct = "struct args {";
foreach $arg (@args) {
if ($num > 0) {
@@ -59,24 +71,87 @@ else {
$decl = "$decl,";
}
$struct = "$struct $arg arg$num;";
$bench_func = "$bench_func in[j].arg$num";
$arg_struct = "$arg_struct $arg arg$num;";
$bench_func = "$bench_func variants[v].in[i].arg$num";
$decl = "$decl $arg";
$num = $num + 1;
}
print "$decl);\n";
print "$bench_func);\n";
print "$struct } in[] = {";
$arg_struct = $arg_struct . "};\n";
$decl = $decl . ");\n";
$bench_func = $bench_func . ");\n";
# We create a hash of inputs for each variant of the test.
my $variant = "";
my @curvals;
my %vals;
open INPUTS, "<$func-inputs" or die $!;
while (<INPUTS>) {
LINE:while (<INPUTS>) {
chomp;
print "{$_},\n";
# New variant.
if (/^## (\w+): (\w+)/) {
#We only identify Name for now.
if ($1 ne "name") {
next LINE;
}
# Save values in the last variant.
my @copy = @curvals;
$vals{$variant} = \@copy;
# Prepare for the next.
$variant=$2;
undef @curvals;
next LINE;
}
# Skip over comments.
if (/^#/) {
next LINE;
}
push (@curvals, $_);
}
print "};\n";
print "#define NUM_SAMPLES (sizeof (in) / sizeof (struct args))\n"
$vals{$variant} = \@curvals;
# Print the definitions and macros.
print $decl;
print $bench_func;
print $arg_struct;
print $struct;
my $c = 0;
my $key;
# Print the input arrays.
foreach $key (keys %vals) {
my @arr = @{$vals{$key}};
print "struct args in" . $c . "[" . @arr . "] = {\n";
foreach (@arr) {
print "{$_},\n";
}
print "};\n\n";
$c += 1;
}
# The variants. Each variant then points to the appropriate input array we
# defined above.
print "struct _variants variants[" . (keys %vals) . "] = {\n";
$c = 0;
foreach $key (keys %vals) {
print "{\"$func($key)\", " . @{$vals{$key}} . ", in$c},\n";
$c += 1;
}
print "};\n\n";
# Finally, print the last set of macros.
print "#define NUM_VARIANTS $c\n";
print "#define NUM_SAMPLES(i) (variants[i].count)\n";
print "#define VARIANT(i) (variants[i].name)\n";
}
# In some cases not storing a return value seems to result in the function call
@@ -86,8 +161,8 @@ if ($ret ne "void") {
$getret = "ret = ";
}
print "#define BENCH_FUNC(j) ({$getret CALL_BENCH_FUNC (j);})\n";
# And we're done.
print "#define BENCH_FUNC(i, j) ({$getret CALL_BENCH_FUNC (i, j);})\n";
print "#define ITER $iters\n";
print "#define FUNCNAME \"$func\"\n";
print "#include \"bench-skeleton.c\"\n";
+1 -1
View File
@@ -973,7 +973,7 @@ do { \
R##_s = 0; \
if (X##_s) \
{ \
R##_c = FP_CLS_NAN; /* sNAN */ \
R##_c = FP_CLS_NAN; /* NAN */ \
R##_s = _FP_NANSIGN_##fs; \
_FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
FP_SET_EXCEPTION(FP_EX_INVALID); \
+1 -3
View File
@@ -30,12 +30,10 @@ __END_NAMESPACE_C99
__LDBL_REDIR1_DECL (strtold_l, strtod_l)
#endif
#if defined __USE_SVID || defined __USE_XOPEN_EXTENDED
# ifdef __USE_MISC
#ifdef __USE_MISC
__LDBL_REDIR1_DECL (qecvt, ecvt)
__LDBL_REDIR1_DECL (qfcvt, fcvt)
__LDBL_REDIR1_DECL (qgcvt, gcvt)
__LDBL_REDIR1_DECL (qecvt_r, ecvt_r)
__LDBL_REDIR1_DECL (qfcvt_r, fcvt_r)
# endif
#endif
+3 -2
View File
@@ -234,16 +234,17 @@ __initstate (seed, arg_state, n)
size_t n;
{
int32_t *ostate;
int ret;
__libc_lock_lock (lock);
ostate = &unsafe_state.state[-1];
__initstate_r (seed, arg_state, n, &unsafe_state);
ret = __initstate_r (seed, arg_state, n, &unsafe_state);
__libc_lock_unlock (lock);
return (char *) ostate;
return ret == -1 ? NULL : (char *) ostate;
}
weak_alias (__initstate, initstate)
+3 -4
View File
@@ -823,9 +823,9 @@ extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
be written to BUF. */
extern char *gcvt (double __value, int __ndigit, char *__buf)
__THROW __nonnull ((3)) __wur;
#endif
# ifdef __USE_MISC
#ifdef __USE_MISC
/* Long double versions of above functions. */
extern char *qecvt (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign)
@@ -854,8 +854,7 @@ extern int qfcvt_r (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign,
char *__restrict __buf, size_t __len)
__THROW __nonnull ((3, 4, 5));
# endif /* misc */
#endif /* use MISC || use X/Open Unix */
#endif /* misc */
__BEGIN_NAMESPACE_STD
+1
View File
@@ -18,6 +18,7 @@
#ifndef _RPC_AUTH_DES_H
#define _RPC_AUTH_DES_H 1
#include <stdint.h>
#include <sys/cdefs.h>
#include <rpc/auth.h>
+1
View File
@@ -40,6 +40,7 @@
/* We need FILE. */
#include <stdio.h>
#include <stdint.h>
__BEGIN_DECLS
-7
View File
@@ -40,11 +40,6 @@ typedef wchar_t __gwchar_t;
# define ____gwchar_t_defined 1
#endif
/* The ISO C99 standard specifies that these macros must only be
defined if explicitly requested. */
#if !defined __cplusplus || defined __STDC_FORMAT_MACROS
# if __WORDSIZE == 64
# define __PRI64_PREFIX "l"
# define __PRIPTR_PREFIX "l"
@@ -267,8 +262,6 @@ typedef wchar_t __gwchar_t;
# define SCNuPTR __PRIPTR_PREFIX "u"
# define SCNxPTR __PRIPTR_PREFIX "x"
#endif /* C++ && format macros */
__BEGIN_DECLS
-13
View File
@@ -141,10 +141,6 @@ typedef unsigned long long int uintmax_t;
#endif
/* The ISO C99 standard specifies that in C++ implementations these
macros should only be defined if explicitly requested. */
#if !defined __cplusplus || defined __STDC_LIMIT_MACROS
# if __WORDSIZE == 64
# define __INT64_C(c) c ## L
# define __UINT64_C(c) c ## UL
@@ -278,13 +274,6 @@ typedef unsigned long long int uintmax_t;
# define WINT_MIN (0u)
# define WINT_MAX (4294967295u)
#endif /* C++ && limit macros */
/* The ISO C99 standard specifies that in C++ implementations these
should only be defined if explicitly requested. */
#if !defined __cplusplus || defined __STDC_CONSTANT_MACROS
/* Signed. */
# define INT8_C(c) c
# define INT16_C(c) c
@@ -314,6 +303,4 @@ typedef unsigned long long int uintmax_t;
# define UINTMAX_C(c) c ## ULL
# endif
#endif /* C++ && constant macros */
#endif /* stdint.h */
+380
View File
@@ -292,7 +292,9 @@ ildouble: 1
ldouble: 1
Test "Imaginary part of: cacos (-0.5 + 0x1p-23 i) == 2.094395102393190022547898764614298351924 - 1.376510308240943236356088341381173571841e-7 i":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Imaginary part of: cacos (-0.5 + 0x1p-52 i) == 2.094395102393195492308428922186316279087 - 2.563950248511418570403591756798643804971e-16 i":
double: 1
idouble: 1
@@ -316,7 +318,9 @@ ildouble: 1
ldouble: 1
Test "Imaginary part of: cacos (-0.5 - 0x1p-23 i) == 2.094395102393190022547898764614298351924 + 1.376510308240943236356088341381173571841e-7 i":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Imaginary part of: cacos (-0.5 - 0x1p-52 i) == 2.094395102393195492308428922186316279087 + 2.563950248511418570403591756798643804971e-16 i":
double: 1
idouble: 1
@@ -347,6 +351,12 @@ ldouble: 1
Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 - 0x1p-63 i) == 3.141592653170952461345846619605307690007 + 2.588578361325995866221775673638805081337e-10 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: cacos (-0x0.ffffffp0 + 0x1p-23 i) == 3.141153467203602189751698864505105063797 - 2.714321200917194650737217746780928423385e-4 i":
double: 1
idouble: 1
Test "Imaginary part of: cacos (-0x0.ffffffp0 - 0x1p-23 i) == 3.141153467203602189751698864505105063797 + 2.714321200917194650737217746780928423385e-4 i":
double: 1
idouble: 1
Test "Imaginary part of: cacos (-0x1.0000000000000002p0 + 0x1p-63 i) == 3.141592653377875508152537040020250564229 - 5.116146586219826555037807251857670783420e-10 i":
ildouble: 2
ldouble: 2
@@ -621,7 +631,9 @@ double: 1
idouble: 1
Test "Imaginary part of: cacos (0.5 + 0x1p-23 i) == 1.047197551196603215914744618665204532273 - 1.376510308240943236356088341381173571841e-7 i":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Real part of: cacos (0.5 + 0x1p-52 i) == 1.047197551196597746154214461093186605110 - 2.563950248511418570403591756798643804971e-16 i":
double: 1
idouble: 1
@@ -666,7 +678,9 @@ double: 1
idouble: 1
Test "Imaginary part of: cacos (0.5 - 0x1p-23 i) == 1.047197551196603215914744618665204532273 + 1.376510308240943236356088341381173571841e-7 i":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Real part of: cacos (0.5 - 0x1p-52 i) == 1.047197551196597746154214461093186605110 + 2.563950248511418570403591756798643804971e-16 i":
double: 1
idouble: 1
@@ -718,6 +732,12 @@ ldouble: 1
Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 - 0x1p-63 i) == 4.188407771167967636741951941902992986043e-10 + 2.588578361325995866221775673638805081337e-10 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: cacos (0x0.ffffffp0 + 0x1p-23 i) == 4.391863861910487109445187743978204002614e-4 - 2.714321200917194650737217746780928423385e-4 i":
double: 1
idouble: 1
Test "Imaginary part of: cacos (0x0.ffffffp0 - 0x1p-23 i) == 4.391863861910487109445187743978204002614e-4 + 2.714321200917194650737217746780928423385e-4 i":
double: 1
idouble: 1
Test "Real part of: cacos (0x1.0000000000000002p0 + 0x1p-63 i) == 2.119177303101063432592523199680782317447e-10 - 5.116146586219826555037807251857670783420e-10 i":
ildouble: 1
ldouble: 1
@@ -1067,7 +1087,9 @@ ildouble: 1
ldouble: 1
Test "Real part of: cacosh (-0.5 + 0x1p-23 i) == 1.376510308240943236356088341381173571841e-7 + 2.094395102393190022547898764614298351924 i":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Real part of: cacosh (-0.5 + 0x1p-52 i) == 2.563950248511418570403591756798643804971e-16 + 2.094395102393195492308428922186316279087 i":
double: 1
idouble: 1
@@ -1091,7 +1113,9 @@ ildouble: 1
ldouble: 1
Test "Real part of: cacosh (-0.5 - 0x1p-23 i) == 1.376510308240943236356088341381173571841e-7 - 2.094395102393190022547898764614298351924 i":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Real part of: cacosh (-0.5 - 0x1p-52 i) == 2.563950248511418570403591756798643804971e-16 - 2.094395102393195492308428922186316279087 i":
double: 1
idouble: 1
@@ -1122,6 +1146,12 @@ ldouble: 1
Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 - 0x1p-63 i) == 2.588578361325995866221775673638805081337e-10 - 3.141592653170952461345846619605307690007 i":
ildouble: 1
ldouble: 1
Test "Real part of: cacosh (-0x0.ffffffp0 + 0x1p-23 i) == 2.714321200917194650737217746780928423385e-4 + 3.141153467203602189751698864505105063797 i":
double: 1
idouble: 1
Test "Real part of: cacosh (-0x0.ffffffp0 - 0x1p-23 i) == 2.714321200917194650737217746780928423385e-4 - 3.141153467203602189751698864505105063797 i":
double: 1
idouble: 1
Test "Real part of: cacosh (-0x1.0000000000000002p0 + 0x1p-63 i) == 5.116146586219826555037807251857670783420e-10 + 3.141592653377875508152537040020250564229 i":
ildouble: 2
ldouble: 2
@@ -1396,7 +1426,9 @@ double: 1
idouble: 1
Test "Real part of: cacosh (0.5 + 0x1p-23 i) == 1.376510308240943236356088341381173571841e-7 + 1.047197551196603215914744618665204532273 i":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Real part of: cacosh (0.5 + 0x1p-52 i) == 2.563950248511418570403591756798643804971e-16 + 1.047197551196597746154214461093186605110 i":
double: 1
idouble: 1
@@ -1441,7 +1473,9 @@ double: 1
idouble: 1
Test "Real part of: cacosh (0.5 - 0x1p-23 i) == 1.376510308240943236356088341381173571841e-7 - 1.047197551196603215914744618665204532273 i":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Real part of: cacosh (0.5 - 0x1p-52 i) == 2.563950248511418570403591756798643804971e-16 - 1.047197551196597746154214461093186605110 i":
double: 1
idouble: 1
@@ -1493,6 +1527,12 @@ ldouble: 1
Test "Imaginary part of: cacosh (0x0.ffffffffffffffffp0 - 0x1p-63 i) == 2.588578361325995866221775673638805081337e-10 - 4.188407771167967636741951941902992986043e-10 i":
ildouble: 1
ldouble: 1
Test "Real part of: cacosh (0x0.ffffffp0 + 0x1p-23 i) == 2.714321200917194650737217746780928423385e-4 + 4.391863861910487109445187743978204002614e-4 i":
double: 1
idouble: 1
Test "Real part of: cacosh (0x0.ffffffp0 - 0x1p-23 i) == 2.714321200917194650737217746780928423385e-4 - 4.391863861910487109445187743978204002614e-4 i":
double: 1
idouble: 1
Test "Real part of: cacosh (0x1.0000000000000002p0 + 0x1p-63 i) == 5.116146586219826555037807251857670783420e-10 + 2.119177303101063432592523199680782317447e-10 i":
ildouble: 2
ldouble: 2
@@ -1839,7 +1879,9 @@ ildouble: 1
ldouble: 1
Test "Imaginary part of: casin (-0.5 + 0x1p-23 i) == -5.235987755982934033165770729745469098254e-1 + 1.376510308240943236356088341381173571841e-7 i":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Imaginary part of: casin (-0.5 + 0x1p-52 i) == -5.235987755982988730771072305465648369889e-1 + 2.563950248511418570403591756798643804971e-16 i":
double: 1
idouble: 1
@@ -1869,7 +1911,9 @@ ildouble: 1
ldouble: 1
Test "Imaginary part of: casin (-0.5 - 0x1p-23 i) == -5.235987755982934033165770729745469098254e-1 - 1.376510308240943236356088341381173571841e-7 i":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Imaginary part of: casin (-0.5 - 0x1p-52 i) == -5.235987755982988730771072305465648369889e-1 - 2.563950248511418570403591756798643804971e-16 i":
double: 1
idouble: 1
@@ -1903,6 +1947,12 @@ ldouble: 1
Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 - 0x1p-63 i) == -1.570796326376055842114524927965556247908 - 2.588578361325995866221775673638805081337e-10 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: casin (-0x0.ffffffp0 + 0x1p-23 i) == -1.570357140408705570520377172865353621698 + 2.714321200917194650737217746780928423385e-4 i":
double: 1
idouble: 1
Test "Imaginary part of: casin (-0x0.ffffffp0 - 0x1p-23 i) == -1.570357140408705570520377172865353621698 - 2.714321200917194650737217746780928423385e-4 i":
double: 1
idouble: 1
Test "Imaginary part of: casin (-0x1.0000000000000002p0 + 0x1p-63 i) == -1.570796326582978888921215348380499122131 + 5.116146586219826555037807251857670783420e-10 i":
ildouble: 2
ldouble: 2
@@ -2219,7 +2269,9 @@ ildouble: 1
ldouble: 1
Test "Imaginary part of: casin (0.5 + 0x1p-23 i) == 5.235987755982934033165770729745469098254e-1 + 1.376510308240943236356088341381173571841e-7 i":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Imaginary part of: casin (0.5 + 0x1p-52 i) == 5.235987755982988730771072305465648369889e-1 + 2.563950248511418570403591756798643804971e-16 i":
double: 1
idouble: 1
@@ -2249,7 +2301,9 @@ ildouble: 1
ldouble: 1
Test "Imaginary part of: casin (0.5 - 0x1p-23 i) == 5.235987755982934033165770729745469098254e-1 - 1.376510308240943236356088341381173571841e-7 i":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Imaginary part of: casin (0.5 - 0x1p-52 i) == 5.235987755982988730771072305465648369889e-1 - 2.563950248511418570403591756798643804971e-16 i":
double: 1
idouble: 1
@@ -2289,6 +2343,12 @@ ldouble: 1
Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 - 0x1p-63 i) == 1.570796326376055842114524927965556247908 - 2.588578361325995866221775673638805081337e-10 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: casin (0x0.ffffffp0 + 0x1p-23 i) == 1.570357140408705570520377172865353621698 + 2.714321200917194650737217746780928423385e-4 i":
double: 1
idouble: 1
Test "Imaginary part of: casin (0x0.ffffffp0 - 0x1p-23 i) == 1.570357140408705570520377172865353621698 - 2.714321200917194650737217746780928423385e-4 i":
double: 1
idouble: 1
Test "Imaginary part of: casin (0x1.0000000000000002p0 + 0x1p-63 i) == 1.570796326582978888921215348380499122131 + 5.116146586219826555037807251857670783420e-10 i":
ildouble: 2
ldouble: 2
@@ -2814,10 +2874,15 @@ ildouble: 1
ldouble: 1
Test "Real part of: casinh (-0x1p-23 + 0.5 i) == -1.376510308240943236356088341381173571841e-7 + 5.235987755982934033165770729745469098254e-1 i":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Imaginary part of: casinh (-0x1p-23 + 0.5 i) == -1.376510308240943236356088341381173571841e-7 + 5.235987755982934033165770729745469098254e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: casinh (-0x1p-23 + 0x0.ffffffp0 i) == -2.714321200917194650737217746780928423385e-4 + 1.570357140408705570520377172865353621698 i":
double: 1
idouble: 1
Test "Real part of: casinh (-0x1p-23 + 0x1.fp-129 i) == -1.192092895507809676556842485683592032154e-7 + 2.846900380897707329917933005874691056564e-39 i":
ildouble: 1
ldouble: 1
@@ -2826,10 +2891,15 @@ ildouble: 1
ldouble: 1
Test "Real part of: casinh (-0x1p-23 - 0.5 i) == -1.376510308240943236356088341381173571841e-7 - 5.235987755982934033165770729745469098254e-1 i":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Imaginary part of: casinh (-0x1p-23 - 0.5 i) == -1.376510308240943236356088341381173571841e-7 - 5.235987755982934033165770729745469098254e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: casinh (-0x1p-23 - 0x0.ffffffp0 i) == -2.714321200917194650737217746780928423385e-4 - 1.570357140408705570520377172865353621698 i":
double: 1
idouble: 1
Test "Real part of: casinh (-0x1p-23 - 0x1.fp-129 i) == -1.192092895507809676556842485683592032154e-7 - 2.846900380897707329917933005874691056564e-39 i":
ildouble: 1
ldouble: 1
@@ -3229,10 +3299,15 @@ ildouble: 1
ldouble: 1
Test "Real part of: casinh (0x1p-23 + 0.5 i) == 1.376510308240943236356088341381173571841e-7 + 5.235987755982934033165770729745469098254e-1 i":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Imaginary part of: casinh (0x1p-23 + 0.5 i) == 1.376510308240943236356088341381173571841e-7 + 5.235987755982934033165770729745469098254e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: casinh (0x1p-23 + 0x0.ffffffp0 i) == 2.714321200917194650737217746780928423385e-4 + 1.570357140408705570520377172865353621698 i":
double: 1
idouble: 1
Test "Real part of: casinh (0x1p-23 + 0x1.fp-129 i) == 1.192092895507809676556842485683592032154e-7 + 2.846900380897707329917933005874691056564e-39 i":
ildouble: 1
ldouble: 1
@@ -3241,10 +3316,15 @@ ildouble: 1
ldouble: 1
Test "Real part of: casinh (0x1p-23 - 0.5 i) == 1.376510308240943236356088341381173571841e-7 - 5.235987755982934033165770729745469098254e-1 i":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Imaginary part of: casinh (0x1p-23 - 0.5 i) == 1.376510308240943236356088341381173571841e-7 - 5.235987755982934033165770729745469098254e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: casinh (0x1p-23 - 0x0.ffffffp0 i) == 2.714321200917194650737217746780928423385e-4 - 1.570357140408705570520377172865353621698 i":
double: 1
idouble: 1
Test "Real part of: casinh (0x1p-23 - 0x1.fp-129 i) == 1.192092895507809676556842485683592032154e-7 - 2.846900380897707329917933005874691056564e-39 i":
ildouble: 1
ldouble: 1
@@ -3400,13 +3480,227 @@ double: 1
idouble: 1
# catan
Test "Imaginary part of: catan (-0x0.fffffffffffff8p0 + 0x1p-27 i) == -7.853981633974482679822974223765039144191e-1 + 3.725290298461914441624447420137706700965e-9 i":
double: 1
idouble: 1
Test "Imaginary part of: catan (-0x0.ffffffffffffffffp0 + 0x1p-33 i) == -7.853981633974483095919439232967553115548e-1 + 5.820766091346740722958646680334721192083e-11 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (-0x0.ffffffp0 + 0x1p-13 i) == -7.853981373204155542484315721351697277336e-1 + 6.103515973639646453881721999956617260502e-5 i":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Imaginary part of: catan (-0x1.0000000000001p0 + 0x1p-27 i) == -7.853981633974484345157511161499711112683e-1 + 3.725290298461913200853528590596263270474e-9 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (-0x1.000002p0 - 0x1p-13 i) == -7.853982267273793866654490522673596014524e-1 - 6.103514882246036852433556327261700380577e-5 i":
double: 1
idouble: 1
Test "Imaginary part of: catan (-0x1.3p-73 + 1.0 i) == -7.853981633974483096156922786831527361009e-1 + 2.556052055225464683726753902092495938633e1 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (-0x1.3p-73 - 1.0 i) == -7.853981633974483096156922786831527361009e-1 - 2.556052055225464683726753902092495938633e1 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (-0x1.fp1023 + 0x1.fp1023 i) == -1.570796326794896619231321691639751442099 + 2.871063043235098558826106732041811695767e-309 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (-0x1.fp1023 - 0x1.fp1023 i) == -1.570796326794896619231321691639751442099 - 2.871063043235098558826106732041811695767e-309 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (-0x1.fp127 + 0x1.fp127 i) == -1.570796326794896619231321691639751442097 + 1.516766904286822590927401983512575068153e-39 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (-0x1.fp127 - 0x1.fp127 i) == -1.570796326794896619231321691639751442097 - 1.516766904286822590927401983512575068153e-39 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (-0x1p-1020 + 1.0 i) == -7.853981633974483096156608458198757210493e-1 + 3.538516356758520804574969980043991380025e2 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (-0x1p-1020 - 1.0 i) == -7.853981633974483096156608458198757210493e-1 - 3.538516356758520804574969980043991380025e2 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (-0x1p-1022 + 0x0.ffffffffffffffffp0 i) == -2.052268400649188124723641491045245971623e-289 + 2.252728336819822255604649142023466965703e1 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (-0x1p-1022 - 0x0.ffffffffffffffffp0 i) == -2.052268400649188124723641491045245971623e-289 - 2.252728336819822255604649142023466965703e1 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (-0x1p-16382 + 0x0.ffffffffffffffffp0 i) == -3.100992811520163369065387859792822623745e-4913 + 2.252728336819822255604649142023466965703e1 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (-0x1p-16382 - 0x0.ffffffffffffffffp0 i) == -3.100992811520163369065387859792822623745e-4913 - 2.252728336819822255604649142023466965703e1 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (-0x1p-33 + 0x0.ffffffffffffffffp0 i) == -7.853981631937214964185249205444919953948e-1 + 1.178350206951907026002603046195591193050e1 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (-0x1p-33 - 0x0.ffffffffffffffffp0 i) == -7.853981631937214964185249205444919953948e-1 - 1.178350206951907026002603046195591193050e1 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (-0x1p-64 + 1.0 i) == -7.853981633974483096292133729759445264744e-1 + 2.252728336819822255606004394739073846245e1 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (-0x1p-64 - 1.0 i) == -7.853981633974483096292133729759445264744e-1 - 2.252728336819822255606004394739073846245e1 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (-1.0 + 0x1p-64 i) == -7.853981633974483096156608458198757210500e-1 + 2.710505431213761085018632002174854278563e-20 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (-1.0 - 0x1p-13 i) == -7.853981671227386080775748393881580082970e-1 - 6.103515609841754902688560615027452023669e-5 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (-1.0 - 0x1p-64 i) == -7.853981633974483096156608458198757210500e-1 - 2.710505431213761085018632002174854278563e-20 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Imaginary part of: catan (0x0.fffffffffffff8p0 + 0x1p-27 i) == 7.853981633974482679822974223765039144191e-1 + 3.725290298461914441624447420137706700965e-9 i":
double: 1
idouble: 1
Test "Imaginary part of: catan (0x0.ffffffffffffffffp0 + 0x1p-33 i) == 7.853981633974483095919439232967553115548e-1 + 5.820766091346740722958646680334721192083e-11 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (0x0.ffffffp0 + 0x1p-13 i) == 7.853981373204155542484315721351697277336e-1 + 6.103515973639646453881721999956617260502e-5 i":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Imaginary part of: catan (0x1.0000000000001p0 + 0x1p-27 i) == 7.853981633974484345157511161499711112683e-1 + 3.725290298461913200853528590596263270474e-9 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (0x1.000002p0 - 0x1p-13 i) == 7.853982267273793866654490522673596014524e-1 - 6.103514882246036852433556327261700380577e-5 i":
double: 1
idouble: 1
Test "Imaginary part of: catan (0x1.3p-73 + 1.0 i) == 7.853981633974483096156922786831527361009e-1 + 2.556052055225464683726753902092495938633e1 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (0x1.3p-73 - 1.0 i) == 7.853981633974483096156922786831527361009e-1 - 2.556052055225464683726753902092495938633e1 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (0x1.fp1023 + 0x1.fp1023 i) == 1.570796326794896619231321691639751442099 + 2.871063043235098558826106732041811695767e-309 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (0x1.fp1023 - 0x1.fp1023 i) == 1.570796326794896619231321691639751442099 - 2.871063043235098558826106732041811695767e-309 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (0x1.fp127 + 0x1.fp127 i) == 1.570796326794896619231321691639751442097 + 1.516766904286822590927401983512575068153e-39 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (0x1.fp127 - 0x1.fp127 i) == 1.570796326794896619231321691639751442097 - 1.516766904286822590927401983512575068153e-39 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (0x1p-1020 + 1.0 i) == 7.853981633974483096156608458198757210493e-1 + 3.538516356758520804574969980043991380025e2 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (0x1p-1020 - 1.0 i) == 7.853981633974483096156608458198757210493e-1 - 3.538516356758520804574969980043991380025e2 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (0x1p-1022 + 0x0.ffffffffffffffffp0 i) == 2.052268400649188124723641491045245971623e-289 + 2.252728336819822255604649142023466965703e1 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (0x1p-1022 - 0x0.ffffffffffffffffp0 i) == 2.052268400649188124723641491045245971623e-289 - 2.252728336819822255604649142023466965703e1 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (0x1p-16382 + 0x0.ffffffffffffffffp0 i) == 3.100992811520163369065387859792822623745e-4913 + 2.252728336819822255604649142023466965703e1 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (0x1p-16382 - 0x0.ffffffffffffffffp0 i) == 3.100992811520163369065387859792822623745e-4913 - 2.252728336819822255604649142023466965703e1 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (0x1p-33 + 0x0.ffffffffffffffffp0 i) == 7.853981631937214964185249205444919953948e-1 + 1.178350206951907026002603046195591193050e1 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (0x1p-33 - 0x0.ffffffffffffffffp0 i) == 7.853981631937214964185249205444919953948e-1 - 1.178350206951907026002603046195591193050e1 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (0x1p-64 + 1.0 i) == 7.853981633974483096292133729759445264744e-1 + 2.252728336819822255606004394739073846245e1 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (0x1p-64 - 1.0 i) == 7.853981633974483096292133729759445264744e-1 - 2.252728336819822255606004394739073846245e1 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (1.0 + 0x1p-64 i) == 7.853981633974483096156608458198757210500e-1 + 2.710505431213761085018632002174854278563e-20 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (1.0 - 0x1p-13 i) == 7.853981671227386080775748393881580082970e-1 - 6.103515609841754902688560615027452023669e-5 i":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (1.0 - 0x1p-64 i) == 7.853981633974483096156608458198757210500e-1 - 2.710505431213761085018632002174854278563e-20 i":
ildouble: 1
ldouble: 1
# catanh
Test "Real part of: catanh (-0x0.ffffffffffffffffp0 + 0x1p-1022 i) == -2.252728336819822255604649142023466965703e1 + 2.052268400649188124723641491045245971623e-289 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (-0x0.ffffffffffffffffp0 + 0x1p-16382 i) == -2.252728336819822255604649142023466965703e1 + 3.100992811520163369065387859792822623745e-4913 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (-0x0.ffffffffffffffffp0 + 0x1p-33 i) == -1.178350206951907026002603046195591193050e1 + 7.853981631937214964185249205444919953948e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (-0x0.ffffffffffffffffp0 - 0x1p-1022 i) == -2.252728336819822255604649142023466965703e1 - 2.052268400649188124723641491045245971623e-289 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (-0x0.ffffffffffffffffp0 - 0x1p-16382 i) == -2.252728336819822255604649142023466965703e1 - 3.100992811520163369065387859792822623745e-4913 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (-0x0.ffffffffffffffffp0 - 0x1p-33 i) == -1.178350206951907026002603046195591193050e1 - 7.853981631937214964185249205444919953948e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (-0x1.fp1023 + 0x1.fp1023 i) == -2.871063043235098558826106732041811695767e-309 + 1.570796326794896619231321691639751442099 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (-0x1.fp1023 - 0x1.fp1023 i) == -2.871063043235098558826106732041811695767e-309 - 1.570796326794896619231321691639751442099 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (-0x1.fp127 + 0x1.fp127 i) == -1.516766904286822590927401983512575068153e-39 + 1.570796326794896619231321691639751442097 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (-0x1.fp127 - 0x1.fp127 i) == -1.516766904286822590927401983512575068153e-39 - 1.570796326794896619231321691639751442097 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (-0x1p-13 + 0x1.000002p0 i) == -6.103514882246036852433556327261700380577e-5 + 7.853982267273793866654490522673596014524e-1 i":
double: 1
idouble: 1
Test "Real part of: catanh (-0x1p-13 + 1.0 i) == -6.103515609841754902688560615027452023669e-5 + 7.853981671227386080775748393881580082970e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (-0x1p-13 - 0x1.000002p0 i) == -6.103514882246036852433556327261700380577e-5 - 7.853982267273793866654490522673596014524e-1 i":
double: 1
idouble: 1
Test "Real part of: catanh (-0x1p-13 - 1.0 i) == -6.103515609841754902688560615027452023669e-5 - 7.853981671227386080775748393881580082970e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (-0x1p-64 + 1.0 i) == -2.710505431213761085018632002174854278563e-20 + 7.853981633974483096156608458198757210500e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (-0x1p-64 - 1.0 i) == -2.710505431213761085018632002174854278563e-20 - 7.853981633974483096156608458198757210500e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (-1.0 + 0x1.3p-73 i) == -2.556052055225464683726753902092495938633e1 + 7.853981633974483096156922786831527361009e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (-1.0 + 0x1p-1020 i) == -3.538516356758520804574969980043991380025e2 + 7.853981633974483096156608458198757210493e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (-1.0 + 0x1p-64 i) == -2.252728336819822255606004394739073846245e1 + 7.853981633974483096292133729759445264744e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (-1.0 - 0x1.3p-73 i) == -2.556052055225464683726753902092495938633e1 - 7.853981633974483096156922786831527361009e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (-1.0 - 0x1p-1020 i) == -3.538516356758520804574969980043991380025e2 - 7.853981633974483096156608458198757210493e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (-1.0 - 0x1p-64 i) == -2.252728336819822255606004394739073846245e1 - 7.853981633974483096292133729759445264744e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
double: 2
float: 1
@@ -3417,6 +3711,90 @@ ldouble: 1
Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Test "Real part of: catanh (0x0.ffffffffffffffffp0 + 0x1p-1022 i) == 2.252728336819822255604649142023466965703e1 + 2.052268400649188124723641491045245971623e-289 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (0x0.ffffffffffffffffp0 + 0x1p-16382 i) == 2.252728336819822255604649142023466965703e1 + 3.100992811520163369065387859792822623745e-4913 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (0x0.ffffffffffffffffp0 + 0x1p-33 i) == 1.178350206951907026002603046195591193050e1 + 7.853981631937214964185249205444919953948e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (0x0.ffffffffffffffffp0 - 0x1p-1022 i) == 2.252728336819822255604649142023466965703e1 - 2.052268400649188124723641491045245971623e-289 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (0x0.ffffffffffffffffp0 - 0x1p-16382 i) == 2.252728336819822255604649142023466965703e1 - 3.100992811520163369065387859792822623745e-4913 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (0x0.ffffffffffffffffp0 - 0x1p-33 i) == 1.178350206951907026002603046195591193050e1 - 7.853981631937214964185249205444919953948e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (0x1.fp1023 + 0x1.fp1023 i) == 2.871063043235098558826106732041811695767e-309 + 1.570796326794896619231321691639751442099 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (0x1.fp1023 - 0x1.fp1023 i) == 2.871063043235098558826106732041811695767e-309 - 1.570796326794896619231321691639751442099 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (0x1.fp127 + 0x1.fp127 i) == 1.516766904286822590927401983512575068153e-39 + 1.570796326794896619231321691639751442097 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (0x1.fp127 - 0x1.fp127 i) == 1.516766904286822590927401983512575068153e-39 - 1.570796326794896619231321691639751442097 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (0x1p-13 + 0x0.ffffffp0 i) == 6.103515973639646453881721999956617260502e-5 + 7.853981373204155542484315721351697277336e-1 i":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Real part of: catanh (0x1p-13 - 0x0.ffffffp0 i) == 6.103515973639646453881721999956617260502e-5 - 7.853981373204155542484315721351697277336e-1 i":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Real part of: catanh (0x1p-27 + 0x0.fffffffffffff8p0 i) == 3.725290298461914441624447420137706700965e-9 + 7.853981633974482679822974223765039144191e-1 i":
double: 1
idouble: 1
Test "Real part of: catanh (0x1p-27 + 0x1.0000000000001p0 i) == 3.725290298461913200853528590596263270474e-9 + 7.853981633974484345157511161499711112683e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (0x1p-27 - 0x0.fffffffffffff8p0 i) == 3.725290298461914441624447420137706700965e-9 - 7.853981633974482679822974223765039144191e-1 i":
double: 1
idouble: 1
Test "Real part of: catanh (0x1p-27 - 0x1.0000000000001p0 i) == 3.725290298461913200853528590596263270474e-9 - 7.853981633974484345157511161499711112683e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (0x1p-33 + 0x0.ffffffffffffffffp0 i) == 5.820766091346740722958646680334721192083e-11 + 7.853981633974483095919439232967553115548e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (0x1p-33 - 0x0.ffffffffffffffffp0 i) == 5.820766091346740722958646680334721192083e-11 - 7.853981633974483095919439232967553115548e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (0x1p-64 + 1.0 i) == 2.710505431213761085018632002174854278563e-20 + 7.853981633974483096156608458198757210500e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (0x1p-64 - 1.0 i) == 2.710505431213761085018632002174854278563e-20 - 7.853981633974483096156608458198757210500e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (1.0 + 0x1.3p-73 i) == 2.556052055225464683726753902092495938633e1 + 7.853981633974483096156922786831527361009e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (1.0 + 0x1p-1020 i) == 3.538516356758520804574969980043991380025e2 + 7.853981633974483096156608458198757210493e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (1.0 + 0x1p-64 i) == 2.252728336819822255606004394739073846245e1 + 7.853981633974483096292133729759445264744e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (1.0 - 0x1.3p-73 i) == 2.556052055225464683726753902092495938633e1 - 7.853981633974483096156922786831527361009e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (1.0 - 0x1p-1020 i) == 3.538516356758520804574969980043991380025e2 - 7.853981633974483096156608458198757210493e-1 i":
ildouble: 1
ldouble: 1
Test "Real part of: catanh (1.0 - 0x1p-64 i) == 2.252728336819822255606004394739073846245e1 - 7.853981633974483096292133729759445264744e-1 i":
ildouble: 1
ldouble: 1
# cbrt
Test "cbrt (-27.0) == -3.0":
@@ -6154,6 +6532,8 @@ double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: Real part of "catanh":
double: 2
File diff suppressed because it is too large Load Diff
+4 -3
View File
@@ -2495,12 +2495,13 @@ getaddrinfo (const char *name, const char *service,
struct addrinfo *last = NULL;
char *canonname = NULL;
bool malloc_results;
size_t alloc_size = nresults * (sizeof (*results) + sizeof (size_t));
malloc_results
= !__libc_use_alloca (nresults * (sizeof (*results) + sizeof (size_t)));
= !__libc_use_alloca (alloc_size);
if (malloc_results)
{
results = malloc (nresults * (sizeof (*results) + sizeof (size_t)));
results = malloc (alloc_size);
if (results == NULL)
{
__free_in6ai (in6ai);
@@ -2508,7 +2509,7 @@ getaddrinfo (const char *name, const char *service,
}
}
else
results = alloca (nresults * (sizeof (*results) + sizeof (size_t)));
results = alloca (alloc_size);
order = (size_t *) (results + nresults);
/* Now we definitely need the interface information. */
@@ -1,11 +1,11 @@
/* Define slowexp.
/* timespec_get -- C11 interface to sample a clock. Generic POSIX.1 version.
Copyright (C) 2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
version 2.1 of the License.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,4 +16,23 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#define slowexp exp
#include <time.h>
/* Set TS to calendar time based in time base BASE. */
int
timespec_get (struct timespec *ts, int base)
{
switch (base)
{
case TIME_UTC:
if (__clock_gettime (CLOCK_REALTIME, ts) < 0)
return 0;
break;
default:
return 0;
}
return base;
}
+1
View File
@@ -20,6 +20,7 @@
# error "Never include <bits/link.h> directly; use <link.h> instead."
#endif
#include <stdint.h>
#if __ELF_NATIVE_CLASS == 32
File diff suppressed because it is too large Load Diff
+58
View File
@@ -0,0 +1,58 @@
/* Copyright (C) 2013 Free Software Foundation, Inc.
This file is part of the GNU C Library
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, see <http://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
#include <math_ldbl_opt.h>
double
__modf (double x, double *iptr)
{
if (__builtin_isinf (x))
{
*iptr = x;
return __copysign (0.0, x);
}
else if (__builtin_isnan (x))
{
*iptr = NAN;
return NAN;
}
if (x >= 0.0)
{
*iptr = __floor (x);
return (x - *iptr);
}
else
{
*iptr = __ceil (x);
return (x - *iptr);
}
}
weak_alias (__modf, modf)
#ifdef NO_LONG_DOUBLE
strong_alias (__modf, __modfl)
weak_alias (__modf, modfl)
#endif
#ifdef IS_IN_libm
# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
compat_symbol (libm, __modf, modfl, GLIBC_2_0);
# endif
#elif LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
compat_symbol (libc, __modf, modfl, GLIBC_2_0);
#endif
+46
View File
@@ -0,0 +1,46 @@
/* Copyright (C) 2013 Free Software Foundation, Inc.
This file is part of the GNU C Library
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, see <http://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
float
__modff (float x, float *iptr)
{
if (__builtin_isinff (x))
{
*iptr = x;
return __copysignf (0.0, x);
}
else if (__builtin_isnanf (x))
{
*iptr = NAN;
return NAN;
}
if (x >= 0.0)
{
*iptr = __floorf (x);
return (x - *iptr);
}
else
{
*iptr = __ceilf (x);
return (x - *iptr);
}
}
weak_alias (__modff, modff)
@@ -1,2 +1,4 @@
powerpc/power5+/fpu
powerpc/power5+
powerpc/powerpc32/power5/fpu
powerpc/powerpc32/power5
+2
View File
@@ -1,2 +1,4 @@
powerpc/power5/fpu
powerpc/power5
powerpc/powerpc32/power4/fpu
powerpc/powerpc32/power4
@@ -1,2 +1,4 @@
powerpc/power5+/fpu
powerpc/power5+
powerpc/powerpc64/power5/fpu
powerpc/powerpc64/power5

Some files were not shown because too many files have changed in this diff Show More