forked from lattera/glibc
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Move ROUNDING_TESTS_* out of math-tests.h.
Continuing moving macros out of math-tests.h to smaller headers following typo-proof conventions instead of using #ifndef, this patch moves the ROUNDING_TESTS_* macros for individual types out to their own sysdeps header. In the soft-float case where FE_TONEAREST is the only rounding mode macro defined, there is no need to define ROUNDING_TESTS_*; it is only necessary when rounding modes macros are defined that may not be supported at runtime. Thus, the ROUNDING_TESTS_* definitions for some configurations are just removed, not moved to new math-tests-rounding.h headers; the only architectures needing math-tests-rounding.h are those where the macros are defined in bits/fenv.h because of the possibility of a soft-float compilation using a hard-float glibc with the same ABI (i.e., ARM and RISC-V). The test-*-vlen*.h headers, by using #undef, do not yet follow typo-proof conventions (but they no longer implicitly rely on being included before math-tests.h, and this area can always be cleaned up further in future). Tested with build-many-glibcs.py. * sysdeps/generic/math-tests-rounding.h: New file. * sysdeps/generic/math-tests.h: Include <math-tests-rounding.h>. (ROUNDING_TESTS_float): Do not define here. (ROUNDING_TESTS_double): Likewise. (ROUNDING_TESTS_long_double): Likewise. (ROUNDING_TESTS_float128): Likewise. * math/test-double-vlen2.h: Include <math-tests-rounding.h>. (ROUNDING_TESTS_double): Undefine before defining. * math/test-double-vlen4.h: Include <math-tests-rounding.h>. (ROUNDING_TESTS_double): Undefine before defining. * math/test-double-vlen8.h: Include <math-tests-rounding.h>. (ROUNDING_TESTS_double): Undefine before defining. * math/test-float-vlen16.h: Include <math-tests-rounding.h>. (ROUNDING_TESTS_float): Undefine before defining. * math/test-float-vlen4.h: Include <math-tests-rounding.h>. (ROUNDING_TESTS_float): Undefine before defining. * math/test-float-vlen8.h: Include <math-tests-rounding.h>. (ROUNDING_TESTS_float): Undefine before defining. * sysdeps/arm/nofpu/math-tests-rounding.h: New file. * sysdeps/arm/math-tests.h [__SOFTFP__] (ROUNDING_TESTS_float): Do not define here. [__SOFTFP__] (ROUNDING_TESTS_double): Likewise. [__SOFTFP__] (ROUNDING_TESTS_long_double): Likewise. * sysdeps/riscv/nofpu/math-tests-rounding.h: New file. * sysdeps/riscv/math-tests.h [!__riscv_flen] (ROUNDING_TESTS_float): Do not define here. [!__riscv_flen] (ROUNDING_TESTS_double): Likewise. [!__risv_flen] (ROUNDING_TESTS_long_double): Likewise. * sysdeps/m68k/coldfire/math-tests.h [!__mcffpu__] (ROUNDING_TESTS_float): Likewise. [!__mcffpu__] (ROUNDING_TESTS_double): Likewise. [!__mcffpu__] (ROUNDING_TESTS_long_double): Likewise. * sysdeps/mips/math-tests.h [__mips_soft_float] (ROUNDING_TESTS_float): Likewise. [__mips_soft_float] (ROUNDING_TESTS_double): Likewise. [__mips_soft_float] (ROUNDING_TESTS_long_double): Likewise. * sysdeps/nios2/math-tests.h (ROUNDING_TESTS_float): Likewise. (ROUNDING_TESTS_double): Likewise. (ROUNDING_TESTS_long_double): Likewise.
- Loading branch information
Showing
16 changed files
with
141 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,45 @@ | ||
2018-08-22 Joseph Myers <[email protected]> | ||
|
||
* sysdeps/generic/math-tests-rounding.h: New file. | ||
* sysdeps/generic/math-tests.h: Include <math-tests-rounding.h>. | ||
(ROUNDING_TESTS_float): Do not define here. | ||
(ROUNDING_TESTS_double): Likewise. | ||
(ROUNDING_TESTS_long_double): Likewise. | ||
(ROUNDING_TESTS_float128): Likewise. | ||
* math/test-double-vlen2.h: Include <math-tests-rounding.h>. | ||
(ROUNDING_TESTS_double): Undefine before defining. | ||
* math/test-double-vlen4.h: Include <math-tests-rounding.h>. | ||
(ROUNDING_TESTS_double): Undefine before defining. | ||
* math/test-double-vlen8.h: Include <math-tests-rounding.h>. | ||
(ROUNDING_TESTS_double): Undefine before defining. | ||
* math/test-float-vlen16.h: Include <math-tests-rounding.h>. | ||
(ROUNDING_TESTS_float): Undefine before defining. | ||
* math/test-float-vlen4.h: Include <math-tests-rounding.h>. | ||
(ROUNDING_TESTS_float): Undefine before defining. | ||
* math/test-float-vlen8.h: Include <math-tests-rounding.h>. | ||
(ROUNDING_TESTS_float): Undefine before defining. | ||
* sysdeps/arm/nofpu/math-tests-rounding.h: New file. | ||
* sysdeps/arm/math-tests.h [__SOFTFP__] (ROUNDING_TESTS_float): Do | ||
not define here. | ||
[__SOFTFP__] (ROUNDING_TESTS_double): Likewise. | ||
[__SOFTFP__] (ROUNDING_TESTS_long_double): Likewise. | ||
* sysdeps/riscv/nofpu/math-tests-rounding.h: New file. | ||
* sysdeps/riscv/math-tests.h [!__riscv_flen] | ||
(ROUNDING_TESTS_float): Do not define here. | ||
[!__riscv_flen] (ROUNDING_TESTS_double): Likewise. | ||
[!__risv_flen] (ROUNDING_TESTS_long_double): Likewise. | ||
* sysdeps/m68k/coldfire/math-tests.h [!__mcffpu__] | ||
(ROUNDING_TESTS_float): Likewise. | ||
[!__mcffpu__] (ROUNDING_TESTS_double): Likewise. | ||
[!__mcffpu__] (ROUNDING_TESTS_long_double): Likewise. | ||
* sysdeps/mips/math-tests.h [__mips_soft_float] | ||
(ROUNDING_TESTS_float): Likewise. | ||
[__mips_soft_float] (ROUNDING_TESTS_double): Likewise. | ||
[__mips_soft_float] (ROUNDING_TESTS_long_double): Likewise. | ||
* sysdeps/nios2/math-tests.h (ROUNDING_TESTS_float): Likewise. | ||
(ROUNDING_TESTS_double): Likewise. | ||
(ROUNDING_TESTS_long_double): Likewise. | ||
|
||
2018-08-21 Tobias Klauser <[email protected]> | ||
|
||
* sysdeps/unix/sysv/linux/bits/socket.h (PF_MAX): Set to 45. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
/* Configuration for math tests: rounding mode support. ARM no-FPU version. | ||
Copyright (C) 2013-2018 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/>. */ | ||
|
||
#ifndef ARM_NOFPU_MATH_TESTS_ROUNDING_H | ||
#define ARM_NOFPU_MATH_TESTS_ROUNDING_H 1 | ||
|
||
/* On systems with VFP support, but where glibc is built for | ||
soft-float, the libgcc functions used in libc and libm do not | ||
support rounding modes, although fesetround succeeds. */ | ||
#define ROUNDING_TESTS_float(MODE) ((MODE) == FE_TONEAREST) | ||
#define ROUNDING_TESTS_double(MODE) ((MODE) == FE_TONEAREST) | ||
#define ROUNDING_TESTS_long_double(MODE) ((MODE) == FE_TONEAREST) | ||
|
||
#endif /* math-tests-rounding.h. */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
/* Configuration for math tests: rounding mode support. Generic version. | ||
Copyright (C) 2013-2018 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/>. */ | ||
|
||
#ifndef _MATH_TESTS_ROUNDING_H | ||
#define _MATH_TESTS_ROUNDING_H 1 | ||
|
||
/* Indicate whether to run tests involving a given rounding mode for a | ||
given floating-point type, given that fesetround succeeds for that | ||
mode. All are run if fesetround succeeds unless overridden. */ | ||
#define ROUNDING_TESTS_float(MODE) 1 | ||
#define ROUNDING_TESTS_double(MODE) 1 | ||
#define ROUNDING_TESTS_long_double(MODE) 1 | ||
#define ROUNDING_TESTS_float128(MODE) 1 | ||
|
||
#endif /* math-tests-rounding.h. */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
/* Configuration for math tests: rounding mode support. RISC-V no-FPU version. | ||
Copyright (C) 2014-2018 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/>. */ | ||
|
||
#ifndef RISCV_NOFPU_MATH_TESTS_ROUNDING_H | ||
#define RISCV_NOFPU_MATH_TESTS_ROUNDING_H 1 | ||
|
||
/* On soft-float targets we only support the "to nearest" rounding mode. */ | ||
#define ROUNDING_TESTS_float(MODE) ((MODE) == FE_TONEAREST) | ||
#define ROUNDING_TESTS_double(MODE) ((MODE) == FE_TONEAREST) | ||
#define ROUNDING_TESTS_long_double(MODE) ((MODE) == FE_TONEAREST) | ||
|
||
#endif /* math-tests-rounding.h. */ |