Skip to content

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

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

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

Conversation

@Felipebmaitan

@Felipebmaitan Felipebmaitan commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

What

Replay the bounded legacy SSE memory moves described in relinker debt through the protected GS frame: packed/scalar moves, MOVD/MOVQ and low/high-lane moves, including selected plain SSE followers of short GS instructions. Native instructions supply widths, alignment, lane and MXCSR behavior. Unmodeled arithmetic, prefixes, MMX and VEX/EVEX/XOP keep UD2 fallback.

Nov 3 refresh at 6246fb56d3e17d319d7c3e97b90092d1302bc7bc merges main 1e658521a0a599872612bb91949311e2956b5283 through the existing stack, retaining every fetched maintainer commit. Restore main's shared GuestCopyIn/Out calls in sysarch; this removes the unintended local-copy diagnostic/Windows-write divergence. GS branches, EFAULT/EINVAL handling, four-byte i386 output, FS NotImplemented behavior and operation diagnostics remain. This addresses XairRrR's optional, nonblocking suggestion, not a new blocking review demand.

Entry-stub bounds/RVA checks, #11090 guards, cached metadata registration/unload behavior, borrowed-span fallback and the VEX OS-enabled-AVX policy/--no-avx regression survive. Both GS continuation and main call-tracing debt entries are preserved.

Draft until prerequisites merge; base remains main. Increment over #11661.

Tested

Fresh Nov 3 checks: macOS arm64 Release relinker-only passes at each exact dependent head (scalar 42/42; short, SSE and VEX 43/43), including GS, entry-root/bounds, TLS and load regressions. Production libc/libkernel components are built separately on Linux amd64 under macOS translation with an external CMake harness; all five exact heads pass six production tests each: guest_sysarch, guest_thread_self, guest_pthread_frame_chain, guest_pthread_join_detach, guest_pthread_start and guest_pthread_attr. Relinker-only checks are not production Windows execution.

The prior heads' completed executable checks passed; cancelled metadata runs are not new failures. B-Howell's independent native Windows report covers old state head e0576a2 merged onto b28bb77: six tests x3, plus a failing main-production control. It is third-party prior-head evidence, not a rerun of the refreshed heads. The old sysarch failure is addressed. Previous translated-Windows red-zone/DLL-lock limits and physical non-AVX-host limits remain; no new hardware, console/title or performance claim is made.

Conventions and diff whitespace checks pass against pinned current main. Overlap scan rerun remains fail-closed for conflicting peer branches; no overlap-clear claim or repeated no-change overlap comment is made. #10518 remains open and declared; #10861 is owned separately and its branch was not modified. Fresh upstream native Windows/full production checks and re-review remain required after this push.

Checklist

