如何从源代码构建 llvm-hs

How to build llvm-hs from source

我正在 使用 haskell 和 llvm-hs 解析大型 llvm-ir 代码以进行一些研究工作。

我使用 gllvm(对此 post - Getting LLVM IR for a clang/clang++ project 的评论)将 openssl (libssl) 转换为 .bc 文件,然后使用 llvm-dis 转换为 .ll 并使用解析 .ll 文件haskell & llvm-hs.

在此期间我遇到了这个问题 - https://github.com/llvm-hs/llvm-hs/issues/282#issue-511780377 -- 缺少函数属性“NoFree”#282 & 未处理的函数属性枚举值: 函数属性类型 26 这基本上是 edge cases 在它的发布中没有被 llvm-hs 处理但在这个提交中修复了 - https://github.com/llvm-hs/llvm-hs/pull/284

最初我使用 cabal install --lib llvm-hs 安装了 llvm-hs,我需要帮助的是 我不确定如何从源代码构建它

我克隆了 llvm-hs 存储库并检查了分支 llvm-9 的修复(或最新提交)提交,并将此存储库的路径添加到 $PATH,我如何使用 cabal 构建它从源头?我正在做一个小项目,所以它没有项目文件或 .cabal 文件

请帮忙!

创建一个依赖 llvm-hs 的 cabal 项目并使用 https://cabal.readthedocs.io/en/3.6/cabal-project.html#specifying-packages-from-remote-version-control-locations 指定提交。

请注意,由于该 PR 是从分叉中提取的,因此您将使用分叉存储库的 URL,而不是主存储库。