diff options
author | Ben Gamari <bgamari.foss@gmail.com> | 2016-01-25 21:19:04 +0100 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2016-01-25 21:19:05 +0100 |
commit | 9fe7d20e2e5c60325ce04f476bc89fae06e43208 (patch) | |
tree | 8b9e1efbe53fbbee8ff8c4c20459d8fd5f859a18 /mk | |
parent | f0f63b39783055b2c0c1a8db8c22749afa6d7329 (diff) | |
download | haskell-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.in | 7 | ||||
-rw-r--r-- | mk/project.mk.in | 4 |
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 |