Skip to content

feat(relinker): support SSE guest GS memory accesses - #11689

Open
Felipebmaitan wants to merge 35 commits into
boykopovar:mainfrom
Felipebmaitan:feat/windows-guest-gs-sse
Open

Felipebmaitan wants to merge 35 commits into
boykopovar:mainfrom
Felipebmaitan:feat/windows-guest-gs-sse

Conversation

@Felipebmaitan

@Felipebmaitan Felipebmaitan commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

What

Execute a bounded set of legacy SSE memory moves using the per-thread guest GS base on Windows: MOVUPS/MOVUPD, MOVAPS/MOVAPD, MOVDQU/MOVDQA, MOVSS/MOVSD, MOVD/MOVQ, and MOVLPS/MOVLPD/MOVHPS/MOVHPD. The relinker removes guest GS/addressing prefixes only after recording the original effective address, then replays the native operation through the existing protected GS frame. Native execution supplies the original transfer width, alignment checks, scalar zeroing, partial lanes, MXCSR and vector-state behavior. XMM4/XMM12 are vector operands, so they no longer hit the scalar SP/ESP/RSP refusal. Selected plain SSE memory followers of short scalar GS instructions also use replay without adding GS.

Unsupported SSE arithmetic/conversions, MMX, non-temporal moves, mixed/repeated mandatory prefixes, LOCK, VEX/EVEX/XOP and unmodeled forms retain the own-length UD2/NOP fallback; unused instructions do not block conversion. Precise FreeBSD signal delivery, debugger stepping, external context manipulation, self-modifying code and JIT code remain unsupported and recorded in existing debt. SSE2 is the x86-64 baseline; AVX is used only conditionally by tests to verify that legacy instructions preserve upper YMM state. This PR does not implement VEX guest-GS forms.

Depends on #11661 at bd67c1b, including its maintainer-requested short-borrowing fallback. Unsafe borrowed roots, branches, relocations and independently decoded GS/state streams preserve the original GS trap and following bytes, with no orphan replay records or GS runtime requirement. The prerequisite fix was made and validated on PR 3 before integration here. PR 4 adds executable/module SSE follower regressions, positive replay controls and comparison against ordinary relocated follower bytes.

Main remains the intended target. Incremental review: Felipebmaitan/AnyPS5@199f953...feat/windows-guest-gs-sse . The main-target diff includes the unmerged prerequisites; the SSE increment changes 11 files and adds no production runtime API. Merge order is #11624, #11090 and #10518 before #11628, then #11661, then this PR. #11276 is merged upstream. The final scan also flags #10861's existing debt-file conflict, inherited from the prerequisite baseline; this PR declares #10861 as an additional merge-order dependency, to land first and reconcile that debt when updating this branch. Its implementation is not copied into this PR and combined runtime behavior has not been validated. Exact prerequisite commits retain original authorship; no agreement with other authors is implied and no comments/messages were posted to them. Current main abed035 is an ancestor. Pre-existing dirty submodule work is excluded.

Both requested micro/macro adversarial reviews completed. Neither found a new SSE correctness defect. The micro review independently exercised 450 additional address cases, including absolute SIB and RBX/RSI as base/index aliases of the replay scratch register. The macro review independently executed a borrowed RIP-relative MOVUPS and confirmed complete Windows/native Linux output equality, then rechecked real-libc address/fault groups. Its integration concern about PR 3's requested fallback is fixed in the prerequisite and covered here.

Review propagation at 94e7acfc8513733960c91e5119680f4b35b2736a: inherited the scalar PR's new address-size execution coverage through the prerequisite stack. This layer already had the same four cases, so the guest-GS feature source/tests remain unchanged from its previously reviewed head. The immediate prerequisite is now 199f953a4f26fe08b3a5bfb6267e76e72ad8396e. Current main b986c11 is an ancestor. After propagation, actual production libc/libkernel component builds and 15 Windows runtime/startup/relinker tests plus 14 Linux runtime/relinker tests passed; every selected test remained below 30 seconds. No console/title or performance verification is claimed; the documented full graphics/media build limitation remains.

