Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package llvm21 for openSUSE:Factory checked 
in at 2025-10-27 14:38:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/llvm21 (Old)
 and      /work/SRC/openSUSE:Factory/.llvm21.new.1980 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "llvm21"

Mon Oct 27 14:38:35 2025 rev:5 rq:1313505 version:21.1.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/llvm21/llvm21.changes    2025-10-13 
15:34:12.510386259 +0200
+++ /work/SRC/openSUSE:Factory/.llvm21.new.1980/llvm21.changes  2025-10-27 
14:39:30.318041548 +0100
@@ -1,0 +2,14 @@
+Fri Oct 24 14:22:12 UTC 2025 - Aaron Puchert <[email protected]>
+
+- Update to version 21.1.4.
+  * This release contains bug-fixes for the LLVM 21.1.0 release.
+    This release is API and ABI compatible with 21.1.0.
+- Simplify script for building documentation.
+- Use %ldconfig_scriptlets to automatically generate post
+  scriptlets. This doesn't work with %{multisource} in Leap 15.6
+  though, so we leave a fallback for that.
+- Drop post scriptlets for gold and polly, which provide only
+  plugin libraries that ldconfig doesn't care about.
+- Rebase llvm-do-not-install-static-libraries.patch.
+
+-------------------------------------------------------------------

Old:
----
  clang-21.1.3.src.tar.xz
  clang-21.1.3.src.tar.xz.sig
  clang-docs-21.1.3.src.tar.xz
  clang-tools-extra-21.1.3.src.tar.xz
  clang-tools-extra-21.1.3.src.tar.xz.sig
  cmake-21.1.3.src.tar.xz
  cmake-21.1.3.src.tar.xz.sig
  compiler-rt-21.1.3.src.tar.xz
  compiler-rt-21.1.3.src.tar.xz.sig
  libc-21.1.3.src.tar.xz
  libcxx-21.1.3.src.tar.xz
  libcxx-21.1.3.src.tar.xz.sig
  libcxxabi-21.1.3.src.tar.xz
  libcxxabi-21.1.3.src.tar.xz.sig
  lld-21.1.3.src.tar.xz
  lld-21.1.3.src.tar.xz.sig
  lldb-21.1.3.src.tar.xz
  lldb-21.1.3.src.tar.xz.sig
  llvm-21.1.3.src.tar.xz
  llvm-21.1.3.src.tar.xz.sig
  llvm-docs-21.1.3.src.tar.xz
  openmp-21.1.3.src.tar.xz
  openmp-21.1.3.src.tar.xz.sig
  polly-21.1.3.src.tar.xz
  polly-21.1.3.src.tar.xz.sig
  runtimes-21.1.3.src.tar.xz
  runtimes-21.1.3.src.tar.xz.sig
  third-party-21.1.3.src.tar.xz
  third-party-21.1.3.src.tar.xz.sig

New:
----
  clang-21.1.4.src.tar.xz
  clang-21.1.4.src.tar.xz.sig
  clang-docs-21.1.4.src.tar.xz
  clang-tools-extra-21.1.4.src.tar.xz
  clang-tools-extra-21.1.4.src.tar.xz.sig
  cmake-21.1.4.src.tar.xz
  cmake-21.1.4.src.tar.xz.sig
  compiler-rt-21.1.4.src.tar.xz
  compiler-rt-21.1.4.src.tar.xz.sig
  libc-21.1.4.src.tar.xz
  libcxx-21.1.4.src.tar.xz
  libcxx-21.1.4.src.tar.xz.sig
  libcxxabi-21.1.4.src.tar.xz
  libcxxabi-21.1.4.src.tar.xz.sig
  lld-21.1.4.src.tar.xz
  lld-21.1.4.src.tar.xz.sig
  lldb-21.1.4.src.tar.xz
  lldb-21.1.4.src.tar.xz.sig
  llvm-21.1.4.src.tar.xz
  llvm-21.1.4.src.tar.xz.sig
  llvm-docs-21.1.4.src.tar.xz
  openmp-21.1.4.src.tar.xz
  openmp-21.1.4.src.tar.xz.sig
  polly-21.1.4.src.tar.xz
  polly-21.1.4.src.tar.xz.sig
  runtimes-21.1.4.src.tar.xz
  runtimes-21.1.4.src.tar.xz.sig
  third-party-21.1.4.src.tar.xz
  third-party-21.1.4.src.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ llvm21.spec ++++++
--- /var/tmp/diff_new_pack.DNSTIp/_old  2025-10-27 14:39:33.538177525 +0100
+++ /var/tmp/diff_new_pack.DNSTIp/_new  2025-10-27 14:39:33.542177694 +0100
@@ -19,7 +19,7 @@
 %global _sonum  21
 %global _minor  %{_sonum}.1
 %global _soname %{_minor}%{?_rc:-rc%_rc}
-%global _patch_level 3
+%global _patch_level 4
 %global _relver %{_minor}.%{_patch_level}
 %global _version %_relver%{?_rc:-rc%_rc}
 %global _itsme21 1
@@ -1200,12 +1200,10 @@
 # tar xf ../../clang-%{_version}.src.tar.xz
 # mv clang-%{_version}.src clang
 # cd ..
-# ln -s ../../../build/tools/clang/docs/{Attribute,Diagnostics}Reference.rst 
tools/clang/docs
 # mkdir build; cd build
 # cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_SPHINX:BOOL=ON 
-DLLVM_BUILD_DOCS:BOOL=ON \
 #     -DSPHINX_WARNINGS_AS_ERRORS:BOOL=OFF -DLLVM_INCLUDE_TESTS:BOOL=OFF 
-DLLVM_INCLUDE_BENCHMARKS:BOOL=OFF ..
-# ninja gen-{Attribute,Diagnostics}Reference.rst
-# ninja -j1 docs-{llvm,clang}-{html,man}
+# ninja docs-{llvm,clang}-{html,man}
 # popd
 # tar --sort=name --owner=0 --group=0 --mtime="@${SOURCE_DATE_EPOCH}" \
 #     --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime \
@@ -1508,33 +1506,34 @@
 # creating the final RPMs.
 rm -rf ./stage1 ./build
 
-%post -n libLLVM%{_sonum} -p /sbin/ldconfig
-%postun -n libLLVM%{_sonum} -p /sbin/ldconfig
+%ldconfig_scriptlets -n libLLVM%{_sonum}
+%if %{?suse_version} >= 1600
+%ldconfig_scriptlets %{multisource libclang%{_soclang}} libclang%{_soclang}
+%else
 %post %{multisource libclang%{_soclang}} libclang%{_soclang} -p /sbin/ldconfig
 %postun %{multisource libclang%{_soclang}} libclang%{_soclang} -p 
/sbin/ldconfig
-%post -n libclang-cpp%{_sonum} -p /sbin/ldconfig
-%postun -n libclang-cpp%{_sonum} -p /sbin/ldconfig
-%post -n libLTO%{_sonum} -p /sbin/ldconfig
-%postun -n libLTO%{_sonum} -p /sbin/ldconfig
-%post -n clang%{_sonum}-devel -p /sbin/ldconfig
-%postun -n clang%{_sonum}-devel -p /sbin/ldconfig
+%endif
+%ldconfig_scriptlets -n libclang-cpp%{_sonum}
+%ldconfig_scriptlets -n libLTO%{_sonum}
+%ldconfig_scriptlets -n clang%{_sonum}-devel
 
 %if %{with lldb}
-%post -n liblldb%{_sonum} -p /sbin/ldconfig
-%postun -n liblldb%{_sonum} -p /sbin/ldconfig
+%ldconfig_scriptlets -n liblldb%{_sonum}
 %endif
 
-%post gold -p /sbin/ldconfig
-%postun gold -p /sbin/ldconfig
-%post devel -p /sbin/ldconfig
-%postun devel -p /sbin/ldconfig
+%ldconfig_scriptlets devel
 
 %if %{with openmp}
-%post -n libomp%{_sonum}-devel -p /sbin/ldconfig
-%postun -n libomp%{_sonum}-devel -p /sbin/ldconfig
+%ldconfig_scriptlets -n libomp%{_sonum}-devel
 %endif
 
 %if %{with libcxx}
+%if %{?suse_version} >= 1600
+%ldconfig_scriptlets %{multisource libcxx%{_socxx}} libc++%{_socxx}
+%ldconfig_scriptlets %{multisource libcxxabi%{_socxx}} libc++abi%{_socxx}
+%ldconfig_scriptlets %{multisource libcxx_devel} libc++-devel
+%ldconfig_scriptlets %{multisource libcxx_devel} libc++abi-devel
+%else
 %post %{multisource libcxx%{_socxx}} libc++%{_socxx} -p /sbin/ldconfig
 %postun %{multisource libcxx%{_socxx}} libc++%{_socxx} -p /sbin/ldconfig
 %post %{multisource libcxxabi%{_socxx}} libc++abi%{_socxx} -p /sbin/ldconfig
@@ -1544,12 +1543,6 @@
 %post %{multisource libcxx_devel} libc++abi-devel -p /sbin/ldconfig
 %postun %{multisource libcxx_devel} libc++abi-devel -p /sbin/ldconfig
 %endif
-
-%if %{with polly}
-%post polly -p /sbin/ldconfig
-%postun polly -p /sbin/ldconfig
-%post polly-devel -p /sbin/ldconfig
-%postun polly-devel -p /sbin/ldconfig
 %endif
 
 %global ua_install() %{_sbindir}/update-alternatives \\\