Full selected-chain CI dispatch was attempted after pushing and returned HTTP 403: admin rights required. A collaborator can dispatch build.yml on main with pr=11624 11628 11661 11689 11698, full=true, select=true. Fresh hosted checks are distinct from prior-head successful checks.

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/relinker/elfpatcher/src/windows/WindowsEntryStubBuilder.cpp
docs/dev/debt/libc.md
PR 4630 core/libs/prx/libkernel/System/src/Exception.cpp
docs/dev/debt/libkernel.md
PR 5021 core/libs/prx/libkernel/Module/src/DynamicLoader.cpp
core/libs/prx/libkernel/System/src/Exception.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 6149 core/relinker/CMakeLists.txt
docs/dev/debt/libkernel.md
PR 6740 docs/dev/debt/libkernel.md
PR 6819 docs/dev/debt/libc.md
PR 6936 docs/dev/debt/libkernel.md
PR 7081 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 7135 docs/dev/debt/libkernel.md
PR 7149 docs/dev/debt/libkernel.md
PR 7173 core/relinker/CMakeLists.txt
docs/dev/debt/relinker.md
PR 7386 docs/dev/debt/libc.md
PR 7447 docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
PR 7464 docs/dev/debt/libkernel.md
PR 7531 core/relinker/CMakeLists.txt
docs/dev/debt/relinker.md
PR 7544 docs/dev/debt/libc.md
PR 7565 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 7715 docs/dev/debt/libc.md
PR 7804 docs/dev/debt/libkernel.md
PR 7851 docs/dev/debt/libc.md
PR 8150 docs/dev/debt/libc.md
PR 8417 docs/dev/debt/libc.md
PR 8497 docs/dev/debt/libkernel.md
PR 8592 core/libs/prx/libkernel/System/src/Exception.cpp
PR 8605 docs/dev/debt/libkernel.md
PR 8965 docs/dev/debt/libc.md
PR 9087 docs/dev/debt/libc.md
PR 9156 docs/dev/debt/libkernel.md
PR 9199 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 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 docs/dev/debt/libc.md
PR 9526 docs/dev/debt/libc.md
PR 9557 docs/dev/debt/libkernel.md
PR 9566 docs/dev/debt/libkernel.md
PR 9677 docs/dev/debt/libc.md
PR 9684 docs/dev/debt/libkernel.md
PR 9843 docs/dev/debt/libkernel.md
PR 9938 docs/dev/debt/libkernel.md
PR 10002 docs/dev/debt/libc.md
PR 10007 docs/dev/debt/libc.md
PR 10113 docs/dev/debt/libc.md
PR 10158 docs/dev/debt/libc.md
PR 10192 docs/dev/debt/libkernel.md
PR 10200 docs/dev/debt/libc.md
PR 10226 docs/dev/debt/libc.md
PR 10245 docs/dev/debt/libc.md
PR 10250 docs/dev/debt/libc.md
PR 10253 docs/dev/debt/libc.md
PR 10274 docs/dev/debt/libc.md
PR 10315 docs/dev/debt/libc.md
PR 10321 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 10397 docs/dev/debt/libc.md
PR 10405 docs/dev/debt/libc.md
PR 10442 docs/dev/debt/libkernel.md
PR 10506 docs/dev/debt/libc.md
PR 10510 docs/dev/debt/libc.md
PR 10512 docs/dev/debt/libc.md
PR 10558 docs/dev/debt/libkernel.md
PR 10565 docs/dev/debt/libc.md
PR 10569 docs/dev/debt/libc.md
PR 10645 docs/dev/debt/libkernel.md
PR 10780 docs/dev/debt/libc.md
PR 10987 docs/dev/debt/libc.md
PR 11109 docs/dev/debt/libc.md
PR 11172 docs/dev/debt/libc.md
PR 11192 docs/dev/debt/relinker.md
PR 11215 docs/dev/debt/libkernel.md
PR 11219 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 11525 docs/dev/debt/relinker.md
PR 11565 core/relinker/CMakeLists.txt
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 11831 docs/dev/debt/libc.md
PR 11848 docs/dev/debt/libc.md
PR 11870 docs/dev/debt/libc.md
PR 11895 docs/dev/debt/libc.md
PR 11896 docs/dev/debt/libkernel.md
PR 11939 docs/dev/debt/libkernel.md
PR 12009 core/relinker/relinker/tests/ElfReaderBoundsTests.cpp
PR 12053 docs/dev/debt/libc.md
PR 12057 docs/dev/debt/libc.md
PR 12104 docs/dev/debt/libkernel.md
PR 12130 core/libs/prx/libkernel/System/src/Exception.cpp
PR 12170 docs/dev/debt/libkernel.md
PR 12184 docs/dev/debt/libc.md
PR 12258 core/relinker/CMakeLists.txt
core/relinker/relinker/src/parsing/ElfReader.cpp
PR 12397 docs/dev/debt/libc.md
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 12574 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 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/System/src/Exception.cpp
PR 12678 core/relinker/CMakeLists.txt
docs/dev/debt/relinker.md
PR 12704 docs/dev/debt/libc.md
PR 12769 core/relinker/CMakeLists.txt
PR 12849 docs/dev/debt/libc.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 12947 docs/dev/debt/libc.md
PR 12970 docs/dev/debt/libkernel.md
PR 13390 docs/dev/debt/libc.md
PR 13449 docs/dev/debt/libc.md
PR 13486 core/libs/prx/libc/src/specifics/windows/CrashReport.cpp
core/libs/prx/libkernel/System/src/Exception.cpp
core/relinker/CMakeLists.txt
core/relinker/elfpatcher/src/windows/WindowsEntryStubBuilder.cpp
core/relinker/elfpatcher/src/windows/WindowsGuestModuleWriter.cpp
core/relinker/elfpatcher/src/windows/WindowsLoadImage.cpp
core/relinker/elfpatcher/src/windows/WindowsTlsBuilder.cpp
core/relinker/relinker/tests/test_tls_function_coverage.py
docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
docs/dev/debt/relinker.md
PR 13504 docs/dev/debt/libkernel.md
PR 13506 docs/dev/debt/libkernel.md
PR 13560 docs/dev/debt/libkernel.md
PR 13582 docs/dev/debt/libkernel.md
PR 13587 docs/dev/debt/libkernel.md
PR 13716 core/relinker/CMakeLists.txt
core/relinker/relinker/tests/test_tls_function_coverage.py
docs/dev/debt/relinker.md
PR 13794 docs/dev/debt/libc.md
PR 13804 docs/dev/debt/libc.md
PR 13809 docs/dev/debt/libc.md
PR 13828 docs/dev/debt/libc.md
PR 13964 docs/dev/debt/libkernel.md
PR 14001 core/relinker/relinker/src/parsing/ElfReader.cpp
core/relinker/relinker/tests/ElfReaderBoundsTests.cpp
PR 14020 docs/dev/debt/libc.md
PR 14043 docs/dev/debt/libkernel.md
PR 14046 docs/dev/debt/relinker.md
PR 14073 core/relinker/CMakeLists.txt
PR 14085 docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
docs/dev/debt/relinker.md
PR 14103 docs/dev/debt/libkernel.md
PR 14105 docs/dev/debt/libkernel.md
PR 14107 core/relinker/CMakeLists.txt
docs/dev/debt/relinker.md
PR 14108 docs/dev/debt/libkernel.md
PR 14109 core/relinker/relinker/tests/ElfReaderBoundsTests.cpp
PR 14111 docs/dev/debt/libkernel.md
PR 14121 core/relinker/relinker/tests/ElfReaderBoundsTests.cpp
PR 14128 docs/dev/debt/libkernel.md
PR 14183 docs/dev/debt/libkernel.md
PR 14190 docs/dev/debt/libkernel.md
PR 14212 docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
docs/dev/debt/relinker.md
PR 14214 docs/dev/debt/relinker.md
PR 14235 docs/dev/debt/libc.md
PR 14241 docs/dev/debt/relinker.md
PR 14264 docs/dev/debt/libkernel.md
PR 14298 docs/dev/debt/libc.md
PR 14324 docs/dev/debt/libkernel.md
PR 14325 docs/dev/debt/libkernel.md
PR 14326 docs/dev/debt/libc.md
PR 14370 docs/dev/debt/relinker.md
PR 14418 core/relinker/elfpatcher/src/windows/WindowsLoadImage.cpp
PR 14463 core/relinker/relinker/src/parsing/ElfReader.cpp
core/relinker/relinker/tests/ElfReaderBoundsTests.cpp
PR 14497 docs/dev/debt/libkernel.md
PR 14588 docs/dev/debt/libc.md
PR 14595 docs/dev/debt/libc.md
PR 14610 docs/dev/debt/libc.md
PR 14756 docs/dev/debt/libkernel.md
PR 14818 core/relinker/CMakeLists.txt
core/relinker/relinker/tests/ElfReaderBoundsTests.cpp
PR 14832 docs/dev/debt/libkernel.md
PR 14854 docs/dev/debt/libkernel.md
PR 14886 docs/dev/debt/libkernel.md
PR 14894 docs/dev/debt/libkernel.md
PR 14915 docs/dev/debt/libc.md
PR 15032 core/relinker/CMakeLists.txt
core/relinker/elfpatcher/src/windows/WindowsGuestModuleWriter.cpp
core/relinker/elfpatcher/src/windows/WindowsPePatcher.cpp
core/relinker/elfpatcher/src/windows/WindowsTlsBuilder.cpp
docs/dev/debt/relinker.md
PR 15035 docs/dev/debt/libkernel.md
PR 15037 docs/dev/debt/libkernel.md
PR 15040 docs/dev/debt/libkernel.md
PR 15041 docs/dev/debt/libkernel.md
PR 15064 docs/dev/debt/libkernel.md
PR 15095 docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
PR 15123 docs/dev/debt/libkernel.md
PR 15135 docs/dev/debt/libkernel.md
PR 15149 docs/dev/debt/libkernel.md
PR 15199 docs/dev/debt/libc.md
PR 15206 docs/dev/debt/libc.md
PR 15219 docs/dev/debt/libkernel.md
PR 15236 docs/dev/debt/libc.md
PR 15245 core/relinker/CMakeLists.txt
core/relinker/elfpatcher/include/elfpatcher/windows/WindowsEntryStubBuilder.hpp
core/relinker/elfpatcher/src/windows/WindowsEntryStubBuilder.cpp
core/relinker/elfpatcher/src/windows/WindowsGuestModuleWriter.cpp
core/relinker/elfpatcher/src/windows/WindowsPePatcher.cpp
docs/dev/debt/relinker.md
PR 15336 docs/dev/debt/libc.md
PR 15345 core/relinker/relinker/src/parsing/ElfReader.cpp
core/relinker/relinker/tests/ElfReaderBoundsTests.cpp
PR 15410 docs/dev/debt/libkernel.md
PR 15471 docs/dev/debt/libc.md
PR 15484 docs/dev/debt/libc.md
PR 15486 docs/dev/debt/libc.md
PR 15490 docs/dev/debt/libc.md
PR 15501 docs/dev/debt/libc.md
PR 15508 docs/dev/debt/libkernel.md
PR 15510 docs/dev/debt/libkernel.md
PR 15511 docs/dev/debt/libkernel.md
PR 15518 docs/dev/debt/libkernel.md
PR 15519 docs/dev/debt/libc.md
PR 15524 docs/dev/debt/libkernel.md
PR 15532 docs/dev/debt/libkernel.md
PR 15535 docs/dev/debt/libc.md
PR 15549 docs/dev/debt/libkernel.md
PR 15550 docs/dev/debt/libkernel.md
PR 15552 docs/dev/debt/libc.md
PR 15553 docs/dev/debt/libkernel.md
PR 15554 docs/dev/debt/libkernel.md
PR 15556 docs/dev/debt/libkernel.md
PR 15557 docs/dev/debt/libkernel.md
PR 15561 docs/dev/debt/libc.md
PR 15562 docs/dev/debt/libkernel.md
PR 15567 docs/dev/debt/libkernel.md
PR 15571 docs/dev/debt/libkernel.md
PR 15602 docs/dev/debt/libc.md
PR 15614 docs/dev/debt/libc.md
PR 15642 core/relinker/CMakeLists.txt
docs/dev/debt/relinker.md
PR 15651 core/relinker/relinker/src/parsing/ElfReader.cpp
core/relinker/relinker/tests/ElfReaderBoundsTests.cpp
docs/dev/debt/relinker.md
PR 15667 docs/dev/debt/libc.md
PR 15683 docs/dev/debt/libc.md
PR 15698 docs/dev/debt/libkernel.md
PR 15705 docs/dev/debt/libc.md
PR 15713 docs/dev/debt/libc.md
PR 15714 docs/dev/debt/libc.md
PR 15746 core/relinker/relinker/src/parsing/ElfReader.cpp
PR 15748 docs/dev/debt/libkernel.md
PR 15749 docs/dev/debt/libkernel.md
PR 15763 docs/dev/debt/libkernel.md
PR 15768 docs/dev/debt/libc.md
PR 15773 docs/dev/debt/libc.md
PR 15775 docs/dev/debt/libkernel.md
PR 15776 docs/dev/debt/libkernel.md
PR 15778 docs/dev/debt/libc.md
PR 15781 docs/dev/debt/libkernel.md
PR 15782 docs/dev/debt/libkernel.md
PR 15785 docs/dev/debt/libkernel.md
PR 15791 docs/dev/debt/libc.md
PR 15794 core/libs/prx/libkernel/System/src/Exception.cpp
docs/dev/debt/libkernel.md
PR 15796 docs/dev/debt/libc.md
PR 15800 docs/dev/debt/libc.md
PR 15801 docs/dev/debt/libc.md
PR 15802 docs/dev/debt/libc.md
PR 15803 core/libs/prx/libkernel/System/src/Exception.cpp
docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
PR 15804 core/libs/prx/libkernel/Module/src/DynamicLoader.cpp
core/libs/prx/libkernel/System/src/Exception.cpp
docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
PR 15807 core/libs/prx/libkernel/Module/src/DynamicLoader.cpp
core/libs/prx/libkernel/System/src/Exception.cpp
docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
PR 15809 docs/dev/debt/libc.md
PR 15828 core/relinker/CMakeLists.txt
PR 15834 docs/dev/debt/libc.md
PR 15849 docs/dev/debt/libkernel.md
PR 15864 core/relinker/CMakeLists.txt
PR 15869 core/relinker/CMakeLists.txt
core/relinker/elfpatcher/src/windows/WindowsLoadImage.cpp
PR 15870 docs/dev/debt/libkernel.md
PR 15879 docs/dev/debt/libc.md
PR 15884 docs/dev/debt/libkernel.md
PR 15890 docs/dev/debt/libkernel.md
PR 15900 core/relinker/CMakeLists.txt
core/relinker/elfpatcher/src/windows/WindowsLoadImage.cpp
core/relinker/relinker/src/parsing/ElfReader.cpp
PR 15903 docs/dev/debt/relinker.md
PR 15904 core/relinker/CMakeLists.txt
PR 15942 core/relinker/CMakeLists.txt
docs/dev/debt/relinker.md
PR 15973 docs/dev/debt/libc.md

