Dean
e231f17d8f
Merge pull request #15255 from HenriksApsitis/test/reported-relinker-regression
...
test(relinker): guard against duplicate module preinit startup
2026-11-04 08:12:11 +13:00
Dean
04ca53e25d
Merge pull request #13962 from LeandroLP23/fix/relinker-windows-df-symbolic
...
fix(relinker): convert DF_SYMBOLIC guest modules for Windows
2026-11-03 21:09:26 +13:00
Dean
c4c6934558
Merge pull request #12282 from JJenkx/windows/relinker-collect-vector-result
...
perf(relinker): return the collected instructions as a sorted vector
2026-11-03 21:09:10 +13:00
Dean
7af9b1c691
Merge pull request #14139 from JJenkx/fix/relinker-absent-unused-dependency
...
fix(relinker): optionally leave out a module dependency nothing provides or imports from on Linux
2026-11-03 21:08:25 +13:00
Dean
8835460b5e
Merge pull request #7532 from hugodearaujo/fix/linux-guest-main-stack
...
fix(linux): enter the guest entry on a main stack at the console's address
2026-11-03 21:07:51 +13:00
Dean
58c21ea16c
Merge pull request #15356 from DonRyuzaki/fix/relinker-relative-gap-values
...
fix(relinker): allow relative values in image gaps
2026-11-03 18:14:41 +13:00
Dean
937c92d41f
Merge pull request #15063 from peacocksir/fix/guest-static-tls-flag
...
fix(relinker): accept DF_STATIC_TLS on guest modules
2026-11-03 18:13:36 +13:00
Dean
fffa45ebe5
Merge pull request #14855 from ken00H/fix/relinker-windows-entry-stub-parent-log
...
fix(relinker): wait for the LoadExec parent after opening the Windows log
2026-11-03 18:10:38 +13:00
Dean
1c59a15291
Merge pull request #13862 from roboterspinne/fix/relinker-reject-unknown-load-flags
...
fix(relinker): reject main-executable PT_LOAD flags outside PF_R, PF_W and PF_X
2026-11-03 18:09:30 +13:00
Dean
3fc8f5863b
Merge pull request #12513 from LuPetro/fix/windows-icon-virtual-overlap
...
fix(relinker): check virtual size before adding Windows icon
2026-11-03 18:09:14 +13:00
Dean
f6232fcfda
Merge pull request #15360 from oneandonlydean/revert-12621-v2
...
revert(relinker): defer the runtime modules another deferred module needs on Windows (#12621 )
2026-11-03 16:02:16 +13:00
Ryuzaki
86f330a102
fix(relinker): allow relative values in image gaps
2026-11-03 02:50:33 +00:00
Dean
6c3d3b29c0
Merge pull request #14688 from slopgobblercobbler/test/relinker-symtab-entsize-bounds
...
test(relinker): cover sh_entsize mismatch for SHT_SYMTAB section
2026-11-03 11:41:50 +13:00
Dean
96b856f9e6
Merge pull request #14614 from slopgobblercobbler/test/relinker-ptload-filesz-overflow-bounds
...
test(relinker): cover PT_LOAD segment p_filesz exceeding p_memsz
2026-11-03 11:40:18 +13:00
Dean
c71fef4835
Merge pull request #14604 from slopgobblercobbler/test/relinker-relr-entry-oob-bounds
...
test(relinker): cover out of bounds entry in RELR table
2026-11-03 11:40:13 +13:00
Dean
610adb58f1
Merge pull request #14470 from slopgobblercobbler/test/relinker-cie-augmentation-coverage
...
test(relinker): cover CIE augmentation string bounds and unterminated records in unwind tests
2026-11-03 11:37:32 +13:00
Dean
dca6785e9b
Merge pull request #14460 from slopgobblercobbler/test/relinker-dynamic-table-bounds-coverage
...
test(relinker): cover DT_RELA and DT_STRTAB out of bounds in dynamic table tests
2026-11-03 11:36:56 +13:00
Dean
4c54ba9bfa
Merge pull request #14442 from Serph91P/fix/14423-linux-trace-permissions
...
fix(relinker): preserve Linux import tracing execute permissions
2026-11-03 11:36:27 +13:00
Dean
10ba64ebcb
Merge pull request #14422 from Dinsuljevic336/fix/relinker-unused-filter-shn-abs
...
fix(relinker): skip SHN_ABS function symbols in unused NID filters
2026-11-03 11:36:09 +13:00
Henriks Apsitis
3577e0368a
test(relinker): guard against duplicate module preinit startup
...
Model a module whose initializer dispatches its own preinit callback and assert the exact once-only callback, preserved arguments and return value. Retain zero-address and no-preinit controls and cover deferred Linux initialization.
Regression coverage for #7636 , introduced by #6112 and reverted by #7646 . The new test fails with the actual historical bad relinker at 376c040 and passes on main 9090972 .
AI-assisted: yes. Independently reviewed staged patch 6e437226c361065dad96478101fc899f65cde86caf51a39415369c01c1725168.
2026-11-02 22:05:16 +00:00
roboterspinne
4d6f5458c0
test(relinker): pin the PT_LOAD flags diagnostic line with its offset
2026-11-02 22:23:40 +01:00
Dean Galvin
987ebe9855
revert(relinker): defer the runtime modules another deferred module needs on Windows ( #12621 )
...
This reverts the code, tests and USAGE.md change of commit 420b6a064e
(#12621 ). The docs/dev/debt/relinker.md line is left for the follow-up
that brings the deferral back with dependency start, to keep a running
batch that edits the same file valid.
Soul Hackers 2 (PPSA03743) stops about 2.6 s into boot on Windows with an
access violation on UnityGfxDeviceWorker inside SPFXUnityPlugin.prx since
this change. klosixgaming-arch bisected main's merge commits to 420b6a064e
and confirmed that undoing its dependency filter makes the title boot again
(https://github.com/boykopovar/AnyPS5/pull/12621#issuecomment-6587462742 ).
SPFXUnityPlugin (Media/Plugins) calls into Il2CppUserAssemblies
(Media/Modules). With #12621 that dependency is deferred, and loading a
deferred module does not start the deferred modules it needs, so it is
never started. The revert restores the previous Windows behaviour, where a
module another module needs starts at startup.
2026-11-03 09:51:50 +13:00
Dean
13e95604e4
Merge pull request #14410 from roboterspinne/fix/relinker-linux-fixed-base-paddr
...
fix(relinker): stop rejecting Linux fixed-base output over the unused p_paddr field
2026-11-03 08:50:04 +13:00
Dean
b2627ce36d
Merge pull request #13291 from PolkadotDom/fix/eip-import-call-sites
...
fix(relinker): resolve EIP-relative import call sites
2026-11-03 08:45:32 +13:00
Dean
8065bdfa25
Merge pull request #13143 from kyon-eth/fix/monosgen-module-alias
...
fix(relinker): resolve versioned Mono module dependency
2026-11-03 06:27:05 +13:00
Dean
b9d18dc1f9
Merge pull request #12951 from Kikoarl/fix/relinker-rip-displacement-overflow-guard
...
fix(relinker): guard 64-bit rip-relative displacement overflow and underflow
2026-11-03 06:25:52 +13:00
Dean
62949c1978
Merge pull request #12822 from slopgobblercobbler/fix/relinker-rela-entry-bounds
...
fix(relinker): validate dynamic DT_RELAENT and PLTREL table entries
2026-11-03 05:13:52 +13:00
dom
21a7616cda
chore(relinker): refresh EIP import analysis after prerequisite merge
2026-11-02 10:53:33 -05:00
Dean
25797f0fab
Merge pull request #12500 from StoneDC/feat/b20-autorun-noninteractive
...
feat(relinker): optionally skip the autorun exit prompt
2026-11-03 02:38:19 +13:00
Dean
52e4cad5aa
Merge pull request #12495 from StoneDC/fix/b20-console-progress-control-characters
...
fix(relinker): escape ASCII controls in progress filenames
2026-11-03 02:38:14 +13:00
Dean
d6e9570d8b
Merge pull request #12341 from roboterspinne/fix/relinker-tls-relocation-undefined-non-tls
...
fix(relinker): reject executable TLS relocations against an undefined symbol that is not STT_TLS
2026-11-03 02:37:21 +13:00
Dean
f903f87b99
Merge pull request #12270 from JJenkx/windows/relinker-reserve-reachable
...
perf(relinker): reserve the reachable instruction set before the graph walk
2026-11-03 02:36:29 +13:00
Dean
2a43ad9dbe
Merge pull request #12243 from rooklz/test/gap-walk-branch-targets
...
test(relinker): cover branch targets found by the jump-table gap walk
2026-11-03 02:35:58 +13:00
Dean
6de0f09e97
Merge pull request #12203 from MarcZX10/perf/relinker-linear-passes-over-hostile-inputs
...
perf(relinker): keep three passes linear on crafted guest binaries
2026-11-03 02:35:29 +13:00
peacock-claude and Claude Opus 5.5
3255ddea38
fix(relinker): accept DF_STATIC_TLS on guest modules
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-11-02 08:02:08 -05:00
Dean
519ea89a7f
Merge pull request #12154 from JJenkx/windows/relinker-collect-sorted-vectors
...
perf(relinker): collect code instructions into sorted vectors
2026-11-03 01:29:27 +13:00
Dean
67c25a3993
Merge pull request #11993 from slopgobblercobbler/fix/relinker-program-header-table-bounds
...
fix(relinker): validate program header table bounds before reading
2026-11-03 01:28:59 +13:00
Dean
8d530b6d3c
Merge pull request #11883 from roboterspinne/fix/relinker-macos-gs-trap-entry-roots
...
fix(relinker): refuse GS traps that overwrite a code entry point in macOS output
2026-11-03 01:27:44 +13:00
Dean
8b9ae2fa8c
Merge pull request #11626 from Mherberts/codex/fix-segment-prefixed-import-sites
...
fix(relinker): recognize ignored segment prefixes in import sites
2026-11-03 01:26:05 +13:00
Dean
02818f42e9
Merge pull request #11583 from roboterspinne/fix/relinker-windows-lazy-data-imports
...
fix(relinker): bind unresolved Windows data imports eagerly under --lazy-binding
2026-11-03 01:25:43 +13:00
LeandroLP23 and Claude Opus 5.5
defd29e2d1
test(relinker): keep the executable hash table clear of its string table
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-11-02 11:50:32 +01:00
LeandroLP23 and Claude Opus 5.5
add81f3082
test(relinker): load two converted modules with colliding exports on Windows
...
Two guest modules export the same `shared` function and `tls_value` TLS
symbol with default visibility; the second has DF_SYMBOLIC. Each module's
entry calls its own `shared` through R_X86_64_64, GLOB_DAT and JUMP_SLOT
relocations and adds its own `tls_value` read through a TPOFF64
relocation. The converted Windows executable calls both entries and must
exit with the value only reachable when every reference binds to its own
module: (3 * 1 + 4) + (3 * 2 + 8) * 16.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-11-02 11:50:32 +01:00
LeandroLP23 and Claude Opus 5.5
7fbca4105e
fix(relinker): convert DF_SYMBOLIC guest modules for Windows
...
DF_SYMBOLIC asks that a module's references to symbols it defines bind to
its own definitions. The Windows guest module writer already writes every
relocation against a defined symbol, including the TLS module and offset
forms, straight to the module's own definition, and leaves only undefined
symbols to runtime binding. A symbolic module therefore gets the requested
binding without any change, so the writer stops refusing it.
The writer test now checks that a symbolic module produces the same PE and
runtime imports as the same module without the flag, and the directory
integration test uses a symbolic provider for Windows too.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-11-02 11:49:32 +01:00
Dean
718204e587
Merge pull request #11487 from roboterspinne/fix/relinker-linux-congruent-loads
...
fix(relinker): move a Linux PT_LOAD whose file offset is not page-congruent with its address
2026-11-02 23:28:40 +13:00
Dean
3b6f3cbb4d
Merge pull request #11479 from roboterspinne/fix/relinker-ambiguous-needed-module
...
fix(relinker): reject a needed module name that several bundled modules match only by extension
2026-11-02 23:28:33 +13:00
Dean
da0f097c78
Merge pull request #11107 from AdnanKhan-ak47/feat/relinker-lower-bzhi-bextr
...
feat(relinker): lower BZHI and BEXTR under --to-rosetta
2026-11-02 23:26:58 +13:00
Dean
36564b6b4f
Merge pull request #10970 from AdnanKhan-ak47/feat/relinker-lower-bls
...
feat(relinker): lower BLSI, BLSMSK and BLSR under --to-rosetta
2026-11-02 23:26:20 +13:00
Dean
2a9de0ea82
Merge pull request #10495 from wail-arch/fix/linux-guest-zero-address-exports
...
fix(relinker): bind guest function exports at address 0 on Linux
2026-11-02 23:22:55 +13:00
Dean
6ca4efb422
Merge pull request #9793 from Iluminatti312/fix/relinker-windows-extended-path-argv
...
fix(relinker): preserve Windows extended-path arguments
2026-11-02 20:58:41 +13:00
JJenkx
17979bdcbb
test(relinker): compare collected initializer addresses as a vector
2026-11-01 20:16:07 -05:00