[Haskell-cafe] Haskell on OpenWRT
Patrick Pelletier
code at funwithsoftware.org
Fri Apr 15 17:53:13 UTC 2016
On 4/12/16 11:54 AM, Tomas Carnecky wrote:
> ncurses is the only library.
>
> Not sure how I managed to configure the crosscompiler to produce
> static binaries, maybe it was an option which I had to pass to GHC. In
> any case, here's a docker image which includes instructions how I
> build the cross compiler:
> https://github.com/wereHamster/onion-omega/tree/master/xt, and here's
> a docker image which builds on top of that to compile a
> cross-compiling GHC:
> https://github.com/wereHamster/onion-omega/tree/master/ghc.
Thanks for all your help! I now have my ghc cross-compiler working, and
I can run simple programs on the OpenWRT box!
However, in order to build nontrivial programs, I need cabal. The GHC
cross-compiling page (
https://ghc.haskell.org/trac/ghc/wiki/Building/CrossCompiling ) recommends:
cabal --with-ghc=<cross-ghc> --with-ld=<ld> ...
So I expanded this approach to:
alias mcabal="cabal --with-ghc=x86_64-unknown-linux-musl-ghc
--with-ld=x86_64-unknown-linux-musl-ld
--with-gcc=x86_64-unknown-linux-musl-gcc
--with-ghc-pkg=x86_64-unknown-linux-musl-ghc-pkg
--disable-executable-dynamic"
Am I on the right track with that approach?
I'm able to install some packages with mcabal. (For example, "mcabal
install hourglass".)
But with cryptonite, I get:
ppelletier at patrick64:~/src/lifx/lifx-programs$ mcabal install
--flags=-integer-gmp cryptonite
Resolving dependencies...
Configuring memory-0.12...
Building memory-0.12...
Preprocessing library memory-0.12...
running
dist/dist-sandbox-5f352b7e/build/Data/Memory/MemMap/Posix_hsc_make
failed (exit code 127)
command was:
dist/dist-sandbox-5f352b7e/build/Data/Memory/MemMap/Posix_hsc_make
>dist/dist-sandbox-5f352b7e/build/Data/Memory/MemMap/Posix.hs
Failed to install memory-0.12
cabal: Error: some packages failed to install:
cryptonite-0.15 depends on memory-0.12 which failed to install.
memory-0.12 failed during the building phase. The exception was:
ExitFailure 1
I haven't been able to figure out exactly what's going on there.
Or, "mcabal install aeson" fails with:
Building aeson-0.11.1.4...
Preprocessing library aeson-0.11.1.4...
ghc: Data/Aeson/TH.hs:9:14-28: Template Haskell requires GHC with
interpreter support
Perhaps you are using a stage-1 compiler?
Usage: For basic information, try the `--help' option.
Failed to install aeson-0.11.1.4
cabal: Error: some packages failed to install:
aeson-0.11.1.4 failed during the building phase. The exception was:
ExitFailure 1
Is there a way to get Template Haskell to work? Or is that just
impossible? (And therefore, cross-compiling is impossible for many of
the packages on Hackage?) Is this a sign that I should have taken
Lana's suggestion to use Marios's approach instead?
--Patrick
More information about the Haskell-Cafe
mailing list