AnyPS5/core/libs/nid/src
alfalfa-star 1d9d5ab491 fix(libs): keep a $ORIGIN runpath in the patched prx libraries
The NID patcher rebuilds .dynstr keeping only the DT_NEEDED and
DT_SONAME strings, so DT_RUNPATH kept a stale offset and the patched
libraries shipped with an empty runpath. A library could then load only
those sibling prx that the executable already loads itself:
libSceVideoOut.prx needs libSceKeyboard.prx, which a title that does
not import libSceKeyboard never loads, so it fails at startup.

The patcher now keeps DT_RPATH and DT_RUNPATH strings, and the prx
libraries are linked with a $ORIGIN runpath instead of the build
directory, so they find each other wherever they are copied.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 20:20:14 +02:00
..
BinaryPatcherFactory.cpp feat(libs): nid patching for non-std imports from prx 2026-09-09 08:12:27 +03:00
ElfNidPatcher.cpp fix(libs): keep a $ORIGIN runpath in the patched prx libraries 2026-10-05 20:20:14 +02:00
ExportExclusions.cpp feat(libs): no patch already exported from libc.prx symbols 2026-09-22 18:21:08 +03:00
NidCompute.cpp fix(nid): update nid computing algorithm 2026-08-22 10:39:19 +03:00
NidResolver.cpp feat(libs): no patch already exported from libc.prx symbols 2026-09-22 18:21:08 +03:00
PeNidPatcher.cpp feat(libs): no patch already exported from libc.prx symbols 2026-09-22 18:21:08 +03:00
Sha1.cpp feat(libs): add rpx library build as libs target 2026-08-20 17:06:41 +03:00
main.cpp feat(libs): no patch already exported from libc.prx symbols 2026-09-22 18:21:08 +03:00