summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
authorBen Gamari <bgamari.foss@gmail.com>2016-01-25 21:19:04 +0100
committerBen Gamari <ben@smart-cactus.org>2016-01-25 21:19:05 +0100
commit9fe7d20e2e5c60325ce04f476bc89fae06e43208 (patch)
tree8b9e1efbe53fbbee8ff8c4c20459d8fd5f859a18 /mk
parentf0f63b39783055b2c0c1a8db8c22749afa6d7329 (diff)
downloadhaskell-9fe7d20e2e5c60325ce04f476bc89fae06e43208.tar.gz
Ensure that we don't produce code for pre-ARMv7 without barriers
We are unable to produce load/store barriers for pre-ARMv7 targets. Phab:D894 added dummy cases to SMP.h for these barriers to prevent the build from failing under the assumption that there are no SMP-capable devices of this vintage. However, #10433 points out that it is more correct to simply set NOSMP for such targets. Tested By: rwbarton Test Plan: Validate Reviewers: erikd, rwbarton, austin Reviewed By: rwbarton Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1704 GHC Trac Issues: #10433
Diffstat (limited to 'mk')
-rw-r--r--mk/config.mk.in7
-rw-r--r--mk/project.mk.in4
2 files changed, 10 insertions, 1 deletions
diff --git a/mk/config.mk.in b/mk/config.mk.in
index 927e686be0..94ba5d7b0f 100644
--- a/mk/config.mk.in
+++ b/mk/config.mk.in
@@ -184,7 +184,12 @@ HaveLibDL = @HaveLibDL@
# ArchSupportsSMP should be set iff there is support for that arch in
# includes/stg/SMP.h
-ArchSupportsSMP=$(strip $(patsubst $(TargetArch_CPP), YES, $(findstring $(TargetArch_CPP), i386 x86_64 sparc powerpc powerpc64 powerpc64le arm aarch64)))
+ifeq "$(TargetArch_CPP)" "arm"
+# We don't support load/store barriers pre-ARMv7. See #10433.
+ArchSupportsSMP="$(if $(filter $(ARM_ISA),ARMv5 ARMv6),NO,YES)"
+else
+ArchSupportsSMP=$(strip $(patsubst $(TargetArch_CPP), YES, $(findstring $(TargetArch_CPP), i386 x86_64 sparc powerpc powerpc64 powerpc64le aarch64)))
+endif
GhcWithSMP := $(strip $(if $(filter YESNO, $(ArchSupportsSMP)$(GhcUnregisterised)),YES,NO))
diff --git a/mk/project.mk.in b/mk/project.mk.in
index 9e45ae919b..03bd7441cb 100644
--- a/mk/project.mk.in
+++ b/mk/project.mk.in
@@ -158,3 +158,7 @@ CC_CLANG_BACKEND = @CC_CLANG_BACKEND@
# Is the stage0 compiler affected by Bug #9439?
GHC_LLVM_AFFECTED_BY_9439 = @GHC_LLVM_AFFECTED_BY_9439@
+
+ifeq "$(TargetArch_CPP)" "arm"
+ARM_ISA=@ARM_ISA@
+endif