Opened 21 months ago

Closed 20 months ago

Last modified 19 months ago

#11206 closed bug (fixed)

ARM is generally a disaster

Reported by: bgamari Owned by:
Priority: normal Milestone: 8.0.1
Component: Compiler Version: 7.10.2
Keywords: Cc: erikd
Operating System: Linux Architecture: arm
Type of failure: None/Unknown Test Case:
Blocked By: Blocking:
Related Tickets: #11205, #11289, #11294, #11295, #11296, #11297, #11340 Differential Rev(s):
Wiki Page:

Description

I'll be recording the state of the testsuite on ARM here as I try to trace down the villains that plague this poor architecture.

Change History (37)

comment:1 Changed 21 months ago by bgamari

As of 688069ca83e949b9bde9883af7df26114e2f9bc0 things look like the following,

TEST="T1372 T4891 landmines joao-circular cabal01 debug T2578 T10518 tc263 T7835 cabal06 cabal07 barton-mangler-bug linker_unload T4850 T5423 T7037 T5435_dyn_asm T5435_v_gcc outofmem T5435_v_asm outofmem2 T4059 T5435_dyn_gcc plugins01 mod175 T8628 T6145 T9595 T8639_api T10508_api literals parsed par003 mod179 T7476 T10890_1 T10890 Check04 T1959 recomp008 hs-boot recomp015 safePkg01 T149 T2902 T3736 T10052 recomp004 T9430 sigof01 sigof01m sigof03 sigof02dm sigof02m sigof02d sigof02 dynCompileExpr bug1465 dynamic_flags_001 cabal04 rn.prog006 T5313 T703 T9938B withRtsOpts rtsopts002 rtsopts001 driver081b T9938 driver062a driver062b driver062c driver062d driver062e driver081a T7478 recomp001 integerConstantFolding showsrcspan T3007 Capi_Ctype_001 Capi_Ctype_002 T10955dyn dynamicToo001 hsc2hs004 hsc2hs003 CmmSwitchTest T437 encoding004 T3307 environment001 parseTree T10313 annotations comments listcomps recomp012 recomp007 recomp010 recomp011 gadt23 T8726 T7014 T5243 T10359 T9203 T7257 lazy-bs-alloc haddock.Cabal haddock.compiler haddock.base T5321FD T5030 T4801 T5631 T783 T9872d T9872b T3064 T1969 T5321Fun T5837 T9233 T9961"

OVERALL SUMMARY for test run started at Fri Dec 11 22:07:33 2015 CET
 1:13:14 spent to go through
    4859 total tests, which gave rise to
   15400 test cases, of which
   10592 were skipped

      72 had missing libraries
    4506 expected passes
     104 expected failures

       1 caused framework failures
       0 unexpected passes
     106 unexpected failures
      20 unexpected stat failures

comment:2 Changed 20 months ago by bgamari

#11205 is now closed and the world is a much rosier place. As of 353e97a37da98ccd174429fad348efbf01ace96c,

Unexpected results from:
TEST="T2431 recomp011 dynCompileExpr joao-circular T5313 T8274 CmmSwitchTest ghci004 ghci006 T7478 Roles4 Roles3 T8958 Roles14 Roles13 Roles2 Roles1 parseTree T10313 annotations comments listcomps TH_Roles2 T10828 T10518 T10052 prog001 outofmem T5435_v_asm linker_unload T5435_v_gcc T8628 T9015 T9595 T10508_api T1094
2 T8639_api T8726 T9430 T10359 T9203 T7257 lazy-bs-alloc haddock.Cabal haddock.compiler haddock.base T5321FD T5030 T4801 T5631 T5837 T9872a T9872d T9872b T3064 T9872c T1969 T5321Fun T783 T9233 T9961"