@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Oct 27, 2026

@CnRJay CnRJay left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correction (2026-11-01): this review's claim that maintainers close PRs without a title ID is wrong. CONTRIBUTING allows Unblocks: none; a title is only required when the PR fixes a title. The technical points below are unaffected.

No title ID and no log line. The Tested section states "No PS5, title, title-unblock or performance verification is claimed". Maintainers close PRs that name no title ID plus a log line proving a title reaches the change on main. Which title runs SSE %gs: accesses through this path, and what does main log for it today?

Stacked branch. 43 commits and 39 files (+2336) because the branch carries #11624, #11628, #11661 and the carried #11090/#11276 prerequisites. The main-target diff mixes four PRs. Please keep this draft until the prerequisites merge, or retarget it so only the SSE layer is reviewed. #11698 builds on this one in the same way, so the same applies there.

@Felipebmaitan

Copy link
Copy Markdown
Contributor Author

@CnRJay Addressed the Nov 1 stacking request at 9d672673f02c9358bf71837511fa59903bd9c8c1: this PR is now draft until its prerequisites merge, still targeting main. The full template now links the exact increment over #11661. I retained published history and every remote maintainer commit, and propagated main 66e1f7f993c9c1339c2de11264b76bab03218cd2 through the chain. Thank you for correcting the title-ID requirement; Unblocks remains none, with no invented title evidence or performance claim.

