2015-08-20 6 views
7

मैं प्राप्त करने की कोशिश कर रहा हूँ और रास्पबेरी पाई ARMv7 के लिए हाल ही में जारी GHC binaries के साथ 2 पर चल रहा है, यहाँ उपलब्ध है:ghc armv7 बाइनरी + कैबल? अवैध अनुदेश

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

यह कहते हैं कि यह डेबियन जेसी साथ बनाया गया था, तो मैं मैंने अपने पीआई 2 पर डेबियन जेसे स्थापित किया है। मैंने सफलतापूर्वक ghc स्थापित किया है - कम से कम ghci काम करता है। लेकिन वहां कोई कैबल नहीं है, और स्पष्ट रूप से ghc 7.10.2 को कैबल 1.22+ की आवश्यकता है। कैबल का डेबियन संस्करण 1.16 की तरह कुछ है (और ghc 7.6.x भी इंस्टॉल करेगा)। इसलिए मैं अपने bootstrap.sh स्क्रिप्ट के साथ स्रोत से कैबल-इंस्टॉल स्थापित करने की कोशिश कर रहा हूं। यह mtl पैकेज डाउनलोड करता है और 'सेटअप' निष्पादन बनाता है, फिर इसे निष्पादित करने का प्रयास करता है। लेकिन सेटअप exe 'अवैध निर्देश' के साथ विफल रहता है।

डाउनलोड पेज के अनुसार, 'सोना' लिंकर आवश्यक है। मैं यह भी कहा कि कर

ln -s द्वारा which gold ~/bin/ld

और मेरे पथ की स्थापना शामिल करने के लिए ~/bin। दुर्भाग्य से वही परिणाम।

अगला ऊपर मैंने सोने के साथ ghc binaries को पुनर्स्थापित करने का प्रयास किया (मुझे लगता है)। तो रूट के रूप में:

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

एक बार फिर GHC सफलतापूर्वक स्थापित किया गया था, लेकिन कबाल से स्थापित निर्माण के लिए परिणाम एक ही है:

[email protected]:~/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. 

कोई भी विचार?

मुझे आश्चर्य है कि सिम्लिंक इस के लिए सोने को सक्षम करने का सही तरीका है या नहीं? हो सकता है कि मुझे प्रत्येक कैबल प्रोजेक्ट में एक ghc विकल्प के रूप में जोड़ने की ज़रूरत है, या सोने का उपयोग करने का कोई और तरीका है? या शायद यह मुद्दा बिल्कुल नहीं है?

+0

ऐसा नहीं है कि संकलक के लिए टूट गया है मुझे लगता है वास्तुकला। लेकिन मुझे लंबे समय तक पीआई में हास्केल चलाने में दिलचस्पी है और अब तक आपसे कम भाग्यशाली रहा है। तो आप इसे खींच सकते हैं ... और यदि आप प्रबंधित करते हैं तो हमें बताएं। – dsign

+0

@dsign मैं इसे टूटा लेकिन प्रयोगात्मक नहीं कहूंगा। :) एक या दो सप्ताह पहले, एआरएम के लिए जीएचसी वितरण अपलोड किया गया था जिसे डेबियन जेसी पर बनाया गया था। – Sibi

+0

@ सिबी सहमत, मेरे हिस्से पर दुर्भाग्यपूर्ण शब्द। मेरी इच्छा है कि इसे ठीक किया जा सके। – dsign

उत्तर

3

ठीक है अंत में यह सीधे हो गया। Ghc डाउनलोड पेज के अनुसार आपको llvm 3.5 का उपयोग करना चाहिए जो डेबियन जेसी के साथ आता है। लेकिन डिफ़ॉल्ट llvm संस्करण 3.5-10 है और यह काम नहीं करता है। 3.5.2-2 की आवश्यकता क्या है।

मैंने 3.5.2-2 के लिए डीबीएस डाउनलोड किया और स्थापित किया लेकिन यह निर्भरता नरक में बहुत तेज़ी से बदल गया, 5-6 libs इंस्टॉल करने की आवश्यकता है जो 3.5.2-2 की आवश्यकता है। मैं डेबियन परीक्षण में स्विच किया और llvm स्थापित करना आसान था। यदि आप डेबियन प्रयोगात्मक हैं तो यह अभी भी आसान हो सकता है।

GHC 7.10.2 पैकेज मैं प्रयोग किया है: https://packages.debian.org/experimental/armhf/ghc/download

बग जहां मैं इसे उपयोग कर रहा था डिफ़ॉल्ट LLVM 3.5 के साथ डेबियन जेसी पर: https://ghc.haskell.org/trac/ghc/ticket/10863

संबंधित मुद्दे