better configure check for long double support
authorSzabolcs Nagy <nsz@port70.net>
Sun, 17 Sep 2017 15:35:55 +0000 (15:35 +0000)
committerRich Felker <dalias@aerifal.cx>
Wed, 7 Feb 2018 20:43:33 +0000 (15:43 -0500)
configure

index 02b736cee3d5c17587b4a4a39af55faea9b214cc..501a7219683775b00a0b53320f007ff7880f6859 100755 (executable)
--- a/configure
+++ b/configure
@@ -706,9 +706,8 @@ esac
 #
 printf "checking whether compiler's long double definition matches float.h... "
 echo '#include <float.h>' > "$tmpc"
-echo '#if LDBL_MANT_DIG == 53' >> "$tmpc"
-echo 'typedef char ldcheck[9-(int)sizeof(long double)];' >> "$tmpc"
-echo '#endif' >> "$tmpc"
+echo '#define C(m,s) (m==LDBL_MANT_DIG && s==sizeof(long double))' >> "$tmpc"
+echo 'typedef char ldcheck[(C(53,8)||C(64,12)||C(64,16)||C(113,16))*2-1];' >> "$tmpc"
 if $CC $CFLAGS_C99FSE \
   -I$srcdir/arch/$ARCH -I$srcdir/arch/generic -I$srcdir/include \
   $CPPFLAGS $CFLAGS -c -o /dev/null "$tmpc" >/dev/null 2>&1 ; then