Commit Graph

529 Commits

Author SHA1 Message Date
Dean 959d39fb2b
Merge pull request #4801 from ArjenS-LA/fix/guest-posix-runpath
fix(relinker): validate Linux guest runpaths with target syntax
2026-10-14 14:45:57 +13:00
Dean e5a272d7a6
Merge pull request #5359 from thuanquang/fix/output-path-directory
fix(relinker): reject a directory as the executable output path
2026-10-14 14:36:09 +13:00
Dean 3881dac903
Merge pull request #5148 from AaravMehta-07/codex/reject-relocatable-input
fix(relinker): reject relocatable ELF conversion inputs
2026-10-14 14:35:53 +13:00
Dean 54c2e14dc0
Merge pull request #5026 from AaravMehta-07/codex/reject-invalid-load-segments
fix(relinker): reject load file sizes beyond memory size
2026-10-14 14:35:37 +13:00
ArjenS-LA 394c5a231e fix(relinker): validate Linux guest runpaths with target syntax 2026-10-14 14:14:38 +13:00
thuanquang 286cf28ec7 fix(relinker): reject a directory as the executable output path
An existing directory, or a path ending in a separator, was only
rejected when the executable was written, after the converted modules
had already been written to app0/ beside or inside it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 00:49:48 +07:00
Muhammad Wasif Ali Wasif 04421e7d4d fix(relinker): build the manifest resource in paths with spaces
windres passes include directories to the preprocessor unquoted, so
relinker.rc failed to compile when the checkout path contains a space.
The resource is now an object library without the relinker's include
directories.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:43:59 +05:00
Adrià 34cee1ef15
Merge pull request #4608 from MiniRML/fix/relinker-icon-png-chunks
fix(relinker): validate icon PNG critical chunks and order
2026-10-13 17:50:39 +02:00
Adrià 27477e5f47
Merge pull request #4583 from MiniRML/fix/relinker-section-name-address
fix(relinker): zero the unmapped section-name table address
2026-10-13 17:49:15 +02:00
Adrià 9dd3c2d1a6
Merge pull request #4547 from codingreapermaps/feat/relinker-trace-imports
feat(relinker): add --trace-imports for Windows executables
2026-10-13 17:48:21 +02:00
Adrià 3f2782cc7c
Merge pull request #4618 from Borooooo/fix/relinker-long-paths
fix(relinker): accept paths longer than 260 characters on Windows
2026-10-13 17:31:05 +02:00
Adrià eb5bee4bfe
Merge pull request #4557 from saxopa/fix/relinker-linux-program-header-slots
fix(relinker): move the Linux program header table when it has no free slot
2026-10-13 17:04:41 +02:00
codingreapermaps 430e5c833e feat(relinker): add --trace-imports for Windows executables
With --trace-imports the entry stub resolves TraceImport_nid_no_patch
in libc.prx and passes each function import through it before writing
the slot: every PLT slot, and a GOT slot only when the original symbol
is a function, so data imports such as __stdoutp keep their address.
Without the option the output is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 16:55:31 +02:00
MiniRML bfffd3359c fix(relinker): validate icon PNG critical chunks and order 2026-10-13 16:38:28 +02:00
saxopa b3fa9d8318 fix(relinker): move the Linux program header table when it has no free slot
Linux output reused the input program header table in place, so it could
hold no more entries than the input declared. A title whose kept segments
and the five synthetic headers did not fit lost PT_GNU_EH_FRAME with a
warning, or failed with "Not enough program header slots". When more
headers are needed, the table is now written at the end of the extra block,
e_phoff points there and PT_PHDR maps it through the extra block PT_LOAD;
the header block then maps only the ELF header. Bytes after the input table
are left as they were.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 16:20:00 +02:00
Aarav 6f0f7c7461 fix(relinker): reject relocatable ELF conversion inputs 2026-10-13 18:23:31 +05:30
Avijit Singh 48ea54ed3e fix(relinker): include output stream header
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-13 18:05:37 +05:30
Avijit Singh f23c5c2fd2 test(relinker): cover SELF skip warnings
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-13 18:04:49 +05:30
Avijit Singh 82f24e44a2 fix(relinker): warn on skipped SELF modules
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-13 18:04:49 +05:30
Adrià afbc22fb1a
Merge pull request #4140 from veosett/fix/relinker-windows-fixed-base
feat(relinker): support fixed Windows guest image bases
2026-10-13 14:26:54 +02:00
Aarav bc014a887c fix(relinker): reject load file sizes beyond memory size 2026-10-13 17:55:11 +05:30
boykopovar 8485298e46
Merge pull request #5114 from boykopovar/feat/web-relinker-ui
feat(pages): add web relinker ui
2026-10-13 15:16:10 +03:00
Adrià a2a3a3a94d
Merge pull request #4062 from danzaio/fix/windows-log-without-standard-handles
fix(relinker): log Windows output when standard handles are missing
2026-10-13 14:11:42 +02:00
boykopovar 36ea209e72 fix(wasm): enable windows diagnostics and disable gui mode 2026-10-13 14:37:50 +03:00
Kovalev Vladislav 319fa5779a feat(relinker): support fixed Windows guest image bases 2026-10-13 12:55:54 +02:00
boykopovar 78df1e3244 feat(web): stream zip conversion and release library packaging 2026-10-13 13:48:23 +03:00
boykopovar 34766c8236 feat(relinker): expose wasm conversion bindings 2026-10-13 13:38:47 +03:00
boykopovar 04899cb0f7 fix(relinker): align console progress columns 2026-10-13 13:02:03 +03:00
boykopovar a534bd67ca fix(relinker): report intermediate output image progress 2026-10-13 12:59:23 +03:00
boykopovar d35b1afa51 fix(relinker): use consistent two-space nesting in runtime layout 2026-10-13 12:59:22 +03:00
boykopovar c9a94dd021 fix(relinker): remove layout padding and blank lines after headings 2026-10-13 12:59:04 +03:00
boykopovar 754b82163b fix(relinker): remove indentation from conversion summary 2026-10-13 12:58:48 +03:00
boykopovar 868d7a138d fix(relinker): separate console sections without spacing every message 2026-10-13 12:58:35 +03:00
boykopovar 6f2e4b6902 test(relinker): update runtime layout expectations for tree output 2026-10-13 12:58:35 +03:00
boykopovar 56c2a53188 fix(relinker): redraw console progress and format runtime layout as a tree 2026-10-13 12:58:34 +03:00
boykopovar e1ef33047c fix(relinker): validate scan ranges before narrowing memory offsets 2026-10-13 12:57:55 +03:00
boykopovar 3e658db4b6 refactor(relinker): remove the obsolete file-based icon builder 2026-10-13 12:57:55 +03:00
boykopovar 6224febfb0 feat(relinker): report instruction conversion progress for executables and modules 2026-10-13 12:57:54 +03:00
boykopovar b42aa8c540 feat(relinker): expose in-memory conversion through a portable core library 2026-10-13 12:57:53 +03:00
boykopovar 5e5eba8922 fix(relinker): reject layouts that would discard exception metadata 2026-10-13 12:57:06 +03:00
boykopovar 37e25a2a78 refactor(relinker): separate native module discovery from prx conversion 2026-10-13 12:57:05 +03:00
boykopovar 02cd2e57e2 refactor(relinker): move windows icon and diagnostic io to native adapters 2026-10-13 12:56:42 +03:00
boykopovar cd0433fd82 feat(relinker): report syscall scanning and import analysis progress 2026-10-13 12:56:16 +03:00
boykopovar 04ca1721e5 feat(relinker): add progress interface and console reporter 2026-10-13 12:55:34 +03:00
Adrià 77b9f7270c
Merge pull request #3579 from Celegans12/fix/relinker-present-optional-provider-errors
fix(relinker): preserve load failures of present optional providers
2026-10-13 11:53:01 +02:00
p3nicillin 99efb32c40 feat: convert a title's other executables and start them with sceSystemServiceLoadExec
The relinker's repeatable --executable converts another executable of the
title beside the output, sharing its libs, app0 and guest modules.
sceSystemServiceLoadExec maps /app0 paths to those executables, passes the
argument list on the new command line and finds the main executable through
APS5_EBOOT. RetroArch (PPSA99169) starts its frontend picker this way.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 08:51:50 +01:00
Dean ebf417a51c
Merge pull request #4340 from ArjenS-LA/fix/guest-gnu-hash
fix(relinker): convert guest modules with GNU hash tables
2026-10-13 18:49:38 +13:00
Dean 758aca7373
Merge pull request #4116 from hawwwwwk/investigate/relinker-eip-relative
fix(relinker): resolve EIP-relative imports in strict filter
2026-10-13 13:41:08 +13:00
Dean 1b360faa1d
Merge pull request #4441 from superhe11/codex/fix-elf-header-validation
fix(relinker): validate the ELF object version and header size
2026-10-13 13:34:03 +13:00
Simone ad0d478a81 Merge remote-tracking branch 'origin/main' into fix/relinker-weak-imports
# Conflicts:
#	core/relinker/relinker/src/output/SysVDynamicSectionBuilder.cpp
#	core/relinker/relinker/src/pipeline/RelinkerPipeline.cpp
2026-10-12 23:40:54 +02:00