Compiling natively GHC for ARMv7l softabi

Moritz Angermann moritz.angermann at
Thu Oct 19 07:52:09 UTC 2017

Ugh! This looks even worse. I'm a bit at a loss here, why this didn't even make it to the assembly stage...

> On Oct 19, 2017, at 3:32 PM, shiftag at wrote:
> October 19, 2017 10:34 AM, "Moritz Angermann" <moritz.angermann at> wrote:
>>> "inplace/bin/ghc-stage1" -static -H32m -O -Wall -Iincludes -Iincludes/dist
>>> -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Irts -Irts/dist/build
>>> -DCOMPILING_RTS -this-unit-id rts -optc-DNOSMP -dcmm-lint -i -irts -irts/dist/build
>>> -irts/dist/build/autogen -Irts/dist/build -Irts/dist/build/autogen -O2 -c rts/StgStartup.cmm -o
>>> rts/dist/build/StgStartup.o
>> run this with `-v`, to check the invorcations. I'm pretty certain some flags to opt/llc are
>> missing/wrong here.
> Ok :)
> Please see below :
> $ inplace/bin/ghc-stage1 -v -static  -H32m -O -Wall  -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Irts -Irts/dist/build -DCOMPILING_RTS -this-unit-id rts -optc-DNOSMP -dcmm-lint      -i -irts -irts/dist/build -irts/dist/build/autogen -Irts/dist/build -Irts/dist/build/autogen           -O2     -c rts/StgStartup.cmm -o rts/dist/build/StgStartup.o
> Glasgow Haskell Compiler, Version 8.0.2, stage 1 booted by GHC version 8.0.2
> Using binary package database: /tmp/ghc-8.0.2/inplace/lib/package.conf.d/package.cache
> loading package database /tmp/ghc-8.0.2/inplace/lib/package.conf.d
> wired-in package ghc-prim mapped to ghc-prim-
> wired-in package integer-gmp mapped to integer-gmp-
> wired-in package base mapped to base-
> wired-in package rts mapped to rts
> wired-in package template-haskell mapped to template-haskell-
> wired-in package ghc mapped to ghc-8.0.2
> wired-in package dph-seq not found.
> wired-in package dph-par not found.
> Hsc static flags:
> Created temporary directory: /tmp/ghc25166_0
> *** C Compiler:
> /usr/bin/arm-linux-gnueabi-gcc -marm -fno-stack-protector -DTABLES_NEXT_TO_CODE -DNOSMP -E -I includes -I includes/dist -I includes/dist-derivedconstants/header -I includes/dist-ghcconstants/header -I rts -I rts/dist/build -I rts/dist/build -I rts/dist/build/autogen -I /tmp/ghc-8.0.2/libraries/base/include -I /tmp/ghc-8.0.2/libraries/integer-gmp/include -I /tmp/ghc-8.0.2/rts/dist/build -I /tmp/ghc-8.0.2/includes -I /tmp/ghc-8.0.2/includes/dist-derivedconstants/header '-D__GLASGOW_HASKELL__=800' -include /tmp/ghc-8.0.2/includes/ghcversion.h '-Dlinux_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dlinux_HOST_OS=1' '-Darm_HOST_ARCH=1' '-D__GLASGOW_HASKELL_LLVM__=307' '-D__GLASGOW_HASKELL_TH__=0' -include/tmp/ghc25166_0/ghc_2.h -x assembler-with-cpp rts/StgStartup.cmm -o /tmp/ghc25166_0/ghc_1.cmmcpp
> *** ParseCmm [/tmp/ghc25166_0/ghc_1.cmmcpp]:
> !!! ParseCmm [/tmp/ghc25166_0/ghc_1.cmmcpp]: finished in 4.00 milliseconds, allocated 2.082 megabytes
> *** LLVM CodeGen:
> *** LLVM CodeGen:
> Using LLVM version: (3,7)
> *** Deleting temp files:
> Deleting: /tmp/ghc25166_0/ghc_5.c /tmp/ghc25166_0/ghc_4.ll /tmp/ghc25166_0/ghc_3.rsp /tmp/ghc25166_0/ghc_2.h /tmp/ghc25166_0/ghc_1.cmmcpp
> Warning: deleting non-existent /tmp/ghc25166_0/ghc_5.c
> *** Deleting temp dirs:
> Deleting: /tmp/ghc25166_0
> ghc-stage1: panic! (the 'impossible' happened)
>  (GHC version 8.0.2 for arm-unknown-linux):
>       hscCmmFile: no_mod
> Please report this as a GHC bug:

More information about the ghc-devs mailing list