Fresh validation and limits:

  • macOS arm64 Release relinker-only: scalar exact head 42/42; short, SSE and final VEX exact heads 43/43 each (GS, entry-root/bounds, TLS and load regressions).
  • Linux amd64 under macOS translation: real production libc/libkernel components and four sysarch/pthread tests pass at each of the five exact heads. Final VEX focused execution/conversion is 20/22; the two alignment-fault groups fail at original Linux MOVAPS under translation, which does not raise the expected fault. Expectations are unchanged; native x86 exception correctness remains an external gate.
  • Conventions pass for every exact head against pinned current main; the literal origin/main check also passes after refreshing it from canonical main. git diff --check passes.

Windows 11 ARM64 VM with WinLibs GCC 15.2 x64 translation: the external production-component harness builds the real libc/libkernel sources. At each of the five exact heads, guest_sysarch, guest_pthread_frame_chain and guest_pthread_join_detach pass (3/4); guest_thread_self aborts. Replacing only Thread.cpp with pinned main's implementation reproduces that failure; this is a component control, not a full main run. On the final head, guest_gs_lookup and guest_gs_no_avx pass, as does the separately built entry-stub bounds test. The no-AVX negative control exits 255 with the previous runtime and 0 with the policy. Physical non-AVX hardware remains untested.

