diff options
-rw-r--r-- | ChangeLog | 29 | ||||
-rw-r--r-- | bits/fp-logb.h | 28 | ||||
-rw-r--r-- | bits/mathdef.h | 9 | ||||
-rw-r--r-- | math/Makefile | 2 | ||||
-rw-r--r-- | math/math.h | 19 | ||||
-rw-r--r-- | sysdeps/aarch64/bits/mathdef.h | 9 | ||||
-rw-r--r-- | sysdeps/alpha/bits/mathdef.h | 12 | ||||
-rw-r--r-- | sysdeps/ia64/bits/fp-logb.h | 24 | ||||
-rw-r--r-- | sysdeps/ia64/bits/mathdef.h | 9 | ||||
-rw-r--r-- | sysdeps/m68k/m680x0/bits/fp-logb.h | 24 | ||||
-rw-r--r-- | sysdeps/m68k/m680x0/bits/mathdef.h | 9 | ||||
-rw-r--r-- | sysdeps/mips/bits/mathdef.h | 9 | ||||
-rw-r--r-- | sysdeps/powerpc/bits/mathdef.h | 16 | ||||
-rw-r--r-- | sysdeps/s390/bits/mathdef.h | 9 | ||||
-rw-r--r-- | sysdeps/sparc/bits/mathdef.h | 12 | ||||
-rw-r--r-- | sysdeps/x86/bits/fp-logb.h | 24 | ||||
-rw-r--r-- | sysdeps/x86/bits/mathdef.h | 9 |
17 files changed, 148 insertions, 105 deletions
diff --git a/ChangeLog b/ChangeLog index 17d5aeb515..c0dbfa236c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,34 @@ 2016-12-01 Joseph Myers <joseph@codesourcery.com> + * bits/fp-logb.h: New file. + * sysdeps/ia64/bits/fp-logb.h: Likewise. + * sysdeps/m68k/m680x0/bits/fp-logb.h: Likewise. + * sysdeps/x86/bits/fp-logb.h: Likewise. + * math/Makefile (headers): Add bits/fp-logb.h. + * math/math.h: Include <bits/fp-logb.h>. + [__USE_ISOC99] (FP_ILOGB0): Define based on __FP_LOGB0_IS_MIN. + [__USE_ISOC99] (FP_ILOGBNAN): Define based on __FP_LOGBNAN_IS_MIN. + * bits/mathdef.h (FP_ILOGB0): Remove. + (FP_ILOGBNAN): Likewise. + * sysdeps/aarch64/bits/mathdef.h (FP_ILOGB0): Likewise. + (FP_ILOGBNAN): Likewise. + * sysdeps/alpha/bits/mathdef.h (FP_ILOGB0): Likewise. + (FP_ILOGBNAN): Likewise. + * sysdeps/ia64/bits/mathdef.h (FP_ILOGB0): Likewise. + (FP_ILOGBNAN): Likewise. + * sysdeps/m68k/m680x0/bits/mathdef.h (FP_ILOGB0): Likewise. + (FP_ILOGBNAN): Likewise. + * sysdeps/mips/bits/mathdef.h (FP_ILOGB0): Likewise. + (FP_ILOGBNAN): Likewise. + * sysdeps/powerpc/bits/mathdef.h (FP_ILOGB0): Likewise. + (FP_ILOGBNAN): Likewise. + * sysdeps/s390/bits/mathdef.h (FP_ILOGB0): Likewise. + (FP_ILOGBNAN): Likewise. + * sysdeps/sparc/bits/mathdef.h (FP_ILOGB0): Likewise. + (FP_ILOGBNAN): Likewise. + * sysdeps/x86/bits/mathdef.h (FP_ILOGB0): Likewise. + (FP_ILOGBNAN): Likewise. + * scripts/build-many-glibcs.py: Add bot to usage message. Import time module. (Context.__init__): Initialize self.logsdir_old. diff --git a/bits/fp-logb.h b/bits/fp-logb.h new file mode 100644 index 0000000000..4c9f592f99 --- /dev/null +++ b/bits/fp-logb.h @@ -0,0 +1,28 @@ +/* Define __FP_LOGB0_IS_MIN and __FP_LOGBNAN_IS_MIN. + Copyright (C) 2016 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_H +# error "Never use <bits/fp-logb.h> directly; include <math.h> instead." +#endif + +/* __FP_LOGB0_IS_MIN is defined to 1 if FP_ILOGB0 is INT_MIN, and 0 if + it is -INT_MAX. __FP_LOGBNAN_IS_MIN is defined to 1 if FP_ILOGBNAN + is INT_MIN, and 0 if it is INT_MAX. */ + +#define __FP_LOGB0_IS_MIN 0 +#define __FP_LOGBNAN_IS_MIN 0 diff --git a/bits/mathdef.h b/bits/mathdef.h index 050204ab66..014829790a 100644 --- a/bits/mathdef.h +++ b/bits/mathdef.h @@ -19,15 +19,6 @@ # error "Never use <bits/mathdef.h> directly; include <math.h> instead" #endif -#if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF -# define _MATH_H_MATHDEF 1 - -/* The values returned by `ilogb' for 0 and NaN respectively. */ -# define FP_ILOGB0 (-2147483647) -# define FP_ILOGBNAN 2147483647 - -#endif /* ISO C99 */ - #ifndef __NO_LONG_DOUBLE_MATH /* Signal that we do not really have a `long double'. The disables the declaration of all the `long double' function variants. */ diff --git a/math/Makefile b/math/Makefile index a7c2b07fd8..ac3a90a582 100644 --- a/math/Makefile +++ b/math/Makefile @@ -28,7 +28,7 @@ headers := math.h bits/mathcalls.h bits/mathinline.h bits/huge_val.h \ bits/fenv.h bits/fenvinline.h bits/mathdef.h tgmath.h \ bits/math-finite.h bits/math-vector.h \ bits/libm-simd-decl-stubs.h bits/iscanonical.h \ - bits/flt-eval-method.h bits/fp-fast.h + bits/flt-eval-method.h bits/fp-fast.h bits/fp-logb.h # FPU support code. aux := setfpucw fpu_control diff --git a/math/math.h b/math/math.h index 95b39b3d92..6e4bf9e528 100644 --- a/math/math.h +++ b/math/math.h @@ -97,13 +97,30 @@ typedef _Float128x double_t; # endif #endif -/* Define macros for the return value of ilogb. +/* Define macros for the return value of ilogb, based on + __FP_LOGB0_IS_MIN and __FP_LOGBNAN_IS_MIN. FP_ILOGB0 Expands to a value returned by `ilogb (0.0)'. FP_ILOGBNAN Expands to a value returned by `ilogb (NAN)'. */ +#include <bits/fp-logb.h> +#ifdef __USE_ISOC99 +# if __FP_LOGB0_IS_MIN +# define FP_ILOGB0 (-2147483647 - 1) +# else +# define FP_ILOGB0 (-2147483647) +# endif +# if __FP_LOGBNAN_IS_MIN +# define FP_ILOGBNAN (-2147483647 - 1) +# else +# define FP_ILOGBNAN 2147483647 +# endif +#endif + +/* Get information about long double. */ + #include <bits/mathdef.h> /* Get the architecture specific values describing the floating-point diff --git a/sysdeps/aarch64/bits/mathdef.h b/sysdeps/aarch64/bits/mathdef.h index 5418beacfb..2213635bd8 100644 --- a/sysdeps/aarch64/bits/mathdef.h +++ b/sysdeps/aarch64/bits/mathdef.h @@ -19,12 +19,3 @@ #if !defined _MATH_H && !defined _COMPLEX_H # error "Never use <bits/mathdef.h> directly; include <math.h> instead" #endif - -#if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF -# define _MATH_H_MATHDEF 1 - -/* The values returned by `ilogb' for 0 and NaN respectively. */ -# define FP_ILOGB0 (-2147483647) -# define FP_ILOGBNAN (2147483647) - -#endif /* ISO C99 */ diff --git a/sysdeps/alpha/bits/mathdef.h b/sysdeps/alpha/bits/mathdef.h index fbca194a78..021563f211 100644 --- a/sysdeps/alpha/bits/mathdef.h +++ b/sysdeps/alpha/bits/mathdef.h @@ -19,18 +19,6 @@ # error "Never use <bits/mathdef.h> directly; include <math.h> instead" #endif -/* FIXME! This file describes properties of the compiler, not the machine; - it should not be part of libc! */ - -#if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF -# define _MATH_H_MATHDEF 1 - -/* The values returned by `ilogb' for 0 and NaN respectively. */ -# define FP_ILOGB0 (-2147483647) -# define FP_ILOGBNAN (2147483647) - -#endif /* ISO C99 && MATH_H */ - #if defined _COMPLEX_H && !defined _COMPLEX_H_MATHDEF # define _COMPLEX_H_MATHDEF 1 # if defined(__GNUC__) && !__GNUC_PREREQ(3,4) diff --git a/sysdeps/ia64/bits/fp-logb.h b/sysdeps/ia64/bits/fp-logb.h new file mode 100644 index 0000000000..065e2ff55f --- /dev/null +++ b/sysdeps/ia64/bits/fp-logb.h @@ -0,0 +1,24 @@ +/* Define __FP_LOGB0_IS_MIN and __FP_LOGBNAN_IS_MIN. IA64 version. + Copyright (C) 2016 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_H +# error "Never use <bits/fp-logb.h> directly; include <math.h> instead." +#endif + +#define __FP_LOGB0_IS_MIN 1 +#define __FP_LOGBNAN_IS_MIN 0 diff --git a/sysdeps/ia64/bits/mathdef.h b/sysdeps/ia64/bits/mathdef.h index 44a7642342..e689835716 100644 --- a/sysdeps/ia64/bits/mathdef.h +++ b/sysdeps/ia64/bits/mathdef.h @@ -18,12 +18,3 @@ #if !defined _MATH_H && !defined _COMPLEX_H # error "Never use <bits/mathdef.h> directly; include <math.h> instead" #endif - -#if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF -# define _MATH_H_MATHDEF 1 - -/* The values returned by `ilogb' for 0 and NaN respectively. */ -# define FP_ILOGB0 (-2147483647 - 1) -# define FP_ILOGBNAN 2147483647 - -#endif /* ISO C99 */ diff --git a/sysdeps/m68k/m680x0/bits/fp-logb.h b/sysdeps/m68k/m680x0/bits/fp-logb.h new file mode 100644 index 0000000000..8ece1265c9 --- /dev/null +++ b/sysdeps/m68k/m680x0/bits/fp-logb.h @@ -0,0 +1,24 @@ +/* Define __FP_LOGB0_IS_MIN and __FP_LOGBNAN_IS_MIN. M68K version. + Copyright (C) 2016 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_H +# error "Never use <bits/fp-logb.h> directly; include <math.h> instead." +#endif + +#define __FP_LOGB0_IS_MIN 1 +#define __FP_LOGBNAN_IS_MIN 0 diff --git a/sysdeps/m68k/m680x0/bits/mathdef.h b/sysdeps/m68k/m680x0/bits/mathdef.h index 702bd0e33a..7926c6aaf7 100644 --- a/sysdeps/m68k/m680x0/bits/mathdef.h +++ b/sysdeps/m68k/m680x0/bits/mathdef.h @@ -18,12 +18,3 @@ #if !defined _MATH_H && !defined _COMPLEX_H # error "Never use <bits/mathdef.h> directly; include <math.h> instead" #endif - -#if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF -# define _MATH_H_MATHDEF 1 - -/* The values returned by `ilogb' for 0 and NaN respectively. */ -# define FP_ILOGB0 (-2147483647 - 1) -# define FP_ILOGBNAN (2147483647) - -#endif /* ISO C99 */ diff --git a/sysdeps/mips/bits/mathdef.h b/sysdeps/mips/bits/mathdef.h index 74abf97ea3..31fc4001df 100644 --- a/sysdeps/mips/bits/mathdef.h +++ b/sysdeps/mips/bits/mathdef.h @@ -21,15 +21,6 @@ #include <sgidefs.h> -#if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF -# define _MATH_H_MATHDEF 1 - -/* The values returned by `ilogb' for 0 and NaN respectively. */ -# define FP_ILOGB0 (-2147483647) -# define FP_ILOGBNAN 2147483647 - -#endif /* ISO C99 */ - #if ! defined __NO_LONG_DOUBLE_MATH && _MIPS_SIM == _ABIO32 /* Signal that we do not really have a `long double'. This disables the declaration of all the `long double' function variants. */ diff --git a/sysdeps/powerpc/bits/mathdef.h b/sysdeps/powerpc/bits/mathdef.h index 392e4e5ac6..eeea6fcdc2 100644 --- a/sysdeps/powerpc/bits/mathdef.h +++ b/sysdeps/powerpc/bits/mathdef.h @@ -18,19 +18,3 @@ #if !defined _MATH_H && !defined _COMPLEX_H # error "Never use <bits/mathdef.h> directly; include <math.h> instead" #endif - - -/* FIXME! This file describes properties of the compiler, not the machine; - it should not be part of libc! - - FIXME! This file does not deal with the -fshort-double option of - gcc! */ - -#if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF -# define _MATH_H_MATHDEF 1 - -/* The values returned by `ilogb' for 0 and NaN respectively. */ -# define FP_ILOGB0 (-2147483647) -# define FP_ILOGBNAN (2147483647) - -#endif /* ISO C99 */ diff --git a/sysdeps/s390/bits/mathdef.h b/sysdeps/s390/bits/mathdef.h index 5ad04aecef..eeea6fcdc2 100644 --- a/sysdeps/s390/bits/mathdef.h +++ b/sysdeps/s390/bits/mathdef.h @@ -18,12 +18,3 @@ #if !defined _MATH_H && !defined _COMPLEX_H # error "Never use <bits/mathdef.h> directly; include <math.h> instead" #endif - -#if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF -# define _MATH_H_MATHDEF 1 - -/* The values returned by `ilogb' for 0 and NaN respectively. */ -# define FP_ILOGB0 (-2147483647) -# define FP_ILOGBNAN 2147483647 - -#endif /* ISO C99 */ diff --git a/sysdeps/sparc/bits/mathdef.h b/sysdeps/sparc/bits/mathdef.h index 55a35306ce..65ab45aad3 100644 --- a/sysdeps/sparc/bits/mathdef.h +++ b/sysdeps/sparc/bits/mathdef.h @@ -20,15 +20,3 @@ #endif #include <bits/wordsize.h> - -/* FIXME! This file describes properties of the compiler, not the machine; - it should not be part of libc! */ - -#if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF -# define _MATH_H_MATHDEF 1 - -/* The values returned by `ilogb' for 0 and NaN respectively. */ -# define FP_ILOGB0 (-2147483647) -# define FP_ILOGBNAN (2147483647) - -#endif /* ISO C99 */ diff --git a/sysdeps/x86/bits/fp-logb.h b/sysdeps/x86/bits/fp-logb.h new file mode 100644 index 0000000000..159cea39ac --- /dev/null +++ b/sysdeps/x86/bits/fp-logb.h @@ -0,0 +1,24 @@ +/* Define __FP_LOGB0_IS_MIN and __FP_LOGBNAN_IS_MIN. x86 version. + Copyright (C) 2016 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_H +# error "Never use <bits/fp-logb.h> directly; include <math.h> instead." +#endif + +#define __FP_LOGB0_IS_MIN 1 +#define __FP_LOGBNAN_IS_MIN 1 diff --git a/sysdeps/x86/bits/mathdef.h b/sysdeps/x86/bits/mathdef.h index 17ad1efa89..1c6aee6ba5 100644 --- a/sysdeps/x86/bits/mathdef.h +++ b/sysdeps/x86/bits/mathdef.h @@ -18,12 +18,3 @@ #if !defined _MATH_H && !defined _COMPLEX_H # error "Never use <bits/mathdef.h> directly; include <math.h> instead" #endif - -#if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF -# define _MATH_H_MATHDEF 1 - -/* The values returned by `ilogb' for 0 and NaN respectively. */ -# define FP_ILOGB0 (-2147483647 - 1) -# define FP_ILOGBNAN (-2147483647 - 1) - -#endif /* ISO C99 */ |