- Get this branch:
-
git clone
-b fw/math-split-tests
https://git.launchpad.net/glibc
Branch merges
Related source package recipes
Branch information
- Name:
- fw/math-split-tests
- Repository:
- lp:glibc
Recent commits
- f7ba66b... by Joseph Myers <email address hidden>
-
RFC: Run libm tests separately for each function
At present, libm tests for each function get built into a single
executable (for each floating point type, for each of normal / inline
/ finite-math-only functions, plus vector variants) and run together,
resulting in a single PASS or FAIL (for each of those nine variants
plus vector variants). Building this executable involves reading
about 40 MB of libm-test-*.c sources, which would grow to maybe 70 or
80 MB when the complex inverse trig and hyperbolic functions move to
the auto-libm-test-* mechanism (that move is practical now that tests
for all functions don't need regenerating for any change to
auto-libm-test-in but you can instead regenerate each
auto-libm-test-out- * file independently; auto-libm- test-out- casin and
auto-libm-test-out- casinh take about 38 minutes each to generate on my
system after such a move, auto-libm-test-out- cacos and
auto-libm-test-out- cacosh take about 80 minutes each). This patch arranges for tests of each function to be run separately
from the makefiles instead. There are 121 functions being tested for
each (type, variant pair) (actually 126, but run as 121 from the
Makefile because each of the pairs (exp10, pow10), (isfinite, finite),
(lgamma, gamma), (remainder, drem), (scalbn, ldexp), shares a table of
test results and so is run together), so 1089 separate tests run from
the Makefile, plus 48 vector tests on x86_64 (six functions for eight
vector variants). Each test only involves a libm-test-<func>.c file
of no more than about 4 MB, rather than all such files taking about 40
MB. With tests run separately, test summaries will indicate which
functions actually have problems (of course, those problems may just
be out-of-date libm-test-ulps files if the file hasn't been updated
for the architecture in question recently).All the .c files for the 1089+48 tests are generated automatically
from the Makefiles. Various checked-in boilerplate .c files are
removed as no longer needed. CFLAGS definitions for the different
kinds of tests are generated using makefile iterators to apply
target-specific variable settings. libm-have-vector- test.h is no
longer needed; the list of functions to test for each vector type is
now in the sysdeps Makefile.This should remove the amount of boilerplate needed for float128
testing support; test-float128.h will still be needed, but not various
.c files or Makefile CFLAGS definitions. The logic for creating
dependencies on libm-test-support- *.o files should also render
<https://sourceware. org/ml/ libc-alpha/ 2017-02/ msg00279. html>
unnecessary.Any comments? Especially regarding the use of iterators; there is
existing precedent (in elf/Makefile) for using o-iterator.mk as a
generic iterator with object-suffixes- left set to something other than
a list of object suffixes, but maybe there should be a differently
named iterator for such generic uses?2017-02-16 Joseph Myers <email address hidden>
* math/Makefile (libm-tests-
generated) : Remove variable.
(libm-tests-base- normal) : New variable.
(libm-tests-base- finite) : Likewise.
(libm-tests-base- inline) : Likewise.
(libm-tests-base): Likewise.
(libm-tests-normal) : Likewise.
(libm-tests-finite) : Likewise.
(libm-tests-inline) : Likewise.
(libm-tests-vector) : Likewise.
(libm-tests): Define in terms of these new variables.
(libm-tests-for- type): New variable.
(libm-tests.o): Move definition.
(tests): Move addition of $(libm-tests).
(generated): Update for new and removed libm test files.
($(objpfx)libm-test. c): Remove target.
($(objpfx)libm-have- vector- test.h) : Likewise.
(CFLAGS-test-double- vlen2.c) : Remove variable.
(CFLAGS-test-double- vlen4.c) : Likewise.
(CFLAGS-test-double- vlen8.c) : Likewise.
(CFLAGS-test-float- vlen4.c) : Likewise.
(CFLAGS-test-float- vlen8.c) : Likewise.
(CFLAGS-test-float- vlen16. c): Likewise.
(CFLAGS-test-float. c): Likewise.
(CFLAGS-test-float- finite. c): Likewise.
(CFLAGS-libm-test- support- float.c) : Likewise.
(CFLAGS-test-double. c): Likewise.
(CFLAGS-test-double- finite. c): Likewise.
(CFLAGS-libm-test- support- double. c): Likewise.
(CFLAGS-test-ldouble. c): Likewise.
(CFLAGS-test-ldouble- finite. c): Likewise.
(CFLAGS-libm-test- support- ldouble. c): Likewise.
(libm-test-inline- cflags) : New variable.
(CFLAGS-test-ifloat. c): Remove variable.
(CFLAGS-test-idouble. c): Likewise.
(CFLAGS-test-ildouble. c): Likewise.
($(addprefix $(objpfx), $(libm-tests.o))): Move target and update
dependencies.
($(foreach t,$(libm-tests-normal) ,$(objpfx) $(t).c) ): New rule.
($(foreach t,$(libm-tests-finite) ,$(objpfx) $(t).c) ): Likewise.
($(foreach t,$(libm-tests-inline) ,$(objpfx) $(t).c) ): Likewise.
($(foreach t,$(libm-tests-vector) ,$(objpfx) $(t).c) ): Likewise.
($(foreach t,$(types),$(objpfx) libm-test- support- $(t).c) ):
Likewise.
(dependencies on libm-test-support- *.o): Remove.
($(foreach f,$(libm-test-funcs- all),$( objpfx) $(o)-$( f).o)): New
rules using iterators.
($(addprefix $(objpfx),$(call libm-tests-for-type, $(o)))) :
Likewise.
($(objpfx)libm-test- support- $(o).o) : Likewise.
($(addprefix $(objpfx),$(filter- out $(tests-static)
$(libm-vec-tests) ,$(tests) ))): Filter out $(libm- tests-vector)
instead.
($(addprefix $(objpfx), $(libm-vec-tests) )): Use iterator to
define rule instead.
* math/README.libm-test: Update.
* math/libm-test-acos. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-acosh. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-asin. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-asinh. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-atan. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-atan2. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-atanh. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-cabs. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-cacos. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-cacosh. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-canonicali ze.inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-carg. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-casin. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-casinh. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-catan. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-catanh. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-cbrt. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-ccos. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-ccosh. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-ceil. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-cexp. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-cimag. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-clog. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-clog10. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-conj. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-copysign. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-cos. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-cosh. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-cpow. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-cproj. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-creal. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-csin. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-csinh. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-csqrt. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-ctan. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-ctanh. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-erf. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-erfc. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-exp. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-exp10. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-exp2. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-expm1. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-fabs. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-fdim. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-floor. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-fma. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-fmax. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-fmaxmag. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-fmin. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-fminmag. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-fmod. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-fpclassify .inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-frexp. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-fromfp. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-fromfpx. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-getpayload .inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-hypot. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-ilogb. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-iscanonica l.inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-iseqsig. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-isfinite. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-isgreater. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-isgreatere qual.inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-isinf. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-isless. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-islessequa l.inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-islessgrea ter.inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-isnan. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-isnormal. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-issignalin g.inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-issubnorma l.inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-isunordere d.inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-iszero. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-j0. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-j1. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-jn. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-lgamma. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-llogb. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-llrint. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-llround. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-log. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-log10. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-log1p. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-log2. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-logb. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-lrint. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-lround. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-modf. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-nearbyint. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-nextafter. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-nextdown. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-nexttoward .inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-nextup. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-pow. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-remainder. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-remquo. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-rint. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-round. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-roundeven. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-scalb. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-scalbln. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-scalbn. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-setpayload .inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-setpayload sig.inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-signbit. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-significan d.inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-sin. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-sincos. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-sinh. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-sqrt. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-tan. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-tanh. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-tgamma. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-totalorder .inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-totalorder mag.inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-trunc. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-ufromfp. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-ufromfpx. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-y0. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-y1. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-yn. inc: Include libm-test-driver.c.
(do_test): New function.
* math/libm-test-driver. c: Do not include libm-have- vector- test.h.
(HAVE_VECTOR): Remove macro.
(START): Do not call HAVE_VECTOR.
* math/test-double- vlen2.h (FUNC_TEST): Remove macro.
* math/test-double- vlen4.h (FUNC_TEST): Remove macro.
* math/test-double- vlen8.h (FUNC_TEST): Remove macro.
* math/test-float-vlen16. h (FUNC_TEST): Remove macro.
* math/test-float-vlen4. h (FUNC_TEST): Remove macro.
* math/test-float-vlen8. h (FUNC_TEST): Remove macro.
* math/test-math-vector. h (FUNC_TEST): New macro.
(WRAPPER_DECL): Rename to WRAPPER_DECL_f.
* sysdeps/x86_64/ fpu/Makefile (double- vlen2-funcs) : New variable.
(double-vlen4-funcs) : Likewise.
(double-vlen4-avx2- funcs): Likewise.
(double-vlen8-funcs) : Likewise.
(float-vlen4-funcs) : Likewise.
(float-vlen8-funcs) : Likewise.
(float-vlen8-avx2- funcs): Likewise.
(float-vlen16- funcs): Likewise.
(CFLAGS-test-double- vlen4-avx2. c): Remove variable.
(CFLAGS-test-float- vlen8-avx2. c): Likewise.
* sysdeps/x86_64/ fpu/test- double- vlen4.h (TEST_VECTOR_cos): Remove
macro.
(TEST_VECTOR_sin): Likewise.
(TEST_VECTOR_ sincos) : Likewise.
(TEST_VECTOR_log): Likewise.
(TEST_VECTOR_exp): Likewise.
(TEST_VECTOR_pow): Likewise.
* sysdeps/x86_64/ fpu/test- double- vlen8.h (TEST_VECTOR_cos):
Likewise.
(TEST_VECTOR_sin): Likewise.
(TEST_VECTOR_ sincos) : Likewise.
(TEST_VECTOR_log): Likewise.
(TEST_VECTOR_exp): Likewise.
(TEST_VECTOR_pow): Likewise.
* sysdeps/x86_64/ fpu/test- float-vlen16. h (TEST_VECTOR_cosf):
Likewise.
(TEST_VECTOR_ sinf): Likewise.
(TEST_VECTOR_ sincosf) : Likewise.
(TEST_VECTOR_ logf): Likewise.
(TEST_VECTOR_ expf): Likewise.
(TEST_VECTOR_ powf): Likewise.
* sysdeps/x86_64/ fpu/test- float-vlen8. h (TEST_VECTOR_cosf):
Likewise.
(TEST_VECTOR_ sinf): Likewise.
(TEST_VECTOR_ sincosf) : Likewise.
(TEST_VECTOR_ logf): Likewise.
(TEST_VECTOR_ expf): Likewise.
(TEST_VECTOR_ powf): Likewise.
* math/gen-libm-have- vector- test.sh: Remove file.
* math/libm-test.inc: Likewise.
* math/libm-test-support- double. c: Likewise.
* math/libm-test-support- float.c: Likewise.
* math/libm-test-support- ldouble. c: Likewise.
* math/test-double- finite. c: Likewise.: Likewise.
* math/test-double.c: Likewise.
* math/test-float-finite. c: Likewise.
* math/test-float.c: Likewise.
* math/test-idouble. c: Likewise.
* math/test-ifloat.c: Likewise.
* math/test-ildouble. c: Likewise.
* math/test-ldouble- finite. c: Likewise.
* math/test-ldouble. c: Likewise.
* sysdeps/x86_64/ fpu/test- double- vlen2.c: Likewise.
* sysdeps/x86_64/ fpu/test- double- vlen2.h: Likewise.
* sysdeps/x86_64/ fpu/test- double- vlen4-avx2. c: Likewise.
* sysdeps/x86_64/ fpu/test- double- vlen4.c: Likewise.
* sysdeps/x86_64/ fpu/test- double- vlen8.c: Likewise.
* sysdeps/x86_64/ fpu/test- float-vlen16. c: Likewise.
* sysdeps/x86_64/ fpu/test- float-vlen4. c: Likewise.
* sysdeps/x86_64/ fpu/test- float-vlen4. h: Likewise.
* sysdeps/x86_64/ fpu/test- float-vlen8- avx2.c: Likewise.
* sysdeps/x86_64/ fpu/test- float-vlen8. c: Likewise. - f0166c1... by Zack Weinberg
-
build-many-glibcs: don't crash if email is not configured
The 'bot-cycle' action for build-many-glibcs is a convenient way to
not have to remember all the steps in keeping a many-glibcs tree up
to date ... or it would be, if the script could send mail _optionally_.
Make it so by skipping the mail step if mail isn't configured.* scripts/
build-many- glibcs. py (bot_build_mail): If the
bot_config does not contain all of the necessary email-
related settings, just print a warning and continue. - ceaa988... by Zack Weinberg
-
Add missing header files throughout the testsuite.
* crypt/md5.h: Test _LIBC with #if defined, not #if.
* dirent/opendir- tst1.c: Include sys/stat.h.
* dirent/tst-fdopendir. c: Include sys/stat.h.
* dirent/tst-fdopendir2. c: Include stdlib.h.
* dirent/tst-scandir. c: Include stdbool.h.
* elf/tst-auditmod1. c: Include link.h and stddef.h.
* elf/tst-tls15.c: Include stdlib.h.
* elf/tst-tls16.c: Include stdlib.h.
* elf/tst-tls17.c: Include stdlib.h.
* elf/tst-tls18.c: Include stdlib.h.
* iconv/tst-iconv6.c: Include endian.h.
* iconvdata/bug-iconv11. c: Include limits.h.
* io/test-utime.c: Include stdint.h.
* io/tst-faccessat.c: Include sys/stat.h.
* io/tst-fchmodat.c: Include sys/stat.h.
* io/tst-fchownat.c: Include sys/stat.h.
* io/tst-fstatat.c: Include sys/stat.h.
* io/tst-futimesat.c: Include sys/stat.h.
* io/tst-linkat.c: Include sys/stat.h.
* io/tst-mkdirat.c: Include sys/stat.h and stdbool.h.
* io/tst-mkfifoat.c: Include sys/stat.h and stdbool.h.
* io/tst-mknodat.c: Include sys/stat.h and stdbool.h.
* io/tst-openat.c: Include stdbool.h.
* io/tst-readlinkat. c: Include sys/stat.h.
* io/tst-renameat.c: Include sys/stat.h.
* io/tst-symlinkat.c: Include sys/stat.h.
* io/tst-unlinkat.c: Include stdbool.h.
* libio/bug-memstream1. c: Include stdlib.h.
* libio/bug-wmemstream1. c: Include stdlib.h.
* libio/tst-fwrite- error.c: Include stdlib.h.
* libio/tst-memstream1. c: Include stdlib.h.
* libio/tst-memstream2. c: Include stdlib.h.
* libio/tst-memstream3. c: Include stdlib.h.
* malloc/tst-interpose- aux.c: Include stdint.h.
* misc/tst-preadvwritev- common. c: Include sys/stat.h.
* nptl/tst-basic7.c: Include limits.h.
* nptl/tst-cancel25. c: Include pthread.h, not pthreadP.h.
* nptl/tst-cancel4.c: Include stddef.h, limits.h, and sys/stat.h.
* nptl/tst-cancel4_ 1.c: Include stddef.h.
* nptl/tst-cancel4_ 2.c: Include stddef.h.
* nptl/tst-cond16.c: Include limits.h.
Use sysconf(_SC_PAGESIZE) instead of __getpagesize.
* nptl/tst-cond18.c: Include limits.h.
Use sysconf(_SC_PAGESIZE) instead of __getpagesize.
* nptl/tst-cond4.c: Include stdint.h.
* nptl/tst-cond6.c: Include stdint.h.
* nptl/tst-stack2.c: Include limits.h.
* nptl/tst-stackguard1. c: Include stddef.h.
* nptl/tst-tls4.c: Include stdint.h. Don't include tls.h.
* nptl/tst-tls4moda. c: Include stddef.h.
Don't include stdio.h, unistd.h, or tls.h.
* nptl/tst-tls4modb. c: Include stddef.h.
Don't include stdio.h, unistd.h, or tls.h.
* nptl/tst-tls5.h: Include stddef.h. Don't include stdlib.h or tls.h.
* posix/tst-getaddrinfo2. c: Include stdio.h.
* posix/tst-getaddrinfo5. c: Include stdio.h.
* posix/tst-pathconf. c: Include sys/stat.h.
* posix/tst-posix_fadvise- common. c: Include stdint.h.
* posix/tst-preadwrite- common. c: Include sys/stat.h.
* posix/tst-regex.c: Include stdint.h.
Don't include spawn.h or spawn_int.h.
* posix/tst-regexloc. c: Don't include spawn.h or spawn_int.h.
* posix/tst-vfork3.c: Include sys/stat.h.
* resolv/tst-bug18665-tcp.c: Include stdlib.h.
* resolv/tst-res_ hconf_reorder. c: Include stdlib.h.
* resolv/tst-resolv- search. c: Include stdlib.h.
* stdio-common/tst-fmemopen2. c: Include stdint.h.
* stdio-common/tst-vfprintf- width-prec. c: Include stdlib.h.
* stdlib/test-canon. c: Include sys/stat.h.
* stdlib/tst-tls- atexit. c: Include stdbool.h.
* string/test-memchr. c: Include stdint.h.
* string/tst-cmp.c: Include stdint.h.
* sysdeps/pthread/ tst-timer. c: Include stdint.h.
* sysdeps/unix/sysv/ linux/tst- sync_file_ range.c: Include stdint.h.
* sysdeps/wordsize- 64/tst- writev. c: Include limits.h and stdint.h.
* sysdeps/x86_64/ fpu/math- tests-arch. h: Include cpu-features.h.
Don't include init-arch.h.
* sysdeps/x86_64/ multiarch/ test-multiarch. h: Include cpu-features.h.
Don't include init-arch.h.
* sysdeps/x86_64/ tst-auditmod10b .c: Include link.h and stddef.h.
* sysdeps/x86_64/ tst-auditmod3b. c: Include link.h and stddef.h.
* sysdeps/x86_64/ tst-auditmod4b. c: Include link.h and stddef.h.
* sysdeps/x86_64/ tst-auditmod5b. c: Include link.h and stddef.h.
* sysdeps/x86_64/ tst-auditmod6b. c: Include link.h and stddef.h.
* sysdeps/x86_64/ tst-auditmod6c. c: Include link.h and stddef.h.
* sysdeps/x86_64/ tst-auditmod7b. c: Include link.h and stddef.h.
* time/clocktest.c: Include stdint.h.
* time/tst-posixtz.c: Include stdint.h.
* timezone/tst-timezone. c: Include stdint.h. - e546c3c... by Zack Weinberg
-
ChangeLog entry for previous changeset
- 7b037c0... by Zack Weinberg
-
Clean up redundancies between string.h and strings.h.
* string/string.h [__USE_MISC]: Include strings.h.
(__bzero, bcmp, bcopy, bzero, index, rindex)
(strcasecmp, strncasecmp, strcasecmp_l, strncasecmp_l)
(ffs, ffsl, ffsll): Don't declare.* string/strings.h: Do not suppress the file if string.h has
already been included.
(bcmp, bcopy, bzero, strcasecmp, strncasecmp): Add __nonnull
annotations.
(index, rindex): Define inline forwarders even if
__CORRECT_ISO_CPP_ STRING_ H_PROTO is defined.
(ffs): Use __attribute_const__ .
(ffsl, ffsll): Declare here.
(strcasecmp_l, strncasecmp_l): Correct comments; these functions
have now been standardized.* include/string.h (__bzero): Declare here.
- ab9536a... by Zack Weinberg
-
Move bits/types.h into posix/bits.
bits/types.h has no sysdeps variants, so it should be in the
subdirectory that installs it (namely, posix).* bits/types.h: Move to posix/bits.
* include/bits/types. h: New wrapper. - f7db120... by Wilco Dijkstra <email address hidden>
-
Remove the str(n)cmp inlines from string/
bits/string2. h. The strncmp
optimization seems unlikely to ever be useful, but if it occurs in
real code it should be added to GCC. Expanding strcmp of small strings
does appear useful (benchmarking shows it is 2-3x faster), so this would
be useful to implement in GCC (PR 78809).* string/
bits/string2. h (strcmp): Remove define.
(__strcmp_cg): Likewise.
(strncmp): Likewise. - 3172b27... by Wilco Dijkstra <email address hidden>
-
The internal header include/string.h does not work in C++: it causes link errors
in several C++ debug tests when any of the functions it declares are called.
The best option would be to not use internal headers for tests (unless
explicitly needed). Add guards so that it is safe to use include/string.h from
C++.* include/string.h: Add __cplusplus check.
- 4918e5f... by Gabriel F. T. Gomes
-
Fix y0 and y1 exception handling for zero input [BZ #21134]
The Bessel functions of the second type (Yn) should raise the "divide
by zero" exception when input is zero (both positive and negative).
Current code gives the right output, but fails to set the exception.
This error is exposed for float, double, and long double when linking
with -lieee. Without this flag, the error is not exposed, because the
wrappers for these functions, which use __kernel_standard
functionality, set the exception as expected.Tested for powerpc64le.
[BZ #21134]
* sysdeps/ieee754/ dbl-64/ e_j0.c (__ieee754_y0): Raise the
"divide by zero" exception when the input is zero.
* sysdeps/ieee754/ dbl-64/ e_j1.c (__ieee754_y1): Likewise.
* sysdeps/ieee754/ flt-32/ e_j0f.c (__ieee754_y0f): Likewise.
* sysdeps/ieee754/ flt-32/ e_j1f.c (__ieee754_y1f): Likewise.
* sysdeps/ieee754/ ldbl-128/ e_j0l.c (__ieee754_y0l): Likewise.
* sysdeps/ieee754/ ldbl-128/ e_j1l.c (__ieee754_y1l): Likewise. - 10303eb... by Joseph Myers <email address hidden>
-
Move most libmvec test contents from .c to .h files.
The libmvec tests put substantive, architecture-
specific contents in
.c files such as test-double-vlen4.c, so making those files
architecture-specific and causing issues for generating such files
automatically when splitting up tests by function.This patch moves all the substantive contents to .h files, so the .c
files only include the .h file and then libm-test.c. This allows for
automatic generation of per-function .c files in future. The .h files
in turn #include or #include_next the architecture-independent file
and add the architecture-specific definitions to that. (Splitting by
function should in fact allow the TEST_VECTOR_* macros to be replaced
by sysdeps makefile information on which functions to test in each
case, removing the need for gen-libm-have-vector- test.sh as well as
removing the need for some of the architecture-specific headers.) Tested for x86_64.
* sysdeps/
x86_64/ fpu/test- double- vlen2.c: Move most contents to,
and include ...
* sysdeps/x86_64/ fpu/test- double- vlen2.h: ... here. New file.
* sysdeps/x86_64/ fpu/test- double- vlen4-avx2. c: Move most contents
to, and include ...
* sysdeps/x86_64/ fpu/test- double- vlen4-avx2. h: ... here. New
file.
* sysdeps/x86_64/ fpu/test- double- vlen4.c: Move most contents to,
and include ...
* sysdeps/x86_64/ fpu/test- double- vlen4.h: ... here. New file.
* sysdeps/x86_64/ fpu/test- double- vlen8.c: Move most contents to,
and include ...
* sysdeps/x86_64/ fpu/test- double- vlen8.h: ... here. New file.
* sysdeps/x86_64/ fpu/test- float-vlen16. c: Move most contents to,
and include ...
* sysdeps/x86_64/ fpu/test- float-vlen16. h: ... here. New file.
* sysdeps/x86_64/ fpu/test- float-vlen4. c: Move most contents to,
and include ...
* sysdeps/x86_64/ fpu/test- float-vlen4. h: ... here. New file.
* sysdeps/x86_64/ fpu/test- float-vlen8- avx2.c: Move most contents
to, and include ...
* sysdeps/x86_64/ fpu/test- float-vlen8- avx2.h: ... here. New file.
* sysdeps/x86_64/ fpu/test- float-vlen8. c: Move most contents to,
and include ...
* sysdeps/x86_64/ fpu/test- float-vlen8. h: ... here. New file.