diff options
author | Ben Gamari <ben@smart-cactus.org> | 2020-06-10 22:39:56 -0400 |
---|---|---|
committer | Ben Gamari <ben@well-typed.com> | 2020-08-18 11:47:49 -0400 |
commit | b1a56cc7135a295eb3deb26715a0df93dcf6b907 (patch) | |
tree | 7c5160786cd11d6cf5131fc8f2b68d909e05f2ee | |
parent | 55fd1dc55990623dcf3b2e6143e766242315d757 (diff) | |
download | haskell-wip/T17856.tar.gz |
configure: Work around Raspbian's silly packaging decisionswip/T17856
See #17856.
-rw-r--r-- | aclocal.m4 | 53 |
1 files changed, 34 insertions, 19 deletions
diff --git a/aclocal.m4 b/aclocal.m4 index 5506f8cd47..73bfb63a83 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -447,25 +447,40 @@ AC_DEFUN([GET_ARM_ISA], #endif] )], [AC_DEFINE(arm_HOST_ARCH_PRE_ARMv7, 1, [ARM pre v7]) - ARM_ISA=ARMv6 - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM( - [], - [#if defined(__VFP_FP__) - return 0; - #else - no vfp - #endif] - )], - [changequote(, )dnl - ARM_ISA_EXT="[VFPv2]" - changequote([, ])dnl - ], - [changequote(, )dnl - ARM_ISA_EXT="[]" - changequote([, ])dnl - ] - )], + if grep -q Raspbian /etc/issue && uname -m | grep -q armv7; then + # Raspbian unfortunately makes some extremely questionable + # packaging decisions, configuring gcc to compile for ARMv6 + # despite the fact that the RPi4 is ARMv8. As ARMv8 doesn't + # support all instructions supported by ARMv6 this can + # break. Work around this by checking uname to verify + # that we aren't running on armv7. + # See #17856. + AC_MSG_NOTICE([Found compiler which claims to target ARMv6 running on ARMv7, assuming this is ARMv7 on Raspbian (see T17856)]) + ARM_ISA=ARMv7 + changequote(, )dnl + ARM_ISA_EXT="[VFPv2]" + changequote([, ])dnl + else + ARM_ISA=ARMv6 + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM( + [], + [#if defined(__VFP_FP__) + return 0; + #else + no vfp + #endif] + )], + [changequote(, )dnl + ARM_ISA_EXT="[VFPv2]" + changequote([, ])dnl + ], + [changequote(, )dnl + ARM_ISA_EXT="[]" + changequote([, ])dnl + ] + ) + fi], [changequote(, )dnl ARM_ISA=ARMv7 ARM_ISA_EXT="[VFPv3,NEON]" |