我该如何指定GHC使用哪些LLVM二进制文件?

21

我已经成功地使用最新的64位GHC 7.6.1 RC1 for Windows(下载地址)构建了PortFusion

使用从http://www.drangon.org/mingw下载的新鲜的本地64位mingw二进制文件, network包的安装非常容易(在一些不相关的小问题得到解决后), 就像一个简单的。。。

CC=mingw64/bin/gcc cabal install

同一网站上还有一个 LLVM 工具链包。

现在我想知道如何告诉 GHC 在编译时使用特定的 LLVM 二进制文件。


它是否会像上面那样简单而相似:

#v??v
 LLVM=????????? ghc -W -O2 -fllvm -optlo-O3 --make src/Main.hs
 LLVM=????????? cabal install PortFusion -f llvm 
#^??^

¹ PortFusion.cabal中定义llvm标志的相关行

还是完全不同的?


5
我的理解是 ghc 只使用路径中存在的 llc 可执行文件;http://hackage.haskell.org/trac/ghc/wiki/Building/Preparation/Windows 建议您按照标准的 Unix 指令,在 .profile 文件中添加 export PATH=${PATH}:/c/dev/llvm/bin,假设这就是 llc 的安装路径。 - applicative
@applicative 我已经尝试使用 PATH 但最终不得不提交错误报告:http://hackage.haskell.org/trac/ghc/ticket/7143。 - Cetin Sert
1
你解决了吗?我在ARM架构的Arch Linux下使用GHC包时遇到了同样的问题。 - user2023370
不,我没有。否则我会写一个答案的。请告诉我们在Linux上的情况如何! - Cetin Sert
2个回答

6
记录一下,标题中问题的答案是:
ghc -pgmlo opt_cmd -pgmlc llc_cmd -fllvm ...

opt_cmdllc_cmd可以是命令名称(将在PATH中查找)或完整路径名。


1

您可能可以通过更改 PATH 环境变量中定义它们的位置来使GHC使用某些二进制文件。先前的优先级更高。据推测,系统 PATH 也比用户 PATH 优先级更高。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接