Collaborator integration follow-up at 60cd7a6c827922533ee28d036eefe6186e37bdbc: current main 20cfe35 is now an ancestor, including the merged #11090 entry-root protection (33b48ba). The immediate prerequisite is now 339b7e0fd9bafe4bccbebb27777bb05752534b46, carrying #11624's removal of the two Windows FS refusal assertions. The production FS refusal and guest-GS behavior remain unchanged. The existing pre-patch GS entry-root checks and regression registration are retained. Fresh production libc/libkernel component builds passed on Windows and Linux/WSL, followed by 15 Windows and 14 Linux selected runtime/relinker checks; each completed within 30 seconds. #11090 and #11276 are merged upstream; #10518 and the remaining declared prerequisites still apply. No console/title or performance verification is claimed.

Tested

Windows x86-64 with WinLibs GCC 15.2 UCRT; native Linux x86-64 under WSL (imav-tao) with GCC 13.3. Synthetic native ISA and emitted executable/module fixtures only. No PS5, title, title-unblock or performance verification is claimed; no paired performance captures were performed.

  • Reachable before/after: the PR 3 converter traps a generated GS MOVUPS load with Windows exception 0xc000001d; this converter executes the same supported operation successfully.
  • 351 final Windows/native Linux state fixtures match exactly: 92 packed, 60 scalar, 48 partial-lane, 81 addressing and 70 fault cases. Checks cover all XMM0-15, available upper YMM state, MXCSR, arithmetic/direction flags, scratch registers, red-zone sentinels and exact memory footprints. Addresses include SIB/extended registers, RSP, RIP/EIP, address-size wrap, negative offsets, misalignment and GS-base alignment compensation.
  • Alignment and cross-page load/store faults preserve original instruction/fault addresses and state; handlers repair/retry, retry twice or skip the faulting instruction. Exact-page-end operations do not overread/overwrite the next page. Borrowed SSE load/store retries do not repeat the preceding scalar GS increment. Native partial writes on faulting cross-page stores are allowed only within the actual footprint; no 128-bit atomicity claim.
  • The 450 independent micro-review cases also match Windows/native Linux exactly; the independent borrowed RIP-relative macro fixture matches too. These were separate probes, not extra committed CI cases.
  • 13 unsupported-form regressions check emitted UD2, reachable Windows failure and successful execution when skipped. New borrowed-SSE tests cover roots/branches, executable/module relocations and overlapping streams, untouched follower bytes after normal relocations, no discarded metadata/dependency, and positive replay controls.
  • 61/61 focused Windows relinker tests passed after integration, including GS scalar/SSE, short fallback, entry protections, relocations, TLS, imports and guest modules. 13/13 Windows production-libc/libkernel runtime/startup tests passed. Direct emitted executable startup and a guest-module initializer whose SSE-written value controls the imported function result execute successfully; missing/state-only/replay-only runtime diagnostics remain covered.
  • Actual production libc/libkernel components build on Windows and Linux, with sysarch, thread independence/inheritance, frame-chain, join/detach and thread-self checks. The final Linux SSE groups and seven focused runtime/relinker tests passed. The prerequisite PR 3 was independently validated before pushing: 55 Windows focused checks, seven Windows runtime/startup checks, seven Linux checks and 70 exact Windows/native Linux scalar execution comparisons. Each selected CI test finished below 30 seconds locally (the final Windows runtime maximum was 8.48 s).
  • Full-project configuration was attempted again and is blocked by missing SDL2 and ffmpeg-core source directories in this worktree. The successful component builds are not a claim that the complete graphics/media build passed. macOS was not run.
  • python tools/check_conventions.py --base origin/main, the public-header audit (368 libraries, 12369 exports), and whitespace checks passed. No new third-party code or submodule changes.

Reproduce the SSE groups with ctest --test-dir <relinker-build> -R '^windows_guest_gs_sse_' --output-on-failure; each group has a 30-second timeout. Full-build Windows testing additionally registers windows_guest_gs_sse_runtime_* against the production libc and windows_guest_gs_startup for emitted program startup. Native Linux runs the same encoded fixtures with native GS set through arch_prctl; the Python test supports --digest for comparison by case key.

Maintenance validation (2026-10-29): exact head 7f992f4931a6bcf3b1e255d3b9a06c164ea79751, including main 1189ec3003672bb364dd9f3119ead7b3976e3c83. Complete production libc/libkernel component builds and 23 selected Windows / 14 Linux/WSL runtime/relinker checks passed independently for this layer, each under 30 seconds. Conventions passed against origin/main. Linux follow-up layers used immutable commit snapshots and separate native WSL build outputs. Full graphics/media configuration remains blocked by missing SDL2/FFmpeg sources; no PS5, title or speed verification. Maintainer changes are preserved.

