diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2024-12-15 21:24:14 +0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2024-12-22 13:02:30 +0800 |
commit | 56cdc529fb553a307be459df3f1be90d1a231f0a (patch) | |
tree | 7b5ecd8f50ce52ea637bfa6acfe0f7593bb306b2 | |
parent | 90edd56c01bc50c55ef558871cf550199fc0f1a2 (diff) | |
download | glibc-56cdc529fb553a307be459df3f1be90d1a231f0a.zip glibc-56cdc529fb553a307be459df3f1be90d1a231f0a.tar.gz glibc-56cdc529fb553a307be459df3f1be90d1a231f0a.tar.bz2 |
Add test-config-cflags-float-store for -ffloat-store
Clang doesn't support -ffloat-store:
clang: error: optimization flag '-ffloat-store' is not supported [-Werror,-Wignored-optimization-argument]
Define test-config-cflags-float-store for -ffloat-store and use it in
math/Makefile for testing.
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Reviewed-by: Sam James <sam@gentoo.org>
-rwxr-xr-x | configure | 33 | ||||
-rw-r--r-- | configure.ac | 9 | ||||
-rw-r--r-- | math/Makefile | 6 |
3 files changed, 46 insertions, 2 deletions
@@ -7680,6 +7680,39 @@ config_vars="$config_vars config-cflags-signaling-nans = $libc_cv_cc_signaling_nans" + + +saved_CC="$CC" +CC="$TEST_CC" +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -ffloat-store in testing" >&5 +printf %s "checking for -ffloat-store in testing... " >&6; } +if test ${libc_cv_test_cc_float_store+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if { ac_try='${CC-cc} -Werror -ffloat-store -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_test_cc_float_store="-ffloat-store" +else case e in #( + e) libc_cv_test_cc_float_store= ;; +esac +fi ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_test_cc_float_store" >&5 +printf "%s\n" "$libc_cv_test_cc_float_store" >&6; } + +CC="$saved_CC" + + +config_vars="$config_vars +test-config-cflags-float-store = $libc_cv_test_cc_float_store" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -fno-tree-loop-distribute-patterns with \ __attribute__ ((__optimize__))" >&5 printf %s "checking if $CC accepts -fno-tree-loop-distribute-patterns with \ diff --git a/configure.ac b/configure.ac index d4c1c7c..aa0ec5d 100644 --- a/configure.ac +++ b/configure.ac @@ -1497,6 +1497,15 @@ LIBC_CONFIG_VAR([config-cflags-signaling-nans], [$libc_cv_cc_signaling_nans]) AC_SUBST(libc_cv_test_cc_signaling_nans) +dnl Determine if TEST_CC supports -ffloat-store. +LIBC_TRY_TEST_CC_OPTION([for -ffloat-store], + [-Werror -ffloat-store], + libc_cv_test_cc_float_store, + [libc_cv_test_cc_float_store="-ffloat-store"], + [libc_cv_test_cc_float_store=]) +LIBC_CONFIG_VAR([test-config-cflags-float-store], + [$libc_cv_test_cc_float_store]) + AC_CACHE_CHECK(if $CC accepts -fno-tree-loop-distribute-patterns with \ __attribute__ ((__optimize__)), libc_cv_cc_loop_to_function, [dnl cat > conftest.c <<EOF diff --git a/math/Makefile b/math/Makefile index a9f29d6..9f8024c 100644 --- a/math/Makefile +++ b/math/Makefile @@ -1062,7 +1062,8 @@ endif libm-test-fast-math-cflags = -fno-builtin -D__FAST_MATH__ -DTEST_FAST_MATH libm-test-vec-cflags = $(libm-test-fast-math-cflags) -fno-inline \ - -ffloat-store -D_OPENMP=201307 -Wno-unknown-pragmas + $(test-config-cflags-float-store) \ + -D_OPENMP=201307 -Wno-unknown-pragmas CFLAGS-test-double-vlen4-wrappers.c += $(double-vlen4-arch-ext-cflags) @@ -1078,7 +1079,8 @@ CFLAGS-test-float-vlen16-wrappers.c += $(float-vlen16-arch-ext-cflags) # raise spurious exceptions for sNaNs, but also do not test for # exceptions. Thus both versions of the classification macros are # validated. -libm-test-no-inline-cflags = -fno-inline -ffloat-store -fno-builtin \ +libm-test-no-inline-cflags = -fno-inline -fno-builtin \ + $(test-config-cflags-float-store) \ $(config-cflags-signaling-nans) CFLAGS-test-tgmath.c += -fno-builtin # The following testcase uses very long lines (>3 million), so it may take a |