使用 Clang 编译 PHP 堆栈


Compiling the PHP stack with Clang

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

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

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

更新:

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