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"} \