Checklist

Live overlap scan and manual comparison limits

python tools/pr_overlap.py --branch feat/windows-guest-gs-sse completed before opening. The scan's incomplete comparisons are retained below; they are not a claim that all open PR combinations were validated. For the SSE increment relative to #11661, file-level three-way checks covered 13 shared files across seven PRs that the initial scan could not compare: #5021, #6713, #10861, #10970, #10983, #11107 and #11366. No new file-level conflict was introduced beyond #11661's baseline. Existing CMake/debt conflicts remain in stale combinations; no combined-runtime validation of those branches was performed. #10861's source changes merge at file level; the final scan now reports its pre-existing debt conflict directly. It is declared above as a merge-order dependency, rather than claiming the overlap is clear.

Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.

Pull request Conflicting files (lines on main) Same exports Same new files
PR 10861 docs/dev/debt/relinker.md L29-31, L36-37

Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.

Pull request Shared files not compared
PR 3986 core/libs/prx/libkernel/Pthread/src/Thread.cpp
PR 4563 core/libs/prx/libkernel/Pthread/src/Thread.cpp
PR 4630 core/libs/prx/libkernel/System/src/Exception.cpp
docs/dev/debt/libkernel.md
PR 5021 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libkernel/Pthread/src/Thread.cpp
core/libs/prx/libkernel/System/src/Exception.cpp
core/libs/prx/libkernel/System/src/Process.cpp
core/relinker/CMakeLists.txt
docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
docs/dev/debt/relinker.md
PR 6149 docs/dev/debt/libkernel.md
PR 6713 core/libs/prx/libc/CMakeLists.txt
core/relinker/CMakeLists.txt
core/relinker/elfpatcher/src/windows/WindowsPePatcher.cpp
docs/dev/debt/libc.md
PR 6936 docs/dev/debt/libkernel.md
PR 7081 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 7088 docs/dev/debt/libkernel.md
PR 7105 docs/dev/debt/libkernel.md
PR 7121 docs/dev/debt/libkernel.md
PR 7149 core/libs/prx/libkernel/Pthread/src/Thread.cpp
docs/dev/debt/libkernel.md
PR 7192 core/libs/prx/libc/src/specifics/windows/CrashReport.cpp
core/libs/prx/libkernel/System/src/Exception.cpp
docs/dev/debt/libkernel.md
PR 7201 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libkernel/Pthread/src/Thread.cpp
core/libs/prx/libkernel/System/src/Exception.cpp
core/libs/prx/libkernel/System/src/Process.cpp
PR 7386 docs/dev/debt/libc.md
PR 7447 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
PR 7509 docs/dev/debt/libkernel.md
PR 7544 docs/dev/debt/libc.md
PR 7648 docs/dev/debt/libc.md
PR 7715 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 7804 core/libs/prx/libkernel/Pthread/src/Thread.cpp
core/libs/prx/libkernel/System/src/Process.cpp
docs/dev/debt/libkernel.md
PR 7851 core/libs/prx/libc/CMakeLists.txt
PR 8150 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 8592 core/libs/prx/libkernel/Pthread/src/Thread.cpp
core/libs/prx/libkernel/System/src/Exception.cpp
PR 8605 docs/dev/debt/libkernel.md
PR 9156 docs/dev/debt/libkernel.md
PR 9162 core/libs/prx/libkernel/System/src/Process.cpp
PR 9199 docs/dev/debt/libkernel.md
PR 9242 docs/dev/debt/libkernel.md
PR 9284 docs/dev/debt/libkernel.md
PR 9293 docs/dev/debt/libkernel.md
PR 9297 docs/dev/debt/libkernel.md
PR 9302 docs/dev/debt/libkernel.md
PR 9326 docs/dev/debt/libkernel.md
PR 9371 docs/dev/debt/libc.md
PR 9389 docs/dev/debt/libkernel.md
PR 9447 docs/dev/debt/libc.md
PR 9491 docs/dev/debt/libkernel.md
PR 9526 docs/dev/debt/libc.md
PR 9557 docs/dev/debt/libkernel.md
PR 9566 docs/dev/debt/libkernel.md
PR 9575 docs/dev/debt/libkernel.md
PR 9775 core/libs/prx/libc/CMakeLists.txt
PR 9929 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libkernel/System/src/Process.cpp
docs/dev/debt/libc.md
PR 9947 docs/dev/debt/libkernel.md
PR 10113 docs/dev/debt/libc.md
PR 10192 docs/dev/debt/libkernel.md
PR 10226 docs/dev/debt/libc.md
PR 10319 docs/dev/debt/libkernel.md
PR 10324 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 10442 docs/dev/debt/libkernel.md
PR 10552 docs/dev/debt/libkernel.md
PR 10558 docs/dev/debt/libkernel.md
PR 10725 docs/dev/debt/libkernel.md
PR 10749 docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
PR 10970 core/relinker/CMakeLists.txt
docs/dev/debt/relinker.md
PR 10983 core/relinker/CMakeLists.txt
docs/dev/debt/relinker.md
PR 11002 docs/dev/debt/libkernel.md
PR 11042 docs/dev/debt/libkernel.md
PR 11085 docs/dev/debt/libkernel.md
PR 11107 core/relinker/CMakeLists.txt
docs/dev/debt/relinker.md
PR 11215 docs/dev/debt/libkernel.md
PR 11223 docs/dev/debt/libkernel.md
PR 11264 docs/dev/debt/libkernel.md
PR 11267 docs/dev/debt/libkernel.md
PR 11332 docs/dev/debt/libc.md
PR 11341 core/libs/prx/libkernel/System/src/Process.cpp
docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
PR 11366 core/relinker/CMakeLists.txt

