Hello, Im trying to build trunk clang in debug version on oldish ubuntu with low mem. Linking lli takes ages and fails on low mem. Is there a chance building would succeed if i used lld instead of ld? If so is there an option either to force lld or whole clang toolchain use in cmake instead of default gcc (both gcc and clang are avail on system)? Otherwise I think ill stick with release. Best regards, Pawel Kunio -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210415/8d640936/attachment.html>
You can use `LLVM_USE_LINKER=lld` CMake variable to adopt LLD (to build LLVM). And yes, LLD takes less memory and runs faster. Here are some other tips to save memory: 1. You can use `LLVM_PARALLEL_LINK_JOBS=N` (also a cmake variable) to limit the amount of parallel linker jobs to save some memory. 2. Build libraries as shared library via `BUILD_SHARED_LIBS=ON` CMake variable can dramatically speed up the linking time and save you some memory. 3. Since you’re building a Debug build (and you’re building on Linux), `LLVM_USE_SPLIT_DWARF` can dramatically reduce the size of debug info, which, to some extend, also save you some memory during link time. Best, -Min> On Apr 15, 2021, at 1:05 PM, pawel k. via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > Hello, > Im trying to build trunk clang in debug version on oldish ubuntu with low mem. Linking lli takes ages and fails on low mem. Is there a chance building would succeed if i used lld instead of ld? If so is there an option either to force lld or whole clang toolchain use in cmake instead of default gcc (both gcc and clang are avail on system)? Otherwise I think ill stick with release. > > Best regards, > Pawel Kunio > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
Joerg Sonnenberger via llvm-dev
2021-Apr-15 22:57 UTC
[llvm-dev] Pardon the newbie question
On Thu, Apr 15, 2021 at 10:05:51PM +0200, pawel k. via llvm-dev wrote:> Hello, > Im trying to build trunk clang in debug version on oldish ubuntu with low > mem. Linking lli takes ages and fails on low mem. Is there a chance > building would succeed if i used lld instead of ld? If so is there an > option either to force lld or whole clang toolchain use in cmake instead of > default gcc (both gcc and clang are avail on system)? Otherwise I think ill > stick with release.Your best options for that are using DWARF fusion (-DLLVM_USE_SPLIT_DWARF) or as separate shared libraries (-DBUILD_SHARED_LIBS). The former will punish the gdb load time and the latter will penalize execution speed. Joerg