OVERALL SUMMARY for test run started at Thu Dec 24 04:59:15 2015 CET
 1:40:31 spent to go through
    4945 total tests, which gave rise to
   15671 test cases, of which
   10775 were skipped

      72 had missing libraries
    4657 expected passes
     105 expected failures

       1 caused framework failures
       0 unexpected passes
      40 unexpected failures
      22 unexpected stat failures

Unexpected failures:
   codeGen/should_compile    T10518 [exit code non-0] (normal)
   codeGen/should_run        CmmSwitchTest [bad stdout] (normal,g1)
   deSugar/should_compile    T2431 [stderr mismatch] (normal)
   driver                    T5313 [bad exit code] (normal)
   driver/recomp011          recomp011 [bad stdout] (normal)
   ghc-api                   T10508_api [exit code non-0] (normal)
   ghc-api                   T10942 [exit code non-0] (normal)
   ghc-api                   T8628 [bad exit code] (normal)
   ghc-api                   T8639_api [bad exit code] (normal)
   ghc-api                   T9015 [exit code non-0] (normal)
   ghc-api                   T9595 [exit code non-0] (normal)
   ghc-api/T10052            T10052 [bad exit code] (normal)
   ghc-api/T7478             T7478 [bad exit code] (normal)
   ghc-api/annotations       T10313 [bad exit code] (normal)
   ghc-api/annotations       annotations [bad exit code] (normal)
   ghc-api/annotations       comments [bad exit code] (normal)
   ghc-api/annotations       listcomps [bad exit code] (normal)
   ghc-api/annotations       parseTree [bad exit code] (normal)
   ghc-api/dynCompileExpr    dynCompileExpr [exit code non-0] (normal)
   ghci/prog001              prog001 [bad exit code] (ghci-ext)
   ghci/scripts              ghci004 [bad exit code] (ghci-ext)
   ghci/scripts              ghci006 [bad exit code] (ghci-ext)
   numeric/should_run        T8726 [bad exit code] (normal)
   primops/should_run        T9430 [bad exit code] (normal)
   programs/joao-circular    joao-circular [exit code non-0] (normal)
   roles/should_compile      Roles1 [stderr mismatch] (normal)
   roles/should_compile      Roles13 [stderr mismatch] (normal)
   roles/should_compile      Roles14 [stderr mismatch] (normal)
   roles/should_compile      Roles2 [stderr mismatch] (normal)
   roles/should_compile      Roles3 [stderr mismatch] (normal)
   roles/should_compile      Roles4 [stderr mismatch] (normal)
   roles/should_compile      T8958 [stderr mismatch] (normal)
   rts                       T5435_v_asm [bad exit code] (normal)
   rts                       T5435_v_gcc [bad exit code] (normal)
   rts                       linker_unload [bad exit code] (normal)
   rts                       outofmem [bad stdout] (normal)
   simplCore/should_compile  T8274 [bad stdout] (normal)
   th                        T10828 [stderr mismatch] (normal)
   th                        TH_Roles2 [stderr mismatch] (normal)

Unexpected stat failures:
   perf/compiler    T1969 [stat not good enough] (normal)
   perf/compiler    T3064 [stat not good enough] (normal)
   perf/compiler    T4801 [stat not good enough] (normal)
   perf/compiler    T5030 [stat not good enough] (normal)
   perf/compiler    T5321FD [stat not good enough] (normal)
   perf/compiler    T5321Fun [stat not good enough] (normal)
   perf/compiler    T5631 [stat not good enough] (normal)
   perf/compiler    T5837 [stat too good] (normal)
   perf/compiler    T783 [stat not good enough] (normal)
   perf/compiler    T9233 [stat not good enough] (normal)
   perf/compiler    T9872a [stat not good enough] (normal)
   perf/compiler    T9872b [stat not good enough] (normal)
   perf/compiler    T9872c [stat not good enough] (normal)
   perf/compiler    T9872d [stat not good enough] (normal)
   perf/compiler    T9961 [stat not good enough] (normal)
   perf/haddock     haddock.Cabal [stat not good enough] (normal)
   perf/haddock     haddock.base [stat too good] (normal)
   perf/haddock     haddock.compiler [stat not good enough] (normal)
   perf/should_run  T10359 [stat too good] (normal)
   perf/should_run  T7257 [stat too good] (normal)
   perf/should_run  T9203 [stat not good enough] (normal)
   perf/should_run  lazy-bs-alloc [stat not good enough] (normal)

