1

是否有可能编译一个完整的 PHP 堆栈——比如 Apache、PHP、Postgres 和足够多的更常用的库来覆盖 90% 的站点——将 Clang 编译到 LLVM 位码中?如果是这样,是否有任何关于如何从开箱即用的 Ubuntu 设置开始的说明?

4

1 回答 1

3

Apache、PHP 和 Postgres 可以通过 Clang 编译,这意味着它们也可以编译成 LLVM 位码。我不能给你具体的步骤来实现这一点,因为它取决于构建系统。无论如何,这涉及将-femit-llvm标志添加到编译行,并且可能llvm-link用作链接器。

请注意,至少 PHP 具有内联汇编代码,您的分析器可能会阻塞这些代码。

更新

使用任意构建系统将代码编译到 LLVM IR 的好工具是gllvm。简而言之,您只需使用gclang/gclang++而不是gcc/g++然后get-bc在生成的二进制文件上运行。

于 2012-06-27T13:34:24.633 回答