summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Meta/Azure/Setup.yml2
-rwxr-xr-xToolchain/BuildClang.sh13
2 files changed, 14 insertions, 1 deletions
diff --git a/Meta/Azure/Setup.yml b/Meta/Azure/Setup.yml
index 6aacfbc40e..4eb452c754 100644
--- a/Meta/Azure/Setup.yml
+++ b/Meta/Azure/Setup.yml
@@ -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') }}:
diff --git a/Toolchain/BuildClang.sh b/Toolchain/BuildClang.sh
index 4dd1865b29..160c41d766 100755
--- a/Toolchain/BuildClang.sh
+++ b/Toolchain/BuildClang.sh
@@ -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"
@@ -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"} \