2015-08-20 13 views
7

sto cercando di alzarsi e correre sul Raspberry Pi 2 con i binari ghc recentemente rilasciato per ARMv7, disponibile qui:ghc armv7 binario + cabal? istruzione illegale

https://www.haskell.org/ghc/download_ghc_7_10_2#linux_armv7

Questo dice che è stato costruito con debian Jesse, così ho ho installato debian jesse sul mio pi2. Ho installato ghc con successo - almeno ghci funziona. Ma non c'è cabala, e apparentemente ghc 7.10.2 richiede la cabala 1.22+. La versione debian di cabal è qualcosa come 1.16 (e installa anche ghc 7.6.x). Quindi sto cercando di installare cabal-install dal sorgente con il suo script bootstrap.sh. Questo scarica il pacchetto mtl e crea un eseguibile 'Setup', quindi tenta di eseguirlo. Ma il programma di installazione fallisce con "istruzioni illegali".

In base alla pagina di download, è necessario il linker "oro". Ho aggiunto che facendo

ln -s which gold ~/bin/ld

e impostando il mio percorso per includere ~/bin. Lo stesso risultato purtroppo.

Avanti Ho provato a reinstallare i binari ghc con oro (credo). Così come root:

> ln -s `which gold` /usr/local/bin/ld 
> cd ghc-7.10.2 
> make install 

Ancora una volta ghc è stato installato con successo, ma il risultato per la costruzione di cabala-install è lo stesso:

[email protected]pi:~/code/cabal/cabal-install$ ./bootstrap.sh 
Using gcc for C compiler. If this is not what you want, set CC. 
Using /usr/lib/gcc/arm-linux-gnueabihf/4.9/collect2 instead. 
Checking installed packages for ghc-7.10.2... 
deepseq is already installed and the version is ok. 
binary is already installed and the version is ok. 
time is already installed and the version is ok. 
Cabal is already installed and the version is ok. 
transformers is already installed and the version is ok. 
mtl-2.2.1 will be installed from local tarball. 
text-1.2.0.3 will be downloaded and installed. 
parsec-3.1.7 will be downloaded and installed. 
network-2.6.0.2 will be downloaded and installed. 
old-locale-1.0.0.7 will be downloaded and installed. 
old-time-1.1.0.3 will be downloaded and installed. 
HTTP-4000.2.19 will be downloaded and installed. 
zlib-0.5.4.2 will be downloaded and installed. 
random-1.1 will be downloaded and installed. 
stm-2.4.4 will be downloaded and installed. 

Using local tarball for mtl-2.2.1. 
[1 of 1] Compiling Main    (Setup.hs, Setup.o) 
Linking Setup ... 
Illegal instruction 

Error during cabal-install bootstrap: 
Configuring the mtl package failed. 

Tutte le idee?

Mi chiedo se il collegamento simbolico è il modo corretto per abilitare l'oro per questo? Forse dovrei aggiungerlo come opzione ghc in ogni progetto di cabala, o c'è un altro modo di usare l'oro? O forse non è questo il problema?

+0

Mi sembra che il compilatore è rotto per l'architettura. Ma sono stato interessato a far girare Haskell nel pi per molto tempo e sono stato meno fortunato di te finora. Quindi puoi toglierlo ... e facci sapere se lo gestisci. – dsign

+0

@dsign Non lo chiamerei rotto ma sperimentale. :) Una o due settimane fa è stata caricata la distribuzione di GHC per ARM, costruita su Debian Jessie. – Sibi

+0

@Sibi Concordato, sfortunato testo da parte mia. Spero solo che possa essere risolto. – dsign

risposta

3

Ok finalmente è stato risolto. Secondo la pagina di download ghc dovresti usare llvm 3.5 che viene fornito con debian jessie. Ma la versione di llvm predefinita è 3.5-10 e non funziona. Ciò che è necessario è 3.5.2-2.

Ho scaricato il deb per 3.5.2-2 e installato ma si è trasformato in dipendenza in inferno piuttosto veloce, avendo bisogno di installare 5-6 librerie richieste da llvm 3.5.2-2. Ho passato a debian testing ed è stato più semplice installare llvm. Potrebbe essere ancora più facile se sei su debian sperimentale.

GHC 7.10.2 pacchetto che ho usato: https://packages.debian.org/experimental/armhf/ghc/download

il bug in cui stavo usando con la LLVM 3.5 di default su debian Jessie: https://ghc.haskell.org/trac/ghc/ticket/10863

Problemi correlati