++++++ clang-21.1.3.src.tar.xz -> clang-21.1.4.src.tar.xz ++++++
/work/SRC/openSUSE:Factory/llvm21/clang-21.1.3.src.tar.xz 
/work/SRC/openSUSE:Factory/.llvm21.new.1980/clang-21.1.4.src.tar.xz differ: 
char 15, line 1

++++++ clang-docs-21.1.3.src.tar.xz -> clang-docs-21.1.4.src.tar.xz ++++++
++++ 8484 lines of diff (skipped)

++++++ clang-tools-extra-21.1.3.src.tar.xz -> 
clang-tools-extra-21.1.4.src.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clang-tools-extra-21.1.3.src/clangd/ClangdLSPServer.cpp 
new/clang-tools-extra-21.1.4.src/clangd/ClangdLSPServer.cpp
--- old/clang-tools-extra-21.1.3.src/clangd/ClangdLSPServer.cpp 2025-10-07 
14:53:22.000000000 +0200
+++ new/clang-tools-extra-21.1.4.src/clangd/ClangdLSPServer.cpp 2025-10-21 
10:14:55.000000000 +0200
@@ -81,7 +81,7 @@
                         const URIForFile &File) {
   CodeAction CA;
   CA.title = R.FixMessage;
-  CA.kind = std::string(CodeAction::REFACTOR_KIND);
+  CA.kind = std::string(CodeAction::QUICKFIX_KIND);
   CA.command.emplace();
   CA.command->title = R.FixMessage;
   CA.command->command = std::string(ApplyRenameCommand);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clang-tools-extra-21.1.3.src/clangd/unittests/ClangdLSPServerTests.cpp 
new/clang-tools-extra-21.1.4.src/clangd/unittests/ClangdLSPServerTests.cpp
--- old/clang-tools-extra-21.1.3.src/clangd/unittests/ClangdLSPServerTests.cpp  
2025-10-07 14:53:22.000000000 +0200
+++ new/clang-tools-extra-21.1.4.src/clangd/unittests/ClangdLSPServerTests.cpp  
2025-10-21 10:14:55.000000000 +0200
@@ -235,7 +235,8 @@
             .takeValue()
             .getAsArray())[0];
 
-  ASSERT_EQ((*RenameCommand.getAsObject())["title"], "change 'foo' to 'Foo'");
+  ASSERT_EQ((*RenameCommand.getAsObject())["title"],
+            "Apply fix: change 'foo' to 'Foo'");
 
   Client.expectServerCall("workspace/applyEdit");
   Client.call("workspace/executeCommand", RenameCommand);

++++++ cmake-21.1.3.src.tar.xz -> cmake-21.1.4.src.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cmake-21.1.3.src/Modules/LLVMVersion.cmake 
new/cmake-21.1.4.src/Modules/LLVMVersion.cmake
--- old/cmake-21.1.3.src/Modules/LLVMVersion.cmake      2025-10-07 
14:53:22.000000000 +0200
+++ new/cmake-21.1.4.src/Modules/LLVMVersion.cmake      2025-10-21 
10:14:55.000000000 +0200
@@ -7,7 +7,7 @@
   set(LLVM_VERSION_MINOR 1)
 endif()
 if(NOT DEFINED LLVM_VERSION_PATCH)
-  set(LLVM_VERSION_PATCH 3)
+  set(LLVM_VERSION_PATCH 4)
 endif()
 if(NOT DEFINED LLVM_VERSION_SUFFIX)
   set(LLVM_VERSION_SUFFIX)

++++++ compiler-rt-21.1.3.src.tar.xz -> compiler-rt-21.1.4.src.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compiler-rt-21.1.3.src/lib/gwp_asan/tests/basic.cpp 
new/compiler-rt-21.1.4.src/lib/gwp_asan/tests/basic.cpp
--- old/compiler-rt-21.1.3.src/lib/gwp_asan/tests/basic.cpp     2025-10-07 
14:53:22.000000000 +0200
+++ new/compiler-rt-21.1.4.src/lib/gwp_asan/tests/basic.cpp     2025-10-21 
10:14:55.000000000 +0200
@@ -65,11 +65,12 @@
 
 // Added multi-page slots? You'll need to expand this test.
 TEST_F(DefaultGuardedPoolAllocator, TooBigForSinglePageSlots) {
-  EXPECT_EQ(nullptr, GPA.allocate(0x1001, 0));
-  EXPECT_EQ(nullptr, GPA.allocate(0x1001, 1));
-  EXPECT_EQ(nullptr, GPA.allocate(0x1001, 0x1000));
-  EXPECT_EQ(nullptr, GPA.allocate(1, 0x2000));
-  EXPECT_EQ(nullptr, GPA.allocate(0, 0x2000));
+  size_t PageSize = sysconf(_SC_PAGESIZE);
+  EXPECT_EQ(nullptr, GPA.allocate(PageSize + 1, 0));
+  EXPECT_EQ(nullptr, GPA.allocate(PageSize + 1, 1));
+  EXPECT_EQ(nullptr, GPA.allocate(PageSize + 1, PageSize));
+  EXPECT_EQ(nullptr, GPA.allocate(1, 2 * PageSize));
+  EXPECT_EQ(nullptr, GPA.allocate(0, 2 * PageSize));
 }
 
 TEST_F(CustomGuardedPoolAllocator, AllocAllSlots) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/compiler-rt-21.1.3.src/lib/gwp_asan/tests/never_allocated.cpp 
