Remove __NO_MATH_INLINES

Message ID 20200330170030.2313730-1-adhemerval.zanella@linaro.org
State Dropped
Headers
Series Remove __NO_MATH_INLINES |

Commit Message

Adhemerval Zanella Netto March 30, 2020, 5 p.m. UTC
  With fenvinline.h removal the flag is not used anymore.

Checked on x86_64-linux-gnu.
---
 manual/math.texi      | 6 ------
 math/Makefile         | 4 ----
 math/README.libm-test | 8 +++-----
 math/math.h           | 7 -------
 math/test-tgmath.c    | 2 --
 math/test-tgmath2.c   | 2 --
 6 files changed, 3 insertions(+), 26 deletions(-)
  

Comments

Adhemerval Zanella Netto April 17, 2020, 12:13 p.m. UTC | #1
Ping.

On 30/03/2020 14:00, Adhemerval Zanella wrote:
> With fenvinline.h removal the flag is not used anymore.
> 
> Checked on x86_64-linux-gnu.
> ---
>  manual/math.texi      | 6 ------
>  math/Makefile         | 4 ----
>  math/README.libm-test | 8 +++-----
>  math/math.h           | 7 -------
>  math/test-tgmath.c    | 2 --
>  math/test-tgmath2.c   | 2 --
>  6 files changed, 3 insertions(+), 26 deletions(-)
> 
> diff --git a/manual/math.texi b/manual/math.texi
> index 4aaa106653..dcff7b7f41 100644
> --- a/manual/math.texi
> +++ b/manual/math.texi
> @@ -2010,12 +2010,6 @@ might have a reduced precision and/or argument range in comparison with
>  the library functions.  The latter inline functions are only available
>  if the flag @code{-ffast-math} is given to GNU CC.
>  
> -In cases where the inline functions and macros are not wanted the symbol
> -@code{__NO_MATH_INLINES} should be defined before any system header is
> -included.  This will ensure that only library functions are used.  Of
> -course, it can be determined for each file in the project whether
> -giving this option is preferable or not.
> -
>  Not all hardware implements the entire @w{IEEE 754} standard, and even
>  if it does there may be a substantial performance penalty for using some
>  of its features.  For example, enabling traps on some processors forces
> diff --git a/math/Makefile b/math/Makefile
> index 1d6413a978..62667d9186 100644
> --- a/math/Makefile
> +++ b/math/Makefile
> @@ -613,10 +613,6 @@ endef
>  object-suffixes-left := $(all-object-suffixes)
>  include $(o-iterator)
>  
> -# We don't want the fdlibm code to use the inline math functions,
> -# only the fdlibm code.
> -math-CPPFLAGS += -D__NO_MATH_INLINES
> -
>  ifneq ($(long-double-fcts),yes)
>  # The `double' and `long double' types are the same on this machine.
>  # We won't compile the `long double' code at all.  Tell the `double' code
> diff --git a/math/README.libm-test b/math/README.libm-test
> index 28d7a2ed28..f32c629c6d 100644
> --- a/math/README.libm-test
> +++ b/math/README.libm-test
> @@ -38,11 +38,9 @@ The test drivers "test-double-<func>.c", "test-float-<func>.c", and
>  double, float and long double implementation of libm.  Each driver
>  selects the desired real floating type to exercise the math functions
>  to test with (float, double, or long double) by defining a small set
> -of macros just before including the generic "libm-test.c" file.  Each
> -driver also either defines or undefines the __NO_MATH_INLINES macro
> -just before including "libm-test-<func>.c" to select either the real
> -or inline functions, respectively.  Each driver is compiled into a
> -single executable test program with the corresponding name.
> +of macros just before including the generic "libm-test.c" file. Each
> +driver is compiled into a single executable test program with the
> +corresponding name.
>  
>  As mentioned above, the "gen-libm-test.py" script looks for a file
>  named "libm-test-ulps" in the platform specific sysdep directory (or
> diff --git a/math/math.h b/math/math.h
> index 5c3dcb9194..777d108347 100644
> --- a/math/math.h
> +++ b/math/math.h
> @@ -1257,13 +1257,6 @@ iszero (__T __val)
>  # error "M_* values needed for _Float128x"
>  #endif
>  
> -/* When compiling in strict ISO C compatible mode we must not use the
> -   inline functions since they, among other things, do not set the
> -   `errno' variable correctly.  */
> -#if defined __STRICT_ANSI__ && !defined __NO_MATH_INLINES
> -# define __NO_MATH_INLINES	1
> -#endif
> -
>  #ifdef __USE_ISOC99
>  # if __GNUC_PREREQ (3, 1)
>  /* ISO C99 defines some macros to compare number while taking care for
> diff --git a/math/test-tgmath.c b/math/test-tgmath.c
> index 1f72cc349a..6d5a84bc01 100644
> --- a/math/test-tgmath.c
> +++ b/math/test-tgmath.c
> @@ -19,8 +19,6 @@
>     <https://www.gnu.org/licenses/>.  */
>  
>  #ifndef HAVE_MAIN
> -#undef __NO_MATH_INLINES
> -#define __NO_MATH_INLINES 1
>  #include <float.h>
>  #include <math.h>
>  #include <stdint.h>
> diff --git a/math/test-tgmath2.c b/math/test-tgmath2.c
> index 91b93e6586..54f8284c67 100644
> --- a/math/test-tgmath2.c
> +++ b/math/test-tgmath2.c
> @@ -18,8 +18,6 @@
>     <https://www.gnu.org/licenses/>.  */
>  
>  #ifndef HAVE_MAIN
> -#undef __NO_MATH_INLINES
> -#define __NO_MATH_INLINES 1
>  #include <float.h>
>  #include <math.h>
>  #include <complex.h>
>
  
H.J. Lu April 17, 2020, 12:51 p.m. UTC | #2
On Mon, Mar 30, 2020 at 10:00 AM Adhemerval Zanella via Libc-alpha
<libc-alpha@sourceware.org> wrote:
>
> With fenvinline.h removal the flag is not used anymore.
>
> Checked on x86_64-linux-gnu.
> ---
>  manual/math.texi      | 6 ------
>  math/Makefile         | 4 ----
>  math/README.libm-test | 8 +++-----
>  math/math.h           | 7 -------
>  math/test-tgmath.c    | 2 --
>  math/test-tgmath2.c   | 2 --
>  6 files changed, 3 insertions(+), 26 deletions(-)
>
> diff --git a/manual/math.texi b/manual/math.texi
> index 4aaa106653..dcff7b7f41 100644
> --- a/manual/math.texi
> +++ b/manual/math.texi
> @@ -2010,12 +2010,6 @@ might have a reduced precision and/or argument range in comparison with
>  the library functions.  The latter inline functions are only available
>  if the flag @code{-ffast-math} is given to GNU CC.
>
> -In cases where the inline functions and macros are not wanted the symbol
> -@code{__NO_MATH_INLINES} should be defined before any system header is
> -included.  This will ensure that only library functions are used.  Of
> -course, it can be determined for each file in the project whether
> -giving this option is preferable or not.
> -
>  Not all hardware implements the entire @w{IEEE 754} standard, and even
>  if it does there may be a substantial performance penalty for using some
>  of its features.  For example, enabling traps on some processors forces
> diff --git a/math/Makefile b/math/Makefile
> index 1d6413a978..62667d9186 100644
> --- a/math/Makefile
> +++ b/math/Makefile
> @@ -613,10 +613,6 @@ endef
>  object-suffixes-left := $(all-object-suffixes)
>  include $(o-iterator)
>
> -# We don't want the fdlibm code to use the inline math functions,
> -# only the fdlibm code.
> -math-CPPFLAGS += -D__NO_MATH_INLINES
> -
>  ifneq ($(long-double-fcts),yes)
>  # The `double' and `long double' types are the same on this machine.
>  # We won't compile the `long double' code at all.  Tell the `double' code
> diff --git a/math/README.libm-test b/math/README.libm-test
> index 28d7a2ed28..f32c629c6d 100644
> --- a/math/README.libm-test
> +++ b/math/README.libm-test
> @@ -38,11 +38,9 @@ The test drivers "test-double-<func>.c", "test-float-<func>.c", and
>  double, float and long double implementation of libm.  Each driver
>  selects the desired real floating type to exercise the math functions
>  to test with (float, double, or long double) by defining a small set
> -of macros just before including the generic "libm-test.c" file.  Each
> -driver also either defines or undefines the __NO_MATH_INLINES macro
> -just before including "libm-test-<func>.c" to select either the real
> -or inline functions, respectively.  Each driver is compiled into a
> -single executable test program with the corresponding name.
> +of macros just before including the generic "libm-test.c" file. Each
> +driver is compiled into a single executable test program with the
> +corresponding name.
>
>  As mentioned above, the "gen-libm-test.py" script looks for a file
>  named "libm-test-ulps" in the platform specific sysdep directory (or
> diff --git a/math/math.h b/math/math.h
> index 5c3dcb9194..777d108347 100644
> --- a/math/math.h
> +++ b/math/math.h
> @@ -1257,13 +1257,6 @@ iszero (__T __val)
>  # error "M_* values needed for _Float128x"
>  #endif
>
> -/* When compiling in strict ISO C compatible mode we must not use the
> -   inline functions since they, among other things, do not set the
> -   `errno' variable correctly.  */
> -#if defined __STRICT_ANSI__ && !defined __NO_MATH_INLINES
> -# define __NO_MATH_INLINES     1
> -#endif
> -
>  #ifdef __USE_ISOC99
>  # if __GNUC_PREREQ (3, 1)
>  /* ISO C99 defines some macros to compare number while taking care for
> diff --git a/math/test-tgmath.c b/math/test-tgmath.c
> index 1f72cc349a..6d5a84bc01 100644
> --- a/math/test-tgmath.c
> +++ b/math/test-tgmath.c
> @@ -19,8 +19,6 @@
>     <https://www.gnu.org/licenses/>.  */
>
>  #ifndef HAVE_MAIN
> -#undef __NO_MATH_INLINES
> -#define __NO_MATH_INLINES 1
>  #include <float.h>
>  #include <math.h>
>  #include <stdint.h>
> diff --git a/math/test-tgmath2.c b/math/test-tgmath2.c
> index 91b93e6586..54f8284c67 100644
> --- a/math/test-tgmath2.c
> +++ b/math/test-tgmath2.c
> @@ -18,8 +18,6 @@
>     <https://www.gnu.org/licenses/>.  */
>
>  #ifndef HAVE_MAIN
> -#undef __NO_MATH_INLINES
> -#define __NO_MATH_INLINES 1
>  #include <float.h>
>  #include <math.h>
>  #include <complex.h>
> --
> 2.17.1
>

LGTM.

Thanks.
  

Patch

diff --git a/manual/math.texi b/manual/math.texi
index 4aaa106653..dcff7b7f41 100644
--- a/manual/math.texi
+++ b/manual/math.texi
@@ -2010,12 +2010,6 @@  might have a reduced precision and/or argument range in comparison with
 the library functions.  The latter inline functions are only available
 if the flag @code{-ffast-math} is given to GNU CC.
 
-In cases where the inline functions and macros are not wanted the symbol
-@code{__NO_MATH_INLINES} should be defined before any system header is
-included.  This will ensure that only library functions are used.  Of
-course, it can be determined for each file in the project whether
-giving this option is preferable or not.
-
 Not all hardware implements the entire @w{IEEE 754} standard, and even
 if it does there may be a substantial performance penalty for using some
 of its features.  For example, enabling traps on some processors forces
diff --git a/math/Makefile b/math/Makefile
index 1d6413a978..62667d9186 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -613,10 +613,6 @@  endef
 object-suffixes-left := $(all-object-suffixes)
 include $(o-iterator)
 
-# We don't want the fdlibm code to use the inline math functions,
-# only the fdlibm code.
-math-CPPFLAGS += -D__NO_MATH_INLINES
-
 ifneq ($(long-double-fcts),yes)
 # The `double' and `long double' types are the same on this machine.
 # We won't compile the `long double' code at all.  Tell the `double' code
diff --git a/math/README.libm-test b/math/README.libm-test
index 28d7a2ed28..f32c629c6d 100644
--- a/math/README.libm-test
+++ b/math/README.libm-test
@@ -38,11 +38,9 @@  The test drivers "test-double-<func>.c", "test-float-<func>.c", and
 double, float and long double implementation of libm.  Each driver
 selects the desired real floating type to exercise the math functions
 to test with (float, double, or long double) by defining a small set
-of macros just before including the generic "libm-test.c" file.  Each
-driver also either defines or undefines the __NO_MATH_INLINES macro
-just before including "libm-test-<func>.c" to select either the real
-or inline functions, respectively.  Each driver is compiled into a
-single executable test program with the corresponding name.
+of macros just before including the generic "libm-test.c" file. Each
+driver is compiled into a single executable test program with the
+corresponding name.
 
 As mentioned above, the "gen-libm-test.py" script looks for a file
 named "libm-test-ulps" in the platform specific sysdep directory (or
diff --git a/math/math.h b/math/math.h
index 5c3dcb9194..777d108347 100644
--- a/math/math.h
+++ b/math/math.h
@@ -1257,13 +1257,6 @@  iszero (__T __val)
 # error "M_* values needed for _Float128x"
 #endif
 
-/* When compiling in strict ISO C compatible mode we must not use the
-   inline functions since they, among other things, do not set the
-   `errno' variable correctly.  */
-#if defined __STRICT_ANSI__ && !defined __NO_MATH_INLINES
-# define __NO_MATH_INLINES	1
-#endif
-
 #ifdef __USE_ISOC99
 # if __GNUC_PREREQ (3, 1)
 /* ISO C99 defines some macros to compare number while taking care for
diff --git a/math/test-tgmath.c b/math/test-tgmath.c
index 1f72cc349a..6d5a84bc01 100644
--- a/math/test-tgmath.c
+++ b/math/test-tgmath.c
@@ -19,8 +19,6 @@ 
    <https://www.gnu.org/licenses/>.  */
 
 #ifndef HAVE_MAIN
-#undef __NO_MATH_INLINES
-#define __NO_MATH_INLINES 1
 #include <float.h>
 #include <math.h>
 #include <stdint.h>
diff --git a/math/test-tgmath2.c b/math/test-tgmath2.c
index 91b93e6586..54f8284c67 100644
--- a/math/test-tgmath2.c
+++ b/math/test-tgmath2.c
@@ -18,8 +18,6 @@ 
    <https://www.gnu.org/licenses/>.  */
 
 #ifndef HAVE_MAIN
-#undef __NO_MATH_INLINES
-#define __NO_MATH_INLINES 1
 #include <float.h>
 #include <math.h>
 #include <complex.h>