comment:3 Changed 20 months ago by bgamari

As of bc8cac12f54bf032eb8578f6b112403bee5cb2de,

Unexpected results from:
TEST="literals parsed landmines dynCompileExpr joao-circular T5313 T8274 CmmSwitchTest ghci004 ghci006 T7478 parseTree T10313 annotations comments listcomps outofmem T5435_v_asm linker_unload T5435_v_gcc T10518 T10052 prog001 recomp011 T8628 T10942 T9595 T10508_api T9015 T6145 T8639_api T8726 T9430 T10359 T9203 T725
7 lazy-bs-alloc haddock.Cabal haddock.compiler haddock.base T5321FD T5030 T4801 T5631 T5837 T9872a T9872d T9872b T3064 T9872c T1969 T5321Fun T783 T9233 T9961"

OVERALL SUMMARY for test run started at Sat Dec 26 05:11:08 2015 CET
 1:59:58 spent to go through
    4951 total tests, which gave rise to
   15693 test cases, of which
   10791 were skipped

      72 had missing libraries
    4669 expected passes
     105 expected failures

       1 caused framework failures
       0 unexpected passes
      34 unexpected failures
      22 unexpected stat failures

comment:4 Changed 20 months ago by bgamari

comment:5 Changed 20 months ago by bgamari

comment:6 Changed 20 months ago by bgamari

comment:7 Changed 20 months ago by bgamari

I previously fixed T10518 in the ghc-7.10 branch (in 3b718b7abb544aa788779dce36e96b0bfae03ebf) but apparently never applied the fix to master. What a pleasant surprise.

comment:8 Changed 20 months ago by bgamari

As of a3b34b64136143fc117e572fab81e7b564b26f8e (with CmmSwitchTest marked as broken),

Unexpected results from:
TEST="T11255 dynamic-paper T8726 outofmem linker_unload T5435_v_gcc recomp011 T10359 T9203 T7257 lazy-bs-alloc T5321FD T5030 T4801 T5631 T5837 T9872a T9872d T9872b T3064 T9872c T1969 T5321Fun T783 T9233 T9961 haddock.Cabal haddock.compiler haddock.base"

OVERALL SUMMARY for test run started at Sun Dec 27 12:38:36 2015 CET
 1:05:53 spent to go through
    4955 total tests, which gave rise to
   15703 test cases, of which
   10797 were skipped

      72 had missing libraries
    4697 expected passes
     108 expected failures

       1 caused framework failures
       0 unexpected passes
       7 unexpected failures
      22 unexpected stat failures

Unexpected failures:
   dependent/should_compile  dynamic-paper [exit code non-0] (normal)
   driver/recomp011          recomp011 [bad stdout] (normal)
   numeric/should_run        T8726 [bad exit code] (normal)
   polykinds                 T11255 [exit code non-0] (normal)
   rts                       T5435_v_gcc [bad exit code] (normal)
   rts                       linker_unload [bad exit code] (normal)
   rts                       outofmem [bad stdout] (normal)

Progress! Moreover, I pulled since building the compiler so presumably will be fixed when I rebuild.

Several of these have tickets,

  • T8726: 32-bit integer-gmp issue, #11296
  • recomp011: redundant linking, #11260
  • T11255: #11255 (should be fixed; probably failed due to out-of-date compiler)
  • T5435_v_gcc: #11299 (cache flushing issue)
  • linker_unload: #11299
  • outofmem: #11300
  • dynamic-paper: Core lint failure, (presumably already fixed)
Last edited 20 months ago by bgamari (previous) (diff)

