
#11578: Fix GHC on AArch64/Arm64 -------------------------------------+------------------------------- Reporter: erikd | Owner: Type: bug | Status: new Priority: normal | Milestone: 8.2.1 Component: Compiler | Version: 8.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: aarch64 Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------- @@ -10,4 +10,4 @@ - * User @mfox reports that ghc-7.10 does build against llvm-3.7 and results - in a compiler that can build HEAD. - * That GHC 7.10 can be build against llvm-3.7 is a happy accident. - Versions of GHC are usually locked to a specific version of LLVM. + * ~~User @mfox reports that ghc-7.10 does build against llvm-3.7 and + results in a compiler that can build HEAD.~~ + * ~~That GHC 7.10 can be build against llvm-3.7 is a happy accident. + Versions of GHC are usually locked to a specific version of LLVM.~~ New description: Raising this to track discussion about GHC on Arm64. There is already some discussion in ticket #11206 (ARM is generally a disaster), but that ticket is about 32 bit Arm which is vastly different and is now mostly fixed. Information worth saving from #11206: * GHC 7.8.4 from Debian can build the ghc-8.0 branch, but cannot build HEAD because HEAD requires ghc-7.10 to build. * GHC 7.10 from Debian is broken because of an unfixed bug in llvm-3.5.2. * ~~User @mfox reports that ghc-7.10 does build against llvm-3.7 and results in a compiler that can build HEAD.~~ * ~~That GHC 7.10 can be build against llvm-3.7 is a happy accident. Versions of GHC are usually locked to a specific version of LLVM.~~ -- Comment (by erikd): @mfox The LLVM IR code generated by GHC-7.10.3 does not compile with LLVM-3.7. There is a fundamental imcompatibility. GHC-7.10.3 generated LLVM metata data instructions that LLVM-3.7 rejects. End of story. I have tried Debian's GHC where I manually edited the settings file to replace `/usr/bin/(opt|llc)-3.5` with `/usr/bin/(opt|llc)-3.7`. I also did the same for the 7.10.3 bindist you provided in ticket #11206. Both fail with the same error message: {{{ You are using a new version of LLVM that hasn't been tested yet! We will try though... /usr/bin/opt-3.7: /tmp/ghc16717_0/ghc_26.ll:7:6: error: unexpected type in metadata definition !0 = metadata !{metadata !"top", i8* null} }}} It would help if you could actually figure out what is made you think that the GHC-7.10.3 with LLVM-3.7 setup worked. Even if it just for documentation purposes. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11578#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler