LLVM-4.0.1 build problem on Linux


I tried to build LLVM 4.0.1 on a Slackware Linux box with 3 GB of RAM using gcc-7.1.0. Near the end of the build process, I hit the following error:

[ 89%] Linking CXX shared library …/…/lib/libLTO.so

collect2: fatal error: ld terminated with signal 9 [Killed]
compilation terminated.
tools/lto/CMakeFiles/LTO.dir/build.make:269: recipe for target ‘lib/libLTO.so.4.0.1’
make[2]: *** [lib/libLTO.so.4.0.1] Error 1
make[2]: *** Deleting file ‘lib/libLTO.so.4.0.1’
CMakeFiles/Makefile2:13932: recipe for target ‘tools/lto/CMakeFiles/LTO.dir/all’
make[1]: *** [tools/lto/CMakeFiles/LTO.dir/all] Error 2
Makefile:149: recipe for target ‘all’ failed
make: *** [all] Error 2

Can anyone help me with this problem?

Thank you in advance for your time!

Adrian Crisciu


It seems that your linker was killed during its process, likely because out-of-memory. Here are a few tips:

  • Are you building in parallel? One thing would be to reduce the parallelism level.

  • By default linux distribution are using the bfd linker, try to switch to gold instead (cmake -DLLVM_USE_LINKER=gold) it is usually a lot more performant.

  • Build with optimization and without debug info: cmake -DCMAKE_BUILD_TYPE=Release.

Hope this’ll help!

Try increasing swap size if all else fails and you still see maxed memory usage in top, htop.

Just my 2c,