[GHC] #14909: Change default armhf target to a newer architecture
GHC
ghc-devs at haskell.org
Sun Mar 11 17:44:10 UTC 2018
#14909: Change default armhf target to a newer architecture
-------------------------------------+-------------------------------------
Reporter: Phyx- | Owner: (none)
Type: task | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.5
(CodeGen) |
Keywords: | Operating System: Unknown/Multiple
Architecture: arm | Type of failure: None/Unknown
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
Currently the default
[https://github.com/ghc/ghc/blob/60b06456ddef08bd8a8a47497a6cbefbb5e359fb
/llvm-targets#L4 llvm-targets] file specifies the default `arm-unknown-
linux-gnueabihf` target to be using `-mcpu=arm1176jzf-s`. Which is an
`Armv6` architecture.
This has the problem that it's generating memory barriers using `CP15`
instructions that are deprecated in `Armv7` and removed in `Armv8`.
Because of this there's no way to run the binaries being produced by GHC
HQ on Armv8 CPUs without having kernel support for `CP15 Barrier
emulation.` which is slow.
We're also not taking advantage of new Armv8 instructions this way.
The debian folks have a bug report about this as well
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=864847
This means that GHC cannot work on most boards people have/can easily buy
today.
I think the default target should be an `Armv7` architecture at the very
least. But realistically `Armv8` would probably be ok as well as I doubt
many people use GHC to compile on older cores.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14909>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list