lulebo and others added 19 commits October 24, 2026 16:31
…ower of two

ElfReader accepted any p_align on an executable's PT_LOAD, and on the
uncovered PT_SCE_RELRO it turns into one, although the gABI says
p_align should be 0, 1 or a power of two. When such a segment starts
on a page that an earlier segment maps with other bytes, the Linux
patcher pads the output one byte at a time to the next offset
congruent to its address modulo that alignment: a 3221-byte executable
with an alignment of 0xfffffffffffffffb ran for 46 s, reached 12.9 GiB
and failed with std::bad_alloc. Both segments are now refused, as the
reader already refuses a PT_TLS alignment that is not a power of two.

The guest module reader takes its headers from the same function, so
the power-of-two half of its own alignment check can no longer fail
and is dropped; its offset congruence check stays. A power-of-two
alignment still reaches the padding, which the relinker technical debt
now records.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts:
#	docs/dev/debt/relinker.md
@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.

Pull request Shared files not compared
PR 3965 core/libs/prx/libc/CMakeLists.txt
core/relinker/elfpatcher/src/windows/WindowsEntryStubBuilder.cpp
docs/dev/debt/libc.md
PR 3986 core/libs/prx/libkernel/Pthread/src/Thread.cpp
PR 4563 core/libs/prx/libkernel/Pthread/src/Thread.cpp
PR 4630 core/libs/prx/libkernel/System/src/Exception.cpp
docs/dev/debt/libkernel.md
PR 5021 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libkernel/Module/src/DynamicLoader.cpp
core/libs/prx/libkernel/Pthread/src/Thread.cpp
core/libs/prx/libkernel/System/src/Exception.cpp
core/libs/prx/libkernel/System/src/Process.cpp
core/relinker/CMakeLists.txt
docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
docs/dev/debt/relinker.md
PR 5303 docs/dev/debt/libc.md
PR 6084 core/libs/prx/libc/CMakeLists.txt
PR 6085 core/libs/prx/libc/CMakeLists.txt
PR 6149 core/relinker/CMakeLists.txt
docs/dev/debt/libkernel.md
PR 6565 docs/dev/debt/libc.md
PR 6740 docs/dev/debt/libkernel.md
PR 6819 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 6936 docs/dev/debt/libkernel.md
PR 7081 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 7088 docs/dev/debt/libkernel.md
PR 7090 docs/dev/debt/libkernel.md
PR 7105 docs/dev/debt/libkernel.md
PR 7121 docs/dev/debt/libkernel.md
PR 7135 docs/dev/debt/libkernel.md
PR 7149 core/libs/prx/libkernel/Pthread/src/Thread.cpp
docs/dev/debt/libkernel.md
PR 7173 core/relinker/CMakeLists.txt
docs/dev/debt/relinker.md
PR 7192 core/libs/prx/libc/src/specifics/windows/CrashReport.cpp
core/libs/prx/libkernel/System/src/Exception.cpp
docs/dev/debt/libkernel.md
PR 7386 docs/dev/debt/libc.md
PR 7447 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
PR 7464 docs/dev/debt/libkernel.md
PR 7509 docs/dev/debt/libkernel.md
PR 7531 core/relinker/CMakeLists.txt
docs/dev/debt/relinker.md
PR 7532 core/libs/prx/libkernel/Pthread/src/Thread.cpp
core/relinker/CMakeLists.txt
docs/dev/debt/libkernel.md
PR 7544 docs/dev/debt/libc.md
PR 7565 core/libs/prx/libkernel/Pthread/src/Thread.cpp
docs/dev/debt/libkernel.md
PR 7594 core/relinker/elfpatcher/src/windows/WindowsEntryStubBuilder.cpp
PR 7622 core/libs/prx/libc/src/specifics/windows/CrashReport.cpp
PR 7648 docs/dev/debt/libc.md
PR 7715 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 7804 core/libs/prx/libkernel/Pthread/src/Thread.cpp
core/libs/prx/libkernel/System/src/Process.cpp
docs/dev/debt/libkernel.md
PR 7851 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 8041 core/libs/prx/libkernel/Pthread/src/Thread.cpp
PR 8150 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 8251 core/relinker/CMakeLists.txt
PR 8397 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 8417 docs/dev/debt/libc.md
PR 8477 core/libs/prx/libkernel/Pthread/src/Thread.cpp
PR 8497 docs/dev/debt/libkernel.md
PR 8592 core/libs/prx/libkernel/Pthread/src/Thread.cpp
core/libs/prx/libkernel/System/src/Exception.cpp
PR 8605 docs/dev/debt/libkernel.md
PR 8937 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 8965 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 9087 docs/dev/debt/libc.md
PR 9156 docs/dev/debt/libkernel.md
PR 9162 core/libs/prx/libkernel/System/src/Process.cpp
PR 9199 docs/dev/debt/libkernel.md
PR 9242 docs/dev/debt/libkernel.md
PR 9293 docs/dev/debt/libkernel.md
PR 9297 docs/dev/debt/libkernel.md
PR 9302 docs/dev/debt/libkernel.md
PR 9326 docs/dev/debt/libkernel.md
PR 9340 docs/dev/debt/libc.md
PR 9371 docs/dev/debt/libc.md
PR 9389 docs/dev/debt/libkernel.md
PR 9447 docs/dev/debt/libc.md
PR 9466 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 9491 docs/dev/debt/libkernel.md
PR 9526 docs/dev/debt/libc.md
PR 9557 docs/dev/debt/libkernel.md
PR 9566 docs/dev/debt/libkernel.md
PR 9584 core/libs/prx/libc/CMakeLists.txt
PR 9677 docs/dev/debt/libc.md
PR 9684 core/libs/prx/libkernel/Pthread/src/Thread.cpp
docs/dev/debt/libkernel.md
PR 9688 docs/dev/debt/libc.md
PR 9761 docs/dev/debt/libc.md
PR 9773 core/libs/prx/libc/CMakeLists.txt
PR 9775 core/libs/prx/libc/CMakeLists.txt
PR 9793 core/relinker/CMakeLists.txt
PR 9798 core/libs/prx/libc/CMakeLists.txt
PR 9843 docs/dev/debt/libkernel.md
PR 9863 docs/dev/debt/libc.md
PR 9867 docs/dev/debt/libc.md
PR 9873 docs/dev/debt/libc.md
PR 9882 docs/dev/debt/libkernel.md
PR 9929 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libkernel/System/src/Process.cpp
docs/dev/debt/libc.md
PR 9935 docs/dev/debt/libc.md
PR 9938 core/libs/prx/libkernel/Pthread/src/Thread.cpp
docs/dev/debt/libkernel.md
PR 9947 docs/dev/debt/libkernel.md
PR 9953 docs/dev/debt/libc.md
PR 9964 docs/dev/debt/libc.md
PR 10002 docs/dev/debt/libc.md
PR 10007 docs/dev/debt/libc.md
PR 10025 docs/dev/debt/libkernel.md
PR 10113 docs/dev/debt/libc.md
PR 10158 docs/dev/debt/libc.md
PR 10165 docs/dev/debt/libc.md
PR 10192 docs/dev/debt/libkernel.md
PR 10200 docs/dev/debt/libc.md
PR 10222 docs/dev/debt/libc.md
PR 10226 docs/dev/debt/libc.md
PR 10229 docs/dev/debt/libc.md
PR 10234 docs/dev/debt/libc.md
PR 10245 docs/dev/debt/libc.md
PR 10247 docs/dev/debt/libc.md
PR 10250 docs/dev/debt/libc.md
PR 10253 docs/dev/debt/libc.md
PR 10265 docs/dev/debt/libc.md
PR 10270 docs/dev/debt/libc.md
PR 10274 docs/dev/debt/libc.md
PR 10315 docs/dev/debt/libc.md
PR 10317 docs/dev/debt/libc.md
PR 10319 docs/dev/debt/libkernel.md
PR 10321 docs/dev/debt/libc.md
PR 10324 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 10325 docs/dev/debt/libc.md
PR 10328 docs/dev/debt/libc.md
PR 10345 docs/dev/debt/libc.md
PR 10349 docs/dev/debt/libc.md
PR 10397 docs/dev/debt/libc.md
PR 10405 docs/dev/debt/libc.md
PR 10442 docs/dev/debt/libkernel.md
PR 10495 core/relinker/CMakeLists.txt
docs/dev/debt/relinker.md
PR 10506 docs/dev/debt/libc.md
PR 10510 docs/dev/debt/libc.md
PR 10512 docs/dev/debt/libc.md
PR 10552 core/libs/prx/libkernel/Module/src/DynamicLoader.cpp
docs/dev/debt/libkernel.md
PR 10558 docs/dev/debt/libkernel.md
PR 10565 docs/dev/debt/libc.md
PR 10569 docs/dev/debt/libc.md
PR 10615 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 10620 docs/dev/debt/libc.md
PR 10645 docs/dev/debt/libkernel.md
PR 10662 core/relinker/relinker/src/parsing/ElfReader.cpp
core/relinker/relinker/tests/ElfReaderBoundsTests.cpp
docs/dev/debt/relinker.md
PR 10729 docs/dev/debt/libc.md
PR 10749 docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
PR 10780 docs/dev/debt/libc.md
PR 10789 docs/dev/debt/libkernel.md
PR 10810 core/libs/prx/libkernel/Pthread/src/Thread.cpp
docs/dev/debt/libkernel.md
PR 10816 core/libs/prx/libkernel/Pthread/src/Thread.cpp
docs/dev/debt/libkernel.md
PR 10817 core/libs/prx/libkernel/Pthread/src/Thread.cpp
docs/dev/debt/libkernel.md
PR 10895 docs/dev/debt/libc.md
PR 10953 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 10970 core/relinker/CMakeLists.txt
docs/dev/debt/relinker.md
PR 10983 core/relinker/CMakeLists.txt
docs/dev/debt/relinker.md
PR 10987 docs/dev/debt/libc.md
PR 10989 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 11002 docs/dev/debt/libkernel.md
PR 11042 docs/dev/debt/libkernel.md
PR 11077 docs/dev/debt/libc.md
PR 11107 core/relinker/CMakeLists.txt
docs/dev/debt/relinker.md
PR 11109 docs/dev/debt/libc.md
PR 11137 docs/dev/debt/relinker.md
PR 11172 docs/dev/debt/libc.md
PR 11192 docs/dev/debt/relinker.md
PR 11214 docs/dev/debt/libc.md
PR 11215 docs/dev/debt/libkernel.md
PR 11219 docs/dev/debt/libkernel.md
PR 11223 docs/dev/debt/libkernel.md
PR 11247 docs/dev/debt/libkernel.md
PR 11260 docs/dev/debt/libc.md
PR 11262 docs/dev/debt/libc.md
PR 11266 docs/dev/debt/libc.md
PR 11332 docs/dev/debt/libc.md
PR 11432 core/relinker/CMakeLists.txt
core/relinker/elfpatcher/src/windows/WindowsGuestModuleWriter.cpp
core/relinker/elfpatcher/src/windows/WindowsPePatcher.cpp
docs/dev/debt/relinker.md
PR 11487 docs/dev/debt/relinker.md
PR 11525 docs/dev/debt/relinker.md
PR 11565 core/relinker/CMakeLists.txt
PR 11583 core/relinker/elfpatcher/src/windows/WindowsEntryStubBuilder.cpp
core/relinker/elfpatcher/src/windows/WindowsRelocationBuilder.cpp
PR 11621 docs/dev/debt/libc.md
PR 11626 docs/dev/debt/relinker.md
PR 11632 docs/dev/debt/libc.md
PR 11634 docs/dev/debt/libc.md
PR 11664 docs/dev/debt/libc.md
PR 11724 docs/dev/debt/libc.md
PR 11726 docs/dev/debt/libc.md
PR 11733 docs/dev/debt/libc.md
PR 11773 docs/dev/debt/libc.md
PR 11793 docs/dev/debt/libc.md
PR 11831 docs/dev/debt/libc.md
PR 11843 docs/dev/debt/libc.md
PR 11848 docs/dev/debt/libc.md
PR 11849 core/libs/prx/libkernel/Pthread/src/Thread.cpp
docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
PR 11850 docs/dev/debt/libc.md
PR 11870 docs/dev/debt/libc.md
PR 11883 docs/dev/debt/relinker.md
PR 11892 docs/dev/debt/libc.md
PR 11895 docs/dev/debt/libc.md
PR 11896 docs/dev/debt/libkernel.md
PR 11907 docs/dev/debt/libc.md
PR 11939 core/libs/prx/libkernel/System/src/Process.cpp
docs/dev/debt/libkernel.md
PR 11947 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 11991 docs/dev/debt/relinker.md
PR 11993 core/relinker/relinker/src/parsing/ElfReader.cpp
core/relinker/relinker/tests/ElfReaderBoundsTests.cpp
PR 12005 core/libs/prx/libkernel/Pthread/src/Thread.cpp
core/libs/prx/libkernel/System/src/Exception.cpp
PR 12009 core/relinker/relinker/tests/ElfReaderBoundsTests.cpp
PR 12053 docs/dev/debt/libc.md
PR 12057 docs/dev/debt/libc.md
PR 12071 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/src/specifics/windows/CrashReport.cpp
PR 12104 docs/dev/debt/libkernel.md
PR 12122 docs/dev/debt/libc.md
PR 12130 core/libs/prx/libkernel/Pthread/src/Thread.cpp
core/libs/prx/libkernel/System/src/Exception.cpp
PR 12146 core/libs/prx/libc/CMakeLists.txt
PR 12149 docs/dev/debt/libc.md
PR 12170 docs/dev/debt/libkernel.md
PR 12184 docs/dev/debt/libc.md
PR 12202 docs/dev/debt/libkernel.md
PR 12203 core/relinker/relinker/src/guest/GuestImageReader.cpp
PR 12258 core/relinker/CMakeLists.txt
core/relinker/relinker/src/parsing/ElfReader.cpp
PR 12271 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 12292 docs/dev/debt/libc.md
PR 12363 docs/dev/debt/libc.md
PR 12364 docs/dev/debt/libc.md
PR 12365 docs/dev/debt/libc.md
PR 12397 docs/dev/debt/libc.md
PR 12428 docs/dev/debt/libc.md
PR 12468 docs/dev/debt/libc.md
PR 12480 docs/dev/debt/libc.md
PR 12495 core/relinker/CMakeLists.txt
PR 12510 docs/dev/debt/libc.md
PR 12511 docs/dev/debt/libc.md
PR 12514 docs/dev/debt/libc.md
PR 12518 docs/dev/debt/libc.md
PR 12530 docs/dev/debt/libc.md
PR 12532 docs/dev/debt/libc.md
PR 12544 core/libs/prx/libkernel/Pthread/src/Thread.cpp
PR 12553 docs/dev/debt/libc.md
PR 12560 docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
PR 12574 docs/dev/debt/libc.md
PR 12586 docs/dev/debt/libc.md
PR 12592 docs/dev/debt/libc.md
PR 12593 docs/dev/debt/libc.md
PR 12594 docs/dev/debt/libc.md
PR 12595 docs/dev/debt/libc.md
PR 12597 docs/dev/debt/libc.md
PR 12598 docs/dev/debt/libc.md
PR 12605 docs/dev/debt/libc.md
PR 12622 docs/dev/debt/libc.md
PR 12627 docs/dev/debt/libc.md
PR 12642 core/libs/prx/libkernel/Pthread/src/Thread.cpp
core/libs/prx/libkernel/System/src/Exception.cpp
PR 12678 core/relinker/CMakeLists.txt
docs/dev/debt/relinker.md
PR 12704 docs/dev/debt/libc.md
PR 12741 docs/dev/debt/libkernel.md
PR 12753 core/libs/prx/libc/CMakeLists.txt
PR 12769 core/relinker/CMakeLists.txt
PR 12777 core/libs/prx/libc/CMakeLists.txt
PR 12780 core/libs/prx/libc/CMakeLists.txt
PR 12781 core/libs/prx/libc/CMakeLists.txt
PR 12822 core/relinker/relinker/src/guest/GuestImageReader.cpp
PR 12826 docs/dev/debt/libkernel.md
PR 12841 docs/dev/debt/libc.md
PR 12849 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 12854 docs/dev/debt/libkernel.md
PR 12882 core/libs/prx/libc/CMakeLists.txt
PR 12883 core/libs/prx/libc/CMakeLists.txt
PR 12884 core/libs/prx/libc/CMakeLists.txt
PR 12885 core/libs/prx/libc/CMakeLists.txt
PR 12886 core/libs/prx/libc/CMakeLists.txt
PR 12887 core/libs/prx/libc/CMakeLists.txt
PR 12888 core/libs/prx/libc/CMakeLists.txt
PR 12889 core/libs/prx/libc/CMakeLists.txt
PR 12890 core/libs/prx/libc/CMakeLists.txt
PR 12892 core/libs/prx/libc/CMakeLists.txt
PR 12908 docs/dev/debt/libkernel.md
PR 12910 core/relinker/relinker/tests/test_tls_function_coverage.py
docs/dev/debt/relinker.md
PR 12911 core/relinker/CMakeLists.txt
PR 12920 docs/dev/debt/libc.md
PR 12922 docs/dev/debt/libkernel.md
PR 12925 docs/dev/debt/libkernel.md
PR 12947 docs/dev/debt/libc.md
PR 12951 docs/dev/debt/relinker.md
PR 12970 docs/dev/debt/libkernel.md
PR 13119 docs/dev/debt/libc.md
PR 13143 core/relinker/CMakeLists.txt
PR 13186 docs/dev/debt/libc.md
PR 13224 docs/dev/debt/libkernel.md
PR 13291 docs/dev/debt/relinker.md
PR 13303 core/libs/prx/libc/CMakeLists.txt
PR 13304 core/libs/prx/libc/CMakeLists.txt
PR 13305 core/libs/prx/libc/CMakeLists.txt
PR 13306 core/libs/prx/libc/CMakeLists.txt
PR 13307 core/libs/prx/libc/CMakeLists.txt
PR 13308 core/libs/prx/libc/CMakeLists.txt
PR 13310 core/libs/prx/libc/CMakeLists.txt
PR 13311 core/libs/prx/libc/CMakeLists.txt
PR 13312 core/libs/prx/libc/CMakeLists.txt
PR 13313 core/libs/prx/libc/CMakeLists.txt
PR 13314 core/libs/prx/libc/CMakeLists.txt
PR 13316 core/libs/prx/libc/CMakeLists.txt
PR 13317 core/libs/prx/libc/CMakeLists.txt
PR 13318 core/libs/prx/libc/CMakeLists.txt
PR 13319 core/libs/prx/libc/CMakeLists.txt
PR 13320 core/libs/prx/libc/CMakeLists.txt
PR 13336 docs/dev/debt/libkernel.md
PR 13378 core/libs/prx/libc/CMakeLists.txt
PR 13379 core/libs/prx/libc/CMakeLists.txt
PR 13380 core/libs/prx/libc/CMakeLists.txt
PR 13381 core/libs/prx/libc/CMakeLists.txt
PR 13382 core/libs/prx/libc/CMakeLists.txt
PR 13383 core/libs/prx/libc/CMakeLists.txt
PR 13385 core/libs/prx/libc/CMakeLists.txt
PR 13386 core/libs/prx/libc/CMakeLists.txt
PR 13387 core/libs/prx/libc/CMakeLists.txt
PR 13389 core/libs/prx/libc/CMakeLists.txt
PR 13390 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 13391 core/libs/prx/libc/CMakeLists.txt
PR 13392 core/libs/prx/libc/CMakeLists.txt
PR 13393 core/libs/prx/libc/CMakeLists.txt
PR 13394 core/libs/prx/libc/CMakeLists.txt
PR 13395 core/libs/prx/libc/CMakeLists.txt
PR 13411 core/libs/prx/libkernel/System/src/Process.cpp
docs/dev/debt/libkernel.md
PR 13442 docs/dev/debt/libc.md
PR 13443 docs/dev/debt/libkernel.md
PR 13444 docs/dev/debt/libkernel.md
PR 13449 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md

This was referenced Oct 30, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants