Repository navigation
fix(relinker): discover required modules in nested standard directories - #1815
Conversation
a3ec008 to
0c3d043
Compare
0c3d043 to
7efd588
Compare
7efd588 to
e2401a8
Compare
|
Rebased onto main The Windows Release build, conventions and affected regressions pass. Restoring main's discovery implementation makes the nested regression fail on the missing provider again. The full local suite passes 58/59; the unchanged upstream TLS group still times out at 30 seconds. No timeout was raised. The description records the exact scope and keeps earlier title evidence separate. New-head CI is pending. Prepared with AI assistance. |
|
Checked on Linux, merged onto current main: relinker build and ctest 57/57 pass; |
…required-modules-publication fix(relinker): discover required modules in nested standard directories
What
Required providers under
prx/shipping,sce_module/nestedandsce_modules/nestedare skipped because the required filename and declared-identity scans prune the standard module directories. An existing PPSA28038 / 17.661.002 input requestsParty.prxandlibPlayFabMultiplayer.prxsupplied underprx/shipping.Let those required-provider scans descend into the directories. Preserve immediate-child eager loading, filename/SONAME precedence, relative paths and ambiguity errors. Respect exclusions, including Windows physical casing, and ignore generated
.guest.prxfiles. Unneeded unsupported module bodies remain unparsed. This adds no transitive/plugin discovery or lifecycle change.Rebased as
e2401a8dc08cec0a4773311bbe3a9ba8bd599e61, one commit on mainf3999054bd4ee2cccc08aeb871142b8019e5d46d. #1503 and #1830 are already merged and are not included again in this PR's diff. The conflict resolution retains #1830's extension matching and shipped output names. Added integration cases cover extension matching in all three nested standard directories, ambiguous stems and excluded stem candidates. The plural-directory fixture creates only the valid standard directory.Tested
Windows 11, MinGW-w64 GCC 15.2.0, Release,
ANYPS5_RELINKER_ONLY=ON, final commite2401a8d:git diff --checkpass.tls_function_coveragegroup times out at the unchanged 30-second limit. No timeout was raised; this is not a fully passing local suite.guest_needed_modulespasses in 1.28 s,guest_needed_nested_modulesin 5.30 s,guest_module_identityin 8.44 s andguest_runpathin 0.93 s. Tests execute generated Windows programs and inspect Linux ELF dependencies; Linux/macOS native execution was not performed locally.GuestModuleBuilder.cppat6635c7ab, while keeping the same regression, reproduces the missing nested provider artifact. Restoring the correction passes. That main file is byte-identical at the final basef3999054; the contribution patch is unchanged across the last rebase. Both rebuilds succeeded.a3ec0083: the same 43 original code inputs with identical host libraries from78dbe378produced two missing provider files before the correction and none afterward. An earlier natural startup loaded Party/PlayFab and stopped at missing HTTP2 imports. These are earlier title observations, not a new game run on this rebase. No menu, gameplay or performance result is claimed.The current PR-merge CI run passes the relinker jobs on Linux (63/63 groups), Windows (59/59) and macOS (56/56). These build
e2401a8dmerged into main7ced89fd. TLS passes in 8.70 s, 9.91 s and 5.68 s respectively. Conventions also pass. The full-runtime Windows/Linux jobs are skipped by workflow eligibility; these are not full-runtime or title-playability results.Overlap rechecked: open #1782 adds transitive discovery and still prunes standard directories; it does not implement this nested scan and is not included or required. #2100 is closed. The branch merges cleanly with main
6324b00bchecked immediately before push; the discovery source is unchanged from the tested base.Checklist