2013-10-13 2 views
7

LLVM/opt-3.2가 llvm-3.2.0.2과 함께 설치되어 있고 우분투 패키지에서 GHC 7.6.2가 설치되었습니다. 내가 -fllvm -v3와 GHC를 컴파일 할 때, 나는 오류 얻을 :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

onetwo과 관련하여 두 가지 관련 ghc-tracs가있는 것으로 보입니다.

후자의 trac에서 사용자는 "-pgmlo"및 "-pgmlc"옵션을 언급했으며, 이는 here입니다.

"-pgmlo opt -pgmlc llc"를 GHC 옵션 목록에 추가하여 문제를 해결할 수있었습니다.

대안으로 /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" 

llvm34하지llvm35를 얻을 수 있는지 확인합니다. 또한 LLVM과 함께 -O2를 실제로 전달하고자 함을 발견했습니다. 그것 없이는 매우 느립니다.

+0

.bashrc에 무엇인가를 추가하고 OS X의 버전을 실제로 추가한다는 것은 무엇을 의미합니까? –

+1

ps를 실행하여 사용중인 쉘을 확인한 다음 해당 쉘의 매뉴얼 페이지를 읽고 시작시 실행되는 스크립트를 확인하십시오. 대부분의 경우 셸은 bash이며 $ HOME/.bashrc와 다른 스크립트를 실행하여 사용자 환경을 사용자 정의 할 수 있습니다. –

+0

감사. 내가 아는 바로는,하지만 내 실제 문제는 이것 : https://stackoverflow.com/questions/24796874/cant-install-diagrams-arithmoi-on-mac –