comment:9 Changed 20 months ago by bgamari

One additional issue that would be of great help to ARM is to speed up the LLVM backend a bit by eliminating redundant passes. See #11295.

comment:10 Changed 20 months ago by bgamari

As of 78daabc514e220ef52645b175a60ec39cfd4eeb1 the follow tests still fail,

Unexpected results from:
TEST="T2552 T2552 TH_spliceE5_prof TH_spliceE5_prof_ext outofmem linker_unload recomp011 T10359 T9203 T7257 lazy-bs-alloc T5321FD T5030 T4801 T5631 T5837 T9872a T9872d T9872b T3064 T9872c T1969 T5321Fun T783 T9233 T9961 haddock.Cabal haddock.compiler haddock.base"

OVERALL SUMMARY for test run started at Sat Jan  2 17:03:18 2016 CET
 1:34:00 spent to go through
    4937 total tests, which gave rise to
   16678 test cases, of which
   11772 were skipped

      66 had missing libraries
    4738 expected passes
      73 expected failures

       1 caused framework failures
       1 unexpected passes
       6 unexpected failures
      22 unexpected stat failures

Unexpected passes:
   profiling/should_run  T2552 (prof)

Unexpected failures:
   driver/recomp011      recomp011 [bad stdout] (normal)
   profiling/should_run  T2552 [bad profile] (profasm)
   rts                   linker_unload [bad exit code] (normal)
   rts                   outofmem [bad stdout] (normal)
   th                    TH_spliceE5_prof [bad exit code] (normal)
   th                    TH_spliceE5_prof_ext [bad exit code] (normal)

comment:11 Changed 20 months ago by bgamari

comment:12 Changed 20 months ago by bgamari

As of 04f3524f787b2cbd3f460e058c753529d3f2f7ac we have,

Unexpected results from:
TEST="barton-mangler-bug cabal03 ghci004 ghci006 outofmem recomp011 cabal01 prog001 T10359 T9203 T7257 lazy-bs-alloc T5321FD T5030 T4801 T5631 T5837 T9872a T9872d T9872b T3064 T9872c T1969 T5321Fun T783 T9233 T9961 haddock.Cabal haddock.compiler haddock.base"

OVERALL SUMMARY for test run started at Mon Jan  4 02:12:40 2016 CET
 4:11:39 spent to go through
    4963 total tests, which gave rise to
   15727 test cases, of which
   10813 were skipped

      72 had missing libraries
    4704 expected passes
     108 expected failures

       1 caused framework failures
       0 unexpected passes
       8 unexpected failures
      22 unexpected stat failures

Unexpected failures:
   cabal/cabal01                cabal01 [bad exit code] (normal)
   cabal/cabal03                cabal03 [bad exit code] (normal)
   driver/recomp011             recomp011 [bad stdout] (normal)
   ghci/prog001                 prog001 [bad exit code] (ghci-ext)
   ghci/scripts                 ghci004 [bad exit code] (ghci-ext)
   ghci/scripts                 ghci006 [bad exit code] (ghci-ext)
   programs/barton-mangler-bug  barton-mangler-bug [exit code non-0] (normal)
   rts                          outofmem [bad stdout] (normal)

comment:13 Changed 20 months ago by bgamari

It turns out that the ghci issues were merely due to iserv being out of date. Rebuilding seems to fix these, resulting in (running only the subset failing in comment:12),

Unexpected results from:
TEST="outofmem recomp011 T10359 T9203 T7257 lazy-bs-alloc T5321FD T5030 T4801 T5631 T5837 T9872a T9872d T9872b T3064 T9872c T1969 T5321Fun T783 T9233 T9961 haddock.Cabal haddock.compiler haddock.base"

OVERALL SUMMARY for test run started at Mon Jan  4 23:43:35 2016 CET
 0:09:07 spent to go through
      30 total tests, which gave rise to
      85 test cases, of which
      52 were skipped

       0 had missing libraries
       9 expected passes
       0 expected failures

       0 caused framework failures
       0 unexpected passes
       2 unexpected failures
      22 unexpected stat failures