The broader final Windows run is not passing: 12/37 passed, 24 failed and the initially unbuilt bounds target was not run (it subsequently passed separately). Replay cases fail red-zone checks; a standalone probe with no AnyPS5 code reproduces the same canary loss when RSP is restored via the Windows exception context, with or without a continue handler. The full startup fixture fails on DLL replacement locking even on retry. Eight separate positive fixtures using the unchanged production DLL in fresh directories all exit 42: scalar/short/SSE/VEX executable startup and the corresponding guest-module initializers. These runs establish reached production startup/GS execution, not native x86 exception correctness. No assertions were weakened and no translated-host workaround was added.

Fresh hosted Windows checks are pending. Full upstream Linux CI was skipped; dispatching the full selected chain returns HTTP 403 (admin rights required). A collaborator-run full build/test and native x86 Windows exception/red-zone validation remain external gates.

The overlap scan remains fail-closed for conflicting/stale peers; no blanket no-overlap claim is made. I compared shared source changes (signal masks/reaping/stack/affinity and exception delivery, CMake tests, #10662 RELRO normalization and #12282 instruction-container lookup). #10518 remains open and declared; #10861 remains a declared debt merge-order dependency under its own owner, and I did not modify its branch. #11090/#11276 are merged. No merge or replacement PR was made.

Fresh hosted checks exist on these heads, including Windows jobs; full Linux product CI is skipped. Dispatching the full selected chain with gh workflow run build.yml --repo boykopovar/AnyPS5 --ref main --field pr="11624 11628 11661 11689 11698" --field full=true --field select=true returns HTTP 403 (admin rights required). A collaborator must request the remaining full production run; local component evidence is not a substitute for it. Reviews/CI on earlier heads are not claimed as validation of these heads.

@github-actions github-actions Bot added needs rebase Conflicts with main, rebase needed and removed needs rebase Conflicts with main, rebase needed labels Nov 2, 2026
@Felipebmaitan

Copy link
Copy Markdown
Contributor Author

Published current-main refresh at 6246fb56d3e17d319d7c3e97b90092d1302bc7bc, with main 1e658521a0a599872612bb91949311e2956b5283 and all fetched maintainer history preserved. The exact parent is #11661 91ef8d945a08cc7e3c42387486249787f054c29a (increment); this PR remains draft targeting main. The sysarch shared-copy cleanup propagates through this chain. Both GS continuation and main call-tracing debt survive the conflict resolution. Entry-stub bounds/RVA checks, #11090 guards, cached metadata registration/unload handling, cheap first-chance lookup, borrowed-span fallback and the non-AVX policy/--no-avx test remain intact.

Fresh exact-head validation: six production libc/libkernel sysarch/pthread tests pass at each of the five heads (Linux amd64 under macOS translation, external component harness using the real production CMake source targets). Focused macOS arm64 Release relinker suites pass: scalar 42/42; short, SSE and VEX 43/43 each. Conventions and diff whitespace checks pass. These conversion/Linux component results are not a fresh native Windows runtime run.

The previous heads' executable checks completed successfully; cancelled metadata runs are not new failures. B-Howell's native Windows six-test x3 pass/control remains independent evidence for the previous state head; I do not relabel it as testing these new heads. The old sysarch abort is addressed. No physical non-AVX, console/title or performance evidence is invented.

Full selected-chain workflow dispatch after this push returned HTTP 403 (admin rights required). A collaborator can run gh workflow run build.yml --repo boykopovar/AnyPS5 --ref main --field pr="11624 11628 11661 11689 11698" --field full=true --field select=true. Fresh native Windows/full production CI and re-review remain external gates. #10518 stays open and declared; #10861 remains under its own owner and its branch was not modified. No merge or replacement PR was made.

@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Nov 3, 2026
@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Nov 4, 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.

4 participants