<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>