summaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2016-02-17 13:53:54 -0500
committerRich Felker <dalias@aerifal.cx>2016-02-17 13:53:54 -0500
commit80fbaac4cd1930e9545a5d36bf46ae49011d2ce8 (patch)
tree834e6c4e1f4ae6ae8262f0918b15370329197ca2 /configure
parentcf115059ba0ecd611008c89c78c37b62f8e6d6af (diff)
downloadmusl-80fbaac4cd1930e9545a5d36bf46ae49011d2ce8.tar.gz
make configure attempt to catch broken floating point CFLAGS/defaults
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure10
1 files changed, 10 insertions, 0 deletions
diff --git a/configure b/configure
index 248c4500..779a3ef0 100755
--- a/configure
+++ b/configure
@@ -655,6 +655,16 @@ printf "no\n"
fail "$0: error: unsupported long double type"
fi
+#
+# Some build systems globally pass in broken CFLAGS like -ffast-math
+# for all packages. On recent GCC we can detect this and error out
+# early rather than producing a seriously-broken math library.
+#
+if trycppif "__FAST_MATH__ || (defined(__GCC_IEC_559) && __GCC_IEC_559==0)" \
+ "$CFLAGS_C99FSE $CPPFLAGS $CFLAGS" ; then
+fail "$0: error: compiler has broken floating point; check CFLAGS"
+fi
+
printf "creating config.mak... "
cmdline=$(quote "$0")