make configure attempt to catch broken floating point CFLAGS/defaults
authorRich Felker <dalias@aerifal.cx>
Wed, 17 Feb 2016 18:53:54 +0000 (13:53 -0500)
committerRich Felker <dalias@aerifal.cx>
Wed, 17 Feb 2016 18:53:54 +0000 (13:53 -0500)
configure

index 248c45005eb0c3eeff2121a369572436c91aa67c..779a3ef0c700caf4cc2a20f32433ca63862e7cfe 100755 (executable)
--- 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")