<pre style='margin:0'>
Mark Anderson (markemer) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/2981eb25d2ca139de4ada36872cb19886d8e2ec3">https://github.com/macports/macports-ports/commit/2981eb25d2ca139de4ada36872cb19886d8e2ec3</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 2981eb25d2c clang-12, llvm-12, lldb-12: fix for macOS ≥ 14 (#26025)
</span>2981eb25d2c is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 2981eb25d2ca139de4ada36872cb19886d8e2ec3
</span>Author: Mark Mentovai <mark@mentovai.com>
AuthorDate: Mon Oct 7 11:43:14 2024 -0400
<span style='display:block; white-space:pre;color:#404040;'> clang-12, llvm-12, lldb-12: fix for macOS ≥ 14 (#26025)
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> This rolls up backports of the following fixes for later llvm versions
</span><span style='display:block; white-space:pre;color:#404040;'> to llvm-12:
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> 93df94134805 clang-14: Fix build under Xcode 15
</span><span style='display:block; white-space:pre;color:#404040;'> 2605e66ff779 lldb-14: fix build with macOS ≥ 14 SDK (Xcode ≥ 15)
</span><span style='display:block; white-space:pre;color:#404040;'> aa0bc47391a7 clang-14: Move libc++*.* libraries to libc++ sub-dir, fix
</span><span style='display:block; white-space:pre;color:#404040;'> install names
</span><span style='display:block; white-space:pre;color:#404040;'> 49df5ce7f1f6 clang-14, llvm-14: restore functionality on macOS 15 (Xcode
</span><span style='display:block; white-space:pre;color:#404040;'> 16)
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> It also enables lldb-12 on macOS ≥ 14, where it was previously
</span><span style='display:block; white-space:pre;color:#404040;'> separately disabled.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> References: https://trac.macports.org/ticket/68257
</span><span style='display:block; white-space:pre;color:#404040;'> References: https://trac.macports.org/ticket/70779
</span>---
lang/llvm-12/Portfile | 43 +++++--
...tdio-include-to-fix-a595b931f1f91897317a4.patch | 26 ++++
...xray_trampoline_x86_64.S-to-build-with-Xc.patch | 132 +++++++++++++++++++++
...-Move-.cfi_start-after-the-symbol-label-d.patch | 42 +++++++
lang/llvm-12/files/patch-xcode-15.diff | 47 ++++++++
5 files changed, 282 insertions(+), 8 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-12/Portfile b/lang/llvm-12/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index ac82f8ed893..6722b9f1a70 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-12/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-12/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -19,8 +19,6 @@ categories lang
</span> license NCSA
maintainers {jeremyhu @jeremyhu}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-platforms {darwin < 23}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> set llvm_version 12
version 12.0.1
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -34,7 +32,7 @@ use_xz yes
</span>
name llvm-${llvm_version}
revision 3
<span style='display:block; white-space:pre;background:#ffe0e0;'>-subport clang-${llvm_version} {revision 3}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport clang-${llvm_version} {revision 4}
</span> subport lldb-${llvm_version} {revision 3}
dist_subdir llvm
set suffix mp-${llvm_version}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -54,15 +52,14 @@ cmake.build_type Release
</span> cmake.install_rpath
configure.pre_args-delete \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- -DCMAKE_INSTALL_NAME_DIR=${cmake.install_prefix}/lib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -DCMAKE_INSTALL_RPATH=${cmake.install_prefix}/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCMAKE_INSTALL_NAME_DIR="${cmake.install_prefix}/lib"
</span>
configure.pre_args-replace \
-DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON \
-DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF
configure.pre_args-replace \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- -DCMAKE_SYSTEM_PREFIX_PATH="${prefix}\;/usr" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCMAKE_SYSTEM_PREFIX_PATH="${prefix}\;${cmake.install_prefix}\;/usr" \
</span> -DCMAKE_SYSTEM_PREFIX_PATH="${cmake.install_prefix}\;${prefix}\;/usr"
configure.args-append \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -122,8 +119,12 @@ patchfiles-append \
</span> 0019-10.6-and-less-use-emulated-TLS-before-10.7.patch \
0025-lldb-add-defines-needed-for-older-SDKs.patch \
0026-compiler-rt-parallel-D106305.patch \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0028-lldb-Add-cstdio-include-to-fix-a595b931f1f91897317a4.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0029-xray-allow-xray_trampoline_x86_64.S-to-build-with-Xc.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0030-compiler-rt-Move-.cfi_start-after-the-symbol-label-d.patch \
</span> patch-lldb-stdc-macros-134877.diff \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- patch-lldb-fix-swig-lvalue-2128646.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-lldb-fix-swig-lvalue-2128646.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-xcode-15.diff
</span>
if {${os.platform} eq "darwin" && ${os.major} < 14} {
patchfiles-append \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -262,7 +263,7 @@ if {${subport} eq "lldb-${llvm_version}"} {
</span> select.group lldb
select.file ${filespath}/mp-${subport}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- platforms {darwin >= 16} {darwin < 23}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ platforms {darwin >= 16}
</span>
configure.args-append \
-DLLDB_CODESIGN_IDENTITY=- \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -358,6 +359,16 @@ post-destroot {
</span> macos-setup-codesign.sh \
${lldb_scripts_destdir}
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${subport} eq "clang-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # move libc++ libraries out of default location to prevent accidental linkage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set libcxx_dir ${destroot}${sub_prefix}/lib/libc++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -d ${libcxx_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach f [glob -nocomplain ${destroot}${sub_prefix}/lib/libc++*.*] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_debug "Moving ${f} to ${libcxx_dir}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ move ${f} ${libcxx_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
if {${subport} eq "clang-${llvm_version}"} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -443,6 +454,22 @@ if {${subport} eq "clang-${llvm_version}"} {
</span> if { ${cxx_stdlib} eq "libstdc++" } {
default_variants-append +libstdcxx
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-configure {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # -Wl,-syslibroot referencing the macOS SDK must not appear when linking
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # runtime libraries for non-macOS platforms, which are cross-built and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # used for cross-platform support. The clang build will provide the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # proper -isysroot for the platform in these cases. Remove the macOS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # SDK.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach rtl {asan lsan stats tsan ubsan ubsan_minimal} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach rtl_os {ios iossim} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set link_txt_path "${workpath}/build/projects/compiler-rt/lib/${rtl}/CMakeFiles/clang_rt.${rtl}_${rtl_os}_dynamic.dir/link.txt"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[file exists "${link_txt_path}"]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s|-Wl,-syslibroot,${configure.sdkroot}||" "${link_txt_path}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
livecheck.type regex
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-12/files/0028-lldb-Add-cstdio-include-to-fix-a595b931f1f91897317a4.patch b/lang/llvm-12/files/0028-lldb-Add-cstdio-include-to-fix-a595b931f1f91897317a4.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..8eb5beb80f3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-12/files/0028-lldb-Add-cstdio-include-to-fix-a595b931f1f91897317a4.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,26 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 73e15b5edb4fa4a77e68c299a6e3b21e610d351f Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Dmitry Chernenkov <dmitryc@google.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 2 May 2023 12:45:28 +0000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] [lldb] Add cstdio include to fix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ a595b931f1f91897317a4257df313bddfeb029a6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lldb/include/lldb/API/SBFile.h | 2 ++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 2 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/lldb/include/lldb/API/SBFile.h b/lldb/include/lldb/API/SBFile.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d8b348b25c81..ebdc5607b794 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/lldb/include/lldb/API/SBFile.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/lldb/include/lldb/API/SBFile.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11,6 +11,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "lldb/API/SBDefines.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <cstdio>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace lldb {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class LLDB_API SBFile {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.46.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-12/files/0029-xray-allow-xray_trampoline_x86_64.S-to-build-with-Xc.patch b/lang/llvm-12/files/0029-xray-allow-xray_trampoline_x86_64.S-to-build-with-Xc.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..aaada24ea00
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-12/files/0029-xray-allow-xray_trampoline_x86_64.S-to-build-with-Xc.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,132 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From c928fce274ac0a51ad814437e18a0c07fa6dbca3 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Mark Mentovai <mark@mentovai.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sat, 28 Sep 2024 00:30:59 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] xray: allow xray_trampoline_x86_64.S to build with Xcode 16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ clang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+MIME-Version: 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Content-Type: text/plain; charset=UTF-8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Content-Transfer-Encoding: 8bit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This is a backport of c57c7b7c9960 to llvm-12, adapted because that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patch does not apply without b46c89892fe2, which llvm-12 does not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+include. The original change’s description:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+> [PATCH] [xray] Use L* instead of .L* for Mach-O
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+> Note: Mach-O support is not yet done and check-xray is not allowed yet.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ compiler-rt/lib/xray/xray_trampoline_x86_64.S | 28 +++++++++----------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 14 insertions(+), 14 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/compiler-rt/lib/xray/xray_trampoline_x86_64.S b/compiler-rt/lib/xray/xray_trampoline_x86_64.S
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 12c5a6ccd9a4..af8ad32c6e3e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/compiler-rt/lib/xray/xray_trampoline_x86_64.S
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/compiler-rt/lib/xray/xray_trampoline_x86_64.S
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -110,14 +110,14 @@ ASM_SYMBOL(__xray_FunctionEntry):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // On x86/amd64, a simple (type-aligned) MOV instruction is enough.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ movq ASM_SYMBOL(_ZN6__xray19XRayPatchedFunctionE)(%rip), %rax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ testq %rax, %rax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- je .Ltmp0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ je LOCAL_LABEL(tmp0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // The patched function prologue puts its xray_instr_map index into %r10d.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ movl %r10d, %edi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xor %esi,%esi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ALIGNED_CALL_RAX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-.Ltmp0:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LOCAL_LABEL(tmp0):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ RESTORE_REGISTERS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ retq
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # LLVM-MCA-END
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -145,13 +145,13 @@ ASM_SYMBOL(__xray_FunctionExit):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ movq %rdx, 0(%rsp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ movq ASM_SYMBOL(_ZN6__xray19XRayPatchedFunctionE)(%rip), %rax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ testq %rax,%rax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- je .Ltmp2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ je LOCAL_LABEL(tmp2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ movl %r10d, %edi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ movl $1, %esi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ALIGNED_CALL_RAX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-.Ltmp2:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LOCAL_LABEL(tmp2):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Restore the important registers.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ movq 48(%rsp), %rbp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ movupd 32(%rsp), %xmm0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -178,14 +178,14 @@ ASM_SYMBOL(__xray_FunctionTailExit):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ movq ASM_SYMBOL(_ZN6__xray19XRayPatchedFunctionE)(%rip), %rax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ testq %rax,%rax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- je .Ltmp4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ je LOCAL_LABEL(tmp4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ movl %r10d, %edi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ movl $2, %esi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ALIGNED_CALL_RAX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-.Ltmp4:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LOCAL_LABEL(tmp4):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ RESTORE_REGISTERS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ retq
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # LLVM-MCA-END
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -206,14 +206,14 @@ ASM_SYMBOL(__xray_ArgLoggerEntry):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Again, these function pointer loads must be atomic; MOV is fine.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ movq ASM_SYMBOL(_ZN6__xray13XRayArgLoggerE)(%rip), %rax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ testq %rax, %rax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- jne .Larg1entryLog
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ jne LOCAL_LABEL(arg1entryLog)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // If [arg1 logging handler] not set, defer to no-arg logging.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ movq ASM_SYMBOL(_ZN6__xray19XRayPatchedFunctionE)(%rip), %rax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ testq %rax, %rax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- je .Larg1entryFail
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ je LOCAL_LABEL(arg1entryFail)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-.Larg1entryLog:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LOCAL_LABEL(arg1entryLog):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // First argument will become the third
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ movq %rdi, %rdx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -225,7 +225,7 @@ ASM_SYMBOL(__xray_ArgLoggerEntry):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ movl %r10d, %edi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ALIGNED_CALL_RAX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-.Larg1entryFail:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LOCAL_LABEL(arg1entryFail):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ RESTORE_REGISTERS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ retq
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # LLVM-MCA-END
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -247,11 +247,11 @@ ASM_SYMBOL(__xray_CustomEvent):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // already.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ movq ASM_SYMBOL(_ZN6__xray22XRayPatchedCustomEventE)(%rip), %rax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ testq %rax,%rax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- je .LcustomEventCleanup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ je LOCAL_LABEL(customEventCleanup)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ALIGNED_CALL_RAX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-.LcustomEventCleanup:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LOCAL_LABEL(customEventCleanup):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ RESTORE_REGISTERS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ retq
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # LLVM-MCA-END
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -273,11 +273,11 @@ ASM_SYMBOL(__xray_TypedEvent):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // and rdx without our intervention.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ movq ASM_SYMBOL(_ZN6__xray21XRayPatchedTypedEventE)(%rip), %rax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ testq %rax,%rax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- je .LtypedEventCleanup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ je LOCAL_LABEL(typedEventCleanup)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ALIGNED_CALL_RAX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-.LtypedEventCleanup:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LOCAL_LABEL(typedEventCleanup):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ RESTORE_REGISTERS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ retq
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # LLVM-MCA-END
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.46.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-12/files/0030-compiler-rt-Move-.cfi_start-after-the-symbol-label-d.patch b/lang/llvm-12/files/0030-compiler-rt-Move-.cfi_start-after-the-symbol-label-d.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..bc89092ff17
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-12/files/0030-compiler-rt-Move-.cfi_start-after-the-symbol-label-d.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,42 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 1706895a444f366722f428b6c2e722cb6ea6ef96 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Mark Mentovai <mark@mentovai.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sat, 28 Sep 2024 00:37:28 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 2/2] compiler-rt: Move .cfi_start after the symbol label
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ definition
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+MIME-Version: 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Content-Type: text/plain; charset=UTF-8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Content-Transfer-Encoding: 8bit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This is a backport of 7939ce39dac0 to llvm-12, adapted because that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patch does not apply without 5f3c4923e4e4, which llvm-12 does not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+include. The original change’s description:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+> [PATCH] [builtins] Move cfi start's after the symbol name [NFC]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+> ... in preparation for diagnosing improperly nested .cfi regions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+> See https://reviews.llvm.org/D155245
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ compiler-rt/lib/builtins/assembly.h | 5 +++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 3 insertions(+), 2 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/compiler-rt/lib/builtins/assembly.h b/compiler-rt/lib/builtins/assembly.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f6ce6a9fccff..f859ad8f6706 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/compiler-rt/lib/builtins/assembly.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/compiler-rt/lib/builtins/assembly.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -249,9 +249,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .globl name SEPARATOR \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SYMBOL_IS_FUNC(name) SEPARATOR \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DECLARE_SYMBOL_VISIBILITY(name) SEPARATOR \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- CFI_START SEPARATOR \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DECLARE_FUNC_ENCODING \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- name: SEPARATOR BTI_C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ name: \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SEPARATOR CFI_START \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SEPARATOR BTI_C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define DEFINE_COMPILERRT_FUNCTION_ALIAS(name, target) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .globl SYMBOL_NAME(name) SEPARATOR \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.46.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-12/files/patch-xcode-15.diff b/lang/llvm-12/files/patch-xcode-15.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..e6d5ddb22a7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-12/files/patch-xcode-15.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,47 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 786c10cd82a78c210379700b72cf18a018e1e1f7 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Mark Mentovai <mark@mentovai.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Thu, 28 Sep 2023 11:18:41 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] [sanitizer] Use consistent checks for XDR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+MIME-Version: 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Content-Type: text/plain; charset=UTF-8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Content-Transfer-Encoding: 8bit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This is a backport of 28800c2e18972935cd4f942aa428c5e6cc4c1670
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(https://reviews.llvm.org/D130060), which is in llvm-15, to llvm-14,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+however it’s been adapted to be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+pre-8246b2e156568c31e71e16cbaf4c14d316e7c06e
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(https://reviews.llvm.org/D126263), which renamed SANITIZER_MAC (the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+macro in llvm-14) to SANITIZER_APPLE (the macro in llvm-15 and later).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The original change’s description:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+> sanitizer_platform_limits_posix.h defines `__sanitizer_XDR ` if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+> `SANITIZER_LINUX && !SANITIZER_ANDROID`, but
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+> sanitizer_platform_limits_posix.cpp tries to check it if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+> `HAVE_RPC_XDR_H`. This coincidentally works because macOS has a broken
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+> <rpc/xdr.h> which causes `HAVE_RPC_XDR_H` to be 0, but if <rpc/xdr.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+> is fixed then clang fails to compile on macOS. Restore the platform
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+> checks so that <rpc/xdr.h> can be fixed on macOS.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This has become important with Xcode 15, which contains the macOS 14
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+SDK, which does have a fixed <rpc/xdr.h>.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../lib/sanitizer_common/sanitizer_platform_limits_posix.cpp | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 1 insertion(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 32b8f47ed633..6cefef3f3327 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1250,7 +1250,7 @@ CHECK_SIZE_AND_OFFSET(group, gr_passwd);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CHECK_SIZE_AND_OFFSET(group, gr_gid);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CHECK_SIZE_AND_OFFSET(group, gr_mem);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_RPC_XDR_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if HAVE_RPC_XDR_H && !SANITIZER_MAC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CHECK_TYPE_SIZE(XDR);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CHECK_SIZE_AND_OFFSET(XDR, x_op);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CHECK_SIZE_AND_OFFSET(XDR, x_ops);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.42.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>
</pre>