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 <ajstewart426@gmail.com>
This commit is contained in:
Laurent Aphecetche 2023-12-22 13:03:23 +01:00 committed by GitHub
parent 397c066464
commit ec9d08e71e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 0 deletions

View File

@ -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 @@ def cmake_args(self):
# 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),

View File

@ -0,0 +1,11 @@
--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
@@ -1250,7 +1250,7 @@ CHECK_SIZE_AND_OFFSET(group, gr_passwd);
CHECK_SIZE_AND_OFFSET(group, gr_gid);
CHECK_SIZE_AND_OFFSET(group, gr_mem);
-#if HAVE_RPC_XDR_H
+#if HAVE_RPC_XDR_H && !SANITIZER_MAC
CHECK_TYPE_SIZE(XDR);
CHECK_SIZE_AND_OFFSET(XDR, x_op);
CHECK_SIZE_AND_OFFSET(XDR, x_ops);