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:
parent
397c066464
commit
ec9d08e71e
@ -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-12-14.patch", when="@12:14")
|
||||||
patch("add-include-for-libelf-llvm-15.patch", when="@15")
|
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")
|
@when("@14:17")
|
||||||
def patch(self):
|
def patch(self):
|
||||||
# https://github.com/llvm/llvm-project/pull/69458
|
# https://github.com/llvm/llvm-project/pull/69458
|
||||||
@ -940,6 +942,26 @@ def cmake_args(self):
|
|||||||
|
|
||||||
# Semicolon seperated list of runtimes to enable
|
# Semicolon seperated list of runtimes to enable
|
||||||
if runtimes:
|
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(
|
cmake_args.extend(
|
||||||
[
|
[
|
||||||
define("LLVM_ENABLE_RUNTIMES", runtimes),
|
define("LLVM_ENABLE_RUNTIMES", runtimes),
|
||||||
|
@ -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);
|
Loading…
Reference in New Issue
Block a user