)]}'
{
  "log": [
    {
      "commit": "954c940167ab42fca2df4bc322057272e165e0a3",
      "tree": "e02f9b317023062394f46b27e0dd33ceb2efecf3",
      "parents": [
        "171eaa9520669fcb482405fcd18f4aecc5f265da"
      ],
      "author": {
        "name": "Minsoo Choo",
        "email": "minsoo@minsoo.io",
        "time": "Sat Oct 24 22:46:07 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Oct 24 19:51:10 2026 -0700"
      },
      "message": "[libunwind] Support extended amd64 segment registers (#229176)\n\nRaise the amd64 DWARF register limit to 59 and add RFLAGS, all six\nsegment selectors, FS.base, and GS.base to the register model. Capture\nthe extended state and restore it when resuming, using sigreturn() on\nFreeBSD to restore selectors and bases together. Pack the state into the\nexisting context buffers without changing their public sizes or the\nWindows XMM offsets.\n\nAdd tests for register access, signal-frame CFI recovery, register\nbounds, and resume behavior.\n\nAssisted-by: GPT\nGitOrigin-RevId: fd4113508a64bb2dff7bbc530b41feaf33a9d08d\n"
    },
    {
      "commit": "171eaa9520669fcb482405fcd18f4aecc5f265da",
      "tree": "e12e2411804d48d8d001eb5fe6fc0f08438813c3",
      "parents": [
        "350b5c9c72b8c2bf89295bf52766c1ce259ad94d"
      ],
      "author": {
        "name": "Minsoo Choo",
        "email": "minsoo@minsoo.io",
        "time": "Sat Oct 24 21:02:50 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Oct 24 18:13:06 2026 -0700"
      },
      "message": "[libunwind] Unwind through AArch64 FreeBSD signal trampolines (#235065)\n\nRetried from https://reviews.llvm.org/D155066.\n\nRecognize signal trampolines using KERN_PROC_SIGTRAMP when unwind\nmetadata is unavailable. Restore the interrupted PC, LR, SP, general\nregisters, and valid floating-point registers.\n\nAdd coverage for unwinding out of an interrupted leaf function on both\nregular and alternate signal stacks.\n\nAssisted-by: GPT\nGitOrigin-RevId: 4d7292e58078f0d6acad8eddc8f7c4b80ae40f74\n"
    },
    {
      "commit": "350b5c9c72b8c2bf89295bf52766c1ce259ad94d",
      "tree": "b7a713132897b71a539ff56777fad4ef19fd3a66",
      "parents": [
        "a2ea5c2ad02a3c4264ad2ab684dafa0a1488a6da"
      ],
      "author": {
        "name": "Zachary Yedidia",
        "email": "zyedidia@gmail.com",
        "time": "Wed Oct 21 19:53:53 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 21 19:56:52 2026 -0700"
      },
      "message": "[LFI][libunwind] Enable x86_64_lfi for compiler-rt and skip reserved registers in libunwind (#232552)\n\nThis enables `x86_64_lfi` as a CMake target in compiler-rt and skips\nLFI\u0027s reserved registers for libunwind\u0027s save/restore sequence.\n\nGitOrigin-RevId: 987ee202905055120a44348af86ca878c4f55722\n"
    },
    {
      "commit": "a2ea5c2ad02a3c4264ad2ab684dafa0a1488a6da",
      "tree": "23326bbf30c3a252fa4905ce6034c0120dd05ee3",
      "parents": [
        "722a759078241585e55a5e2a279173c4ebb3957a"
      ],
      "author": {
        "name": "Shoaib Meenai",
        "email": "smeenai@fb.com",
        "time": "Mon Oct 19 10:18:46 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 19 10:24:17 2026 -0700"
      },
      "message": "[libunwind] Clear the signal frame state after compact unwind steps (#232823)\n\n`_isSignalFrame` was only updated by DWARF steps. After stepping out of a\nsignal frame (always DWARF, since compact unwind can\u0027t encode them; see\n#186458), compact steps left it set, so later return addresses were\ntreated as exact IPs. Besides misreporting `unw_is_signal_frame`, this\nlooks up the wrong function\u0027s unwind info when a return address is the\nstart of the next function (e.g. if there was a noreturn call at the end\nof a function). Clear the state on compact steps.\n\nAssisted-by: Claude Opus 5.5\nGitOrigin-RevId: 9e0927da900d595449ec21474d63e6de2f9db7cc\n"
    },
    {
      "commit": "722a759078241585e55a5e2a279173c4ebb3957a",
      "tree": "567422c2dc1aa494260d007780cec8bd9803d4c1",
      "parents": [
        "7732c6c378b45d20dd7759fd0f322723e3ea6b67"
      ],
      "author": {
        "name": "Alberto",
        "email": "itsnohax@gmail.com",
        "time": "Mon Oct 12 14:12:17 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 12 05:18:38 2026 -0700"
      },
      "message": "[libunwind][MIPS] Add o32 single-float support (#218994)\n\nOn FPUs that only support single precision, such as the PSP\u0027s Allegrex,\nlibunwind fails to assemble for o32 because the save/restore code uses\nsdc1/ldc1. Save and restore all 32 FPRs with swc1/lwc1 instead, keeping\neach register in an 8-byte slot so the context layout is the same for\nevery o32 FPU configuration.\n\nCheck __mips_single_float before __mips_fpr: GCC defines __mips_fpr as\n32 for single-float targets and Clang defines it as 0, but both define\n__mips_single_float.\n\nIn Registers.hpp, treat each FPR as an independent 32-bit value when\n__mips_single_float is set, rather than pairing even/odd registers.\nAdd a compile-only test that checks the size of the o32 context.\n\nGitOrigin-RevId: 69f90dd74332a117fd7988309ea00a1cba2aca3d\n"
    },
    {
      "commit": "7732c6c378b45d20dd7759fd0f322723e3ea6b67",
      "tree": "160abb56587fea386fb5147b77c71a16654d4533",
      "parents": [
        "ba7e5f9211e5e853fed3d64affb577fe4aaee398"
      ],
      "author": {
        "name": "Brad Smith",
        "email": "brad@comstyle.com",
        "time": "Thu Oct 01 19:23:46 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 01 16:27:35 2026 -0700"
      },
      "message": "[compiler-rt][libunwind] Check elf_aux_info return value (#228190)\n\nelf_aux_info() returns an errno value (0 on success) rather than -1\nwith errno set. Check the result and treat a failure as \"no features\nreported\" instead of silently ignoring the error.\n\nIn compiler-rt, hwcap had no initializer, so a failed call left it\nuninitialized. The libunwind users already started from zero, so the\nchange there only makes the error handling explicit.\n\nGitOrigin-RevId: 7710aeb5bc1f7ad54dcc4b2a9826e0c67b60d5db\n"
    },
    {
      "commit": "ba7e5f9211e5e853fed3d64affb577fe4aaee398",
      "tree": "586796c5bfa0f34f4bc0e8432be93a533eb8aa73",
      "parents": [
        "dd6ae988191ac3e83b461d1e474e25fee542d6df"
      ],
      "author": {
        "name": "Joel Dice",
        "email": "joel.dice@akamai.com",
        "time": "Mon Sep 28 16:12:57 2026 -0600"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 28 15:19:02 2026 -0700"
      },
      "message": "fix Wasm exceptions + coop threading + shared libraries (#222747)\n\nPrior to this commit, the combination of Wasm exception handling,\ncooperative multithreading, and shared libraries was broken.\nSpecifically, the code generation in `WasmEHPrepare.cpp` involved\ndirect, cross-library access to `libunwind.so`\u0027s thread-local\n`__wasm_lpad_context` variable. However, the ABI used for cooperative\nmultithreading does not support cross-library access to thread-local\nvariables.\n\nThe solution used here is to add a new `_Unwind_GetWasmLPadContext`\nfunction to `libunwind.so` and use that to get address of the\n`__wasm_lpad_context` for the current thread, both in the code generated\nby `WasmEHPrepare.cpp` and in the `__gxx_wasm_personality_v0` function\ndefined in `cxa_personality.cpp`. I\u0027ve used this strategy\nunconditionally for all targets, regardless of whether cooperative\nmultithreading and/or position-independent are enabled. If desired (e.g.\nfor performance or code complexity reasons), I could make it conditional\non both of those features being enabled and fall back to using\n`__wasm_lpad_context` directly otherwise.\n\nCo-authored-by: Derek Schuff \u003cdschuff@chromium.org\u003e\nGitOrigin-RevId: 64907b6d3201f1755a149d029b3a65c4e0ee663f\n"
    },
    {
      "commit": "dd6ae988191ac3e83b461d1e474e25fee542d6df",
      "tree": "c3f031407d6e1828b31836e5b8ad02a524086c99",
      "parents": [
        "402211c1979b484707137a22b3f558d63ffba2f9"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Thu Sep 24 12:32:53 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 24 09:38:12 2026 -0700"
      },
      "message": "[libc++] Re-apply \"Build GoogleBenchmark directly from Lit\" (#225856)\n\nPreviously, we would build GoogleBenchmark against the just-built\nlibrary, not against the library being tested. When testing historical\nversions of libc++ or other standard libraries, this breaks. So instead\nof building Google Benchmark against the just-built library in CMake, do\nit from Lit as part of the test suite\u0027s configuration.\n\nI\u0027m not a huge fan of using Lit as a poor man\u0027s build system and we\nshould make the CMake test suite self-contained, however this is a step\nin the right direction and it removes a major coupling between the test\nsuite and the regular libc++ build.\n\nThis patch re-applies 1bfe9893f3dc which was reverted in 62ea87e542c3\nbecause it broke the Fuchsia bots. This new version of the patch also\nthreads through the path to the CMake program being used, the CMake\ngenerator and the CMake \"make program\" from the top-level CMake to the\ntest-suite, so that the Google Benchmark build can inherit what the\ntop-level CMake is using.\n\nGitOrigin-RevId: 8ee4426e3dae25d155d102d20f7cd395bd035174\n"
    },
    {
      "commit": "402211c1979b484707137a22b3f558d63ffba2f9",
      "tree": "314405b1cdef631a685e6bb0d867e7575fc5ff98",
      "parents": [
        "1921db846065fecfd05c34b2b6451307b91b417d"
      ],
      "author": {
        "name": "Haowei",
        "email": "haowei@google.com",
        "time": "Wed Sep 23 01:14:51 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 01:24:14 2026 -0700"
      },
      "message": "Revert \"[libc++] Build GoogleBenchmark directly from Lit\" (#225620)\n\nReverts llvm/llvm-project#224192\n\nThe original PR introduce implict dependency on cmake from path. Further\nmore, the cmake invocation from googlebenchmark.py didn\u0027t inherit\nCMAKE_MAKE_PROGRAM and cmake generator flags from the parent LLVM build,\ncausing implicit dependency on make. It causes test failures on systems\nthat do not have these installed or config in their default path.\n\nGitOrigin-RevId: 62ea87e542c3fea716875953b9427896f345f7d1\n"
    },
    {
      "commit": "1921db846065fecfd05c34b2b6451307b91b417d",
      "tree": "20eec74781cc2027a02437c107b1a9e136669c86",
      "parents": [
        "b7f0c3d96270db6231111de57c1eccc0813d44d3"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Tue Sep 22 20:41:07 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 20:49:44 2026 -0700"
      },
      "message": "[libc++] Build GoogleBenchmark directly from Lit (#224192)\n\nPreviously, we would build GoogleBenchmark against the just-built\nlibrary, not against the library being tested. When testing historical\nversions of libc++ or other standard libraries, this breaks. So instead\nof building Google Benchmark against the just-built library in CMake, do\nit from Lit as part of the test suite\u0027s configuration.\n\nI\u0027m not a huge fan of using Lit as a poor man\u0027s build system and we\nshould make the CMake test suite self-contained, however this is a step\nin the right direction and it removes a major coupling between the test\nsuite and the regular libc++ build.\n\nGitOrigin-RevId: 1bfe9893f3dc12f1c0f9546564519f02601b2192\n"
    },
    {
      "commit": "b7f0c3d96270db6231111de57c1eccc0813d44d3",
      "tree": "314405b1cdef631a685e6bb0d867e7575fc5ff98",
      "parents": [
        "e7d6f9cacbd171ef415b685da722aa47345777e9"
      ],
      "author": {
        "name": "Victor Campos",
        "email": "victor.campos@arm.com",
        "time": "Fri Sep 11 13:59:44 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 11 06:07:44 2026 -0700"
      },
      "message": "[libunwind] Mark test as requiring Unix headers (#222679)\n\nTest `libunwind/test/dwarf_expression_stack.pass.cpp` requires a POSIX\nenvironment because it uses `signal.h` and associated functions. Because\nof this, the test fails in baremetal targets.\n\nThis change adjusts the requirements of the test. `has-unix-headers`\ndoes not map exactly to the requirements here, but it seems to be enough\nfor this case.\n\nGitOrigin-RevId: be60b244d1f9fa798c8922e313679035ad9c2ee5\n"
    },
    {
      "commit": "e7d6f9cacbd171ef415b685da722aa47345777e9",
      "tree": "43530742778965ff425e32e4764ad507dd08826d",
      "parents": [
        "8f15dd56a297eb1e7acc734dc6db64a27f0b7586"
      ],
      "author": {
        "name": "Thomas Anderson",
        "email": "thomasanderson@google.com",
        "time": "Thu Sep 03 14:03:34 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 03 14:10:55 2026 -0700"
      },
      "message": "[libunwind] Bound the DWARF expression evaluator operand stack (#220662)\n\n`evaluateExpression` interprets DW_OP_* bytecode against a fixed-size\n`pint_t stack[100]` operand stack without checking whether `sp` stays\nwithin array bounds. Malformed or hostile DWARF expressions (such as\nthose injected via dynamic FDE registration) pushing more than 100\nvalues or underflowing the stack could corrupt the native call stack.\n\nAdd bounds checking on `sp` within `evaluateExpression`:\n- Bound `sp` to `[\u0026stack[1], \u0026stack[98]]` at each iteration in the\nopcode loop, as single-step opcodes push at most 1 value and net-pop at\nmost 1.\n- Add index/depth validation for `DW_OP_pick` and `DW_OP_rot`.\n- Ensure `sp \u003e\u003d \u0026stack[1]` on exit from the evaluator.\n- Abort execution via `_LIBUNWIND_ABORT` when bounds are violated.\n- Add a regression test verifying that an overflowing DWARF expression\naborts safely rather than overflowing the stack.\n\nGitOrigin-RevId: 52e4b75c8dbf1e6c524dd360f705d417c770efec\n"
    },
    {
      "commit": "8f15dd56a297eb1e7acc734dc6db64a27f0b7586",
      "tree": "7e9a9dfedbf3d2cc726072c9d4b968f6e7038ac9",
      "parents": [
        "f06739ac8061b7414ec39c1620a55efab11fa6ba"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Sun Aug 23 08:04:55 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Aug 23 05:14:39 2026 -0700"
      },
      "message": "[libunwind] Make Apple OS version XFAILs robust to patch-level versions (#218125)\n\nWe are seeing some failures since some of the Apple CI runners have been\nupdated to 26.5.2. That was caused by the regular expressions not\nmatching patch level version bumps.\n\nGitOrigin-RevId: 0976d75180f482c1175ea1f204f9bfd56dd163b1\n"
    },
    {
      "commit": "f06739ac8061b7414ec39c1620a55efab11fa6ba",
      "tree": "d153a0dce73902087b2cbe62baa3ca1efb1cbe49",
      "parents": [
        "74a83ec8aebddb488c95e79fe506e346d0537e13"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Wed Aug 12 08:42:37 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 12 05:46:05 2026 -0700"
      },
      "message": "[libc++] Harden the test suite for running against older libc++ versions (#214820)\n\nWhen running against older libc++ versions, the test suite had problems\nwhen sniffing carve-out macros. Since we changed from e.g.\n_LIBCPP_HAS_NO_LOCALIZATION to _LIBCPP_HAS_LOCALIZATION \u003d\u003d 0|1, we would\nmis-detect the absence of _LIBCPP_HAS_NO_LOCALIZATION being defined for\nlocalization being supported.\n\nFix this by explicitly handling checks for older versions. Note that\nthis also simplifies how we deal with the C++03 frozen headers, since in\nmost cases the same handling covers both the frozen headers and older\nversions of the library.\n\nAlso, move the detection of Lit features for carve-outs from ad-hoc\nPython checks to using \u003ctest_macros.h\u003e directly, since that centralizes\nthe logic in a single place. This requires making \"test_macros.h\"\navailable to libunwind tests, which previously didn\u0027t have the proper\ninclude path.\n\nGitOrigin-RevId: 223ccaa185a036d08de1222b270bc2f132ca8ab6\n"
    },
    {
      "commit": "74a83ec8aebddb488c95e79fe506e346d0537e13",
      "tree": "b9d5a930d3a3d908b45e40ca3a91f369a1834e67",
      "parents": [
        "ae787b3380c72ee3c12e84f2fc0abd92119f4538"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Wed Aug 05 05:59:21 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 05 03:00:39 2026 -0700"
      },
      "message": "[runtimes] Remove override of LLVM_ENABLE_PER_TARGET_RUNTIME_DIR on Darwin (#213748)\n\nIt should be possible to produce a per-target include directory even on\nApple platforms. That\u0027s not the way we ship the library by default, but\nthere\u0027s no reason not to allow selecting that configuration.\n\nGitOrigin-RevId: b5c9e1b7bd50ef79fdfa91a7f2292f30889a2fa3\n"
    },
    {
      "commit": "ae787b3380c72ee3c12e84f2fc0abd92119f4538",
      "tree": "6924144f18bd8b4bf731ee279c8c86510e3d3518",
      "parents": [
        "14545205a91c24fee17728f6aadf9b69a66a618b"
      ],
      "author": {
        "name": "Demetrius Kanios",
        "email": "demetrius@kanios.net",
        "time": "Tue Jul 28 20:05:45 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jul 28 20:10:54 2026 -0700"
      },
      "message": "[WebAssembly] Call EH personality function instead of `Unwind_CallPersonality` (#209282)\n\nOn Wasm, it\u0027s not currently possibly to change which `personality` is\nattached to a given IR function. This is primarily because no matter\nwhat `personality` is attached, codegen creates a call to a\n`Unwind_CallPersonality` wrapper hard-coded to call c++abi\u0027s\npersonality.\n\nIn order to allow alternative personalities without introducing bloat at\neach personality call site, this PR adjusts the ABI of the personality\non Wasm. `Unwind_CallPersonality` is moved to `libcxxabi` under the name\n`__gxx_wasm_personality_v0`, with the \"real\" personality code renamed\n`__gxx_personality_imp` and called by `__gxx_wasm_personality_v0` (after\nresetting the landing pad context).\n\nThe signature of EH personalities on Wasm is now `int personality(void*\nexception_object)` (where the int return is `_Unwind_Reason_Code` and\nthe `void*` is `_Unwind_Exception*`), and personalities are expected to\n`__wasm_lpad_context.selector \u003d 0;`.\n\nBased on #175202\n\nGitOrigin-RevId: 1d4e04f7a7c2669dd652861e7dccc22f67ab3355\n"
    },
    {
      "commit": "14545205a91c24fee17728f6aadf9b69a66a618b",
      "tree": "ea8d6f1bb90b5668ba38ecd6c7530bcc2e77fd31",
      "parents": [
        "033bc49c7052f148abc4b301a848f8f421b88647"
      ],
      "author": {
        "name": "Piotr Kubaj",
        "email": "pkubaj@FreeBSD.org",
        "time": "Sat Jul 25 19:11:31 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Jul 25 12:15:45 2026 -0700"
      },
      "message": "[libunwind][PPC64] Fix unw_getcontext corrupting callee-saved VSX registers on LE (#198371)\n\nThis is the first of two independent fixes for libunwind on ppc64le\n(ELFv2 ABI, little-endian), where two separate bugs together cause\nSIGSEGV during backtracing. This commit addresses the VSX register\ncorruption; the TOC-restore fault is handled in a follow-up. Both\nwere discovered while debugging lang/rust build failures with\nRUST_BACKTRACE\u003d1 on FreeBSD/powerpc64le (IBM POWER9).\n\nOn ppc64le, `unw_getcontext` saves each VS register with an in-place\n`xxswapd n, n` followed by `stxvd2x`. The swap is needed because\n`stxvd2x` stores doublewords in the wrong order on LE. However, the\nmacro never applies a second `xxswapd` to restore the register after\nthe store, so all 64 VS registers are permanently corrupted on return\nfrom `unw_getcontext`.\n\nThis affects every callee-saved VSX register: f14-f31 (VSR14-VSR31)\nand VR20-VR31 (VSR52-VSR63). After `_Unwind_Backtrace` returns, any\ncode that uses these registers sees wrong values. In practice this\nmanifests as SIGSEGV inside hashbrown\u0027s `reserve_rehash`: VR20-VR31\nare corrupted before a SIMD comparison loop runs, producing an\nout-of-bounds access.\n\nFix: add a second `xxswapd n, n` after the `stxvd2x` store. Since\n`xxswapd` is its own inverse, the pair is a no-op on the architectural\nregister while still writing the correctly byte-swapped value to memory.\nGitOrigin-RevId: 6b0a46958c56d91e3b2fd5ffecfe163dde1fac3a\n"
    },
    {
      "commit": "033bc49c7052f148abc4b301a848f8f421b88647",
      "tree": "f298d8d2cf74f1460aeafe9a5aae6cf136675ae2",
      "parents": [
        "df6fa8eb116cb72146765ef1c13315c7f02d74b0"
      ],
      "author": {
        "name": "Jon Roelofs",
        "email": "jonathan_roelofs@apple.com",
        "time": "Fri Jul 24 14:17:11 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jul 24 14:20:18 2026 -0700"
      },
      "message": "[libunwind][arm64e] Mach-O Support unwinding PAuth_LR frames (#202772)\n\nUnder PAuth_LR, compact unwind entries marked UNWIND_ARM64_MODE_FRAME_PAUTH_LR are signed with the PC of the pacibsppc at the start of the range. The compiler may emit those entries with UNWIND_IS_NOT_FUNCTION_START when the pacibsppc is not the first instruction in the function; the unwinder must scan backwards past such entries to find the actual function start (and its LSDA pointer).\n\nWhen unwinding a PAuth_LR frame, authenticate and re-sign using setIPPAuthLR(), which calls __builtin_ptrauth_auth_with_pc_and_resign when available, falling back to inline asm (autib171615 + pacib) for compilers that lack the builtin.\n\nTo reduce the size of Compact Unwind entries for shrinkwrapped frames, new offset bits encode the distance in multiples of 4 bytes from the range start to the pacibsppc. The compiler emits paired FRAMELESS/FRAMELESS+PAUTH_LR entries that the linker merges into a single FRAME_PAUTH_LR | (offset/4) \u003c\u003c 12 encoding.\n\nrdar://161907302\u0026169746432\u0026171118419\n\nGitOrigin-RevId: 8e34b2cbb06a14fd9b38625eccf7fdb482ea5ea3\n"
    },
    {
      "commit": "df6fa8eb116cb72146765ef1c13315c7f02d74b0",
      "tree": "ce5f0092ae7556ea58adc69faa6b529b4c0e4777",
      "parents": [
        "28318a7b0742d958a96168d96ecde947d8c646dc"
      ],
      "author": {
        "name": "Jon Roelofs",
        "email": "jonathan_roelofs@apple.com",
        "time": "Thu Jul 23 11:46:36 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jul 23 11:50:49 2026 -0700"
      },
      "message": "[libunwind][AArch64] Support .cfi_set_ra_state (#209950)\n\nThis new CFI directive directly assigns an RA signing state to the RA_SIGN_STATE DWARF pseudo-register for use when unwinding, to indicate whether the value of PC has been used as a diversifier for return address signing. The new directive subsumes and replaces .cfi_negate_ra_state_with_pc, which was found to be unsuitable for descibing some block layouts [1], particularly in hot-cold-split functions.\n\n1: https://github.com/ARM-software/abi-aa/pull/346\nGitOrigin-RevId: 77e879f967294d76376bf7a022092a1d6f3ed583\n"
    },
    {
      "commit": "28318a7b0742d958a96168d96ecde947d8c646dc",
      "tree": "a8adfe1dd10fb8f065741dd294a2953d9cc3cfa0",
      "parents": [
        "8733f70bc36274e3041ca3f9497dae54a9839b91"
      ],
      "author": {
        "name": "Jon Roelofs",
        "email": "jonathan_roelofs@apple.com",
        "time": "Thu Jul 23 06:27:55 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jul 23 06:30:42 2026 -0700"
      },
      "message": "[libunwind] XFAIL the za unwind test on Apple targets older than OS 27.0 (#211379)\n\nWhen linking against the system unwinder on macOS \u003c 27, the test\nfails on platforms that support SME.\n\nGitOrigin-RevId: d1d3891077f6f803a8d2dc000f7a4cd11a66ac3c\n"
    },
    {
      "commit": "8733f70bc36274e3041ca3f9497dae54a9839b91",
      "tree": "45ff3496f4f38f61cdf47cfe32c4d5ec82cba9ac",
      "parents": [
        "1b0653b7d46451f1039539e69cbafbdeaae89692"
      ],
      "author": {
        "name": "Hubert Tong",
        "email": "hubert.reinterpretcast@gmail.com",
        "time": "Wed Jul 22 13:17:47 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jul 22 10:20:27 2026 -0700"
      },
      "message": "[libunwind][test][AIX] Add C API test for unwinding from AIX VAPI (as signal handler) (#209662)\n\nFurther to https://github.com/llvm/llvm-project/pull/209306, test a case\nwhere a signal handler is a Virtual API function triggered synchronously\nwhile the VAPI is not active. Resuming an ancestor context of the signal\nframe should call the VAPI return glue.\n\n---------\n\nAssisted-by: IBM Bob\nGitOrigin-RevId: dbaabbc920fcd60aeed5109c3c6353830e7605c5\n"
    },
    {
      "commit": "1b0653b7d46451f1039539e69cbafbdeaae89692",
      "tree": "a57e4c79c1dfb70beaabfdce81dbbd745cba1267",
      "parents": [
        "6b00bb8e03e566934f2680d9b75530a52b1e3264"
      ],
      "author": {
        "name": "Hubert Tong",
        "email": "hubert.reinterpretcast@gmail.com",
        "time": "Wed Jul 22 13:08:16 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jul 22 10:10:48 2026 -0700"
      },
      "message": "[libunwind][test][AIX] Add C API test for unwinding from AIX VAPI (non-signal-handler case) (#209306)\n\nTest detection, during stepping, of the backchain mutation introduced by\na VAPI call (see https://github.com/llvm/llvm-project/pull/209280).\nFurther, test resumption of contexts using cursors obtained while a VAPI\nis active on the thread.\n\nTesting is done via FileCheck inspection of trace output enabled by\n`LIBUNWIND_PRINT_UNWINDING\u003d1`. When Live Library Update is not enabled,\nsynthetic trace output is generated by the test program itself.\n\n---------\n\nAssisted-by: IBM Bob\nGitOrigin-RevId: 861efe03d96d93cd7e475d15bbc676f6d521f4fd\n"
    },
    {
      "commit": "6b00bb8e03e566934f2680d9b75530a52b1e3264",
      "tree": "ac889c32a14a03073bccab2339eaa0751269f354",
      "parents": [
        "e1375fc75c5ef1879cfa6a333070b62662de01a9"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Wed Jul 22 12:38:40 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jul 22 09:40:31 2026 -0700"
      },
      "message": "[runtimes] LLVM 24 version bumps (#211262)\n\nThis patch bumps the version of libc++abi and libunwind, and libc++ in\nthe documentation.\n\nGitOrigin-RevId: 743f03189fa76a5daf8211f00f98e81f18e6ecfb\n"
    },
    {
      "commit": "e1375fc75c5ef1879cfa6a333070b62662de01a9",
      "tree": "05f176b4c0623d6f4b397ebec376b54ed83a0d96",
      "parents": [
        "10e59ef92b25173ce9c0faea691a345dd2073336"
      ],
      "author": {
        "name": "Xing Xue",
        "email": "xingxue@outlook.com",
        "time": "Wed Jul 22 11:34:21 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jul 22 08:36:49 2026 -0700"
      },
      "message": "[libunwind][AIX] Handle VAPI-based return addresses in stack unwinding for LLU (#209280)\n\nIn AIX\u0027s implementation of LLU (Live Library Update), the caller of a\nVirtual API (VAPI) interface instead calls VAPI glue and the\nimplementation for a VAPI function is entered from the VAPI glue. If a\nVAPI is not already active on the thread, the VAPI calls the\nimplementation of the VAPI function with the link register (LR) value\nset to a return address in the VAPI glue. In this case, the LR (return\naddress) value on entry to the VAPI glue is saved in the VAPI control\nblock. This PR checks whether the return address in a stack frame falls\nwithin the VAPI address range. If it does, the unwinder retrieves the LR\nvalue from the VAPI control block and uses it as the return address\nduring stack unwinding. In addition, before transferring control to a\nlanding pad, this PR executes the VAPI return glue to clear the VAPI\ncontrol block if the VAPI glue was used.\n\n---------\n\nCo-authored-by: Hubert Tong \u003chubert.reinterpretcast@gmail.com\u003e\nGitOrigin-RevId: 8aa808457c6aeba25ec0e17139c3fcab59923c3c\n"
    },
    {
      "commit": "10e59ef92b25173ce9c0faea691a345dd2073336",
      "tree": "603ac2e70215ed4e229fb528e330e0bf4057b7f6",
      "parents": [
        "deb5022da9fc8676a54e67fc91f2a2a3d927401d"
      ],
      "author": {
        "name": "Jon Roelofs",
        "email": "jonathan_roelofs@apple.com",
        "time": "Mon Jul 20 11:17:14 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jul 20 11:21:00 2026 -0700"
      },
      "message": "[libunwind] Fix exposure of UNW_AARCH64_RA_SIGN_STATE through _Unwind_GetGR (#209947)\n\nThe pseudo register was previously hacked in under kRegisterIsUndefined, leaving it in a state that was only accessible from within the unwinder itself.\nTo fix this, allowing external access to the state (and therefore tests!), we invent a new register location kRegisterIsPseudo to record the additional state that the register has been defined by a .cfi_negate_ra_state opcode having been executed.\n\nGitOrigin-RevId: a01ff35d0375d8a2a558c44ef73583da58dfa505\n"
    },
    {
      "commit": "deb5022da9fc8676a54e67fc91f2a2a3d927401d",
      "tree": "aeb989a881e42888e1a04b9d39cc68ae9f3ad582",
      "parents": [
        "754d3a3d406d80c479f65edf2f9225f37a477ac5"
      ],
      "author": {
        "name": "Zachary Yedidia",
        "email": "zyedidia@gmail.com",
        "time": "Mon Jul 20 10:40:40 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jul 20 10:45:25 2026 -0700"
      },
      "message": "[LFI][libunwind] Omit unsuppported stg/za instructions for LFI target (#209392)\n\nUnder the LFI target the SVE `za` are not currently supported, and\nneither is the `stg` instruction. When included in an LFI program they\ncause verification failures due to being unsupported instructions. This\npatch omits them from compilation when targeting LFI.\n\nGitOrigin-RevId: c4026e4350fd4d70692f205aff8764055a8b4ce1\n"
    },
    {
      "commit": "754d3a3d406d80c479f65edf2f9225f37a477ac5",
      "tree": "926b996a9c59ef82d35fef7aff1e53548467c15d",
      "parents": [
        "e6059a71466e1123791c3b1e574b58fde64b3055"
      ],
      "author": {
        "name": "Reid Kleckner",
        "email": "rkleckner@nvidia.com",
        "time": "Fri Jul 17 11:56:59 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jul 17 12:01:03 2026 -0700"
      },
      "message": "[docs] Finish misc MyST migration (#210209)\n\nTracking issue: #201242\nSee the [migration guide] for more information.\n\n[migration guide]:\nhttps://llvm.org/docs/SphinxQuickstartTemplate.html#markdown-migration-guidelines\n\nThis is a stacked PR based on #210208, which is the standalone rename\ncommit for this miscellaneous Markdown migration batch.\n\nThis was prepared with rst2myst plus LLM-assisted cleanup. LLDB man\npages are intentionally left as reStructuredText because LLDB man-page\nbuilding should not take on Markdown parser dependencies.\n\nUnfortunately, many of these miscellaneous docs do not have working\nstandalone doc build targets, so I was not able to render HTML for all\nof them. I think the scope is small enough that this is reviewable by\nhand.\n\nGitOrigin-RevId: 93b1240309309d5c2f8f94527ff7c7bd5df359af\n"
    },
    {
      "commit": "e6059a71466e1123791c3b1e574b58fde64b3055",
      "tree": "833c8e85b4c1619a225e6ef6b1a5b7d8ed2989c2",
      "parents": [
        "8635300deac8d3baf94328ac6dd2044b91e7c532"
      ],
      "author": {
        "name": "Reid Kleckner",
        "email": "rkleckner@nvidia.com",
        "time": "Fri Jul 17 10:48:13 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jul 17 10:50:56 2026 -0700"
      },
      "message": "[docs] Rename misc rst docs to md (#210208)\n\nTracking issue: #201242\nSee the [migration guide] for more information.\n\n[migration guide]:\nhttps://llvm.org/docs/SphinxQuickstartTemplate.html#markdown-migration-guidelines\n\nThis is the initial straight rename commit.\n\nMany of these miscellaneous .rst files are not actually part of a real\ndocs build, since docs/conf.py does not exist for many of them.\n\nGitOrigin-RevId: c42ce32264f94a8800f4250d7b716cca55f77df6\n"
    },
    {
      "commit": "8635300deac8d3baf94328ac6dd2044b91e7c532",
      "tree": "f3b7a2c2c6ca5ae0a14345d947fd1d97c4c5cb6a",
      "parents": [
        "46652918544cff545dfebecf5ee32cbbd9686d11"
      ],
      "author": {
        "name": "Hubert Tong",
        "email": "hubert.reinterpretcast@gmail.com",
        "time": "Tue Jul 14 13:29:57 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jul 14 10:31:59 2026 -0700"
      },
      "message": "[libunwind][test] Add .clang-format (#209364)\n\nBorrow from `libcxx/test/.clang-format` to avoid `clang-format`\nsuggestions that are incompatible with `FileCheck`.\n\nGitOrigin-RevId: 84199dde7198eabc924e93750063a20ceef26ef2\n"
    },
    {
      "commit": "46652918544cff545dfebecf5ee32cbbd9686d11",
      "tree": "c78a08640d5e52112e1471f09eea38c7db16c304",
      "parents": [
        "aaddd93dfa815df41b0b8b197c73e066451fad70"
      ],
      "author": {
        "name": "quic-k",
        "email": "kushpal@qti.qualcomm.com",
        "time": "Mon Jul 13 18:48:51 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jul 13 06:20:56 2026 -0700"
      },
      "message": "[libunwind][Hexagon] Save/restore full r0-r7 in getcontext/jumpto (#208753)\n\nThe Hexagon save and restore routines dropped GPRs, producing an\nincomplete context.\n\nUnwindRegistersSave.S (__unw_getcontext): save r0-r7 (stores began at\n__r[8]), drop a dead \"r1 \u003d memw(r30)\" before the PC store, and return\nUNW_ESUCCESS instead of a stale non-zero value.\n\nUnwindRegistersRestore.S (jumpto): restore the missing r2-r7 (r0/r1 and\nr8-r31 were already handled), and fix the stale \"pointer is in r2\"\ncomment (it is r0).\n\nSigned-off-by: Kushal Pal \u003ckushpal@qti.qualcomm.com\u003e\nGitOrigin-RevId: 7a8b26271b273ea36c1d68c97f4c87b63de4a2bd\n"
    },
    {
      "commit": "aaddd93dfa815df41b0b8b197c73e066451fad70",
      "tree": "e3b04283a4e0f82596dbaaaa99dbe2270e0c3825",
      "parents": [
        "6d25a6a33be179a7d2070f01a6dcc008539d1a21"
      ],
      "author": {
        "name": "Shreeyash Pandey",
        "email": "shrpand@qti.qualcomm.com",
        "time": "Wed Jul 08 12:33:55 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jul 08 00:10:54 2026 -0700"
      },
      "message": "[libunwind] include alloca.h in test/aarch64_za_unwind.pass.cpp (#207376)\n\nGlibc provides the alloca function as a part of stdlib.h when\n_GNU_SOURCE is declared (which is the case with standard linux builds).\n[1]\n\nOn non-glibc systems, this may not be the case (for example, picolibc).\nThese libraries may not implicitly include alloca.h as a part of the\nstandard lib.\n\n[1]\nhttps://github.com/bminor/glibc/blob/04e750e75b73957cf1c791535a3f4319534a52fc/stdlib/stdlib.h#L728\n\nSigned-off-by: Shreeyash Pandey \u003cshrpand@qti.qualcomm.com\u003e\nGitOrigin-RevId: 6eb35326147077a18f6fc56540059d779d7e3d4b\n"
    },
    {
      "commit": "6d25a6a33be179a7d2070f01a6dcc008539d1a21",
      "tree": "f04d8a8da45aaef005781b66ec4a66149b7969b5",
      "parents": [
        "8718671ea347435a47b9a3b54179070cd4ebc1af"
      ],
      "author": {
        "name": "Jon Roelofs",
        "email": "jonathan_roelofs@apple.com",
        "time": "Wed Jul 01 09:11:31 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jul 01 09:14:14 2026 -0700"
      },
      "message": "[libunwind][aarch64] Fix auth on PAuth_LR\u0027d frames (#206814)\n\nThe RA_SIGN_STATE pseudo register is a three-state enum, so it should be\nencoded as one in the unwinder\u0027s representation. This fixes a bug on the\nauthentication path, which assumed \"is signed with PC\" was a subset of\n\"is signed\".\n\nGitOrigin-RevId: 4d87e55d8a41872ef40079866d0527d8a1381c57\n"
    },
    {
      "commit": "8718671ea347435a47b9a3b54179070cd4ebc1af",
      "tree": "1de7cd3894830cf35d9d8c2f3271055292a2a033",
      "parents": [
        "82faf2a7c2b6d3b6c9cedb0cf64d89eb4bcc59d4"
      ],
      "author": {
        "name": "Matt Arsenault",
        "email": "Matthew.Arsenault@amd.com",
        "time": "Wed Jul 01 12:50:29 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jul 01 03:55:25 2026 -0700"
      },
      "message": "[runtimes][NFC] Re-indent shared library blocks (#205523)\n\nRe-indent the shared library target blocks that were wrapped in\nif(\u003cruntime\u003e_SUPPORTS_SHARED_LIBRARY) in the previous commit. This is a\nwhitespace-only change split out from the functional change to keep that\ndiff minimal and reviewable.\n\nCo-authored-by: Claude (Opus 4.8) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: 6a909d68627ff6027777186699ff8fd54ae6e668\n"
    },
    {
      "commit": "82faf2a7c2b6d3b6c9cedb0cf64d89eb4bcc59d4",
      "tree": "6ffde7cb32200e092f8aa7653a714be121b886ec",
      "parents": [
        "30e3b1eb8521d53eb822e55357aa17d40307aa08"
      ],
      "author": {
        "name": "Heejin Ahn",
        "email": "aheejin@gmail.com",
        "time": "Tue Jun 30 16:55:55 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jun 30 17:00:49 2026 -0700"
      },
      "message": "[libunwind] Fix comment about phase (NFC) (#206660)\n\nWe switched to use `_UA_SEARCH_PHASE` in\nhttps://github.com/emscripten-core/emscripten/pull/17991, but the\ncomment above was not fixed, and it was upstreamed that way later.\n\nGitOrigin-RevId: 443d933cef6ef8dc5179ff8ffe9feb133a265920\n"
    },
    {
      "commit": "30e3b1eb8521d53eb822e55357aa17d40307aa08",
      "tree": "4589aa22530e5016d4c745e658b4eaa9d7fff8c4",
      "parents": [
        "917651ea7fa4108b8baf8445a547f925d71e2f0f"
      ],
      "author": {
        "name": "Petr Hosek",
        "email": "phosek@google.com",
        "time": "Mon Jun 29 11:16:27 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 29 11:20:31 2026 -0700"
      },
      "message": "[CMake] Warn when the version of CMake is older than 3.31.0 (#204203)\n\nThis is a preparation to raise the minimum required CMake version to\n3.31.0 in LLVM 24.\n\nSee\nhttps://discourse.llvm.org/t/rfc-raising-minimum-required-cmake-version-to-3-31/91086.\n\nGitOrigin-RevId: e192ec42b426f6ffbc25419238a90f3c59088587\n"
    },
    {
      "commit": "917651ea7fa4108b8baf8445a547f925d71e2f0f",
      "tree": "0c329c34ed749b7511557a60fdfcc09e8e2ebb89",
      "parents": [
        "759f8813c404b6ed33f306e06bc1741adfe54a81"
      ],
      "author": {
        "name": "Matt Arsenault",
        "email": "Matthew.Arsenault@amd.com",
        "time": "Mon Jun 29 17:53:09 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 29 08:55:15 2026 -0700"
      },
      "message": "[runtimes] Don\u0027t create shared library targets when unsupported (#205517)\n\nOn platforms that don\u0027t support shared libraries (e.g. CMAKE_SYSTEM_NAME\nof \"Generic\", used for GPU and other baremetal targets), CMake\u0027s\nPlatform/Generic.cmake sets the global TARGET_SUPPORTS_SHARED_LIBS\nproperty to FALSE. Under CMP0164\u0027s OLD behavior (the default, since the runtimes\nset cmake_minimum_required(3.20)), CMake silently demotes SHARED library\ntargets to STATIC archives. libcxx, libcxxabi and libunwind always create their\nshared target, so after demotion both the shared and static targets emit e.g.\n\"libc++abi.a\" and Ninja fails with \"multiple rules generate ...\".\n\nRather than papering over the collision with a distinct output name,\nskip creating the shared library targets entirely when the platform does not\nsupport them, gating on the TARGET_SUPPORTS_SHARED_LIBS property (left\nundefined on platforms that do support shared libraries). The few consumers of\nthe shared targets are guarded with TARGET checks so they fall back to the static\nlibrary or are skipped.\n\nAlso set policy CMP0164 to NEW so that any future unguarded\nadd_library(... SHARED ...) on an unsupported platform fails at\nconfigure time instead of silently producing a colliding static archive.\n\nSee https://gitlab.kitware.com/cmake/cmake/-/issues/25759.\n\nThe bodies of the newly-conditional blocks are left at their original\nindentation to keep this diff minimal. A follow-up commit will fix the\nindentation. This was mostly AI generated with some comment fixups.\n\nCo-authored-by: Claude (Opus 4.8) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: 885ef9daac3570ddfdd20cc82296eeae5b2c6613\n"
    },
    {
      "commit": "759f8813c404b6ed33f306e06bc1741adfe54a81",
      "tree": "a5302a8fcf14e6c2fa575b22017858a68bb366d8",
      "parents": [
        "60f3c40064b714f0739366564e64bb32aa2c51a7"
      ],
      "author": {
        "name": "Scott Linder",
        "email": "scott.linder@amd.com",
        "time": "Wed Jun 24 15:12:48 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 24 12:16:11 2026 -0700"
      },
      "message": "[docs] Create utils/docs (#203962)\n\nllvm-project is home to many sphinx documentation sites, each with\nconfiguration quirks and bespoke extensions.\n\nThe sphinx config model makes sharing code somewhat difficult. There\nare options like sphinx-multiproject, but some of our docs builds are\nout of the source tree while some are done out of the binary tree, so\nthe multiproject configuration itself would need to be generated. It\nalso would impose more uniformity around extensions than required.\n\nThis change instead creates a python package at utils/docs/llvm_sphinx\nand makes it available to all sphinx-build processes via PYTHONPATH.\nEach conf.py does not modify its own sys.path because not all builds are\nout of the source tree, so there isn\u0027t a stable relative path to use to\nrefer to the utils/docs/ directory.\n\nType checking via pyright in new package is pinned to being python 3.8\ncompatible.\n\nThe myst slug script from llvm/docs is promoted to be the default,\nwith a slight edit to targets needed in FlangDriver.md to adapt to the\nchange.\n\nThe ghlinks extension from clang gets lifted to be the first generic\nextension, although it is still only used in clang currently. I used it\nas an example of a general extension that might be useful for other\nprojects, but I also intend to add a new generic extension in a future\npatch.\n\nAs part of the move ghlinks is refactored a bit:\n\n* Rather than have a main function directly to run its tests, those\n  tests are now run via the command-line entrypoint to the new package,\n  e.g. `python utils/docs --test` will now replace\n  `python clang/docs/ghlinks.py --test`. This makes the command-line\n  more pithy (`python utils/docs/llvm_sphinx/ext/ghlinks --test` is a\n  bit long), and makes the default behavior when running be to\n  include utils/docs in the sys.path, so imports can be absolute and\n  the behavior is as close to the CMake targets as possible.\n* The static files that were previously written to a tempdir during\n  testing are just committed directly in git. The assumption here is\n  that the original version was taking pains to avoid polluting the\n  clang/docs directory with test files that would confuse sphinx-build,\n  and without that limitation the workaround can be removed.\n* Some typing-related changes to make it strictly python 3.8 compatible.\n\nChange-Id: Ie16de273f74973f163dbf7fe9d22d80a466d051f\nGitOrigin-RevId: 42ff45b865b1744e3f37a821bbcbc3d2ece1513c\n"
    },
    {
      "commit": "60f3c40064b714f0739366564e64bb32aa2c51a7",
      "tree": "3bfa70b161ca49031aabfb9c549596139195d0a4",
      "parents": [
        "c2d840789c0fcd15c218b8b7e5378e64a9ebf61a"
      ],
      "author": {
        "name": "Jon Roelofs",
        "email": "jonathan_roelofs@apple.com",
        "time": "Mon Jun 22 13:41:46 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 22 13:45:57 2026 -0700"
      },
      "message": "[libunwind] Fix an uninitialized read of __ra_sign_state (#205152)\n\nThe Arm DWARF spec defines UNW_AARCH64_RA_SIGN_STATE as being zeroed\nuntil the first .cfi_negate_ra_state / .cfi_set_ra_state [1]. The GPRs\nstruct containing __ra_sign_state is memcpy\u0027d directly from the\nunw_context_t, which in turn is initialized by __unw_getcontext. Since\nit is a pseudo register, there is no corresponding state to restore in\n__unw_resume.\n\nhttps://github.com/ARM-software/abi-aa/blob/main/aadwarf64/aadwarf64.rst#44call-frame-instructions\n\nGitOrigin-RevId: e67b31a00e72ebb1b3a782c6bfcad9b51f173521\n"
    },
    {
      "commit": "c2d840789c0fcd15c218b8b7e5378e64a9ebf61a",
      "tree": "17014507a9a1191aabd5f46a8672810b9f6faf7b",
      "parents": [
        "f72122dfd58df08f0dfac199162e592504386a0b"
      ],
      "author": {
        "name": "Brad Smith",
        "email": "brad@comstyle.com",
        "time": "Mon May 04 22:25:33 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 04 19:30:53 2026 -0700"
      },
      "message": "[libunwind] Add SME detection for Apple platforms (#193630)\n\nCopy SME detection sysctl code from ZA test. Also fix a\nlogic issue in the original code while being reviewed.\n\nGitOrigin-RevId: 94b475dae69cecf8f80a0936a7510be1c6fdbead\n"
    },
    {
      "commit": "f72122dfd58df08f0dfac199162e592504386a0b",
      "tree": "4c525f5ea50c80535c5dd02fe46755eb7942f204",
      "parents": [
        "83cddded7025a586219fb570ceae8169837d7fb6"
      ],
      "author": {
        "name": "Nikolas Klauser",
        "email": "nikolasklauser@berlin.de",
        "time": "Thu Apr 30 19:57:23 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 30 11:01:09 2026 -0700"
      },
      "message": "[libc++] Update macOS and AppleClang (#193711)\n\nThe new AppleClang is only available on macOS 26, so we need to update\nboth.\n\nGitOrigin-RevId: 6810a69ab8a61873dbdfff2c2949a3a701419cde\n"
    },
    {
      "commit": "83cddded7025a586219fb570ceae8169837d7fb6",
      "tree": "a8ae85b36d572e04549be9fcb5707b583cff94a3",
      "parents": [
        "a03946ed1770ae61edcedf1ed25eb465186bbc36"
      ],
      "author": {
        "name": "Alex Rønne Petersen",
        "email": "alex@alexrp.com",
        "time": "Mon Apr 27 15:32:47 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Apr 27 06:35:32 2026 -0700"
      },
      "message": "[libunwind] fix build errors on x32 and mips n32 (#194310)\n\nGitOrigin-RevId: 06ddfcf0ca9cdb1481fff3cff6f73d5c26d45ffe\n"
    },
    {
      "commit": "a03946ed1770ae61edcedf1ed25eb465186bbc36",
      "tree": "08419b24db453e0af91ed82a023ab2f5e569a132",
      "parents": [
        "ad9c48e86869ebad40a99e2e2d438529953d06d4"
      ],
      "author": {
        "name": "Alexander Kornienko",
        "email": "alexfh@google.com",
        "time": "Thu Apr 23 12:33:03 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 23 03:35:54 2026 -0700"
      },
      "message": "Fix -Wformat diagnostic after #190965 (#193704)\n\nFixes libunwind compiler diagnostic when building with clang after\n034d4dcad6396d1241e8262e69871b8d61da7e4f:\n```\nIn file included from libunwind/src/libunwind.cpp:31:\nIn file included from libunwind/src/UnwindCursor.hpp:52:\nlibunwind/src/CompactUnwinder.hpp:339:46: error: format specifies type \u0027unsigned long long\u0027 but the argument has type \u0027uint64_t\u0027 (aka \u0027unsigned long\u0027) [-Werror,-Wformat]\n  338 |                            \"function starting at 0x%llX\",\n      |                                                    ~~~~\n      |                                                    %lX\n  339 |                             compactEncoding, functionStart);\n      |                                              ^~~~~~~~~~~~~\nlibunwind/src/config.h:215:63: note: expanded from macro \u0027_LIBUNWIND_DEBUG_LOG\u0027\n  215 |   #define _LIBUNWIND_DEBUG_LOG(msg, ...)  _LIBUNWIND_LOG(msg, __VA_ARGS__)\n      |                                                          ~~~  ^~~~~~~~~~~\nlibunwind/src/config.h:181:45: note: expanded from macro \u0027_LIBUNWIND_LOG\u0027\n  181 |     fprintf(stderr, \"libunwind: \" msg \"\\n\", __VA_ARGS__);                      \\\n      |                                   ~~~       ^~~~~~~~~~~\nIn file included from libunwind/src/libunwind.cpp:31:\nIn file included from libunwind/src/UnwindCursor.hpp:52:\nlibunwind/src/CompactUnwinder.hpp:458:39: error: format specifies type \u0027unsigned long long\u0027 but the argument has type \u0027uint64_t\u0027 (aka \u0027unsigned long\u0027) [-Werror,-Wformat]\n  457 |                            \"function starting at 0x%llX\",\n      |                                                    ~~~~\n      |                                                    %lX\n  458 |                             encoding, functionStart);\n      |                                       ^~~~~~~~~~~~~\nlibunwind/src/config.h:215:63: note: expanded from macro \u0027_LIBUNWIND_DEBUG_LOG\u0027\n  215 |   #define _LIBUNWIND_DEBUG_LOG(msg, ...)  _LIBUNWIND_LOG(msg, __VA_ARGS__)\n      |                                                          ~~~  ^~~~~~~~~~~\nlibunwind/src/config.h:181:45: note: expanded from macro \u0027_LIBUNWIND_LOG\u0027\n  181 |     fprintf(stderr, \"libunwind: \" msg \"\\n\", __VA_ARGS__);                      \\\n      |                                   ~~~       ^~~~~~~~~~~\n```\nGitOrigin-RevId: 1f332ae4f1b33f82590fffb30922185e20a6eae2\n"
    },
    {
      "commit": "ad9c48e86869ebad40a99e2e2d438529953d06d4",
      "tree": "1cbe05b3a994644f40380a57c2bd285c53b7e1f7",
      "parents": [
        "20283c4656dff5b34782212727ee250c1d9c6a28"
      ],
      "author": {
        "name": "Zachary Yedidia",
        "email": "zyedidia@gmail.com",
        "time": "Tue Apr 21 15:42:31 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Apr 21 15:45:52 2026 -0700"
      },
      "message": "[LFI][libunwind] Avoid writing to reserved registers on the `aarch64_lfi` target (#192739)\n\nThe registers `x25`, `x26`, `x27`, and `x28` are reserved for the\n`aarch64_lfi` target and should not be written/used. See\n`llvm/docs/LFI.rst` for more details. They contain fixed constants or\ntemporaries used as part of assembly-level rewrites of load/store\ninstructions. The rewriter will reject programs that attempt to write to\nthese registers. It is technically OK to save/read them (in\n`UnwindRegistersSave.S`), but there is no point since there is no need\nto restore them (and to maintain LFI\u0027s security invariant, they in fact\ncannot be written).\n\nGitOrigin-RevId: 2b63e5e75dbadc30218e41c8113a40acbc625334\n"
    },
    {
      "commit": "20283c4656dff5b34782212727ee250c1d9c6a28",
      "tree": "d22459597aaa3f662726cc3c4fb51dbad9d2e8fe",
      "parents": [
        "b36ed073ac7d03f1fac6ad12739b47761e159046"
      ],
      "author": {
        "name": "Brad Smith",
        "email": "brad@comstyle.com",
        "time": "Tue Apr 21 17:28:16 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Apr 21 14:31:26 2026 -0700"
      },
      "message": "[libunwind] Add SME detection for ZA test on OpenBSD / FreeBSD (#193148)\n\nFollow up to 588451c160c34b888ced1c3d9263d361df22f757 to\nadd SME detection on OpenBSD and FreeBSD.\n\nGitOrigin-RevId: bffb208404fd2287e68f2cb3ce7f10ac99e38ac1\n"
    },
    {
      "commit": "b36ed073ac7d03f1fac6ad12739b47761e159046",
      "tree": "f7a8aa6a3ae6dcb49f3fe68b4b5f1ddebf973a03",
      "parents": [
        "7d75aa24c119af467e9d5754dd4483116002d368"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Thu Apr 02 12:32:14 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 02 03:35:22 2026 -0700"
      },
      "message": "[Runtimes] Introduce variables containing resource dir paths (#177953)\n\nIntroduce common infrastructure for runtimes that determines compiler\nresource path locations. These variables introduced are:\n\n * RUNTIMES_OUTPUT_RESOURCE_DIR\n * RUNTIMES_INSTALL_RESOURCE_PATH\n\nThat contain the location for the compiler resource path (typically\n`lib/clang/\u003cversion\u003e`) in the build tree and the install tree (the\nlatter relative to CMAKE_INSTALL_PREFIX).\n\nAdditionally, define\n\n * RUNTIMES_OUTPUT_RESOURCE_LIB_DIR\n * RUNTIMES_INSTALL_RESOURCE_LIB_PATH\n\nas for the location of clang/flang version-locked libraries (typically\n`lib${LLVM_LIBDIR_SUFFIX}/\u003ctarger-triple\u003e`, but also depends on `APPLE`\nand `LLVM_ENABLE_PER_TARGET_RUNTIME_DIR`). This code is moved from\nflang-rt and initially becomes its only user.\n\nRefactored out of #171610 as requested\n[here](https://github.com/llvm/llvm-project/pull/171610#discussion_r2687382481).\n\nExtracted `get_runtimes_target_libdir_common` from compiler-rt as\nrequested\n[here](https://github.com/llvm/llvm-project/pull/171610#discussion_r2689565634).\n\nAdded TODO comments to all runtimes as requested\n[here](https://github.com/llvm/llvm-project/pull/171610#issuecomment-3789598635).\n\nGitOrigin-RevId: afb80bddf147c134c5e3cf3f357f8d00bdfd526c\n"
    },
    {
      "commit": "7d75aa24c119af467e9d5754dd4483116002d368",
      "tree": "649f356634edac4cef214d07626a2cf59de265cc",
      "parents": [
        "52d4270369bb4957aed7a1040154b1d1aa943dd0"
      ],
      "author": {
        "name": "Oliver Hunt",
        "email": "oliver@apple.com",
        "time": "Fri Mar 27 14:33:08 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Mar 27 07:35:16 2026 -0700"
      },
      "message": "[libunwind][PAC] Defang ptrauth\u0027s PC in valid CFI range abort (#184041)\n\nIt turns out making the CFI check a release mode abort causes many, if\nnot the majority, of JITs to fail during unwinding as they do not set up\nCFI sections for their generated code. As a result any JITs that do\nnominally support unwinding (and catching) through their JIT or assembly\nframes trip this abort.\n\nrdar://170862047\n\nGitOrigin-RevId: 1aba434dab1a628af4d2f370df3b468b79d31766\n"
    },
    {
      "commit": "52d4270369bb4957aed7a1040154b1d1aa943dd0",
      "tree": "5b8baf58456d51189ae811cde60f4d87ba0638de",
      "parents": [
        "c29349e331e5a2be55d13883612575aa5ffa9e4c"
      ],
      "author": {
        "name": "Jon Roelofs",
        "email": "jonathan_roelofs@apple.com",
        "time": "Wed Mar 25 18:16:19 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Mar 25 18:21:07 2026 -0700"
      },
      "message": "[libunwind][Apple] Improve test coverage on Apple platforms (#186423)\n\nIntroduces a macro abstraction around capturing the bounds of a\nfunction, which many platforms handle subtly differently (Mach-O, and\nELF, for example).\n\nAlso introduce an arm64[^-]* -\u003e aarch64 available feature, to enable\nmore tests that would otherwise be excluded on Apple platforms, whose\ntarget triples tend to take the form e.g. \u0027arm64-apple-macosx\u0027, rather\nthan \u0027aarch64-apple-macosx\u0027.\n\nThird, we implement the has-sme check using the appropriate sysctl, as\ngetauxval is not available on Darwin platforms.\n\nGitOrigin-RevId: 47e4282c19f095075fda1b5ea67b021f3fa2e3dc\n"
    },
    {
      "commit": "c29349e331e5a2be55d13883612575aa5ffa9e4c",
      "tree": "15334056db051d562e5e73b4940118132e9a3912",
      "parents": [
        "dd42efac5f414e10d85acafebc5872601cf33a0a"
      ],
      "author": {
        "name": "Jon Roelofs",
        "email": "jonathan_roelofs@apple.com",
        "time": "Wed Mar 25 13:58:19 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Mar 25 14:00:47 2026 -0700"
      },
      "message": "[llvm][CompactUnwind] Compact Unwind does not support .cfi_signal_frame (#186458)\n\nFixes libunwind\u0027s signal_frame.pass.cpp test on Mach-O platforms.\n\nGitOrigin-RevId: 0129ecf0222895aa4f3a25f7374411d75e7b3ae4\n"
    },
    {
      "commit": "dd42efac5f414e10d85acafebc5872601cf33a0a",
      "tree": "ead296cadc855aefbc436ca696c917a7ec8e42ca",
      "parents": [
        "d80d82a443d0829f67650707ae0e15926d611a3d"
      ],
      "author": {
        "name": "Brad Smith",
        "email": "brad@comstyle.com",
        "time": "Wed Mar 25 15:39:08 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Mar 25 12:40:58 2026 -0700"
      },
      "message": "[libunwind] Fix building on OpenBSD / FreeBSD aarch64 (#188397)\n\nJust checking for the header presence of sys/auxv.h breaks the\nbuild on OpenBSD / FreeBSD. Make use of elf_aux_info().\n\nGitOrigin-RevId: 588451c160c34b888ced1c3d9263d361df22f757\n"
    },
    {
      "commit": "d80d82a443d0829f67650707ae0e15926d611a3d",
      "tree": "a82384ef1cbb81677aa2b0364f3857d843d4a447",
      "parents": [
        "50447728179ca6bfa53380fc6846938756cac05c"
      ],
      "author": {
        "name": "Alex Crichton",
        "email": "alex@alexcrichton.com",
        "time": "Tue Mar 10 19:43:11 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Mar 10 17:45:54 2026 -0700"
      },
      "message": "[WebAssembly] Move __cpp_exception to libunwind (#185770)\n\nThe `__cpp_exception` symbol is now defined in libunwind instead of\ncompiler-rt. This is moved for a few reasons, but the primary reason is\nthat compiler-rt is linked duplicate-ly into all shared objects meaning\nthat it\u0027s not suitable for define-once symbols such as\n`__cpp_exception`. By moving the definition to the user of the symbol,\nlibunwind itself, that guarantees that the symbol should be defined\nexactly once and only when appropriate. A secondary reason for this\nmovement is that it avoids the need to compile compiler-rt twice: once\nwith exception and once without, and instead the same build can be used\nfor both exceptions-and-not.\n\nGitOrigin-RevId: a3f28233fc860d77fa70ad57a93a67963fa20a0c\n"
    },
    {
      "commit": "50447728179ca6bfa53380fc6846938756cac05c",
      "tree": "a1a22b15a66d79d1e9e8d570015455bbb17e6d61",
      "parents": [
        "f0e4d59774319d3a015d04f2f5493db82de8b519"
      ],
      "author": {
        "name": "Sam Clegg",
        "email": "sbc@chromium.org",
        "time": "Wed Mar 04 09:59:28 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Mar 04 10:00:48 2026 -0800"
      },
      "message": "Revert \"Silence -Wunused-parameter warnings in Unwind-wasm.c\" (#175776)\n\nReverts llvm/llvm-project#125412\n\nSee the discussion in #125412 for why this is necessary. The summary is\nthat:\n\n- Eliding arguments is the C23 extension, but libunwind builds its C\nfiles with `-std\u003dc99`, so this change broke the build.\n- `-Wno-unused-parameter` is part of the build for libunwind, so the\ncodebase does allow them.\n\nGitOrigin-RevId: 0baf5a0496a50ffa9f47b76087cb66980a1f713e\n"
    },
    {
      "commit": "f0e4d59774319d3a015d04f2f5493db82de8b519",
      "tree": "d5673eda219e5703a6d19b83138d3a9b6c0a9513",
      "parents": [
        "8f3b4185f08b20d1d799f99ad80e096c0077bcc6"
      ],
      "author": {
        "name": "Martin Storsjö",
        "email": "martin@martin.st",
        "time": "Thu Feb 12 00:31:09 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Feb 11 14:32:46 2026 -0800"
      },
      "message": "[libunwind] Fix building with EXCEPTION_DISPOSITION as enum (#180513)\n\nOn Windows, libunwind is normally only built in mingw mode; it\u0027s not\nrelevant for MSVC targets. (Attempting to build it is entirely blocked\nin CMake, see [1]).\n\nIn mingw headers, the type EXCEPTION_DISPOSITION is defined as an int\nwhile it is an enum in the MSVC vcruntime headers.\n\nHowever, in addition to the canonical enum members, we also use a value\nwhich has no assigned enum member. In older mingw-w64 headers, there was\na define for this value, 4, with the name ExceptionExecuteHandler, but\nthat was removed in [2]. The libunwind code reference this value just by\nthe literal value 4, with a comment referencing it as\nExceptionExecuteHandler.\n\nThis extra enum value isn\u0027t passed to the outside Microsoft runtime, but\nis only used to pass values from one part of libunwind to another; this\nhandling is necessary for the forced_unwind{1-3}.pass.cpp tests to\nsucceed.\n\nIf the mingw-w64 headers would define EXCEPTION_DISPOSITION as an enum,\njust like the MSVC vcruntime headers, then we\u0027d run into build errors\nand warnings like this:\n\n    llvm-project/libunwind/src/Unwind-seh.cpp:166:14: error: cannot initialize return object of type \u0027EXCEPTION_DISPOSITION\u0027 (aka \u0027enum _EXCEPTION_DISPOSITION\u0027) with an rvalue of type \u0027int\u0027\n          166 |       return 4 /* ExceptionExecuteHandler in mingw */;\n              |              ^\n    llvm-project/libunwind/src/Unwind-seh.cpp:185:14: error: cannot initialize return object of type \u0027EXCEPTION_DISPOSITION\u0027 (aka \u0027enum _EXCEPTION_DISPOSITION\u0027) with an rvalue of type \u0027int\u0027\n          185 |       return 4 /* ExceptionExecuteHandler in mingw */;\n              |              ^\n    llvm-project/libunwind/src/Unwind-seh.cpp:272:8: warning: case value not in enumerated type \u0027EXCEPTION_DISPOSITION\u0027 (aka \u0027enum _EXCEPTION_DISPOSITION\u0027) [-Wswitch]\n          272 |   case 4 /*ExceptionExecuteHandler*/:\n              |        ^\n\nFix these cases by adding explicit casts between EXCEPTION_DISPOSITION\nand int.\n\nA (partial) similar change was proposed in [3], but the author never\nfollowed up on the discussion, and the PR was later closed.\n\n[1] b0b546d44777eb1fa25995384876bd14a006a929\n[2] https://github.com/mingw-w64/mingw-w64/commit/2de6703961c0d519046b841f7b392a040e1e5b55\n[3] https://github.com/llvm/llvm-project/pull/159293\n\nGitOrigin-RevId: 0991d7b8fd01546aaf537a6238227100570f8236\n"
    },
    {
      "commit": "8f3b4185f08b20d1d799f99ad80e096c0077bcc6",
      "tree": "987292f7385fa520f028c1d69c2b3af6b042287e",
      "parents": [
        "9a3500913611e118103bd0cce1332897acf2e31c"
      ],
      "author": {
        "name": "willmafh",
        "email": "willmafh@hotmail.com",
        "time": "Sat Jan 24 21:45:50 2026 +0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Jan 24 05:50:46 2026 -0800"
      },
      "message": "[libunwind][NFC] Typo fixes \u0026 comments corrections \u0026 code style changes. (#174565)\n\nGitOrigin-RevId: 0653e079c222d0bd8dcd8d84985e806a47a70800\n"
    },
    {
      "commit": "9a3500913611e118103bd0cce1332897acf2e31c",
      "tree": "6ca489e2dd6f673358f7e2067551f8df503c6cfe",
      "parents": [
        "ee6417f240fb4319acda0be7d3cdcacffe532d3d"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Wed Jan 14 13:39:02 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jan 14 10:40:41 2026 -0800"
      },
      "message": "[runtimes] Post-branch tasks for the LLVM 23 release (#176007)\n\nThis performs most of the post-branch tasks to start working on the LLVM\n23 release. Things that are left to do:\n- Update the unicode version\n- Update CI versions and supported compiler versions\n\nGitOrigin-RevId: ec983ad611fa15890fdcf5c3066e938b5b154459\n"
    },
    {
      "commit": "ee6417f240fb4319acda0be7d3cdcacffe532d3d",
      "tree": "1b340fefeaca357229c4e120b9cc66ed1ff5e285",
      "parents": [
        "4a3cfd8ffb80d0a6d4611af9f523c08141e5b9cb"
      ],
      "author": {
        "name": "Heejin Ahn",
        "email": "aheejin@gmail.com",
        "time": "Mon Jan 05 13:54:53 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jan 05 14:01:17 2026 -0800"
      },
      "message": "[libunwind][WebAssembly] Fix typos (NFC) (#173745)\n\nGitOrigin-RevId: 44d4a64a8bf8e7af47865f0c32cc189e95b2338b\n"
    },
    {
      "commit": "4a3cfd8ffb80d0a6d4611af9f523c08141e5b9cb",
      "tree": "ad744e2f00097397946e317d633de34f77b0b880",
      "parents": [
        "451fd52858b2254d0d01f1e9dd8b22051ad464ca"
      ],
      "author": {
        "name": "Daniil Kovalev",
        "email": "dkovalev@accesssoftek.com",
        "time": "Fri Jan 02 15:28:30 2026 +0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jan 02 04:31:04 2026 -0800"
      },
      "message": "[PAC][libunwind] Pass ptrauth-qualified values as const references (#173765)\n\nFor Apple\u0027s arm64e or Linux\u0027s pauthtest, `Registers_arm64::link_reg_t`\ntype is `__ptrauth`-qualified. When passing a value of such a type to a\nfunction accepting non-`__ptrauth`-qualified parameter with `pint_t`\ntype, an authentication is performed. So, the corresponding callee\nargument does not contain an embedded signature, making it prone to\nsubstitution if spilled to the stack.\n\nThis patch prevents early authentication of signed values of\n`link_reg_t` type by passing them as const l-value references instead of\npassing by value with type `pint_t`. This way, the callee would operate\nwith a `__ptrauth`-qualified value containing a signature, allowing to\ndetect a substitution if the value is spilled to the stack.\n\nNote that this approach was introduced previously in #143230 for some\nother functions. In this patch, we apply the approach to the functions\nwhich were not considered previously.\n\nGitOrigin-RevId: 2b25e92948403c15d1adf07daa09defcd0b38caf\n"
    },
    {
      "commit": "451fd52858b2254d0d01f1e9dd8b22051ad464ca",
      "tree": "e9901e5f815e7979e439b80239b526cb5325dbf0",
      "parents": [
        "6868152ae05197bad02918cb37df4d967a45df72"
      ],
      "author": {
        "name": "Daniil Kovalev",
        "email": "dkovalev@accesssoftek.com",
        "time": "Mon Dec 29 09:56:52 2025 +0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Dec 28 23:01:31 2025 -0800"
      },
      "message": "[PAC][libunwind] Enhance PAuth-related comments in `__unw_set_reg` (#173769)\n\nThe PAuth-related checks performed for arm64e are also performed for\nother PAuth-enabled ABIs such as Linux\u0027s pauthtest. This patch\nintroduces use of \u0027PAuth-enabled ABI\u0027 phrase instead of \u0027arm64e\u0027 term\nfor non-arm64e specific things. Also, on non-arm64e we cannot assume\nthat we have FPAC, so an additional explanation regarding resign\nfunction guarantees is provided.\n\nNote that other comments mentioning arm64e while not being\narm64e-specific are fixed as part of #171717.\n\nFixes #160117\n\nGitOrigin-RevId: 367e3889fabcc3dcd3ee2d664d652ab6ec26854b\n"
    },
    {
      "commit": "6868152ae05197bad02918cb37df4d967a45df72",
      "tree": "0867de3b3cca79a0b09efeab9d26fbdfc0ebbbe8",
      "parents": [
        "18fca085ca3881a428384b764e70e9a084269888"
      ],
      "author": {
        "name": "Nikolas Klauser",
        "email": "nikolasklauser@berlin.de",
        "time": "Tue Dec 16 11:25:07 2025 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Dec 16 23:23:20 2025 -0800"
      },
      "message": "[libc++] Enable -Wmissing-prototypes (#116261)\n\nGitOrigin-RevId: 3c100d5d548d511d09746dd5a2fee29bdd00805c\n"
    },
    {
      "commit": "18fca085ca3881a428384b764e70e9a084269888",
      "tree": "142e67af9013922188500a9d7ed2a13cdffe57d9",
      "parents": [
        "475a2e1d1c9a8920425333da5ba98cca54485391"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Fri Dec 12 12:09:11 2025 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Dec 16 23:23:15 2025 -0800"
      },
      "message": "[runtimes] Remove dependencies on cxx_experimental for test-suite installs (#171678)\n\nThis patch removes explicit dependencies on cxx_experimental for\ninstallations that are local to the test suite. Such dependencies\nare not required anymore from the test-suite installation targets\nsince the proper dependency is now encoded between cxx and\ncxx_experimental.\n\nGitOrigin-RevId: 4ffd373e3853ebc00fb339611e215deab682a54c\n"
    },
    {
      "commit": "475a2e1d1c9a8920425333da5ba98cca54485391",
      "tree": "ad97fe56d460de5d813c96013fef7a0a71235fda",
      "parents": [
        "4fa145b345bdf98d8ec2ca9d89d27710abb544fd"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Thu Dec 11 09:09:37 2025 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Dec 16 23:23:09 2025 -0800"
      },
      "message": "[runtimes] Modernize installation targets (#171677)\n\nThis patch moves away from using cmake_install scripts to install the\nvarious targets when building runtimes, since those have been deprecated\nby CMake. Instead, we use `cmake --install` which is the prefered\nmethod.\n\nThis patch also localizes how we set dependencies on the various\ninstallation targets, allowing the removal of a few global variables\nthat were used as lists.\n\nFinally, it makes the way we set up installation targets for libc++,\nlibc++abi and libunwind consistent again.\n\nGitOrigin-RevId: a9fadb3ed4fba28d031a4bc72de8f3fc15c08072\n"
    },
    {
      "commit": "4fa145b345bdf98d8ec2ca9d89d27710abb544fd",
      "tree": "3f9dbcef3914a815b32ee3f724f4522de4f5335d",
      "parents": [
        "569d9a38224fefba08961573e3561aea7b2758a8"
      ],
      "author": {
        "name": "Brad Smith",
        "email": "brad@comstyle.com",
        "time": "Wed Dec 10 21:27:21 2025 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Dec 16 23:23:04 2025 -0800"
      },
      "message": "[libunwind] fix building on Haiku i386 (#171586)\n\nCo-authored-by: Jérôme Duval \u003cjerome.duval@gmail.com\u003e\nGitOrigin-RevId: 3fdce799cc184bf1b7c60a6845026df6c6e7630b\n"
    },
    {
      "commit": "569d9a38224fefba08961573e3561aea7b2758a8",
      "tree": "06fdd49ba31b9fc52b0f4c75d59f57cfa3f4928a",
      "parents": [
        "67e7bfce4b03d03ca0e8b736d737681e12871a01"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Wed Dec 10 07:59:17 2025 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Dec 16 23:22:58 2025 -0800"
      },
      "message": "[libunwind] Make sure libunwind test dependencies are installed before running tests (#171474)\n\nThis patch adds an installation step where we install libc++ in a fake\ninstallation tree before testing libunwind. This is necessary because\nsome configurations (in particular \"generic-merged\") require libc++ to\nbe installed, since the libunwind tests are actually linking libc++.so\nin which libc++abi.a and libunwind.a have been merged.\n\nWithout this, we were actually failing to find `libc++.so` to link\nagainst and then linking against whatever system library we\u0027d find in\nthe provided search directories. While this happens to work in the\ncurrent CI configuration, this breaks down when updating to newer build\ntools.\n\nGitOrigin-RevId: fb8a7c774d62406bba98765236111159edfa96c1\n"
    },
    {
      "commit": "67e7bfce4b03d03ca0e8b736d737681e12871a01",
      "tree": "fbf8ba32833ac6e95827060fecf32af29771493e",
      "parents": [
        "fced35fa1382791c9d18fde067e7f82989a532f2"
      ],
      "author": {
        "name": "Nathan Corbyn",
        "email": "n_corbyn@apple.com",
        "time": "Wed Dec 03 18:17:54 2025 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Dec 16 23:22:53 2025 -0800"
      },
      "message": "[libunwind](TestOnly) Mark failing tests as unsupported on Apple targets (#170488)\n\n#167642 introduced a number of test failures on one of our stage 2\nbuilds:\nhttps://ci.swift.org/job/llvm.org/job/clang-stage2-Rthinlto/1403/. This\nPR marks these tests as unsupported on `.*-apple.*` targets.\nGitOrigin-RevId: 63ea3537d55f75be0d6fb92aef16465b291fa9ed\n"
    },
    {
      "commit": "fced35fa1382791c9d18fde067e7f82989a532f2",
      "tree": "6fc9b3fc91b7eb5d2cd9b4ae3c4ffb81b7263eab",
      "parents": [
        "e33483a0ce8c37ebeb17aa6cb4b44ab56c29babe"
      ],
      "author": {
        "name": "Gleb Popov",
        "email": "6yearold@gmail.com",
        "time": "Mon Dec 01 23:05:37 2025 +0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Dec 16 23:22:47 2025 -0800"
      },
      "message": "libunwind: Remove OS requirements from tests to make them run on more OSes (#167642)\n\nThere might be a cleaner way to enable these tests running on FreeBSD,\nI\u0027m open to suggestions.\n\nCo-authored-by: Alexander Richardson \u003cmail@alexrichardson.me\u003e\nGitOrigin-RevId: 33bcde0678707ffffb7f01188d530da05bed47b8\n"
    },
    {
      "commit": "e33483a0ce8c37ebeb17aa6cb4b44ab56c29babe",
      "tree": "ff30be3f6dcc98f62747be3fb399699ab439cc5e",
      "parents": [
        "5c1bc8c7c48bbbc6dcea6dd39abfd83b560a4258"
      ],
      "author": {
        "name": "hstk30-hw",
        "email": "hanwei62@huawei.com",
        "time": "Sat Nov 15 09:37:15 2025 +0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Dec 16 23:22:42 2025 -0800"
      },
      "message": "[Unwind][AArch64] Match sigreturn instructions in big endian (#167139)\n\nSince insns are always stored LE, on a BE system the opcodes will be\nloaded byte-reversed. Therefore, define two sets of opcodes, one for LE\nand one for BE.\n\nGitOrigin-RevId: 6214dccbc991abe5a1679bc88e74b8c7d53f3d45\n"
    },
    {
      "commit": "5c1bc8c7c48bbbc6dcea6dd39abfd83b560a4258",
      "tree": "31655ff71c2ddfb269f99be6c9b509cf35f5c53e",
      "parents": [
        "b6a1bb4d7724975e16750528e01a4c6c3a703201"
      ],
      "author": {
        "name": "Benjamin Maxwell",
        "email": "benjamin.maxwell@arm.com",
        "time": "Thu Nov 13 08:57:19 2025 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Dec 16 23:22:36 2025 -0800"
      },
      "message": "[libunwind] Ensure zaDisable() is called in jumpto/returnto (NFC) (#167674)\n\nThis is an NFC for now, as the SME checks for macOS platforms are not\nimplemented, so zaDisable() is a no-op, but both paths for resuming from\nan exception should disable ZA.\n\nThis is a fixup for a recent change in #165066.\n\nGitOrigin-RevId: d2a2b169f6cdfc2864f83ebc221dc771a9a1697d\n"
    },
    {
      "commit": "b6a1bb4d7724975e16750528e01a4c6c3a703201",
      "tree": "86b5b77b43397b911495b3e8a7b60035b18d2f12",
      "parents": [
        "00be0e9647ac90413ce72a3ad4b42b8b61338b23"
      ],
      "author": {
        "name": "Med Ismail Bennani",
        "email": "ismail@bennani.ma",
        "time": "Wed Nov 12 12:21:32 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Dec 16 23:22:31 2025 -0800"
      },
      "message": "[libunwind] Fix build error because of wrong register size (#167743)\n\nGitOrigin-RevId: e5e9c3b4f2eea733d35383159492fb509d8b0f20\n"
    },
    {
      "commit": "00be0e9647ac90413ce72a3ad4b42b8b61338b23",
      "tree": "daf3516ad94415ca591be78b14a9f5fd5b650530",
      "parents": [
        "9e880de712f3b887b6afabccfa65ccb47a1db254"
      ],
      "author": {
        "name": "Gleb Popov",
        "email": "6yearold@gmail.com",
        "time": "Wed Nov 12 07:45:42 2025 +0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Dec 16 23:22:25 2025 -0800"
      },
      "message": "libunwind: Implement the unw_strerror function for better nongnu libunwind compatibility (#160887)\n\nAs it was explained to me in\nhttps://discourse.llvm.org/t/libunwinds-raison-detre/88283/2 the LLVM\nversion of libunwind is mostly compatible with nongnu one. This change\nimproves the compatibility a bit further.\n\nGitOrigin-RevId: 54659793328a0a7f0f1efa9d4d7fc43999b34ae2\n"
    },
    {
      "commit": "9e880de712f3b887b6afabccfa65ccb47a1db254",
      "tree": "e0b300338d4d2d327d950cd3327407bb0a6831dd",
      "parents": [
        "6596107856e99d000c620bf643f7759c140a02f0"
      ],
      "author": {
        "name": "Med Ismail Bennani",
        "email": "ismail@bennani.ma",
        "time": "Tue Nov 11 18:31:57 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Dec 16 23:22:19 2025 -0800"
      },
      "message": "[libunwind] Fix execution flow imbalance when using C++ Exceptions (#165066)\n\nGitOrigin-RevId: cf35502dd569d842a860696650a783f896db0648\n"
    },
    {
      "commit": "6596107856e99d000c620bf643f7759c140a02f0",
      "tree": "363d421e2297f6f63edc797827051d32e2800e43",
      "parents": [
        "2cb4bd96e7e0eef66a4ec6f7a7eae53bd577c1d6"
      ],
      "author": {
        "name": "Benjamin Maxwell",
        "email": "benjamin.maxwell@arm.com",
        "time": "Tue Nov 11 09:46:13 2025 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Dec 16 23:22:14 2025 -0800"
      },
      "message": "[libunwind][AArch64] Disable ZA before resuming from unwinding (on Linux) (#165451)\n\nThis patch reimplements the SME ABI `__arm_za_disable` routine within\nlibunwind. This routine must be called before resuming from unwinding on\nAArch64 platforms with SME support.\n\nBefore calling the routine, we need to check that SME is available. In\nthis patch, this is implemented for Linux-based platforms by checking\nHWCAP2. It should be possible to implement this check for other\nplatforms as required.\n\nThis patch includes a test for this functionality. This test requires\nSME, so on platforms without it, it will simply pass.\n\nGitOrigin-RevId: 5cb2c6806e8c78776935b2972e4c8b6dfcda697d\n"
    },
    {
      "commit": "2cb4bd96e7e0eef66a4ec6f7a7eae53bd577c1d6",
      "tree": "b316fcc7e157b282bbd85c2715d3a0853c826fcb",
      "parents": [
        "672d78da2704319edb2a2cc44c77195d8d3689ec"
      ],
      "author": {
        "name": "Raul Tambre",
        "email": "raul@tambre.ee",
        "time": "Sat Nov 08 22:20:13 2025 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Dec 16 23:22:08 2025 -0800"
      },
      "message": "[libc++abi][libunwind] Enable AT\u0026T syntax explicitly (#166818)\n\nImplementation files using the Intel syntax typically explicitly specify\nit. Do the same for the few files where applicable for AT\u0026T.\n\nThis enables building LLVM with `-mllvm -x86-asm-syntax\u003dintel` in one\u0027s\nClang config files (i.e. a global preference for Intel syntax).\n\nGitOrigin-RevId: afc83688cfadfb07c1cd9edc4f3c855d7cf4a261\n"
    },
    {
      "commit": "672d78da2704319edb2a2cc44c77195d8d3689ec",
      "tree": "ea5748835c1f24add8ce1663f47d1d9fe3a31483",
      "parents": [
        "6481c4c2a9e283dfcaf768404158520840a4e46a"
      ],
      "author": {
        "name": "Csanád Hajdú",
        "email": "csanad.hajdu@arm.com",
        "time": "Fri Nov 07 09:36:32 2025 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Dec 16 23:22:02 2025 -0800"
      },
      "message": "[libunwind] Add CMake option to enable execute-only code generation on AArch64 (#140554)\n\nFor a full toolchain supporting execute-only code generation the runtime\nlibraries also need to be pre-compiled with it enabled. The generic\n`RUNTIMES_EXECUTE_ONLY_CODE` CMake option can now be used during build\nconfiguration to enable execute-only code generation in libunwind.\n\nRelated RFC:\nhttps://discourse.llvm.org/t/rfc-execute-only-code-support-for-runtime-libraries-on-aarch64/86180\n\nGitOrigin-RevId: 4508f44af7529dbba8e3762325b2c416ff9f20c6\n"
    },
    {
      "commit": "6481c4c2a9e283dfcaf768404158520840a4e46a",
      "tree": "d67c3329d66cd974eab838865bf8d5a3102c25f6",
      "parents": [
        "c372a3cb2d205aaf1f21ce33b25db0a10b0c38ea"
      ],
      "author": {
        "name": "Jack Styles",
        "email": "jack.styles@arm.com",
        "time": "Wed Oct 29 08:20:11 2025 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 29 01:22:37 2025 -0700"
      },
      "message": "[libunwind][PAuthLR] Remove PC offset when using FEAT_PAuthLR (#164224)\n\nWhen originally introduced to libunwind as part of #112171, FEAT_PAuthLR\nhad its Call Frame Instruction\u0027s (CFI\u0027s) in a different location to\nother Signing Authentication methods. To incorporate this in libunwind,\na 4 byte offset was introduced to work with this. However, this design\nwas reversed in #121551 so the CFI\u0027s are emitted in the same location as\nother methods. When making this change, the offset in libunwind was not\nremoved, so libunwind\u0027s PC value would be incorrect.\n\nAs the 4 byte offset is no longer needed, that adjustment can be\nremoved. results-\u003eptrAuthDiversifier will still be set.\n\nGitOrigin-RevId: a9e6f90867b1c7cc18fe46822148d99f614f9e33\n"
    },
    {
      "commit": "c372a3cb2d205aaf1f21ce33b25db0a10b0c38ea",
      "tree": "cdf0501454676a02064a7091449d971397360369",
      "parents": [
        "5c2d852bf3830b3076c31fb5b2d4e754e771b866"
      ],
      "author": {
        "name": "Brad Smith",
        "email": "brad@comstyle.com",
        "time": "Sat Oct 25 17:11:47 2025 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Oct 25 14:15:40 2025 -0700"
      },
      "message": "[compiler-rt][libunwind] Allow for CET on OpenBSD (#164341)\n\nGitOrigin-RevId: f03ccef45f84b4e947ffc93dc5a6f87a827fddf3\n"
    },
    {
      "commit": "5c2d852bf3830b3076c31fb5b2d4e754e771b866",
      "tree": "8993fa14e9ec0b2f24187417961e4e4eabece2cb",
      "parents": [
        "d43cb9f1bad202f83125def0c612a9a48ffbf08c"
      ],
      "author": {
        "name": "Oliver Hunt",
        "email": "oliver@apple.com",
        "time": "Wed Oct 22 13:41:50 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 22 13:46:00 2025 -0700"
      },
      "message": "[PAC][libunwind] Fix gcc build of libunwind and compiler-rt (#164535)\n\nThis adds guards on the ptrauth feature checks so that they are only\nperformed if __has_feature is actually available.\n\nGitOrigin-RevId: c1678e52f956f75f62d3240cf89d69c90b6505a4\n"
    },
    {
      "commit": "d43cb9f1bad202f83125def0c612a9a48ffbf08c",
      "tree": "7afa973419a1477a44df688df0d4092d7a0adfc0",
      "parents": [
        "69914e3297fd47bc16403d28929e9bfb85516bfb"
      ],
      "author": {
        "name": "Raul Tambre",
        "email": "raul@tambre.ee",
        "time": "Tue Oct 21 21:28:41 2025 +0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 21 11:30:21 2025 -0700"
      },
      "message": "[NFCI][asm][i386/x86-64] Enable AT\u0026T syntax explicitly (#164453)\n\nImplementation files using the Intel syntax explicitly specify it.\nDo the same for the few files using AT\u0026T syntax.\n\nThis also enables building LLVM with `-mllvm -x86-asm-syntax\u003dintel` in one\u0027s Clang config files\n(i.e. a global preference for Intel syntax).\n\nNo functional change intended.\n\nGitOrigin-RevId: c208a23643231d0b19c6f795895a16dfe6797340\n"
    },
    {
      "commit": "69914e3297fd47bc16403d28929e9bfb85516bfb",
      "tree": "230b4751e2c31849b776c08a2da432462cdb5c15",
      "parents": [
        "b7ccbc69007671b798e1fc44b9bb4b4d75b17c0f"
      ],
      "author": {
        "name": "Oliver Hunt",
        "email": "oliver@apple.com",
        "time": "Mon Oct 20 09:57:45 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 20 10:00:34 2025 -0700"
      },
      "message": "[runtimes][PAC] Harden unwinding when possible (#143230)\n\nThis hardens the unwinding logic and datastructures on systems\nthat support pointer authentication.\n\nThe approach taken to hardening is to harden the schemas of as many\nhigh value fields in the myriad structs as possible, and then also\nexplicitly qualify local variables referencing privileged or security\ncritical values.\n\nThis does introduce ABI linkage between libcxx, libcxxabi, and\nlibunwind but those are in principle separate from the OS itself\nso we\u0027ve kept the schema definitions in the library specific headers\nrather than ptrauth.h\n\nGitOrigin-RevId: e6a1aff5916447630e9ec0e8a90594ca1ee7a1be\n"
    },
    {
      "commit": "b7ccbc69007671b798e1fc44b9bb4b4d75b17c0f",
      "tree": "5f246fa43dc6782f47c43cb513e74745a0526361",
      "parents": [
        "5a783dd2ed4abd1e000fae2d45a4c0048b11e852"
      ],
      "author": {
        "name": "Martin Storsjö",
        "email": "martin@martin.st",
        "time": "Thu Oct 16 22:47:08 2025 +0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 16 12:50:44 2025 -0700"
      },
      "message": "[libunwind] Fix aarch64 SEH unwinding with a debugger attached (#162867)\n\nSee https://github.com/LuaJIT/LuaJIT/issues/593#issuecomment-1717728494\nfor the original explanation of the problem.\n\nIn short; when a debugger is attached, there\u0027s a\nfunction KiUserExceptionDispatcher in the stack that is being unwound.\nThe function KiUserExceptionDispatcher contains a CONTEXT, with a copy\nof the context from where the exception was raised. When unwinding\nthrough this function, this whole CONTEXT gets restored.\n\nThis CONTEXT is what we receive a pointer to in the callbacks, as the\nms_ctx pointer.\n\nWhen we unwind manually using RtlUnwindEx, the unwinding overwrites the\nCONTEXT that is passed to it. Thus, to avoid clobbering the CONTEXT that\nneeds to be restored by KiUserExceptionDispatcher, we could either\ndeclare a new temporary CONTEXT on the stack before calling RtlUnwindEx,\nor just use disp-\u003eContextRecord as we already have available.\n\nFixes: https://github.com/llvm/llvm-project/issues/161851\n\nCo-authored-by: Peter Cawley \u003ccorsix@corsix.org\u003e\nCo-authored-by: Hannes Domani \u003cssbssa@yahoo.de\u003e\nGitOrigin-RevId: a17afee7ec41e53292f074fc967d264452e4363b\n"
    },
    {
      "commit": "5a783dd2ed4abd1e000fae2d45a4c0048b11e852",
      "tree": "be1cb5fa0a67e90eff014e3662c1cc8b3b009cc3",
      "parents": [
        "3ae8444fee0ceb3ef5742308b1683a8f4219ff7f"
      ],
      "author": {
        "name": "小钟",
        "email": "2211261685@qq.com",
        "time": "Mon Oct 13 03:03:40 2025 +0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Oct 12 12:05:52 2025 -0700"
      },
      "message": "Fix typo: IsGlobaLinkage -\u003e IsGlobalLinkage in XCOFF (#161960)\n\nCorrects the spelling of \u0027IsGlobaLinkage\u0027 to \u0027IsGlobalLinkage\u0027 in\nXCOFF-related code, comments, and tests across the codebase.\n\nGitOrigin-RevId: e6358ab75c0928bc7d8356e60f25c4f97bab9533\n"
    },
    {
      "commit": "3ae8444fee0ceb3ef5742308b1683a8f4219ff7f",
      "tree": "ed5af8afb4bfded3791337a669d56451df68c441",
      "parents": [
        "7d87a21982fa1ac4d7d093361f7f13141bbfa058"
      ],
      "author": {
        "name": "Arjun Ramesh",
        "email": "90422058+arjunr2@users.noreply.github.com",
        "time": "Sat Oct 11 03:24:25 2025 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 10 14:56:45 2025 -0700"
      },
      "message": "[WebAssembly] Support for new target `wasm32-linux-muslwali` (#162581)\n\nAdd toolchain support for the\n[WALI](https://doc.rust-lang.org/rustc/platform-support/wasm32-wali-linux.html)\ntarget as per its corresponding\n[RFC](https://discourse.llvm.org/t/rfc-new-wasm-linux-target-support/88203)\n\nGitOrigin-RevId: 7e7c923b5890e62f4b5920c2f8a2e51f586a186c\n"
    },
    {
      "commit": "7d87a21982fa1ac4d7d093361f7f13141bbfa058",
      "tree": "152f5b019798fc456910fe9d90a28b4811acb836",
      "parents": [
        "f745ad2748e77b5852e60bdcdc480273d7cde6f0"
      ],
      "author": {
        "name": "Aiden Grossman",
        "email": "aidengrossman@google.com",
        "time": "Thu Oct 09 16:52:42 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 09 16:55:33 2025 -0700"
      },
      "message": "[libcxx] Use %{temp} instead of %T (#162323)\n\nBased on review feedback in #160026.\n\nThis makes the substitution a lot more clear now that there is no\ndocumentation around %T.\n\n---------\n\nCo-authored-by: Louis Dionne \u003cldionne.2@gmail.com\u003e\nGitOrigin-RevId: 0c2913afc82a683d82f16f09442d49b1fb25ca67\n"
    },
    {
      "commit": "f745ad2748e77b5852e60bdcdc480273d7cde6f0",
      "tree": "3e6d5dd9cd0decf3a77a224dc309302eaac22da9",
      "parents": [
        "07d96b34b0d83aee8c4f7a16f90a1e2a63db825c"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Thu Oct 09 09:00:20 2025 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 09 06:02:22 2025 -0700"
      },
      "message": "[runtimes][NFC] Consistently declare main() functions in tests (#162548)\n\nIn the libc++ test suite, we consistently declare main() functions with\nfull parameters and explicitly return from the function. This helps code\nthat compiles the tests with -ffreestanding, where main() is not a\nspecial function (with an implicit return and special mangling).\n\nThis patch fixes a few stray declarations, including in libunwind and\nlibc++abi.\n\nGitOrigin-RevId: 4f80c064eb2933c00c0ba9b7826aa3631cf3b5c2\n"
    },
    {
      "commit": "07d96b34b0d83aee8c4f7a16f90a1e2a63db825c",
      "tree": "230201e9cb4a24d57398a0514a6a4b15e8a59ed9",
      "parents": [
        "a5ed5b5f1261e85adc3eda266e949143d8f454da"
      ],
      "author": {
        "name": "Wu Yingcong",
        "email": "yingcong.wu@intel.com",
        "time": "Thu Oct 02 07:42:43 2025 +0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 01 16:45:29 2025 -0700"
      },
      "message": "[libunwind][test] Add check for objcopy to improve test compatibility (#161112)\n\nPreviously, we only used `objcopy`, which is not available for some\nbuild configurations. With this patch, we not only try to use `objcopy`,\nbut also try to use `llvm-objcopy` if available.\n\nThis is a follow-up of https://github.com/llvm/llvm-project/pull/156383.\n\nGitOrigin-RevId: 4aaf6d1b8cc655f37a1a4ab8f7a7988dbef4eeae\n"
    },
    {
      "commit": "a5ed5b5f1261e85adc3eda266e949143d8f454da",
      "tree": "f717deb8300466c93406cb3d8980006b0083878b",
      "parents": [
        "c7727f6815203651942418c9e03012223c4398fc"
      ],
      "author": {
        "name": "Jade Marker",
        "email": "jade.marker153@gmail.com",
        "time": "Thu Sep 25 02:20:25 2025 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 24 18:25:46 2025 -0700"
      },
      "message": "[Mips] Fixed libunwind::Registers_mips_o32::jumpto to allow for load delay (#152942)\n\nFix #152922\n\nMIPS III also has load delay, so\nlibunwind::Registers_mips_newabi::jumpto() is also fixed.\nGitOrigin-RevId: a3d7c468bdc328f04da720088b2e542ef1f33ffc\n"
    },
    {
      "commit": "c7727f6815203651942418c9e03012223c4398fc",
      "tree": "43dd69e117f365f384fde23246dc5a2b74e1a48e",
      "parents": [
        "eb6b57b070e98204080febaa097f72ed8120cf26"
      ],
      "author": {
        "name": "David Spickett",
        "email": "david.spickett@linaro.org",
        "time": "Mon Sep 15 09:20:58 2025 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 15 01:25:29 2025 -0700"
      },
      "message": "[libcxx][CI] Use lld for everything in the ARM picolib builds (#158320)\n\nOur host compiler is a clang install that will default to ld if not told\notherwise.\n\nWe were telling meson to use lld, but the way that we did it was\noutdated, which lead to picolib producing a linker script that lld could\nnot use. The tests were in fact linking with ld instead.\n\nUsing the `c_ld` setting fixes this problem. See:\nhttps://mesonbuild.com/Machine-files.html#binaries\n\nThen to use lld in tests we need `-fuse-ld\u003dlld` in the config files.\n\nSome of these options were not needed for clang 19.1.7, but were for\nclang 21.1.1. We will soon update to 21.1.1 so I have included all of\nthe required options in this PR.\n\nGitOrigin-RevId: e85926545e6313fd3c5c6147e82db42132c389ac\n"
    },
    {
      "commit": "eb6b57b070e98204080febaa097f72ed8120cf26",
      "tree": "56b7dee1ede417f3298d2ba675676a57cb2ee68c",
      "parents": [
        "3a785fe95881506aac25e17a2d0d623e260340de"
      ],
      "author": {
        "name": "Wu Yingcong",
        "email": "yingcong.wu@intel.com",
        "time": "Tue Sep 02 19:30:44 2025 +0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 02 04:35:59 2025 -0700"
      },
      "message": "[libunwind][test] set fed test to require x86 as others arch may have cross toolchain build (#156383)\n\nIn https://github.com/llvm/llvm-project/pull/154902, the test failed\nwith llvm-clang-win-x-aarch64(it is a cross-build, which builds on\nWindows and run on Linux, \"Win to Aarch64 Linux Ubuntu Cross\nToolchain\"), and objdump is not available on Windows(the build env).\nSet to require x86 Linux instead.\n\nGitOrigin-RevId: 1af19772e62419809326b67994dc727e237994c2\n"
    },
    {
      "commit": "3a785fe95881506aac25e17a2d0d623e260340de",
      "tree": "bb45ee067133fe20acdbe0a7858c1590d577ba90",
      "parents": [
        "04f8ca97066579f2c7a3d5e0642d5ac16a48b844"
      ],
      "author": {
        "name": "Wu Yingcong",
        "email": "yingcong.wu@intel.com",
        "time": "Mon Sep 01 09:15:52 2025 +0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Aug 31 18:20:53 2025 -0700"
      },
      "message": "[libunwind] fix pc range condition check bug (#154902)\n\nThere is an off-by-one error with current condition check for PC fallen\ninto the range or not. There is another check within libunwind that use\nthe correct checks in\nhttps://github.com/llvm/llvm-project/blob/5050da7ba18fc876f80fbeaaca3564d3b4483bb8/libunwind/src/UnwindCursor.hpp#L2757\n```\n      if ((fdeInfo.pcStart \u003c\u003d pc) \u0026\u0026 (pc \u003c fdeInfo.pcEnd))\n```\n\nGitOrigin-RevId: e57f0e928d7b92f536a646d8ba1c26916b09e67e\n"
    },
    {
      "commit": "04f8ca97066579f2c7a3d5e0642d5ac16a48b844",
      "tree": "9e997f680f5eab43b8a634182c201a0a62ce9e3e",
      "parents": [
        "d5916281be6000a0499d668633622dbd625ab23a"
      ],
      "author": {
        "name": "Benjamin Maxwell",
        "email": "benjamin.maxwell@arm.com",
        "time": "Thu Aug 21 10:01:40 2025 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 21 02:05:11 2025 -0700"
      },
      "message": "[libunwind] Add support for the AArch64 \"Vector Granule\" (VG) register (#153565)\n\nThe vector granule (AArch64 DWARF register 46) is a pseudo-register that\ncontains the available size in bits of SVE vector registers in the\ncurrent call frame, divided by 64. The vector granule can be used in\nDWARF expressions to describe SVE/SME stack frame layouts (e.g., the\nlocation of SVE callee-saves).\n\nThe first time VG is evaluated (if not already set), it is initialized\nto the result of evaluating a \"CNTD\" instruction (this assumes SVE is\navailable).\n\nTo support SME, the value of VG can change per call frame; this is\ncurrently handled like any other callee-save and is intended to support\nthe unwind information implemented in #152283. This limits how VG is\nused in the CFI information of functions with \"streaming-mode changes\"\n(mode changes that change the SVE vector length), to make the unwinder\u0027s\njob easier.\n\nGitOrigin-RevId: bfab8085af878dbcafaf5dfac4e34dc17a20971c\n"
    },
    {
      "commit": "d5916281be6000a0499d668633622dbd625ab23a",
      "tree": "39e128b1b13fa4800b9c4edb047900f6071a1a40",
      "parents": [
        "7ed360f68faf2e61dfa9e34f4da998e65f8c4038"
      ],
      "author": {
        "name": "David Tenty",
        "email": "daltenty@ibm.com",
        "time": "Wed Aug 20 12:45:41 2025 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 20 09:50:38 2025 -0700"
      },
      "message": "[NFC][CMake] quote ${CMAKE_SYSTEM_NAME} consistently (#154537)\n\nA CMake change included in CMake 4.0 makes `AIX` into a variable\n(similar to `APPLE`, etc.)\nhttps://gitlab.kitware.com/cmake/cmake/-/commit/ff03db6657c38c8cf992877ea66174c33d0bcb0b\n\nHowever, `${CMAKE_SYSTEM_NAME}` unfortunately also expands exactly to\n`AIX` and `if` auto-expands variable names in CMake. That means you get\na double expansion if you write:\n\n`if (${CMAKE_SYSTEM_NAME}  MATCHES \"AIX\")`\nwhich becomes:\n`if (AIX  MATCHES \"AIX\")`\nwhich is as if you wrote:\n`if (ON MATCHES \"AIX\")`\n\nYou can prevent this by quoting the expansion of \"${CMAKE_SYSTEM_NAME}\",\ndue to policy\n[CMP0054](https://cmake.org/cmake/help/latest/policy/CMP0054.html#policy:CMP0054)\nwhich is on by default in 4.0+. Most of the LLVM CMake already does\nthis, but this PR fixes the remaining cases where we do not.\n\nGitOrigin-RevId: 63195d3d7a8bde05590f91a38398f986bb4265b2\n"
    },
    {
      "commit": "7ed360f68faf2e61dfa9e34f4da998e65f8c4038",
      "tree": "29570535a615357e2ec9d9e6d140bd93d9273ca7",
      "parents": [
        "692bcc4f2cdff61919c66262ec985e2ac27786a1"
      ],
      "author": {
        "name": "Alex Rønne Petersen",
        "email": "alex@alexrp.com",
        "time": "Wed Jul 23 00:03:19 2025 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jul 22 15:05:55 2025 -0700"
      },
      "message": "[libunwind] Fix return type of `DwarfFDECache::findFDE()` in definition (#146308)\n\nNeeded to resolve this compilation error on some systems:\n\nlib/libunwind/src/UnwindCursor.hpp:153:38: error: return type of\nout-of-line definition of \u0027libunwind::DwarfFDECache::findFDE\u0027 differs\nfrom that in the declaration\n    typename A::pint_t DwarfFDECache\u003cA\u003e::findFDE(pint_t mh, pint_t pc) {\n    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^\nlib/libunwind/src/libunwind.cpp:31:10: note: in file included from\nlib/libunwind/src/libunwind.cpp:31:\n    #include \"UnwindCursor.hpp\"\n             ^\nlib/libunwind/src/UnwindCursor.hpp:100:17: note: previous declaration is\nhere\n      static pint_t findFDE(pint_t mh, pint_t pc);\n             ~~~~~~~^\n\nGitOrigin-RevId: eb0d8f9272f7c734cdaf31bc33a18e1619e021e4\n"
    },
    {
      "commit": "692bcc4f2cdff61919c66262ec985e2ac27786a1",
      "tree": "1f81b5d6b9c9f219e0a37f112e6724cdeacc0730",
      "parents": [
        "834db899be0632a61dd2f56c55896511e1e28725"
      ],
      "author": {
        "name": "Petr Hosek",
        "email": "phosek@google.com",
        "time": "Wed Jul 09 00:48:50 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jul 09 00:50:37 2025 -0700"
      },
      "message": "[libcxxabi][libunwind] Support for using LLVM libc (#134893)\n\nThis generalizes the support added in #99287 renaming the option to\nRUNTIMES_USE_LIBC and integrating the module into libc++abi and\nlibunwind as well.\n\nGitOrigin-RevId: 9d3b60dea7ad81f6cb0d9f2e51bb6c80c03fa2d4\n"
    },
    {
      "commit": "834db899be0632a61dd2f56c55896511e1e28725",
      "tree": "6319e5bf5f8361deb98b4a22cc2f90a1a025ac43",
      "parents": [
        "b3a451c9427e9bc2907af8e6ee6c84ef815b0785"
      ],
      "author": {
        "name": "Khem Raj",
        "email": "raj.khem@gmail.com",
        "time": "Wed Jun 11 20:22:08 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 11 20:26:27 2025 -0700"
      },
      "message": "libunwind: Do not use  __attribute__((target(\"gcs\"))) with non-clang compilers (#138077)\n\nThis attribute is unsupported in GCC, so far it worked because before\nGCC15 did not define this macros in _CHKFEAT_GCS in arm_acle.h [1]\n\nWith gcc15 compiler libunwind\u0027s check for this macros is succeeding and\nit ends up enabling \u0027gcs\u0027 by using function attribute, this works with\nclang but not with gcc.\n\nWe can see this in rust compiler bootstrap for aarch64/musl when system\nuses gcc15, it ends up with these errors\n\nBuilding libunwind.a for aarch64-poky-linux-musl\n```\ncargo:warning\u003d/mnt/b/yoe/master/sources/poky/build/tmp/work/cortexa57-poky-linux-musl/rust/1.85.1/rustc-1.85.1-src/src/llvm-project/libunwind/src/UnwindLevel1.c:191:1: error: arch extension \u0027gcs\u0027 should be prefixed by \u0027+\u0027 cargo:warning\u003d  191 | unwind_phase2(unw_context_t *uc, unw_cursor_t *cursor, _Unwind_Exception *exception_object) {\ncargo:warning\u003d      | ^~~~~~~~~~~~~\ncargo:warning\u003d/mnt/b/yoe/master/sources/poky/build/tmp/work/cortexa57-poky-linux-musl/rust/1.85.1/rustc-1.85.1-src/src/llvm-project/libunwind/src/UnwindLevel1.c:337:22: error: arch extension \u0027gcs\u0027 should be prefixed by \u0027+\u0027\ncargo:warning\u003d  337 |                      _Unwind_Stop_Fn stop, void *stop_parameter) {\ncargo:warning\u003d      |                      ^~~~~~~~~~~~~~~\n```\n\n[1] https://gcc.gnu.org/git/?p\u003dgcc.git;a\u003dcommit;h\u003d5a6af707f0af\n\nSigned-off-by: Khem Raj \u003craj.khem@gmail.com\u003e\nGitOrigin-RevId: b46f34452e9dec50eee6ddbe07875f05e421a81c\n"
    },
    {
      "commit": "b3a451c9427e9bc2907af8e6ee6c84ef815b0785",
      "tree": "a769a6fc4edde3cf0a8e0eccd370a5fdcdc9583d",
      "parents": [
        "36e62ae4f441bb0623a71ab1fb1b2eb4a2d3f822"
      ],
      "author": {
        "name": "Nikolas Klauser",
        "email": "nikolasklauser@berlin.de",
        "time": "Wed Jun 11 11:43:34 2025 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 11 02:45:52 2025 -0700"
      },
      "message": "[libunwind] Remove checks for -nostdlib++ (#143162)\n\nlibunwind uses a C linker, so it\u0027s never even trying to link against any\nC++ libraries. This removes the code which tries to drop C++ libraries,\nwhich makes the CMake configuration simpler and allows for upgrading\nGCC.\n\nGitOrigin-RevId: c59cc2b690b9e528a82ba214f74a8f7c8abb3cde\n"
    },
    {
      "commit": "36e62ae4f441bb0623a71ab1fb1b2eb4a2d3f822",
      "tree": "ddf11c5361a7036cb9b7423bb0d9efe4b3a7f0fd",
      "parents": [
        "22c10ec03b01a6183b5c39d2e459783a1968d511"
      ],
      "author": {
        "name": "Trung Nguyen",
        "email": "57174311+trungnt2910@users.noreply.github.com",
        "time": "Thu May 29 12:18:55 2025 +1000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 28 19:21:42 2025 -0700"
      },
      "message": "[libunwind][Haiku] Fix signal frame unwinding (#135367)\n\nThe current unwinding implementation on Haiku is messy and broken.\n1. It searches weird paths for private headers, which is breaking builds\nin consuming projects, such as dotnet/runtime.\n2. It does not even work, due to relying on incorrect private offsets.\n\nThis commit strips all references to private headers and ports a working\nsignal frame implementation. It has been tested against\n`tests/signal_unwind.pass.cpp` and can go pass the signal frame.\n\nGitOrigin-RevId: 1d9ef8211f399a57849d0bc47cb86bf594bac364\n"
    },
    {
      "commit": "22c10ec03b01a6183b5c39d2e459783a1968d511",
      "tree": "095e62c242af0181cd374e55e00a56e64437ab2c",
      "parents": [
        "0420f87a9231f05e1521172953919247d6620b2f"
      ],
      "author": {
        "name": "Jacek Caban",
        "email": "jacek@codeweavers.com",
        "time": "Tue May 13 06:12:16 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 13 06:17:52 2025 -0700"
      },
      "message": "[libunwind] Add initial ARM64EC support (#138583)\n\nARM64EC defines `__x86_64__`, which is sufficient to make most C/C++\ncode behave correctly. To preserve an external ABI compatible with\nx86_64, this patch uses the x86_64 context layout and implements\n`unw_getcontext` by storing the appropriate aarch64 registers according\nto the mapping defined by the ARM64EC ABI.\n\nGitOrigin-RevId: 84c1564d1825880d463d9f85153812f1f6805289\n"
    },
    {
      "commit": "0420f87a9231f05e1521172953919247d6620b2f",
      "tree": "401f22bcf36b89d9c0fda10b2fe6612fef1c1e3b",
      "parents": [
        "0c32b37bbfd87e0c62f4724f35323f2a87a953cc"
      ],
      "author": {
        "name": "Raul Tambre",
        "email": "raul@tambre.ee",
        "time": "Mon May 12 22:59:39 2025 +0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 12 13:03:04 2025 -0700"
      },
      "message": "[cmake] Normalize TARGET_SUBDIR paths (#138524)\n\nSome code paths normalize \"..\" and thus don\u0027t create the directory. But some execute in a\nshell thus requiring the directory to exist to be able to take the parent directory.\n\nThis patch normalizes all the `TARGET_SUBDIR` variables to avoid this issue.\n\nGitOrigin-RevId: fc3b67aee852d99bbb5d2f4670695d8246375dac\n"
    },
    {
      "commit": "0c32b37bbfd87e0c62f4724f35323f2a87a953cc",
      "tree": "57f8e801baa90ad70be9992e6f3956f176bd811d",
      "parents": [
        "fdc4fe1a1954009e2fa891abd2a71dc193861b45"
      ],
      "author": {
        "name": "Martin Storsjö",
        "email": "martin@martin.st",
        "time": "Fri May 09 16:04:57 2025 +0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 09 06:09:03 2025 -0700"
      },
      "message": "[libunwind] [SEH] Set NonVolatileRegisters before calling a personality function (#137951)\n\nThe CRT __C_specific_handler function uses this for restoring registers\nbefore calling the filter function.\n\nThis fixes the libunwind/libcxxabi forced unwind testcases on ARM and\nAArch64.\n\nGitOrigin-RevId: 9c67ae861ccb0312fc680414a8441892d169d14a\n"
    },
    {
      "commit": "fdc4fe1a1954009e2fa891abd2a71dc193861b45",
      "tree": "20ec401de6eeff72ca5470ab629b5c33d7d26c94",
      "parents": [
        "ebdb5ea4a6a5fa776ca1ac0ff65dad2f7cf1f4e5"
      ],
      "author": {
        "name": "Martin Storsjö",
        "email": "martin@martin.st",
        "time": "Fri May 09 16:04:14 2025 +0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 09 06:08:57 2025 -0700"
      },
      "message": "[libunwind] [SEH] Implement parsing of ARM pdata/xdata (#137950)\n\nThis is generally very similar to the aarch64 case.\n\nContrary to aarch64, the public headers don\u0027t contain any definition of\na struct for interpreting this data, so we provide our own.\n\nGitOrigin-RevId: fc83aaea06eb06f73ac53491dd16346b56ba5a2f\n"
    },
    {
      "commit": "ebdb5ea4a6a5fa776ca1ac0ff65dad2f7cf1f4e5",
      "tree": "100f8aa7f864295c596627d7fad5b2a52941cdf5",
      "parents": [
        "3eaab617b926dd9e1f05589e89b3d6092aa615d5"
      ],
      "author": {
        "name": "Martin Storsjö",
        "email": "martin@martin.st",
        "time": "Fri May 09 11:08:38 2025 +0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 09 01:13:19 2025 -0700"
      },
      "message": "[libunwind] [SEH] Implement parsing of aarch64 pdata/xdata (#137949)\n\nThis is needed for forced unwind, for some testcases in\nlibunwind/libcxxabi.\n\nThis adds an aarch64 case for extracting the LanguageHandler and\nHandlerData fields from unwind info, in UnwindCursor::getInfoFromSEH,\ncorresponding to the existing case for x86_64.\n\nThis uses the struct IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_XDATA; this only\nbecame available in WinSDK 10.0.19041.0 and mingw-w64 v11.0 (or a\nmingw-w64 git snapshot after April 2023).\n\n(This is only a build-time requirement though; the format for the unwind\ndata has been fixed since the start of Windows 10 on ARM64, so this\ndoesn\u0027t impose any runtime requirement.)\n\nGitOrigin-RevId: 2e436b15d30689c4525da3c8d4467a1c70e509f5\n"
    },
    {
      "commit": "3eaab617b926dd9e1f05589e89b3d6092aa615d5",
      "tree": "bde2aec65ff76a7078e1b0e2515d498fedeb73ce",
      "parents": [
        "c7fe1ce5f4fa5099178851a052b9b3e7c3e076fa"
      ],
      "author": {
        "name": "Firas Khalil Khana",
        "email": "firasuke@gmail.com",
        "time": "Sun Apr 13 19:41:30 2025 +0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Apr 13 09:45:55 2025 -0700"
      },
      "message": "Update LIBUNWIND_ENABLE_WERROR default value in BuildingLibunwind.rst (#135546)\n\n`LIBUNWIND_ENABLE_WERROR` defaults to `OFF` according to\n[CMakeLists.txt](https://github.com/llvm/llvm-project/blob/main/libunwind/CMakeLists.txt#L43).\n\nGitOrigin-RevId: dd107b20daedbc49dc3003ae2cb2e846267c308c\n"
    }
  ],
  "next": "c7fe1ce5f4fa5099178851a052b9b3e7c3e076fa"
}
