2015-05-12 4 views
5

In base allo this post, esiste infine un pacchetto debian per una versione di GHC che supporta i modelli haskell e ghci.Perché non riesco a installare alcun pacchetto con GHC 7.8.4 su Raspberry Pi?

e questo è vero, ho iniziato da una nuova copia di Raspbian, ho cambiato il mio file /etc/apt/sources.list a:

deb http://http.debian.net/debian sid main contrib non-free 
# Uncomment line below then 'apt-get update' to enable 'apt-get source' 
#deb-src http://archive.raspbian.org/raspbian/ wheezy main contrib non-free rpi 

ho fatto sudo apt-get update && sudo apt-get upgrade, e poi ho fatto sudo apt-get install ghc e sudo apt-get install cabal-install.

ghc --version report 7.8.4. GHCi funziona bene, e anche TH.

Ma per qualche motivo non riesco a installare alcun pacchetto con la cabala. Indipendentemente da quale prendo, ottengo qualche versione di questo errore:

login as: pi 
[email protected]'s password: 
Linux raspberrypi 3.18.11-v7+ #781 SMP PREEMPT Tue Apr 21 18:07:59 BST 2015 armv7l 

The programs included with the Debian GNU/Linux system are free software; 
the exact distribution terms for each program are described in the 
individual files in /usr/share/doc/*/copyright. 

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent 
permitted by applicable law. 
Last login: Mon May 11 17:17:22 2015 

$ ghc --version 
The Glorious Glasgow Haskell Compilation System, version 7.8.4 
$ mkdir test 
$ cd test 
$ cabal sandbox init 
Writing a default package environment file to 
/home/pi/test/cabal.sandbox.config 
Creating a new sandbox at /home/pi/test/.cabal-sandbox 
$ cabal install array 
Resolving dependencies... 
Notice: installing into a sandbox located at /home/pi/test/.cabal-sandbox 
Downloading array-0.5.1.0... 
Configuring array-0.5.1.0... 
Failed to install array-0.5.1.0 
Build log (/home/pi/test/.cabal-sandbox/logs/array-0.5.1.0.log): 
cabal: Error: some packages failed to install: 
array-0.5.1.0 failed during the configure step. The exception was: 
user error ('/usr/bin/ghc' exited with an error: 
/tmp/ghc2287_0/ghc2287_6.s: Assembler messages: 

/tmp/ghc2287_0/ghc2287_6.s:76:0: 
Error: selected processor does not support ARM mode `movw 
r7,:lower16:stg_bh_upd_frame_info' 

/tmp/ghc2287_0/ghc2287_6.s:77:0: 
Error: selected processor does not support ARM mode `movt 
r7,:upper16:stg_bh_upd_frame_info' 

/tmp/ghc2287_0/ghc2287_6.s:80:0: 
Error: selected processor does not support ARM mode `movw 
r7,:lower16:base_GHCziTopHandler_runMainIO_closure' 

/tmp/ghc2287_0/ghc2287_6.s:81:0: 
Error: selected processor does not support ARM mode `movt 
r7,:upper16:base_GHCziTopHandler_runMainIO_closure' 

/tmp/ghc2287_0/ghc2287_6.s:82:0: 
Error: selected processor does not support ARM mode `movw 
r8,:lower16:Cabalzm1zi22zi1zi1_DistributionziSimple_defaultMain_closure' 

/tmp/ghc2287_0/ghc2287_6.s:83:0: 
Error: selected processor does not support ARM mode `movt 
r8,:upper16:Cabalzm1zi22zi1zi1_DistributionziSimple_defaultMain_closure' 
) 

Qualcuno sa dove sono andato fuori dai binari?

Aggiornamento

$ cabal --version 
cabal-install version 1.22.0.1 
using version 1.22.1.1 of the Cabal library 
+1

eseguire 'cabal install base-io-access', vedere se funziona. Sono responsabile del pacchetto (piccolo, incompiuto, non usare questo nel codice reale), ma dipende solo da 'base' e ​​non fa alcun FFI o qualcosa del genere. Si tratta di un semplice pacchetto che potresti chiedere. Se non viene compilato, ti dirà che qualcosa è veramente borked, se lo fa compilare dipende dal pacchetto. – bheklilr

+0

Grazie @bheklilr, Questo è un test che ho eseguito con il mio pacchetto simile 'exact-pi' che dipende solo dalla base. Ho appena provato il tuo e ottenuto la stessa cosa. (Fondamentalmente, un diverso nome di file temporaneo, ma anche gli stessi numeri di riga e posizioni dei caratteri.) –

+0

In tal caso non ne ho idea. La mia ipotesi iniziale stava provando a collegarmi ad un codice C o qualcosa del genere. Forse hai bisogno di qualche flag in più per GHC per farlo compilare correttamente? Non ho mai provato a installare GHC sul mio RPi quindi non ho esperienza qui – bheklilr

risposta

5

Ha bisogno --ghc-options=-opta-march=armv7a come opzione ogni volta che si vuole costruire qualcosa con GHC o cabal install qualcosa. Con questo, funziona!

Aggiornamento

Se invece non --ghc-options="-opta-mcpu=cortex-a7 -opta-mfpu=neon -opta-mtune=native -opta-mfloat-abi=hard, virgola mobile funzionerà anche. Sono arrivato a questo supponendo-e-controllando e leggendo i vecchi post del forum, quindi è possibile che anche questi non siano le impostazioni migliori.

Cabal dispone inoltre di un file di configurazione utente in cui è possibile memorizzare questa impostazione e applicarla ogni volta che viene richiamato GHC.

+1

Ho avuto lo stesso problema con ghc 7.10 su Raspberry Pi 3. Ho dovuto usare '--ghc-options = -opta-march = armv7-a' con cabal – zigazou