[GHC] #11578: Fix GHC on AArch64/Arm64

GHC ghc-devs at haskell.org
Tue Feb 16 05:45:49 UTC 2016


#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


More information about the ghc-tickets mailing list