Unexpected failures:
   driver/recomp011  recomp011 [bad stdout] (normal)
   rts               outofmem [bad stdout] (normal)

Check and mate.

Last edited 20 months ago by bgamari (previous) (diff)

comment:14 Changed 20 months ago by erikd

Cc: erikd added

comment:15 Changed 20 months ago by bgamari

Resolution: fixed
Status: newclosed

I think it is safe to say that this is resolved. My nightly builds have been quite stable.

comment:16 Changed 19 months ago by mfox

I did a perf build from today's master, and I'm seeing a ton of test failures. Like hundreds. Most are "bad stderr" or "stderr mismatch". I notice a lot of tests complaining about "unable to decommit memory: Function not implemented". This may be the cause of all the failures. Any idea what it's about?

Building from e2b66a0ef0a0d8ff5cdb681edd8309954ef0a08a

I made sure to update all of my submodules with

git submodule update --init

as recommended in https://ghc.haskell.org/trac/ghc/wiki/Building/GettingTheSources to avoid the old iserv problem mentioned above.

Any ideas? Should I open a new bug?

comment:17 Changed 19 months ago by mfox

OVERALL SUMMARY for test run started at Mon Feb  8 20:39:23 2016 UTC
 0:18:00 spent to go through
    5012 total tests, which gave rise to
   18811 test cases, of which
   13830 were skipped

      70 had missing libraries
    4119 expected passes
      81 expected failures

       0 caused framework failures
       1 unexpected passes
     707 unexpected failures
       3 unexpected stat failures

comment:18 Changed 19 months ago by mfox

This message stands out:

    You are using an unsupported version of LLVM!
    Currently only 3.7 is supported.

I swear something told me only 3.5 is supported. Maybe it's the problem.

comment:19 Changed 19 months ago by rwbarton

GHC 7.10.* requires LLVM 3.5.2. HEAD requires 3.7.

comment:20 Changed 19 months ago by mfox

Is there a way to apply these patches on 7.10 so I can make a current release without having to wait for 8.0?

comment:21 Changed 19 months ago by bgamari

Is there a way to apply these patches on 7.10 so I can make a current release without having to wait for 8.0?

I'm afraid not.

For the record, I have nightly ARM builds available here. They are built on an ARMv7 board running Debian 8. You will need to provide a working LLVM 3.7.

comment:22 Changed 19 months ago by mfox

Thank you, but it doesn't work for me. I think there's an ABI difference between armv7 and armv8. All executables give:

cannot execute binary file: Exec format error

One approach I'm pursuing, there's an Ubuntu PPA that builds GHC nightlies. https://launchpad.net/~hvr

If they were to enable arm64 builds then it would just happen. Supposedly, launchpad will do this if you just ask them so I'm trying to figure out how to ask them.

comment:23 Changed 19 months ago by erikd

Armv7 and Armv8 are not just different ABIs, they are completely different architectures (different instructions set even).

IN addition, however many problems there are with Armv7, the ones with Armv8 are significantly worse. Debian shipped a working ghc-7.8.4, but the current ghc-7.10.3 is completely busted due to a bug in LLVM that was never fixed. I've been using Debian's old ghc-7.8.4 to build the GHC 8.0 branch, but I currently cannot build Git HEAD because git head requires ghc-7.10.

Last edited 19 months ago by erikd (previous) (diff)

comment:24 Changed 19 months ago by mfox

I don't know. I have built 7.10 on armv8 and it doesn't pass all tests but it's good enough to build 95% of stackage and I've just finished building HEAD and am about to test it.

We're discussing it here: https://github.com/commercialhaskell/stack/issues/1755

comment:25 Changed 19 months ago by erikd

@mfox Do you have a working ghc 7.10 on Arm64? The one from Debian fails for me with:

