Skip to content

Commit

Permalink
Toolchain+CI: Link LLVM with LLD if available
Browse files Browse the repository at this point in the history
According to most benchmarks, LLD is faster than GNU ld and the macOS
linker, so let's use it if possible in order to speed up the toolchain
build.
  • Loading branch information
BertalanD authored and alimpfard committed Jan 10, 2022
1 parent d21c38a commit 162606f
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
2 changes: 1 addition & 1 deletion Meta/Azure/Setup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ steps:
sudo add-apt-repository ppa:canonical-server/server-backports
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install ccache e2fsprogs gcc-11 g++-11 libstdc++-11-dev libmpfr-dev libmpc-dev ninja-build qemu-utils qemu-system-i386 unzip
sudo apt-get install ccache e2fsprogs gcc-11 g++-11 libstdc++-11-dev libmpfr-dev libmpc-dev ninja-build qemu-utils qemu-system-i386 unzip lld
displayName: 'Install Dependencies'
- ${{ if eq(parameters.os, 'Linux') }}:
Expand Down
13 changes: 13 additions & 0 deletions Toolchain/BuildClang.sh
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,18 @@ then
exit 1
fi

link_lld=
buildstep dependencies echo "Checking whether the LLD linker is available..."
if ${CXX:-c++} -o /dev/null -fuse-ld=lld -xc - >/dev/null 2>/dev/null << 'PROGRAM'
int main() {}
PROGRAM
then
link_lld=1
buildstep dependencies echo "Using LLD for linking LLVM."
else
buildstep dependencies echo "LLD not found. Using the default linker."
fi

# === CHECK CACHE AND REUSE ===

pushd "$DIR"
Expand Down Expand Up @@ -254,6 +266,7 @@ pushd "$DIR/Build/clang"
-DCMAKE_INSTALL_PREFIX="$PREFIX" \
-DSERENITY_MODULE_PATH="$DIR/CMake" \
-C "$DIR/CMake/LLVMConfig.cmake" \
${link_lld:+"-DLLVM_ENABLE_LLD=ON"} \
${dev:+"-DLLVM_CCACHE_BUILD=ON"} \
${ci:+"-DLLVM_CCACHE_BUILD=ON"} \
${ci:+"-DLLVM_CCACHE_DIR=$LLVM_CCACHE_DIR"} \
Expand Down

0 comments on commit 162606f

Please sign in to comment.