Sto provando a compilare GHC 7.6.3 sul Raspberry Pi. La versione 7.4 di GHC fornita con Raspbian, non supporta ghci. Intendo confezionare v 7.6.3 e renderlo disponibile.Compilare Haskell sul Raspberry Pi
Dopo un po 'luuungo, ottengo questo errore sul Pi:
HC [stage 0] utils/hp2ps/dist/build/Key.o
HC [stage 0] utils/hp2ps/dist/build/PsFile.o
HC [stage 0] utils/hp2ps/dist/build/Shade.o
HC [stage 0] utils/hp2ps/dist/build/Utilities.o
"inplace/bin/mkdirhier" utils/hp2ps/dist/build/tmp//.
HC [stage 0] utils/hp2ps/dist/build/tmp/hp2ps
Warning: -rtsopts and -with-rtsopts have no effect with -no-hs-main.
Call hs_init_ghc() from your main() function to set these options.
"cp" -p utils/hp2ps/dist/build/tmp/hp2ps inplace/bin/hp2ps
cp driver/ghc-usage.txt inplace/lib/ghc-usage.txt
cp driver/ghci-usage.txt inplace/lib/ghci-usage.txt
HC [stage 0] utils/genapply/dist/build/GenApply.o
"inplace/bin/mkdirhier" utils/genapply/dist/build/tmp//.
HC [stage 0] utils/genapply/dist/build/tmp/genapply
"cp" -p utils/genapply/dist/build/tmp/genapply inplace/bin/genapply
HC [stage 1] libraries/ghc-prim/dist-install/build/GHC/Types.o
Stack dump:
0. Program arguments: /usr/bin/llc -O3 -relocation-model=static /tmp/ghc467_0/ghc467_0.bc -o /tmp/ghc467_0/ghc467_0.lm_s --enable-tbaa=true
1. Running pass 'Function Pass Manager' on module '/tmp/ghc467_0/ghc467_0.bc'.
2. Running pass 'ARM Instruction Selection' on function '@ghczmprim_GHCziTypes_Dzh_info'
/tmp/ghc467_0/ghc467_0.lm_s: openBinaryFile: does not exist (No such file or directory)
make[1]: *** [libraries/ghc-prim/dist-install/build/GHC/Types.o] Error 1
make: *** [all] Error 2
real 308m59.437s
user 292m8.320s
sys 10m18.220s
Qualche idea di cosa sta andando male?
Come posso finire con i file intermedi mancanti, che sono prodotti dal sistema di compilazione?
Sembra un errore da qualche parte nella catena degli strumenti di generazione. Forse meglio provare un cross-compilatore su un sistema x86. Il cross-compilatore è un link debole (molto probabilmente esporre alcuni bug) ma almeno gli altri strumenti sono quindi abbastanza ben testati. Vedi qui per le istruzioni (cross da x86 Linux a Raspberry Linux sembra essere supportato abbastanza bene): http://ghc.haskell.org/trac/ghc/wiki/CrossCompilation –
Debian fornisce [GHC 7.6.3 sul braccio] (http : //packages.debian.org/sid/ghc), quindi potresti voler controllare il file [Patched] relativo a ARM (http://patch-tracker.debian.org/package/ghc/7.6.3-3) applicato da Debian. –
Grazie ragazzi. In realtà ho provato a passare temporaneamente al repository sid per installare ghc, ma questo è finito in un incubo delle dipendenze (ha insistito per aggiornare la mia libc). Così ho deciso di compilarlo da solo. –