0  libLLVM-3.5.so.1 0x0000007f8703e458 llvm::sys::PrintStackTrace(_IO_FILE*)
    + 48
Stack dump:
0.  Program arguments: llc-3.5 -O1 -relocation-model=static
    /tmp/ghcb9c5_0/ghc_64.bc -o /tmp/ghcb9c5_0/ghc_65.lm_s --enable-tbaa=true 
1.  Running pass 'Function Pass Manager' on module '/tmp/ghcb9c5_0/ghc_64.bc'.
2.  Running pass 'Greedy Register Allocator' on function '@"cxOZ_entry$def"'

comment:27 Changed 19 months ago by mfox

#11566 I don't need madvise DONT_NEED Compiler 8.1 bug normal Feb 11, 2016

#11569 make -j24 test Test Suite 8.1 bug normal Feb 12, 2016

These are the source of many testsuite failures. I'll update with the new (hopefully empty) list of failures in however many hours it takes to run serially.

comment:28 Changed 19 months ago by mfox

@erikd Did you get a chance to try my build? I would like to know if it works or not on which hardware and Linux version. I built under Ubuntu 14.04 with a mildly patched 4.2 kernel using llvm-3.5 from ubuntu so expect it to work maybe on more recent distros only. My hardware is thunderX on armcloud but I expect every armv8 chip is compatible.

comment:29 Changed 19 months ago by mfox

@erikd Another thing is I installed a new binutils and ld.gold that comes with it. Maybe you need it.

comment:30 Changed 19 months ago by mfox

Here's what really doesn't work on arm64:

Unexpected results from:
TEST="T2552 T5654b-O1 T5654b-O0 T2552 T11374 linker_unload divbyzero T5435_dyn_asm T5435_v_gcc T5435_v_asm T3424 ghci004 ghci006 T9329 T5313 T10052 recomp015 ghcilink004 TH_spliceE5_prof_ext recomp011 T3586 prog001 T8628 T8639_api T10508_api dynCompileExpr T9203 haddock.Cabal haddock.compiler haddock.base T5321FD T5631 T9872a T3064 T1969 T783"

OVERALL SUMMARY for test run started at Fri Feb 12 12:38:16 2016 UTC
 2:59:55 spent to go through
    5015 total tests, which gave rise to
   18823 test cases, of which
   13838 were skipped

      67 had missing libraries
    4801 expected passes
      81 expected failures

       0 caused framework failures
       1 unexpected passes
      25 unexpected failures
      10 unexpected stat failures

Unexpected passes:
   profiling/should_run  T2552 (profasm)

Unexpected failures:
   codeGen/should_compile  T9329 [exit code non-0] (normal)
   driver                  T5313 [bad exit code] (normal)
   driver/recomp011        recomp011 [bad stdout] (normal)
   driver/recomp015        recomp015 [bad exit code] (normal)
   ghc-api                 T10508_api [bad exit code] (normal)
   ghc-api                 T8628 [bad exit code] (normal)
   ghc-api                 T8639_api [bad exit code] (normal)
   ghc-api/T10052          T10052 [bad exit code] (normal)
   ghc-api/dynCompileExpr  dynCompileExpr [bad exit code] (normal)
   ghci/linking            ghcilink004 [bad exit code] (normal)
   ghci/prog001            prog001 [bad exit code] (ghci-ext)
   ghci/scripts            ghci004 [bad exit code] (ghci-ext)
   ghci/scripts            ghci006 [bad exit code] (ghci-ext)
   perf/should_run         T3586 [exit code non-0] (normal)
   pmcheck/should_compile  T11374 [exit code non-0] (normal)
   profiling/should_run    T2552 [bad profile] (prof)
   profiling/should_run    T5654b-O0 [exit code non-0] (prof)
   profiling/should_run    T5654b-O1 [exit code non-0] (profasm)
   rts                     T3424 [exit code non-0] (normal)
   rts                     T5435_dyn_asm [bad stdout] (normal)
   rts                     T5435_v_asm [bad exit code] (normal)
   rts                     T5435_v_gcc [bad exit code] (normal)
   rts                     divbyzero [bad exit code] (normal)
   rts                     linker_unload [bad exit code] (normal)
   th                      TH_spliceE5_prof_ext [bad exit code] (normal)