new/compiler-rt-21.1.4.src/lib/gwp_asan/tests/never_allocated.cpp
--- old/compiler-rt-21.1.3.src/lib/gwp_asan/tests/never_allocated.cpp   
2025-10-07 14:53:22.000000000 +0200
+++ new/compiler-rt-21.1.4.src/lib/gwp_asan/tests/never_allocated.cpp   
2025-10-21 10:14:55.000000000 +0200
@@ -13,8 +13,10 @@
 #include "gwp_asan/tests/harness.h"
 
 TEST_P(BacktraceGuardedPoolAllocatorDeathTest, NeverAllocated) {
+  size_t PageSize = sysconf(_SC_PAGESIZE);
+
   SCOPED_TRACE("");
-  void *Ptr = GPA.allocate(0x1000);
+  void *Ptr = GPA.allocate(PageSize);
   GPA.deallocate(Ptr);
 
   std::string DeathNeedle =
@@ -23,7 +25,7 @@
   // Trigger a guard page in a completely different slot that's never 
allocated.
   // Previously, there was a bug that this would result in nullptr-dereference
   // in the posix crash handler.
-  char *volatile NeverAllocatedPtr = static_cast<char *>(Ptr) + 0x3000;
+  char *volatile NeverAllocatedPtr = static_cast<char *>(Ptr) + 3 * PageSize;
   if (!Recoverable) {
     EXPECT_DEATH(*NeverAllocatedPtr = 0, DeathNeedle);
     return;
@@ -37,8 +39,8 @@
   GetOutputBuffer().clear();
   for (size_t i = 0; i < 100; ++i) {
     *NeverAllocatedPtr = 0;
-    *(NeverAllocatedPtr + 0x2000) = 0;
-    *(NeverAllocatedPtr + 0x3000) = 0;
+    *(NeverAllocatedPtr + 2 * PageSize) = 0;
+    *(NeverAllocatedPtr + 3 * PageSize) = 0;
     ASSERT_TRUE(GetOutputBuffer().empty());
   }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/compiler-rt-21.1.3.src/test/asan/TestCases/Linux/release_to_os_test.cpp 
new/compiler-rt-21.1.4.src/test/asan/TestCases/Linux/release_to_os_test.cpp
--- old/compiler-rt-21.1.3.src/test/asan/TestCases/Linux/release_to_os_test.cpp 
2025-10-07 14:53:22.000000000 +0200
+++ new/compiler-rt-21.1.4.src/test/asan/TestCases/Linux/release_to_os_test.cpp 
2025-10-21 10:14:55.000000000 +0200
@@ -6,6 +6,7 @@
 // RUN: %env_asan_opts=allocator_release_to_os_interval_ms=-1 %run %t force 
2>&1 | FileCheck %s --check-prefix=FORCE_RELEASE
 
 // REQUIRES: x86_64-target-arch
+// REQUIRES: page-size-4096
 
 #include <algorithm>
 #include <assert.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/compiler-rt-21.1.3.src/test/cfi/cross-dso/lit.local.cfg.py 
new/compiler-rt-21.1.4.src/test/cfi/cross-dso/lit.local.cfg.py
--- old/compiler-rt-21.1.3.src/test/cfi/cross-dso/lit.local.cfg.py      
2025-10-07 14:53:22.000000000 +0200
+++ new/compiler-rt-21.1.4.src/test/cfi/cross-dso/lit.local.cfg.py      
2025-10-21 10:14:55.000000000 +0200
@@ -12,3 +12,7 @@
 # Android O (API level 26) has support for cross-dso cfi in libdl.so.
 if config.android and "android-26" not in config.available_features:
     config.unsupported = True
+
+# The runtime library only supports 4K pages.
+if "page-size-4096" not in config.available_features:
+    config.unsupported = True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compiler-rt-21.1.3.src/test/dfsan/atomic.cpp 
new/compiler-rt-21.1.4.src/test/dfsan/atomic.cpp
--- old/compiler-rt-21.1.3.src/test/dfsan/atomic.cpp    2025-10-07 
14:53:22.000000000 +0200
+++ new/compiler-rt-21.1.4.src/test/dfsan/atomic.cpp    2025-10-21 
10:14:55.000000000 +0200
@@ -1,9 +1,12 @@
-// RUN: %clangxx_dfsan %s -fno-exceptions -o %t && %run %t
-// RUN: %clangxx_dfsan -DORIGIN_TRACKING -mllvm -dfsan-track-origins=1 %s 
-fno-exceptions -o %t && %run %t
+// RUN: %clangxx_dfsan %s -fno-exceptions -D_GLIBCXX_NO_ASSERTIONS -o %t && 
%run %t
+// RUN: %clangxx_dfsan -DORIGIN_TRACKING -mllvm -dfsan-track-origins=1 %s 
-fno-exceptions -D_GLIBCXX_NO_ASSERTIONS -o %t && %run %t
 //
 // Use -fno-exceptions to turn off exceptions to avoid instrumenting
 // __cxa_begin_catch, std::terminate and __gxx_personality_v0.
 //
+// Use -D_GLIBCXX_NO_ASSERTIONS to avoid depending on
+// std::__glibcxx_assert_fail with gcc >= 15.
+//
 // TODO: Support builtin atomics. For example, 
https://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html
 // DFSan instrumentation pass cannot identify builtin callsites yet.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compiler-rt-21.1.3.src/test/lit.common.cfg.py 
new/compiler-rt-21.1.4.src/test/lit.common.cfg.py
--- old/compiler-rt-21.1.3.src/test/lit.common.cfg.py   2025-10-07 
14:53:22.000000000 +0200
+++ new/compiler-rt-21.1.4.src/test/lit.common.cfg.py   2025-10-21 
10:14:55.000000000 +0200
@@ -965,6 +965,23 @@
 else:
     config.available_features.add("memprof-shadow-scale-3")
 
+
+def target_page_size():
+    try:
+        proc = subprocess.Popen(
+            f"{emulator or ''} python3",
+            shell=True,
+            stdin=subprocess.PIPE,
+            stdout=subprocess.PIPE,
+        )
+        out, err = proc.communicate(b'import os; 
print(os.sysconf("SC_PAGESIZE"))')
+        return int(out)
+    except:
+        return 4096
+
+
+config.available_features.add(f"page-size-{target_page_size()}")
+
 if config.expensive_checks:
     config.available_features.add("expensive_checks")
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compiler-rt-21.1.3.src/test/msan/dtls_test.c 
new/compiler-rt-21.1.4.src/test/msan/dtls_test.c
--- old/compiler-rt-21.1.3.src/test/msan/dtls_test.c    2025-10-07 
14:53:22.000000000 +0200
+++ new/compiler-rt-21.1.4.src/test/msan/dtls_test.c    2025-10-21 
10:14:55.000000000 +0200
@@ -11,6 +11,7 @@
 
    // Reports use-of-uninitialized-value, not analyzed
    XFAIL: target={{.*netbsd.*}}
+   UNSUPPORTED: aarch64-target-arch
 
 */
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/compiler-rt-21.1.3.src/test/sanitizer_common/TestCases/Linux/odd_stack_size.cpp
 
new/compiler-rt-21.1.4.src/test/sanitizer_common/TestCases/Linux/odd_stack_size.cpp
--- 
old/compiler-rt-21.1.3.src/test/sanitizer_common/TestCases/Linux/odd_stack_size.cpp
 2025-10-07 14:53:22.000000000 +0200
+++ 
new/compiler-rt-21.1.4.src/test/sanitizer_common/TestCases/Linux/odd_stack_size.cpp
 2025-10-21 10:14:55.000000000 +0200
@@ -1,4 +1,5 @@
 // RUN: %clangxx -O1 %s -o %t && %run %t
+// REQUIRES: page-size-4096
 // UNSUPPORTED: android
 
 // Fail on powerpc64 bots with:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/compiler-rt-21.1.3.src/test/sanitizer_common/TestCases/Linux/release_to_os_test.cpp
 
new/compiler-rt-21.1.4.src/test/sanitizer_common/TestCases/Linux/release_to_os_test.cpp
--- 
old/compiler-rt-21.1.3.src/test/sanitizer_common/TestCases/Linux/release_to_os_test.cpp
     2025-10-07 14:53:22.000000000 +0200
+++ 
new/compiler-rt-21.1.4.src/test/sanitizer_common/TestCases/Linux/release_to_os_test.cpp
     2025-10-21 10:14:55.000000000 +0200
@@ -11,6 +11,9 @@
 // FIXME: This mode uses 32bit allocator without purge.
 // UNSUPPORTED: hwasan-aliasing
 
+// Page size is hardcoded below, but test still fails even if not hardcoded.
+// REQUIRES: page-size-4096
+
 #include <algorithm>
 #include <assert.h>
 #include <fcntl.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/compiler-rt-21.1.3.src/test/sanitizer_common/TestCases/Linux/resize_tls_dynamic.cpp
 
new/compiler-rt-21.1.4.src/test/sanitizer_common/TestCases/Linux/resize_tls_dynamic.cpp
--- 
old/compiler-rt-21.1.3.src/test/sanitizer_common/TestCases/Linux/resize_tls_dynamic.cpp
     2025-10-07 14:53:22.000000000 +0200
+++ 
new/compiler-rt-21.1.4.src/test/sanitizer_common/TestCases/Linux/resize_tls_dynamic.cpp
     2025-10-21 10:14:55.000000000 +0200
@@ -11,6 +11,9 @@
 // FIXME: Investigate
 // UNSUPPORTED: target=powerpc64{{.*}}
 
+// Fails because AArch64 uses TLSDESC instead of __tls_get_addr.
+// UNSUPPORTED: aarch64-target-arch
+
 #include <string.h>
 
 #ifndef BUILD_DSO
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/compiler-rt-21.1.3.src/test/sanitizer_common/TestCases/Linux/tls_get_addr.c 
new/compiler-rt-21.1.4.src/test/sanitizer_common/TestCases/Linux/tls_get_addr.c
--- 
old/compiler-rt-21.1.3.src/test/sanitizer_common/TestCases/Linux/tls_get_addr.c 
    2025-10-07 14:53:22.000000000 +0200
+++ 
new/compiler-rt-21.1.4.src/test/sanitizer_common/TestCases/Linux/tls_get_addr.c 
    2025-10-21 10:14:55.000000000 +0200
@@ -13,6 +13,9 @@
 // FIXME: Fails for unknown reasons.
 // UNSUPPORTED: powerpc64le-target-arch
 
+// Fails because AArch64 uses TLSDESC instead of __tls_get_addr.
+// UNSUPPORTED: aarch64-target-arch
+
 #ifndef BUILD_SO
 #  include <assert.h>
 #  include <dlfcn.h>

++++++ libc-21.1.3.src.tar.xz -> libc-21.1.4.src.tar.xz ++++++

++++++ libcxx-21.1.3.src.tar.xz -> libcxx-21.1.4.src.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcxx-21.1.3.src/docs/ReleaseNotes/21.rst 
new/libcxx-21.1.4.src/docs/ReleaseNotes/21.rst
--- old/libcxx-21.1.3.src/docs/ReleaseNotes/21.rst      2025-10-07 
14:53:22.000000000 +0200
+++ new/libcxx-21.1.4.src/docs/ReleaseNotes/21.rst      2025-10-21 
10:14:55.000000000 +0200
@@ -53,6 +53,7 @@
 - P2711R1: Making multi-param constructors of ``views`` ``explicit`` (`Github 
<https://github.com/llvm/llvm-project/issues/105252>`__)
 - P2770R0: Stashing stashing ``iterators`` for proper flattening (`Github 
<https://github.com/llvm/llvm-project/issues/105250>`__)
 - P2655R3: ``common_reference_t`` of ``reference_wrapper`` Should Be a 
Reference Type (`Github <https://github.com/llvm/llvm-project/issues/105260>`__)
+- P3379R0: Constrain ``std::expected`` equality operators (`Github 
<https://github.com/llvm/llvm-project/issues/118135>`__)
 
 Improvements and New Features
 -----------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcxx-21.1.3.src/include/__config 
new/libcxx-21.1.4.src/include/__config
--- old/libcxx-21.1.3.src/include/__config      2025-10-07 14:53:22.000000000 
+0200
+++ new/libcxx-21.1.4.src/include/__config      2025-10-21 10:14:55.000000000 
+0200
@@ -28,7 +28,7 @@
 // _LIBCPP_VERSION represents the version of libc++, which matches the version 
of LLVM.
 // Given a LLVM release LLVM XX.YY.ZZ (e.g. LLVM 17.0.1 == 17.00.01), 
_LIBCPP_VERSION is
 // defined to XXYYZZ.
-#  define _LIBCPP_VERSION 210103
+#  define _LIBCPP_VERSION 210104
 
 #  define _LIBCPP_CONCAT_IMPL(_X, _Y) _X##_Y
 #  define _LIBCPP_CONCAT(_X, _Y) _LIBCPP_CONCAT_IMPL(_X, _Y)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcxx-21.1.3.src/include/__configuration/abi.h 
new/libcxx-21.1.4.src/include/__configuration/abi.h
--- old/libcxx-21.1.3.src/include/__configuration/abi.h 2025-10-07 
14:53:22.000000000 +0200
+++ new/libcxx-21.1.4.src/include/__configuration/abi.h 2025-10-21 
10:14:55.000000000 +0200
@@ -30,8 +30,20 @@
 #elif _LIBCPP_ABI_FORCE_MICROSOFT
 #  define _LIBCPP_ABI_MICROSOFT
 #else
+// Windows uses the Microsoft ABI
 #  if defined(_WIN32) && defined(_MSC_VER)
 #    define _LIBCPP_ABI_MICROSOFT
+
+// 32-bit ARM uses the Itanium ABI with a few differences (array cookies, etc),
+// and so does 64-bit ARM on Apple platforms.
+#  elif defined(__arm__) || (defined(__APPLE__) && defined(__aarch64__))
+#    define _LIBCPP_ABI_ITANIUM_WITH_ARM_DIFFERENCES
+
+// Non-Apple 64-bit ARM uses the vanilla Itanium ABI
+#  elif defined(__aarch64__)
+#    define _LIBCPP_ABI_ITANIUM
+
+// We assume that other architectures also use the vanilla Itanium ABI too
 #  else
 #    define _LIBCPP_ABI_ITANIUM
 #  endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcxx-21.1.3.src/include/__memory/array_cookie.h 
new/libcxx-21.1.4.src/include/__memory/array_cookie.h
--- old/libcxx-21.1.3.src/include/__memory/array_cookie.h       2025-10-07 
14:53:22.000000000 +0200
+++ new/libcxx-21.1.4.src/include/__memory/array_cookie.h       2025-10-21 
10:14:55.000000000 +0200
@@ -13,6 +13,7 @@
 #include <__config>
 #include <__configuration/abi.h>
 #include <__cstddef/size_t.h>
+#include <__memory/addressof.h>
 #include <__type_traits/integral_constant.h>
 #include <__type_traits/is_trivially_destructible.h>
 #include <__type_traits/negation.h>
@@ -26,14 +27,15 @@
 // Trait representing whether a type requires an array cookie at the start of 
its allocation when
 // allocated as `new T[n]` and deallocated as `delete[] array`.
 //
-// Under the Itanium C++ ABI [1], we know that an array cookie is available 
unless `T` is trivially
-// destructible and the call to `operator delete[]` is not a sized operator 
delete. Under ABIs other
-// than the Itanium ABI, we assume there are no array cookies.
+// Under the Itanium C++ ABI [1] and the ARM ABI which derives from it, we 
know that an array cookie is available
+// unless `T` is trivially destructible and the call to `operator delete[]` is 
not a sized operator delete. Under
+// other ABIs, we assume there are no array cookies.
 //
 // [1]: https://itanium-cxx-abi.github.io/cxx-abi/abi.html#array-cookies
-#ifdef _LIBCPP_ABI_ITANIUM
+#if defined(_LIBCPP_ABI_ITANIUM) || 
defined(_LIBCPP_ABI_ITANIUM_WITH_ARM_DIFFERENCES)
 // TODO: Use a builtin instead
-// TODO: We should factor in the choice of the usual deallocation function in 
this determination.
+// TODO: We should factor in the choice of the usual deallocation function in 
this determination:
+//       a cookie may be available in more cases but we ignore those for now.
 template <class _Tp>
 struct __has_array_cookie : _Not<is_trivially_destructible<_Tp> > {};
 #else
@@ -41,13 +43,79 @@
 struct __has_array_cookie : false_type {};
 #endif
 
+struct __itanium_array_cookie {
+  size_t __element_count;
+};
+
+template <class _Tp>
+struct [[__gnu__::__aligned__(_LIBCPP_ALIGNOF(_Tp))]] __arm_array_cookie {
+  size_t __element_size;
+  size_t __element_count;
+};
+
+// Return the element count in the array cookie located before the given 
pointer.
+//
+// In the Itanium ABI [1]
+// ----------------------
+// The element count is stored immediately before the first element of the 
array. If the preferred alignment
+// of array elements (which is different from the ABI alignment) is more than 
that of size_t, additional
+// padding bytes exist before the array cookie. Assuming array elements of 
size and alignment 16 bytes, that
+// gives us the following layout:
+//
+// 
|ooooooooxxxxxxxxaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbccccccccccccccccdddddddddddddddd|
+//  ^^^^^^^^        
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+//     |    ^^^^^^^^                               |
+//     |       |                              array elements
+//  padding    |
+//       element count
+//
+//
+// In the Itanium ABI with ARM differences [2]
+// -------------------------------------------
+// The array cookie is stored at the very start of the allocation and it has 
the following form:
+//
+//    struct array_cookie {
+//      std::size_t element_size; // element_size != 0
+//      std::size_t element_count;
+//    };
+//
+// Assuming elements of size and alignment 32 bytes, this gives us the 
following layout:
+//
+//  
|xxxxxxxxXXXXXXXXooooooooooooooooaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb|
+//   ^^^^^^^^        ^^^^^^^^^^^^^^^^
+//      |    ^^^^^^^^        |       
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+// element size  |        padding                                 |
+//         element count                                     array elements
+//
+// We must be careful to take into account the alignment of the array cookie, 
which may result in padding
+// bytes between the element count and the first element of the array. Note 
that for ARM, the compiler
+// aligns the array cookie using the ABI alignment, not the preferred 
alignment of array elements.
+//
+// [1]: https://itanium-cxx-abi.github.io/cxx-abi/abi.html#array-cookies
+// [2]: 
https://developer.apple.com/documentation/xcode/writing-arm64-code-for-apple-platforms#Handle-C++-differences
 template <class _Tp>
 // Avoid failures when -fsanitize-address-poison-custom-array-cookie is enabled
-_LIBCPP_HIDE_FROM_ABI _LIBCPP_NO_SANITIZE("address") size_t 
__get_array_cookie(_Tp const* __ptr) {
+_LIBCPP_HIDE_FROM_ABI _LIBCPP_NO_SANITIZE("address") size_t 
__get_array_cookie([[__maybe_unused__]] _Tp const* __ptr) {
   static_assert(
       __has_array_cookie<_Tp>::value, "Trying to access the array cookie of a 
type that is not guaranteed to have one");
-  size_t const* __cookie = reinterpret_cast<size_t const*>(__ptr) - 1; // 
TODO: Use a builtin instead
-  return *__cookie;
+
+#if defined(_LIBCPP_ABI_ITANIUM)
+  using _ArrayCookie = __itanium_array_cookie;
+#elif defined(_LIBCPP_ABI_ITANIUM_WITH_ARM_DIFFERENCES)
+  using _ArrayCookie = __arm_array_cookie<_Tp>;
+#else
+  static_assert(false, "The array cookie layout is unknown on this ABI");
+  struct _ArrayCookie { // dummy definition required to make the function parse
+    size_t element_count;
+  };
+#endif
+
+  char const* __array_cookie_start = reinterpret_cast<char const*>(__ptr) - 
sizeof(_ArrayCookie);
+  _ArrayCookie __cookie;
+  // This is necessary to avoid violating strict aliasing. It's valid because 
_ArrayCookie is an
+  // implicit lifetime type.
+  __builtin_memcpy(std::addressof(__cookie), __array_cookie_start, 
sizeof(_ArrayCookie));
+  return __cookie.__element_count;
 }
 
 _LIBCPP_END_NAMESPACE_STD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcxx-21.1.3.src/include/__ranges/join_view.h 
new/libcxx-21.1.4.src/include/__ranges/join_view.h
--- old/libcxx-21.1.3.src/include/__ranges/join_view.h  2025-10-07 
14:53:22.000000000 +0200
+++ new/libcxx-21.1.4.src/include/__ranges/join_view.h  2025-10-21 
10:14:55.000000000 +0200
@@ -410,8 +410,13 @@
 
   static constexpr _LIBCPP_HIDE_FROM_ABI _JoinViewIterator
   __compose(__segment_iterator __seg_iter, __local_iterator __local_iter) {
-    return _JoinViewIterator(
-        std::move(__seg_iter).__get_data(), 
std::move(__seg_iter).__get_iter(), std::move(__local_iter));
+    auto&& __parent = std::move(__seg_iter).__get_data();
+    auto&& __outer  = std::move(__seg_iter).__get_iter();
+    if (__local_iter == ranges::end(*__outer)) {
+      ++__outer;
+      return _JoinViewIterator(*__parent, __outer);
+    }
+    return _JoinViewIterator(__parent, __outer, std::move(__local_iter));
   }
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libcxx-21.1.3.src/test/std/algorithms/alg.nonmodifying/alg.find/ranges.find.pass.cpp
 
new/libcxx-21.1.4.src/test/std/algorithms/alg.nonmodifying/alg.find/ranges.find.pass.cpp
--- 
old/libcxx-21.1.3.src/test/std/algorithms/alg.nonmodifying/alg.find/ranges.find.pass.cpp
    2025-10-07 14:53:22.000000000 +0200
+++ 
new/libcxx-21.1.4.src/test/std/algorithms/alg.nonmodifying/alg.find/ranges.find.pass.cpp
    2025-10-21 10:14:55.000000000 +0200
@@ -272,57 +272,100 @@
   friend bool operator==(const Comparable& lhs, long long rhs) { return 
comparable_data[lhs.index_] == rhs; }
 };
 
-void test_deque() {
-  { // empty deque
-    std::deque<int> data;
-    assert(std::ranges::find(data, 4) == data.end());
-    assert(std::ranges::find(data.begin(), data.end(), 4) == data.end());
-  }
-
-  { // single element - match
-    std::deque<int> data = {4};
-    assert(std::ranges::find(data, 4) == data.begin());
-    assert(std::ranges::find(data.begin(), data.end(), 4) == data.begin());
-  }
-
-  { // single element - no match
-    std::deque<int> data = {3};
-    assert(std::ranges::find(data, 4) == data.end());
-    assert(std::ranges::find(data.begin(), data.end(), 4) == data.end());
-  }
-
-  // many elements
-  for (auto size : {2, 3, 1023, 1024, 1025, 2047, 2048, 2049}) {
-    { // last element match
+void test_segmented_iterator_types() {
+  // Test the optimized find algorithm for types that implement the segment 
iterator trait
+  // deque
+  {
+    { // empty deque
       std::deque<int> data;
-      data.resize(size);
-      std::fill(data.begin(), data.end(), 3);
-      data[size - 1] = 4;
-      assert(std::ranges::find(data, 4) == data.end() - 1);
-      assert(std::ranges::find(data.begin(), data.end(), 4) == data.end() - 1);
+      assert(std::ranges::find(data, 4) == data.end());
+      assert(std::ranges::find(data.begin(), data.end(), 4) == data.end());
     }
 
-    { // second-last element match
-      std::deque<int> data;
-      data.resize(size);
-      std::fill(data.begin(), data.end(), 3);
-      data[size - 2] = 4;
-      assert(std::ranges::find(data, 4) == data.end() - 2);
-      assert(std::ranges::find(data.begin(), data.end(), 4) == data.end() - 2);
+    { // single element - match
+      std::deque<int> data = {4};
+      assert(std::ranges::find(data, 4) == data.begin());
+      assert(std::ranges::find(data.begin(), data.end(), 4) == data.begin());
     }
 
-    { // no match
-      std::deque<int> data;
-      data.resize(size);
-      std::fill(data.begin(), data.end(), 3);
+    { // single element - no match
+      std::deque<int> data = {3};
       assert(std::ranges::find(data, 4) == data.end());
       assert(std::ranges::find(data.begin(), data.end(), 4) == data.end());
     }
+
+    // many elements
+    for (auto size : {2, 3, 1023, 1024, 1025, 2047, 2048, 2049}) {
+      { // last element match
+        std::deque<int> data;
+        data.resize(size);
+        std::fill(data.begin(), data.end(), 3);
+        data[size - 1] = 4;
+        assert(std::ranges::find(data, 4) == data.end() - 1);
+        assert(std::ranges::find(data.begin(), data.end(), 4) == data.end() - 
1);
+      }
+
+      { // second-last element match
+        std::deque<int> data;
+        data.resize(size);
+        std::fill(data.begin(), data.end(), 3);
+        data[size - 2] = 4;
+        assert(std::ranges::find(data, 4) == data.end() - 2);
+        assert(std::ranges::find(data.begin(), data.end(), 4) == data.end() - 
2);
+      }
+
+      { // no match
+        std::deque<int> data;
+        data.resize(size);
+        std::fill(data.begin(), data.end(), 3);
+        assert(std::ranges::find(data, 4) == data.end());
+        assert(std::ranges::find(data.begin(), data.end(), 4) == data.end());
+      }
+    }
+  }
+  // join_view ranges adaptor
+  {
+    { // single element - match
+      int data[1][1] = {{4}};
+      auto joined    = std::views::join(data);
+      assert(std::ranges::find(joined, 4) == std::ranges::begin(joined));
+    }
+    { // single element - no match
+      // (reproducer for https://llvm.org/PR158279, where the iterator would 
never reach the end sentinel)
+      int data[1][1] = {{3}};
+      auto joined    = std::views::join(data);
+      assert(std::ranges::find(joined, 4) == std::ranges::end(joined));
+    }
+    { // several sub-arrays of size 1 - match
+      int data[3][1] = {{0}, {4}, {0}};
+      auto joined    = std::views::join(data);
+      assert(std::ranges::find(joined, 4) == 
std::next(std::ranges::begin(joined)));
+    }
+    { // several sub-arrays of size 2 - match in second element of an array
+      int data[3][2] = {{0, 0}, {0, 4}, {0, 0}};
+      auto joined    = std::views::join(data);
+      assert(std::ranges::find(joined, 4) == 
std::ranges::next(std::ranges::begin(joined), 3));
+    }
+    { // vector of empty vectors
+      std::vector<std::vector<int>> data = {{}, {}};
+      auto joined                        = std::views::join(data);
+      assert(std::ranges::find(joined, 4) == std::ranges::end(joined));
+    }
+    { // vector of variably sized vectors - match
+      std::vector<std::vector<int>> data = {{}, {}, {3, 4}, {}, {}};
+      auto joined                        = std::views::join(data);
+      assert(std::ranges::find(joined, 4) == 
std::ranges::next(std::ranges::begin(joined)));
+    }
+    { // vector of variably sized vectors - no match
+      std::vector<std::vector<int>> data = {{}, {}, {3, 5}, {}, {}};
+      auto joined                        = std::views::join(data);
+      assert(std::ranges::find(joined, 4) == std::ranges::end(joined));
+    }
   }
 }
 
 int main(int, char**) {
-  test_deque();
+  test_segmented_iterator_types();
   test();
   static_assert(test());
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libcxx-21.1.3.src/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.observers/assert.subscript.pass.cpp
 
new/libcxx-21.1.4.src/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.observers/assert.subscript.pass.cpp
--- 
old/libcxx-21.1.3.src/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.observers/assert.subscript.pass.cpp
        2025-10-07 14:53:22.000000000 +0200
+++ 
new/libcxx-21.1.4.src/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.observers/assert.subscript.pass.cpp
        2025-10-21 10:14:55.000000000 +0200
@@ -58,15 +58,18 @@
   {
     {
       std::unique_ptr<WithCookie[]> ptr(new WithCookie[5]);
+      assert(&ptr[1] == ptr.get() + 1); // ensure no assertion
       TEST_LIBCPP_ASSERT_FAILURE(ptr[6], "unique_ptr<T[]>::operator[](index): 
index out of range");
     }
     {
       std::unique_ptr<WithCookie[]> ptr = std::make_unique<WithCookie[]>(5);
+      assert(&ptr[1] == ptr.get() + 1); // ensure no assertion
       TEST_LIBCPP_ASSERT_FAILURE(ptr[6], "unique_ptr<T[]>::operator[](index): 
index out of range");
     }
 #if TEST_STD_VER >= 20
     {
       std::unique_ptr<WithCookie[]> ptr = 
std::make_unique_for_overwrite<WithCookie[]>(5);
+      assert(&ptr[1] == ptr.get() + 1); // ensure no assertion
       TEST_LIBCPP_ASSERT_FAILURE(ptr[6] = WithCookie(), 
"unique_ptr<T[]>::operator[](index): index out of range");
     }
 #endif
@@ -82,11 +85,13 @@
   {
     {
       std::unique_ptr<NoCookie[]> ptr = std::make_unique<NoCookie[]>(5);
+      assert(&ptr[1] == ptr.get() + 1); // ensure no assertion
       TEST_LIBCPP_ASSERT_FAILURE(ptr[6], "unique_ptr<T[]>::operator[](index): 
index out of range");
     }
 #  if TEST_STD_VER >= 20
     {
       std::unique_ptr<NoCookie[]> ptr = 
std::make_unique_for_overwrite<NoCookie[]>(5);
+      assert(&ptr[1] == ptr.get() + 1); // ensure no assertion
       TEST_LIBCPP_ASSERT_FAILURE(ptr[6] = NoCookie(), 
"unique_ptr<T[]>::operator[](index): index out of range");
     }
 #  endif
@@ -101,6 +106,7 @@
     {
       std::unique_ptr<T[]> ptr = std::make_unique<T[]>(5);
       std::unique_ptr<T[]> other(std::move(ptr));
+      assert(&other[1] == other.get() + 1); // ensure no assertion
       TEST_LIBCPP_ASSERT_FAILURE(other[6], 
"unique_ptr<T[]>::operator[](index): index out of range");
     }
 
@@ -109,6 +115,7 @@
       std::unique_ptr<T[]> ptr = std::make_unique<T[]>(5);
       std::unique_ptr<T[]> other;
       other = std::move(ptr);
+      assert(&other[1] == other.get() + 1); // ensure no assertion
       TEST_LIBCPP_ASSERT_FAILURE(other[6], 
"unique_ptr<T[]>::operator[](index): index out of range");
     }
 
@@ -116,6 +123,7 @@
     {
       std::unique_ptr<T[]> ptr = std::make_unique<T[]>(5);
       std::unique_ptr<T[], MyDeleter> other(std::move(ptr));
+      assert(&other[1] == other.get() + 1); // ensure no assertion
       TEST_LIBCPP_ASSERT_FAILURE(other[6], 
"unique_ptr<T[]>::operator[](index): index out of range");
     }
 
@@ -124,6 +132,7 @@
       std::unique_ptr<T[]> ptr = std::make_unique<T[]>(5);
       std::unique_ptr<T[], MyDeleter> other;
       other = std::move(ptr);
+      assert(&other[1] == other.get() + 1); // ensure no assertion
       TEST_LIBCPP_ASSERT_FAILURE(other[6], 
"unique_ptr<T[]>::operator[](index): index out of range");
     }
   });
@@ -144,6 +153,34 @@
   char padding[Size];
 };
 
+template <std::size_t Size>
+struct alignas(128) OveralignedNoCookie {
+  char padding[Size];
+};
+
+template <std::size_t Size>
+struct alignas(128) OveralignedWithCookie {
+  OveralignedWithCookie() = default;
+  OveralignedWithCookie(OveralignedWithCookie const&) {}
+  OveralignedWithCookie& operator=(OveralignedWithCookie const&) { return 
*this; }
+  ~OveralignedWithCookie() {}
+  char padding[Size];
+};
+
+// These types have a different ABI alignment (alignof) and preferred 
alignment (__alignof) on some platforms.
+// Make sure things work with these types because array cookies can be 
sensitive to preferred alignment on some
+// platforms.
+struct WithCookiePreferredAlignment {
+  WithCookiePreferredAlignment() = default;
+  WithCookiePreferredAlignment(WithCookiePreferredAlignment const&) {}
+  WithCookiePreferredAlignment& operator=(WithCookiePreferredAlignment const&) 
{ return *this; }
+  ~WithCookiePreferredAlignment() {}
+  long double data;
+};
+struct NoCookiePreferredAlignment {
+  long double data;
+};
+
 int main(int, char**) {
   test<WithCookie<1>, NoCookie<1>>();
   test<WithCookie<2>, NoCookie<2>>();
@@ -153,7 +190,18 @@
   test<WithCookie<16>, NoCookie<16>>();
   test<WithCookie<32>, NoCookie<32>>();
   test<WithCookie<256>, NoCookie<256>>();
+
+  test<OveralignedWithCookie<1>, OveralignedNoCookie<1>>();
+  test<OveralignedWithCookie<2>, OveralignedNoCookie<2>>();
+  test<OveralignedWithCookie<3>, OveralignedNoCookie<3>>();
+  test<OveralignedWithCookie<4>, OveralignedNoCookie<4>>();
+  test<OveralignedWithCookie<8>, OveralignedNoCookie<8>>();
+  test<OveralignedWithCookie<16>, OveralignedNoCookie<16>>();
+  test<OveralignedWithCookie<32>, OveralignedNoCookie<32>>();
+  test<OveralignedWithCookie<256>, OveralignedNoCookie<256>>();
+
   test<std::string, int>();
+  test<WithCookiePreferredAlignment, NoCookiePreferredAlignment>();
 
   return 0;
 }

++++++ libcxxabi-21.1.3.src.tar.xz -> libcxxabi-21.1.4.src.tar.xz ++++++

++++++ lld-21.1.3.src.tar.xz -> lld-21.1.4.src.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lld-21.1.3.src/COFF/DLL.cpp 
new/lld-21.1.4.src/COFF/DLL.cpp
--- old/lld-21.1.3.src/COFF/DLL.cpp     2025-10-07 14:53:22.000000000 +0200
+++ new/lld-21.1.4.src/COFF/DLL.cpp     2025-10-21 10:14:55.000000000 +0200
@@ -320,30 +320,34 @@
 };
 
 static const uint8_t tailMergeARM64[] = {
-    0xfd, 0x7b, 0xb3, 0xa9, // stp     x29, x30, [sp, #-208]!
+    0xfd, 0x7b, 0xb2, 0xa9, // stp     x29, x30, [sp, #-224]!
     0xfd, 0x03, 0x00, 0x91, // mov     x29, sp
     0xe0, 0x07, 0x01, 0xa9, // stp     x0, x1, [sp, #16]
     0xe2, 0x0f, 0x02, 0xa9, // stp     x2, x3, [sp, #32]
     0xe4, 0x17, 0x03, 0xa9, // stp     x4, x5, [sp, #48]
     0xe6, 0x1f, 0x04, 0xa9, // stp     x6, x7, [sp, #64]
-    0xe0, 0x87, 0x02, 0xad, // stp     q0, q1, [sp, #80]
-    0xe2, 0x8f, 0x03, 0xad, // stp     q2, q3, [sp, #112]
-    0xe4, 0x97, 0x04, 0xad, // stp     q4, q5, [sp, #144]
-    0xe6, 0x9f, 0x05, 0xad, // stp     q6, q7, [sp, #176]
+    0xe8, 0x2b, 0x00, 0xf9, // str     x8,     [sp, #80]
+    0xe0, 0x07, 0x03, 0xad, // stp     q0, q1, [sp, #96]
+    0xe2, 0x0f, 0x04, 0xad, // stp     q2, q3, [sp, #128]
+    0xe4, 0x17, 0x05, 0xad, // stp     q4, q5, [sp, #160]
+    0xe6, 0x1f, 0x06, 0xad, // stp     q6, q7, [sp, #192]
     0xe1, 0x03, 0x11, 0xaa, // mov     x1, x17
     0x00, 0x00, 0x00, 0x90, // adrp    x0, #0     DELAY_IMPORT_DESCRIPTOR
     0x00, 0x00, 0x00, 0x91, // add     x0, x0, #0 :lo12:DELAY_IMPORT_DESCRIPTOR
-    0x00, 0x00, 0x00, 0x94, // bl      #0 __delayLoadHelper2
+    0x02, 0x00, 0x00, 0x90, // adrp    x2, #0     __delayLoadHelper2
+    0x42, 0x00, 0x00, 0x91, // add     x2, x2, #0 :lo12:__delayLoadHelper2
+    0x40, 0x00, 0x3f, 0xd6, // blr     x2
     0xf0, 0x03, 0x00, 0xaa, // mov     x16, x0
-    0xe6, 0x9f, 0x45, 0xad, // ldp     q6, q7, [sp, #176]
-    0xe4, 0x97, 0x44, 0xad, // ldp     q4, q5, [sp, #144]
-    0xe2, 0x8f, 0x43, 0xad, // ldp     q2, q3, [sp, #112]
-    0xe0, 0x87, 0x42, 0xad, // ldp     q0, q1, [sp, #80]
+    0xe6, 0x1f, 0x46, 0xad, // ldp     q6, q7, [sp, #192]
+    0xe4, 0x17, 0x45, 0xad, // ldp     q4, q5, [sp, #160]
+    0xe2, 0x0f, 0x44, 0xad, // ldp     q2, q3, [sp, #128]
+    0xe0, 0x07, 0x43, 0xad, // ldp     q0, q1, [sp, #96]
+    0xe8, 0x2b, 0x40, 0xf9, // ldr     x8,     [sp, #80]
     0xe6, 0x1f, 0x44, 0xa9, // ldp     x6, x7, [sp, #64]
     0xe4, 0x17, 0x43, 0xa9, // ldp     x4, x5, [sp, #48]
     0xe2, 0x0f, 0x42, 0xa9, // ldp     x2, x3, [sp, #32]
     0xe0, 0x07, 0x41, 0xa9, // ldp     x0, x1, [sp, #16]
-    0xfd, 0x7b, 0xcd, 0xa8, // ldp     x29, x30, [sp], #208
+    0xfd, 0x7b, 0xce, 0xa8, // ldp     x29, x30, [sp], #224
     0x00, 0x02, 0x1f, 0xd6, // br      x16
 };
 
@@ -554,10 +558,12 @@
 
   void writeTo(uint8_t *buf) const override {
     memcpy(buf, tailMergeARM64, sizeof(tailMergeARM64));
-    applyArm64Addr(buf + 44, desc->getRVA(), rva + 44, 12);
-    applyArm64Imm(buf + 48, desc->getRVA() & 0xfff, 0);
-    if (helper)
-      applyArm64Branch26(buf + 52, helper->getRVA() - rva - 52);
+    applyArm64Addr(buf + 48, desc->getRVA(), rva + 48, 12);
+    applyArm64Imm(buf + 52, desc->getRVA() & 0xfff, 0);
+    if (helper) {
+      applyArm64Addr(buf + 56, helper->getRVA(), rva + 56, 12);
+      applyArm64Imm(buf + 60, helper->getRVA() & 0xfff, 0);
+    }
   }
 
   Chunk *desc = nullptr;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lld-21.1.3.src/test/COFF/arm64-delayimport.yaml 
new/lld-21.1.4.src/test/COFF/arm64-delayimport.yaml
--- old/lld-21.1.3.src/test/COFF/arm64-delayimport.yaml 2025-10-07 
14:53:22.000000000 +0200
+++ new/lld-21.1.4.src/test/COFF/arm64-delayimport.yaml 2025-10-21 
10:14:55.000000000 +0200
@@ -8,31 +8,35 @@
 # DISASM:  140001014:      d0000011        adrp    x17, 0x140003000
 # DISASM:  140001018:      91002231        add     x17, x17, #8
 # DISASM:  14000101c:      14000001        b       0x140001020 <.text+0x20>
-# DISASM:  140001020:      a9b37bfd        stp     x29, x30, [sp, #-208]!
+# DISASM:  140001020:      a9b27bfd        stp     x29, x30, [sp, #-224]!
 # DISASM:  140001024:      910003fd        mov     x29, sp
 # DISASM:  140001028:      a90107e0        stp     x0, x1, [sp, #16]
 # DISASM:  14000102c:      a9020fe2        stp     x2, x3, [sp, #32]
 # DISASM:  140001030:      a90317e4        stp     x4, x5, [sp, #48]
 # DISASM:  140001034:      a9041fe6        stp     x6, x7, [sp, #64]
-# DISASM:  140001038:      ad0287e0        stp     q0, q1, [sp, #80]
-# DISASM:  14000103c:      ad038fe2        stp     q2, q3, [sp, #112]
-# DISASM:  140001040:      ad0497e4        stp     q4, q5, [sp, #144]
-# DISASM:  140001044:      ad059fe6        stp     q6, q7, [sp, #176]
-# DISASM:  140001048:      aa1103e1        mov     x1, x17
-# DISASM:  14000104c:      b0000000        adrp    x0, 0x140002000
-# DISASM:  140001050:      91000000        add     x0, x0, #0
-# DISASM:  140001054:      97ffffeb        bl      0x140001000 <.text>
-# DISASM:  140001058:      aa0003f0        mov     x16, x0
-# DISASM:  14000105c:      ad459fe6        ldp     q6, q7, [sp, #176]
-# DISASM:  140001060:      ad4497e4        ldp     q4, q5, [sp, #144]
-# DISASM:  140001064:      ad438fe2        ldp     q2, q3, [sp, #112]
-# DISASM:  140001068:      ad4287e0        ldp     q0, q1, [sp, #80]
-# DISASM:  14000106c:      a9441fe6        ldp     x6, x7, [sp, #64]
-# DISASM:  140001070:      a94317e4        ldp     x4, x5, [sp, #48]
-# DISASM:  140001074:      a9420fe2        ldp     x2, x3, [sp, #32]
-# DISASM:  140001078:      a94107e0        ldp     x0, x1, [sp, #16]
-# DISASM:  14000107c:      a8cd7bfd        ldp     x29, x30, [sp], #208
-# DISASM:  140001080:      d61f0200        br      x16
+# DISASM:  140001038:      f9002be8        str     x8,     [sp, #80]
+# DISASM:  14000103c:      ad0307e0        stp     q0, q1, [sp, #96]
+# DISASM:  140001040:      ad040fe2        stp     q2, q3, [sp, #128]
+# DISASM:  140001044:      ad0517e4        stp     q4, q5, [sp, #160]
+# DISASM:  140001048:      ad061fe6        stp     q6, q7, [sp, #192]
+# DISASM:  14000104c:      aa1103e1        mov     x1, x17
+# DISASM:  140001050:      b0000000        adrp    x0, 0x140002000
+# DISASM:  140001054:      91000000        add     x0, x0, #0
+# DISASM:  140001058:      90000002        adrp    x2, 0x140001000 <.text>
+# DISASM:  14000105c:      91000042        add     x2, x2, #0
+# DISASM:  140001060:      d63f0040        blr     x2
+# DISASM:  140001064:      aa0003f0        mov     x16, x0
+# DISASM:  140001068:      ad461fe6        ldp     q6, q7, [sp, #192]
+# DISASM:  14000106c:      ad4517e4        ldp     q4, q5, [sp, #160]
+# DISASM:  140001070:      ad440fe2        ldp     q2, q3, [sp, #128]
+# DISASM:  140001074:      ad4307e0        ldp     q0, q1, [sp, #96]
+# DISASM:  140001078:      f9402be8        ldr     x8,     [sp, #80]
+# DISASM:  14000107c:      a9441fe6        ldp     x6, x7, [sp, #64]
+# DISASM:  140001080:      a94317e4        ldp     x4, x5, [sp, #48]
+# DISASM:  140001084:      a9420fe2        ldp     x2, x3, [sp, #32]
+# DISASM:  140001088:      a94107e0        ldp     x0, x1, [sp, #16]
+# DISASM:  14000108c:      a8ce7bfd        ldp     x29, x30, [sp], #224
+# DISASM:  140001090:      d61f0200        br      x16
 
 # IMPORTS: Format: COFF-ARM64
 # IMPORTS: Arch: aarch64
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lld-21.1.3.src/test/COFF/arm64x-delayimport.test 
new/lld-21.1.4.src/test/COFF/arm64x-delayimport.test
--- old/lld-21.1.3.src/test/COFF/arm64x-delayimport.test        2025-10-07 
14:53:22.000000000 +0200
+++ new/lld-21.1.4.src/test/COFF/arm64x-delayimport.test        2025-10-21 
10:14:55.000000000 +0200
@@ -61,31 +61,35 @@
 DISASM-NEXT: 180001014: b0000031     adrp    x17, 0x180006000
 DISASM-NEXT: 180001018: 91022231     add     x17, x17, #0x88
 DISASM-NEXT: 18000101c: 14000001     b       0x180001020 <.text+0x20>
-DISASM-NEXT: 180001020: a9b37bfd     stp     x29, x30, [sp, #-0xd0]!
+DISASM-NEXT: 180001020: a9b27bfd     stp     x29, x30, [sp, #-0xe0]!
 DISASM-NEXT: 180001024: 910003fd     mov     x29, sp
 DISASM-NEXT: 180001028: a90107e0     stp     x0, x1, [sp, #0x10]
 DISASM-NEXT: 18000102c: a9020fe2     stp     x2, x3, [sp, #0x20]
 DISASM-NEXT: 180001030: a90317e4     stp     x4, x5, [sp, #0x30]
 DISASM-NEXT: 180001034: a9041fe6     stp     x6, x7, [sp, #0x40]
-DISASM-NEXT: 180001038: ad0287e0     stp     q0, q1, [sp, #0x50]
-DISASM-NEXT: 18000103c: ad038fe2     stp     q2, q3, [sp, #0x70]
-DISASM-NEXT: 180001040: ad0497e4     stp     q4, q5, [sp, #0x90]
-DISASM-NEXT: 180001044: ad059fe6     stp     q6, q7, [sp, #0xb0]
-DISASM-NEXT: 180001048: aa1103e1     mov     x1, x17
-DISASM-NEXT: 18000104c: f0000000     adrp    x0, 0x180004000
-DISASM-NEXT: 180001050: 910d2000     add     x0, x0, #0x348
-DISASM-NEXT: 180001054: 97ffffeb     bl      0x180001000 <.text>
-DISASM-NEXT: 180001058: aa0003f0     mov     x16, x0
-DISASM-NEXT: 18000105c: ad459fe6     ldp     q6, q7, [sp, #0xb0]
-DISASM-NEXT: 180001060: ad4497e4     ldp     q4, q5, [sp, #0x90]
-DISASM-NEXT: 180001064: ad438fe2     ldp     q2, q3, [sp, #0x70]
-DISASM-NEXT: 180001068: ad4287e0     ldp     q0, q1, [sp, #0x50]
-DISASM-NEXT: 18000106c: a9441fe6     ldp     x6, x7, [sp, #0x40]
-DISASM-NEXT: 180001070: a94317e4     ldp     x4, x5, [sp, #0x30]
-DISASM-NEXT: 180001074: a9420fe2     ldp     x2, x3, [sp, #0x20]
-DISASM-NEXT: 180001078: a94107e0     ldp     x0, x1, [sp, #0x10]
-DISASM-NEXT: 18000107c: a8cd7bfd     ldp     x29, x30, [sp], #0xd0
-DISASM-NEXT: 180001080: d61f0200     br      x16
+DISASM-NEXT: 180001038: f9002be8     str     x8,     [sp, #0x50]
+DISASM-NEXT: 18000103c: ad0307e0     stp     q0, q1, [sp, #0x60]
+DISASM-NEXT: 180001040: ad040fe2     stp     q2, q3, [sp, #0x80]
+DISASM-NEXT: 180001044: ad0517e4     stp     q4, q5, [sp, #0xa0]
+DISASM-NEXT: 180001048: ad061fe6     stp     q6, q7, [sp, #0xc0]
+DISASM-NEXT: 18000104c: aa1103e1     mov     x1, x17
+DISASM-NEXT: 180001050: f0000000     adrp    x0, 0x180004000
+DISASM-NEXT: 180001054: 910d2000     add     x0, x0, #0x348
+DISASM-NEXT: 180001058: 90000002     adrp    x2, 0x180001000 <.text>
+DISASM-NEXT: 18000105c: 91000042     add     x2, x2, #0x0
+DISASM-NEXT: 180001060: d63f0040     blr     x2
+DISASM-NEXT: 180001064: aa0003f0     mov     x16, x0
+DISASM-NEXT: 180001068: ad461fe6     ldp     q6, q7, [sp, #0xc0]
+DISASM-NEXT: 18000106c: ad4517e4     ldp     q4, q5, [sp, #0xa0]
+DISASM-NEXT: 180001070: ad440fe2     ldp     q2, q3, [sp, #0x80]
+DISASM-NEXT: 180001074: ad4307e0     ldp     q0, q1, [sp, #0x60]
+DISASM-NEXT: 180001078: f9402be8     ldr     x8,     [sp, #0x50]
+DISASM-NEXT: 18000107c: a9441fe6     ldp     x6, x7, [sp, #0x40]
+DISASM-NEXT: 180001080: a94317e4     ldp     x4, x5, [sp, #0x30]
+DISASM-NEXT: 180001084: a9420fe2     ldp     x2, x3, [sp, #0x20]
+DISASM-NEXT: 180001088: a94107e0     ldp     x0, x1, [sp, #0x10]
+DISASM-NEXT: 18000108c: a8ce7bfd     ldp     x29, x30, [sp], #0xe0
+DISASM-NEXT: 180001090: d61f0200     br      x16
 DISASM-NEXT:                 ...
 DISASM-NEXT: 180002000: 52800040     mov     w0, #0x2                // =2
 DISASM-NEXT: 180002004: d65f03c0     ret
@@ -184,31 +188,35 @@
 NATIVE-DISASM-NEXT: 180001014: 90000031     adrp    x17, 0x180005000
 NATIVE-DISASM-NEXT: 180001018: 91022231     add     x17, x17, #0x88
 NATIVE-DISASM-NEXT: 18000101c: 14000001     b       0x180001020 <.text+0x20>
-NATIVE-DISASM-NEXT: 180001020: a9b37bfd     stp     x29, x30, [sp, #-0xd0]!
+NATIVE-DISASM-NEXT: 180001020: a9b27bfd     stp     x29, x30, [sp, #-0xe0]!
 NATIVE-DISASM-NEXT: 180001024: 910003fd     mov     x29, sp
 NATIVE-DISASM-NEXT: 180001028: a90107e0     stp     x0, x1, [sp, #0x10]
 NATIVE-DISASM-NEXT: 18000102c: a9020fe2     stp     x2, x3, [sp, #0x20]
 NATIVE-DISASM-NEXT: 180001030: a90317e4     stp     x4, x5, [sp, #0x30]
 NATIVE-DISASM-NEXT: 180001034: a9041fe6     stp     x6, x7, [sp, #0x40]
-NATIVE-DISASM-NEXT: 180001038: ad0287e0     stp     q0, q1, [sp, #0x50]
-NATIVE-DISASM-NEXT: 18000103c: ad038fe2     stp     q2, q3, [sp, #0x70]
-NATIVE-DISASM-NEXT: 180001040: ad0497e4     stp     q4, q5, [sp, #0x90]
-NATIVE-DISASM-NEXT: 180001044: ad059fe6     stp     q6, q7, [sp, #0xb0]
-NATIVE-DISASM-NEXT: 180001048: aa1103e1     mov     x1, x17
-NATIVE-DISASM-NEXT: 18000104c: d0000000     adrp    x0, 0x180003000
-NATIVE-DISASM-NEXT: 180001050: 910cc000     add     x0, x0, #0x330
-NATIVE-DISASM-NEXT: 180001054: 97ffffeb     bl      0x180001000 <.text>
-NATIVE-DISASM-NEXT: 180001058: aa0003f0     mov     x16, x0
-NATIVE-DISASM-NEXT: 18000105c: ad459fe6     ldp     q6, q7, [sp, #0xb0]
-NATIVE-DISASM-NEXT: 180001060: ad4497e4     ldp     q4, q5, [sp, #0x90]
-NATIVE-DISASM-NEXT: 180001064: ad438fe2     ldp     q2, q3, [sp, #0x70]
-NATIVE-DISASM-NEXT: 180001068: ad4287e0     ldp     q0, q1, [sp, #0x50]
-NATIVE-DISASM-NEXT: 18000106c: a9441fe6     ldp     x6, x7, [sp, #0x40]
-NATIVE-DISASM-NEXT: 180001070: a94317e4     ldp     x4, x5, [sp, #0x30]
-NATIVE-DISASM-NEXT: 180001074: a9420fe2     ldp     x2, x3, [sp, #0x20]
-NATIVE-DISASM-NEXT: 180001078: a94107e0     ldp     x0, x1, [sp, #0x10]
-NATIVE-DISASM-NEXT: 18000107c: a8cd7bfd     ldp     x29, x30, [sp], #0xd0
-NATIVE-DISASM-NEXT: 180001080: d61f0200     br      x16
+NATIVE-DISASM-NEXT: 180001038: f9002be8     str     x8,     [sp, #0x50]
+NATIVE-DISASM-NEXT: 18000103c: ad0307e0     stp     q0, q1, [sp, #0x60]
+NATIVE-DISASM-NEXT: 180001040: ad040fe2     stp     q2, q3, [sp, #0x80]
+NATIVE-DISASM-NEXT: 180001044: ad0517e4     stp     q4, q5, [sp, #0xa0]
+NATIVE-DISASM-NEXT: 180001048: ad061fe6     stp     q6, q7, [sp, #0xc0]
+NATIVE-DISASM-NEXT: 18000104c: aa1103e1     mov     x1, x17
+NATIVE-DISASM-NEXT: 180001050: d0000000     adrp    x0, 0x180003000
+NATIVE-DISASM-NEXT: 180001054: 910cc000     add     x0, x0, #0x330
+NATIVE-DISASM-NEXT: 180001058: 90000002     adrp    x2, 0x180001000 <.text>
+NATIVE-DISASM-NEXT: 18000105c: 91000042     add     x2, x2, #0x0
+NATIVE-DISASM-NEXT: 180001060: d63f0040     blr     x2
+NATIVE-DISASM-NEXT: 180001064: aa0003f0     mov     x16, x0
+NATIVE-DISASM-NEXT: 180001068: ad461fe6     ldp     q6, q7, [sp, #0xc0]
+NATIVE-DISASM-NEXT: 18000106c: ad4517e4     ldp     q4, q5, [sp, #0xa0]
+NATIVE-DISASM-NEXT: 180001070: ad440fe2     ldp     q2, q3, [sp, #0x80]
+NATIVE-DISASM-NEXT: 180001074: ad4307e0     ldp     q0, q1, [sp, #0x60]
+NATIVE-DISASM-NEXT: 180001078: f9402be8     ldr     x8,     [sp, #0x50]
+NATIVE-DISASM-NEXT: 18000107c: a9441fe6     ldp     x6, x7, [sp, #0x40]
+NATIVE-DISASM-NEXT: 180001080: a94317e4     ldp     x4, x5, [sp, #0x30]
+NATIVE-DISASM-NEXT: 180001084: a9420fe2     ldp     x2, x3, [sp, #0x20]
+NATIVE-DISASM-NEXT: 180001088: a94107e0     ldp     x0, x1, [sp, #0x10]
+NATIVE-DISASM-NEXT: 18000108c: a8ce7bfd     ldp     x29, x30, [sp], #0xe0
+NATIVE-DISASM-NEXT: 180001090: d61f0200     br      x16
 
 RUN: llvm-readobj --coff-load-config out-native.dll | FileCheck 
--check-prefix=NATIVE-LOADCFG %s
 NATIVE-LOADCFG:      AuxiliaryDelayloadIAT: 0x4000

++++++ lldb-21.1.3.src.tar.xz -> lldb-21.1.4.src.tar.xz ++++++
/work/SRC/openSUSE:Factory/llvm21/lldb-21.1.3.src.tar.xz 
/work/SRC/openSUSE:Factory/.llvm21.new.1980/lldb-21.1.4.src.tar.xz differ: char 
15, line 1

++++++ llvm-21.1.3.src.tar.xz -> llvm-21.1.4.src.tar.xz ++++++
/work/SRC/openSUSE:Factory/llvm21/llvm-21.1.3.src.tar.xz 
/work/SRC/openSUSE:Factory/.llvm21.new.1980/llvm-21.1.4.src.tar.xz differ: char 
15, line 1

++++++ llvm-do-not-install-static-libraries.patch ++++++
--- /var/tmp/diff_new_pack.DNSTIp/_old  2025-10-27 14:40:02.335393727 +0100
+++ /var/tmp/diff_new_pack.DNSTIp/_new  2025-10-27 14:40:02.343394065 +0100
@@ -2,10 +2,10 @@
 want after installation. By not copying them in the first place we reduce the
 disk usage during installation.
 
-Index: clang-21.1.3.src/cmake/modules/AddClang.cmake
+Index: clang-21.1.4.src/cmake/modules/AddClang.cmake
 ===================================================================
---- a/clang-21.1.3.src/cmake/modules/AddClang.cmake
-+++ b/clang-21.1.3.src/cmake/modules/AddClang.cmake
+--- a/clang-21.1.4.src/cmake/modules/AddClang.cmake
++++ b/clang-21.1.4.src/cmake/modules/AddClang.cmake
 @@ -106,12 +106,15 @@ macro(add_clang_library name)
  
        if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ARG_INSTALL_WITH_TOOLCHAIN)
@@ -73,10 +73,10 @@
    endif()
  
    get_subproject_title(subproject_title)
-Index: lld-21.1.3.src/cmake/modules/AddLLD.cmake
+Index: lld-21.1.4.src/cmake/modules/AddLLD.cmake
 ===================================================================
---- a/lld-21.1.3.src/cmake/modules/AddLLD.cmake
-+++ b/lld-21.1.3.src/cmake/modules/AddLLD.cmake
+--- a/lld-21.1.4.src/cmake/modules/AddLLD.cmake
++++ b/lld-21.1.4.src/cmake/modules/AddLLD.cmake
 @@ -14,13 +14,6 @@ macro(add_lld_library name)
  
    if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
@@ -91,10 +91,10 @@
      if (NOT CMAKE_CONFIGURATION_TYPES)
        add_llvm_install_targets(install-${name}
          DEPENDS ${name}
-Index: polly-21.1.3.src/cmake/polly_macros.cmake
+Index: polly-21.1.4.src/cmake/polly_macros.cmake
 ===================================================================
---- a/polly-21.1.3.src/cmake/polly_macros.cmake
-+++ b/polly-21.1.3.src/cmake/polly_macros.cmake
+--- a/polly-21.1.4.src/cmake/polly_macros.cmake
++++ b/polly-21.1.4.src/cmake/polly_macros.cmake
 @@ -43,16 +43,18 @@
      if (LLVM_POLLY_LINK_INTO_TOOLS)
        set(exports EXPORT LLVMExports)
@@ -125,10 +125,10 @@
  endmacro(add_polly_library)
  
  macro(add_polly_loadable_module name)
-Index: polly-21.1.3.src/lib/CMakeLists.txt
+Index: polly-21.1.4.src/lib/CMakeLists.txt
 ===================================================================
---- a/polly-21.1.3.src/lib/CMakeLists.txt
-+++ b/polly-21.1.3.src/lib/CMakeLists.txt
+--- a/polly-21.1.4.src/lib/CMakeLists.txt
++++ b/polly-21.1.4.src/lib/CMakeLists.txt
 @@ -109,7 +109,7 @@ set_target_properties(PollyCore PROPERTI
  # It depends on all library it needs, such that with
  # LLVM_POLLY_LINK_INTO_TOOLS=ON, its dependencies like PollyISL are linked as

++++++ llvm-docs-21.1.3.src.tar.xz -> llvm-docs-21.1.4.src.tar.xz ++++++
/work/SRC/openSUSE:Factory/llvm21/llvm-docs-21.1.3.src.tar.xz 
/work/SRC/openSUSE:Factory/.llvm21.new.1980/llvm-docs-21.1.4.src.tar.xz differ: 
char 15, line 1

++++++ openmp-21.1.3.src.tar.xz -> openmp-21.1.4.src.tar.xz ++++++

++++++ polly-21.1.3.src.tar.xz -> polly-21.1.4.src.tar.xz ++++++
/work/SRC/openSUSE:Factory/llvm21/polly-21.1.3.src.tar.xz 
/work/SRC/openSUSE:Factory/.llvm21.new.1980/polly-21.1.4.src.tar.xz differ: 
char 15, line 1

++++++ runtimes-21.1.3.src.tar.xz -> runtimes-21.1.4.src.tar.xz ++++++

++++++ third-party-21.1.3.src.tar.xz -> third-party-21.1.4.src.tar.xz ++++++

Reply via email to