2013-10-13 69 views
7

我的LLVM/opt-3.2和llvm-3.2.0.2一起安裝,我剛從Ubuntu軟件包安裝GHC 7.6.2。然而,當我嘗試編譯GHC與-fllvm -V3,我得到的錯誤:在LLVM上使用GHC 3.2

*** CodeGen: 
*** LlVM CodeGen: 
Error (figuring out LLVM version): fd:10: hGetLine: end of file 

<no location info>: 
    Warning: Couldn't figure out LLVM version! 
      Make sure you have installed LLVM 
*** LLVM Optimiser: 
'opt-3.0' '/tmp/ghc17812_0/ghc17812_0.ll' '-o' '/tmp/ghc17812_0/ghc17812_0.bc' '-mem2reg' '--enable-tbaa=true' 
*** Deleting temp files: 
... 
ghc: could not execute: opt-3.0 

opt是在我的道路,但版本是3.2,而不是3.0。如果它不是讓GHC尋找正確版本的opt的hackage llvm包,它是什麼?

回答

5

似乎有兩個相關的ghc-tracs:onetwo

在後一個trac中,用戶提到了選項「-pgmlo」和「-pgmlc」,它們可以在here找到。

我能夠通過在GHC選項列表中添加「-pgmlo opt -pgmlc llc」來解決我的問題。

作爲替代方案,您可以編輯/usr/lib/ghc/settings,並確保它具有以下行:

("LLVM llc command", "llc"), 
("LLVM opt command", "opt") 

我還是想知道爲什麼GHC試圖選擇-3.0在默認情況下找到。

6

只想評論說,這仍然是一件事情。說明OSX:

> brew tap homebrew/dupes 
> brew install homebrew/versions/llvm34 

並保持一個別名我.bashrc

alias ghc-llvm="ghc -O2 -fllvm -pgmlo opt-3.4 -pgmlc llc-3.4" 

確保你llvm34llvm35。 我還發現你真的想通過-O2與LLVM。沒有它是非常緩慢的。

+0

通過在你的.bashrc中添加一些東西,以及OS X的哪個版本,你的意思是什麼? –

+1

通過運行ps找出你正在使用的shell,然後閱讀該shell的手冊頁以瞭解它在啓動時運行的腳本。對於大多數情況下,shell是bash,它運行$ HOME/.bashrc和其他幾個可用於定製體驗的腳本。 –

+0

謝謝。據我所知這是正確的,但我的實際問題是這樣的:https://stackoverflow.com/questions/24796874/cant-install-diagrams-arithmoi-on-mac –