Unexpected stat failures:
   perf/compiler    T1969 [stat too good] (normal)
   perf/compiler    T3064 [stat too good] (normal)
   perf/compiler    T5321FD [stat too good] (normal)
   perf/compiler    T5631 [stat too good] (normal)
   perf/compiler    T783 [stat too good] (normal)
   perf/compiler    T9872a [stat too good] (normal)
   perf/haddock     haddock.Cabal [stat too good] (normal)
   perf/haddock     haddock.base [stat too good] (normal)
   perf/haddock     haddock.compiler [stat too good] (normal)
   perf/should_run  T9203 [stat too good] (normal)

comment:31 in reply to:  29 Changed 19 months ago by erikd

Replying to mfox:

@erikd Another thing is I installed a new binutils and ld.gold that comes with it. Maybe you need it.

What versions are you using? I'm on Debian Testing and have

ii  binutils    2.26-3    arm64   GNU assembler, linker and binary utilities
$ ld.gold --version
GNU gold (GNU Binutils for Debian 2.26) 1.11

In addition, the llvm version I'm using with ghc (also from Debian):

ii  libllvm3.5v5:arm64   1:3.5.2-3    arm64
ii  llvm-3.5             1:3.5.2-3    arm64
ii  llvm-3.5-dev         1:3.5.2-3    arm64
ii  llvm-3.5-runtime     1:3.5.2-3    arm64

Also I think discussion about Arm64 does not really belong in this ticket which started out being about 32 bit Arm.

comment:32 in reply to:  26 Changed 19 months ago by erikd

Replying to mfox:

Somehow mine works. I put it here: https://s3-us-west-1.amazonaws.com/stack-aarch64/ghc-7.10.3-aarch64-unknown-linux.tar.bz2

Tried that and get the same crash I get with the ghc-7.10.3 from Debian. This is not an GHC issue. Its almost certainly an issue in LLVM.

Last edited 19 months ago by erikd (previous) (diff)

comment:33 Changed 19 months ago by mfox

@erikd

binutils-2.26

ld.gold --version
GNU gold (GNU Binutils 2.26.20160125) 1.11

ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.10.3

cabal get hello
Downloading hello-1.0.0.2...
Unpacking to hello-1.0.0.2/
admin@vectorious2:~/src$ cd hello-1.0.0.2/
admin@vectorious2:~/src/hello-1.0.0.2$ cabal build
Package has never been configured. Configuring with default flags. If this
fails, please run configure manually.
Resolving dependencies...
Configuring hello-1.0.0.2...
Building hello-1.0.0.2...
Preprocessing executable 'hello' for hello-1.0.0.2...
ghc: setNumCapabilities: not supported on this platform
[1 of 1] Compiling Main             ( src/hello.hs, dist/build/hello/hello-tmp/Main.o )
Linking dist/build/hello/hello ...
admin@vectorious2:~/src/hello-1.0.0.2$ ls
dist  hello.cabal  LICENSE  Setup.hs  src
admin@vectorious2:~/src/hello-1.0.0.2$ ./dist/
build/                package.conf.inplace/
admin@vectorious2:~/src/hello-1.0.0.2$ ./dist/build/
autogen/ hello/
admin@vectorious2:~/src/hello-1.0.0.2$ ./dist/build/hello/hello
Hello, World!

