Debian8.1 上的 Apple Clang

Apple Clang on Debian8.1

最近我正在将 Apple Clang-700.1.81 移植到 debian 8.1。我用

成功构建了 clang
cmake ../llvm -DLLVM_TARGET_TO_BUILD="X86" -DCMAKE_INSTALL_PREFIX="/usr" -DDLLVM_DEFAULT_TARGET_TRIPLE="x86_64-apple-darwin15.3.0"
Make clang -j8 -s 2>Logs

CC Complier:gcc-4.9 CXX complier:g++-4.9

推出默认目标 x86_64-apple-darwin3.16.0-amd64

有没有我遗漏的东西?

好的,我终于找到了这个问题的解决方案。

确保安装所有这些插件。

gcc-4.9 g++-4.9-multilib gcc-4.9-multilib gobjc automake autoconf bison flex libtool python-dev libxml2-dev

Building clang-700.0.81 on Unix system

可能有一些错误修复,这些是我所做的。

  1. 删除源文件CFString.cpp或从目录中移出。

  2. 禁用 SourceManager 只注释那些导致编译器错误的代码。

  3. "brace-initialization" 添加额外的大括号来修复它。

Building clang-703.0.31 on Unix system

clang-703.0.31 不需要像 clang-700.0.81 那样进行任何配置。

使用此代码修补 clang-703.0.31,使预处理器能够转储正确版本的 clang。

src/tools/clang/lib/Basic/Version.cpp    
@@ -112,6 +112,9 @@
           OS << LLVMRepo << ' ';
         OS << LLVMRev << ')';
       }
    +  OS << " (";
    +  OS << 'clang-703.0.31';
    +  OS << ')';
       return OS.str();
     }

最终使用这些参数构建 clang-700.0.81 或 clang-703.0.31

cmake -G "Unix Makefiles" ../src -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DLLVM_INCLUDE_TESTS=False -DCOMPILER_RT_INCLUDE_TESTS=False -DLLVM_USE_SANITIZER=Address

如果我错了请纠正我