path: root/configure
diff options
authorBobby Bingham <>2014-04-27 21:13:59 -0500
committerRich Felker <>2014-05-20 17:58:24 -0400
commit9612cb38d48e6917cdf5393da014a4a8621d472f (patch)
tree8431c8efb4e68dcd4ca3c6be133dbf4fbed3b4db /configure
parentc7776e708e796587f8e264bd51a7ffe74422c26b (diff)
fix superh nofpu check on old gcc versions
As far as gcc3 knows, sh4 is the only processor version that can have an FPU, so it indicates the FPU's presence by defining __SH4__. This is not defined if there is no FPU, even if the processor really is an SH4. Starting with gcc4, there is support for the sh2a processor, which has an FPU but is not an SH4. gcc4 therefore additionally defines __SH_FPU_ANY__ when there is an FPU, but still doesn't define __SH4__ for an FPU-less sh4. Therefore, to support all gcc versions, we must look at both preprocessor symbols. (cherry picked from commit 23d64182d8328c300b368446aad20da9cec91aa3)
Diffstat (limited to 'configure')
1 files changed, 1 insertions, 1 deletions
diff --git a/configure b/configure
index eb72a1e6..e8a990b0 100755
--- a/configure
+++ b/configure
@@ -429,7 +429,7 @@ test "$ARCH" = "microblaze" && trycppif __MICROBLAZEEL__ "$t" \
if test "$ARCH" = "sh" ; then
trycppif __BIG_ENDIAN__ "$t" && SUBARCH=${SUBARCH}eb
-if trycppif __SH_FPU_ANY__ "$t" ; then
+if trycppif "__SH_FPU_ANY__ || __SH4__" "$t" ; then
# Some sh configurations are broken and replace double with float
# rather than using softfloat when the fpu is present but only
# supports single precision. Reject them.