diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2022-03-10 17:22:41 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2024-04-17 16:12:40 -0300 |
commit | 706b3d7a47bb50f3534551f41e39bbaa9a5b9924 (patch) | |
tree | 65988409852cb3cf40d2e51cfbedd1683f3b9b9a | |
parent | 66a42a70993d07a449aa3238b6ee5ef94d5bb978 (diff) | |
download | glibc-706b3d7a47bb50f3534551f41e39bbaa9a5b9924.tar.gz glibc-706b3d7a47bb50f3534551f41e39bbaa9a5b9924.tar.xz glibc-706b3d7a47bb50f3534551f41e39bbaa9a5b9924.zip |
math: Use -fexcess-precision=standard iff compiler supports it
-rwxr-xr-x | configure | 48 | ||||
-rw-r--r-- | configure.ac | 16 | ||||
-rw-r--r-- | math/Makefile | 6 | ||||
-rw-r--r-- | support/Makefile | 4 | ||||
-rw-r--r-- | sysdeps/x86/fpu/Makefile | 4 |
5 files changed, 71 insertions, 7 deletions
diff --git a/configure b/configure index 6ac17a1078..d31af0b137 100755 --- a/configure +++ b/configure @@ -7126,6 +7126,54 @@ printf "%s\n" "$libc_cv_wno_ignored_attributes" >&6; } config_vars="$config_vars config-cflags-wno-ignored-attributes = $libc_cv_wno_ignored_attributes" +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -Wno-maybe-uninitialized" >&5 +printf %s "checking for -Wno-maybe-uninitialized... " >&6; } +if test ${libc_cv_wno_maybe_uninitialized+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if { ac_try='${CC-cc} -Werror -Wno-maybe-uninitialized -xc /dev/null -S -o /dev/null' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } +then : + libc_cv_wno_maybe_uninitialized=-Wno-maybe-uninitialized +else $as_nop + libc_cv_wno_maybe_uninitialized= +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_wno_maybe_uninitialized" >&5 +printf "%s\n" "$libc_cv_wno_maybe_uninitialized" >&6; } +config_vars="$config_vars +config-cflags-wno-maybe-uninitialized = $libc_cv_wno_maybe_uninitialized" + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -fexcess-precision=standard" >&5 +printf %s "checking for -fexcess-precision=standard... " >&6; } +if test ${libc_cv_fexcess_precision_standard+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if { ac_try='${CC-cc} -Werror -fexcess-precision=standard -xc /dev/null -S -o /dev/null' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } +then : + libc_cv_fexcess_precision_standard=-fexcess-precision=standard +else $as_nop + libc_cv_fexcess_precision_standard= +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_fexcess_precision_standard" >&5 +printf "%s\n" "$libc_cv_fexcess_precision_standard" >&6; } +config_vars="$config_vars +config-cflags-fexcess-precision-standard = $libc_cv_fexcess_precision_standard" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether cc puts quotes around section names" >&5 printf %s "checking whether cc puts quotes around section names... " >&6; } if test ${libc_cv_have_section_quotes+y} diff --git a/configure.ac b/configure.ac index 1799ddc320..39d4195e55 100644 --- a/configure.ac +++ b/configure.ac @@ -1362,6 +1362,22 @@ rm -f conftest*]) LIBC_CONFIG_VAR([config-cflags-wno-ignored-attributes], [$libc_cv_wno_ignored_attributes]) +AC_CACHE_CHECK([for -Wno-maybe-uninitialized], libc_cv_wno_maybe_uninitialized, [dnl + LIBC_TRY_CC_OPTION([-Werror -Wno-maybe-uninitialized], + [libc_cv_wno_maybe_uninitialized=-Wno-maybe-uninitialized], + [libc_cv_wno_maybe_uninitialized=]) +]) +LIBC_CONFIG_VAR([config-cflags-wno-maybe-uninitialized], + [$libc_cv_wno_maybe_uninitialized]) + +AC_CACHE_CHECK([for -fexcess-precision=standard], libc_cv_fexcess_precision_standard, [dnl + LIBC_TRY_CC_OPTION([-Werror -fexcess-precision=standard], + [libc_cv_fexcess_precision_standard=-fexcess-precision=standard], + [libc_cv_fexcess_precision_standard=]) +]) +LIBC_CONFIG_VAR([config-cflags-fexcess-precision-standard], + [$libc_cv_fexcess_precision_standard]) + AC_CACHE_CHECK(whether cc puts quotes around section names, libc_cv_have_section_quotes, [cat > conftest.c <<EOF diff --git a/math/Makefile b/math/Makefile index f8d2e95b32..7a23288f37 100644 --- a/math/Makefile +++ b/math/Makefile @@ -984,9 +984,9 @@ CFLAGS-test-math-iszero.cc += -std=gnu++11 CFLAGS-test-math-issignaling.cc += -std=gnu++11 CFLAGS-test-math-iscanonical.cc += -std=gnu++11 -CFLAGS-test-iszero-excess-precision.c += -fexcess-precision=standard -CFLAGS-test-iseqsig-excess-precision.c += -fexcess-precision=standard -CFLAGS-test-flt-eval-method.c += -fexcess-precision=standard +CFLAGS-test-iszero-excess-precision.c += $(config-cflags-fexcess-precision-standard) +CFLAGS-test-iseqsig-excess-precision.c += $(config-cflags-fexcess-precision-standard) +CFLAGS-test-flt-eval-method.c += $(config-cflags-fexcess-precision-standard) CFLAGS-test-fe-snans-always-signal.c += $(config-cflags-signaling-nans) diff --git a/support/Makefile b/support/Makefile index aa57207bdc..48779484c8 100644 --- a/support/Makefile +++ b/support/Makefile @@ -249,8 +249,8 @@ CFLAGS-.oS += -fexceptions -fasynchronous-unwind-tables # being within the observed range. The code uses double internally # in support_timespec_check_in_range and for that computation we use # -fexcess-precision=standard. -CFLAGS-timespec.c += -fexcess-precision=standard -CFLAGS-timespec-time64.c += -fexcess-precision=standard +CFLAGS-timespec.c += $(config-cflags-fexcess-precision-standard) +CFLAGS-timespec-time64.c += $(config-cflags-fexcess-precision-standard) # Ensure that general support files use 64-bit time_t CFLAGS-delayed_exit.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 diff --git a/sysdeps/x86/fpu/Makefile b/sysdeps/x86/fpu/Makefile index 600e42c3db..68bd42cdd3 100644 --- a/sysdeps/x86/fpu/Makefile +++ b/sysdeps/x86/fpu/Makefile @@ -8,7 +8,7 @@ tests += test-fenv-sse test-fenv-clear-sse test-fenv-x87 test-fenv-sse-2 \ CFLAGS-test-fenv-sse.c += -msse2 -mfpmath=sse CFLAGS-test-fenv-clear-sse.c += -msse2 -mfpmath=sse CFLAGS-test-fenv-sse-2.c += -msse2 -mfpmath=sse -CFLAGS-test-flt-eval-method-387.c += -fexcess-precision=standard -mfpmath=387 -CFLAGS-test-flt-eval-method-sse.c += -fexcess-precision=standard -msse2 \ +CFLAGS-test-flt-eval-method-387.c += $(config-cflags-fexcess-precision-standard) -mfpmath=387 +CFLAGS-test-flt-eval-method-sse.c += $(config-cflags-fexcess-precision-standard) -msse2 \ -mfpmath=sse endif |