From ec9d08e71ec2ef0b50d834f2ee7ad25658689e01 Mon Sep 17 00:00:00 2001 From: Laurent Aphecetche Date: Fri, 22 Dec 2023 13:03:23 +0100 Subject: llvm: fix llvm@14 build with apple-clang-15 (#40191) * llvm: fix llvm@14 build with apple-clang-15 * fix formatting --------- Co-authored-by: Adam J. Stewart --- var/spack/repos/builtin/packages/llvm/package.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'var/spack/repos/builtin/packages/llvm/package.py') diff --git a/var/spack/repos/builtin/packages/llvm/package.py b/var/spack/repos/builtin/packages/llvm/package.py index b85e5be19d..d2195fca49 100644 --- a/var/spack/repos/builtin/packages/llvm/package.py +++ b/var/spack/repos/builtin/packages/llvm/package.py @@ -572,6 +572,8 @@ class Llvm(CMakePackage, CudaPackage): patch("add-include-for-libelf-llvm-12-14.patch", when="@12:14") patch("add-include-for-libelf-llvm-15.patch", when="@15") + patch("sanitizer-platform-limits-posix-xdr-macos.patch", when="@10:14 platform=darwin") + @when("@14:17") def patch(self): # https://github.com/llvm/llvm-project/pull/69458 @@ -940,6 +942,26 @@ class Llvm(CMakePackage, CudaPackage): # Semicolon seperated list of runtimes to enable if runtimes: + # The older versions are not careful enough with the order of the runtimes. + # Instead of applying + # https://github.com/llvm/llvm-project/commit/06400a0142af8297b5d39b8f34a7c59db6f9910c, + # which might be incompatible with the version that we install, + # we sort the runtimes here according to the same order as + # in the aforementioned commit: + if self.spec.satisfies("@:14"): + runtimes_order = [ + "libc", + "libunwind", + "libcxxabi", + "libcxx", + "compiler-rt", + "openmp", + ] + runtimes.sort( + key=lambda x: runtimes_order.index(x) + if x in runtimes_order + else len(runtimes_order) + ) cmake_args.extend( [ define("LLVM_ENABLE_RUNTIMES", runtimes), -- cgit v1.2.3-60-g2f50