llc --version
LLVM (http://llvm.org/):
  LLVM version 3.7.1
  DEBUG build with assertions.
  Built Feb  8 2016 (22:06:00).
  Default target: aarch64-unknown-linux-gnu
  Host CPU: (unknown)

aptitude search llvm | egrep "^i"
i A libllvm3.4                      - Modular compiler and toolchain technologie
id  llvm-3.4-runtime                - Modular compiler and toolchain technologie

cat /proc/cpuinfo
processor	: 0 [nid: 0]
Features	: fp asimd aes pmull sha1 sha2 crc32
CPU implementer	: 0x43
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0x0a1
CPU revision	: 0

How else can I help? Do you want to try screen sharing? May be more productive in getting you on track.

comment:34 Changed 19 months ago by erikd

Do you now have llvm 3.5 installed? The GHC 7.10 release *requires* LLVM version 3.5.

What does ghc --info say?

comment:35 Changed 19 months ago by mfox

ghc --info
 [("Project name","The Glorious Glasgow Haskell Compilation System")
 ,("GCC extra via C opts"," -fwrapv")
 ,("C compiler command","/usr/bin/gcc")
 ,("C compiler flags"," -fno-stack-protector")
 ,("C compiler link flags"," -fuse-ld=gold -Wl,-z,noexecstack")
 ,("Haskell CPP command","/usr/bin/gcc")
 ,("Haskell CPP flags","-E -undef -traditional ")
 ,("ld command","/usr/local/bin/ld.gold")
 ,("ld flags"," -z noexecstack")
 ,("ld supports compact unwind","YES")
 ,("ld supports build-id","YES")
 ,("ld supports filelist","NO")
 ,("ld is GNU ld","YES")
 ,("ar command","/usr/local/bin/ar")
 ,("ar flags","q")
 ,("ar supports at file","NO")
 ,("touch command","touch")
 ,("dllwrap command","/bin/false")
 ,("windres command","/bin/false")
 ,("libtool command","libtool")
 ,("readelf command","/usr/local/bin/readelf")
 ,("perl command","/usr/bin/perl")
 ,("cross compiling","NO")
 ,("target os","OSLinux")
 ,("target arch","ArchARM64")
 ,("target word size","8")
 ,("target has GNU nonexec stack","True")
 ,("target has .ident directive","True")
 ,("target has subsections via symbols","False")
 ,("Unregisterised","YES")
 ,("LLVM llc command","llc")
 ,("LLVM opt command","opt")
 ,("Project version","7.10.3")
 ,("Project Git commit id","97e7c293abbde5223d2bf0516f8969bdd1a9a7a2")
 ,("Booter version","7.6.3")
 ,("Stage","2")
 ,("Build platform","aarch64-unknown-linux")
 ,("Host platform","aarch64-unknown-linux")
 ,("Target platform","aarch64-unknown-linux")
 ,("Have interpreter","YES")
 ,("Object splitting supported","NO")
 ,("Have native code generator","NO")
 ,("Support SMP","NO")
 ,("Tables next to code","YES")
 ,("RTS ways","l debug thr thr_debug thr_l  dyn debug_dyn thr_dyn thr_debug_dyn l_dyn thr_l_dyn")
 ,("Support dynamic-too","YES")
 ,("Support parallel --make","YES")
 ,("Support reexported-modules","YES")
 ,("Support thinning and renaming package flags","YES")
 ,("Uses package keys","YES")
 ,("Dynamic by default","NO")
 ,("GHC Dynamic","YES")
 ,("Leading underscore","NO")
 ,("Debug on","False")
 ,("LibDir","/usr/local/lib/ghc-7.10.3")
 ,("Global Package DB","/usr/local/lib/ghc-7.10.3/package.conf.d")
 ]}}

Maybe I'm very lucky. I haven't been careful but things work pretty well.

comment:36 Changed 19 months ago by mfox

I had llvm 3.5 at some point but then I uninstalled and built llvm 3.7 because that's what HEAD requires and nothing went wrong yet.

comment:37 Changed 19 months ago by erikd

We really should get off this ticket because this ticket is about Arm and what we are discussing is about Arm64 which is vastly different.

Please use ticket #11578 for further Arm64 related discussion.

Note: See TracTickets for help on using tickets.