Clang 构建非常慢并且中途挂起

Teh*_*eem 6 llvm llvm-clang gold-linker ninja

我正在开始编写自己的 clang 工具。这些是我到目前为止所遵循的步骤:

  1. 查看 llvm 7.0 发行版
  2. 查看 clang 7.0 发布版本
  3. 使用带有以下标志的 ninja 构建 clang 和 llvm (没有这些标志就一直挂在我身上)

    -DLLVM_USE_LINKER=gold -DLLVM_PARALLEL_LINK_JOBS=1 -DLLVM_LINK_LLVM_DYLIB=true -DLLVM_USE_SPLIT_DWARF=ON -DBUILD_SHARED_LIBS=ON

  4. 已安装叮当声

现在我想将 clang 设置为它自己的编译器。因此,我使用“ccmake ../llvm”在配置文件中设置了这些标志。我不确定这是否是正确的做法?现在我尝试构建 clang,它说检测到的链接器是 GNU ld。如何重置我的配置文件并实际更改链接器以使其更快?我有 8GB 内存。

其次,我每次编写工具时都必须一次又一次地构建 clang 吗?比如说每次需要3-4个小时吗?

更新 正如 sandthorn 在评论中所建议的那样,我通过使用将并行作业限制为 1 ninja -j 1。然而,构建再次失败,并出现以下错误:

[3840/4138] Linking CXX shared library lib/libLTO.so.7
FAILED: lib/libLTO.so.7 
: && /usr/bin/c++ -fPIC -fPIC -fvisibility-inlines-hidden -Werror=date-time -std=c++11 -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wno-maybe-uninitialized -Wdelete-non-virtual-dtor -Wno-comment -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -Wl,-z,defs -Wl,-z,nodelete -fuse-ld=gold   -Wl,-O3 -Wl,--gc-sections  -Wl,--version-script,/home/tehreem/clang-llvm/build/tools/lto/LTO.exports -shared -Wl,-soname,libLTO.so.7 -o lib/libLTO.so.7 tools/lto/CMakeFiles/LTO.dir/LTODisassembler.cpp.o tools/lto/CMakeFiles/LTO.dir/lto.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib" lib/libLLVM-7.so && :
Run Code Online (Sandbox Code Playgroud)

此后还有大约 100 个其他未定义的引用错误。