【问题标题】:How to write llvm pass in Mac OS X 10.9如何在 Mac OS X 10.9 中编写 llvm pass
【发布时间】:2014-02-22 11:21:16
【问题描述】:

我在 Linux 上构建了我的通行证,它在那里正常工作。现在,当我在 Mac Airbook 上将我的代码引入 Mac OS X 10.9 时,它不再工作了。我在下面描述了我为构建我的 llvm 通行证所采取的步骤。

我的源码树是 llvm-3.4 和 llv-3.4/tools/clang-3.4

我跑了./configure --prefix=/some-path --enable-targets=host,成功了。

然后我运行make && make install,它没有任何错误地完成。

我导出了 bin 路径 export PATH=/some-path/bin:$path 并检查了 which clang which opt,它们指向了我的安装。

现在,当我尝试加载 hello pass opt -load /some-path/lib/LLVMHello.dylib -hello <fac.bc >/dev/null 时,出现以下错误

Error opening '/some-path/lib/LLVMHello.dylib': dlopen(/some-path/lib/LLVMHello.dylib, 9): Symbol not found: __ZN4llvm12FunctionPass17assignPassManagerERNS_7PMStackENS_15PassManagerTypeE Referenced from: /some-path/lib/LLVMHello.dylib Expected in: flat namespace in /some-path/lib/LLVMHello.dylib -load request ignored. opt: Unknown command line argument '-hello'. Try: '/some-path/bin/opt -help' opt: Did you mean '-help'?

谁能帮我解决这个问题或至少指出正确的方向。

【问题讨论】:

  • 你在mac上解决了这个问题吗?

标签: macos llvm


【解决方案1】:

在我的例子中,动态加载通道所需的动态 LLVM 库丢失了。我通过使用 --enable-shared 配置 LLVM 解决了这个问题。我也设置了 --enable-keep-symbols ,但我认为这没有必要。我使用的完整配置命令:

./configure --enable-shared --enable-keep-symbols

我知道我的答案有点晚了,但我最近遇到了同样的问题。由于我花了很多时间解决这个问题,所以我想把我的发现传递出去。希望对您有所帮助。

干杯,马库斯

【讨论】:

  • LLVM 不再支持./configure 。你如何通过KEEP_SYMBOLScmake
猜你喜欢
  • 1970-01-01
  • 2014-02-26
  • 2014-02-12
  • 1970-01-01
  • 2014-11-22
  • 1970-01-01
  • 1970-01-01
  • 2013-11-10
  • 2013-12-11
相关资源
最近更新 更多