Skip to content

fix(relinker): discover required modules in nested standard directories - #1815

Merged
adriadam10 merged 1 commit into
boykopovar:mainfrom
eliasbruno124-dev:fix/nested-required-modules-publication
Oct 10, 2026
Merged

adriadam10 merged 1 commit into
boykopovar:mainfrom
eliasbruno124-dev:fix/nested-required-modules-publication

Conversation

@eliasbruno124-dev

@eliasbruno124-dev eliasbruno124-dev commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

What

Required providers under prx/shipping, sce_module/nested and sce_modules/nested are skipped because the required filename and declared-identity scans prune the standard module directories. An existing PPSA28038 / 17.661.002 input requests Party.prx and libPlayFabMultiplayer.prx supplied under prx/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.prx files. Unneeded unsupported module bodies remain unparsed. This adds no transitive/plugin discovery or lifecycle change.

Rebased as e2401a8dc08cec0a4773311bbe3a9ba8bd599e61, one commit on main f3999054bd4ee2cccc08aeb871142b8019e5d46d. #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 commit e2401a8d:

  • Build, conventions and git diff --check pass.
  • The complete local suite passes 58/59 registered groups. The upstream tls_function_coverage group times out at the unchanged 30-second limit. No timeout was raised; this is not a fully passing local suite.
  • guest_needed_modules passes in 1.28 s, guest_needed_nested_modules in 5.30 s, guest_module_identity in 8.44 s and guest_runpath in 0.93 s. Tests execute generated Windows programs and inspect Linux ELF dependencies; Linux/macOS native execution was not performed locally.
  • Negative control: restoring main's GuestModuleBuilder.cpp at 6635c7ab, while keeping the same regression, reproduces the missing nested provider artifact. Restoring the correction passes. That main file is byte-identical at the final base f3999054; the contribution patch is unchanged across the last rebase. Both rebuilds succeeded.
  • Historical original-input comparison on a3ec0083: the same 43 original code inputs with identical host libraries from 78dbe378 produced 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 e2401a8d merged into main 7ced89fd. 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 6324b00b checked immediately before push; the discovery source is unchanged from the tested base.

Checklist

  • Based on pinned current main; existing solutions and overlaps checked
  • One topic per PR; no merge commits in the contribution range
  • No code comments added
  • Missing imports and unsupported paths still fail; no silent stubs
  • No investigation files, proprietary inputs or images added
  • No new third-party code
  • Generic behaviour
  • Depends on: none
  • AI-assisted: yes

@oneandonlydean

Copy link
Copy Markdown
Collaborator

#1503 and #1830 are in, and this now conflicts with main in GuestModuleBuilder.cpp; please rebase onto main.

@eliasbruno124-dev
eliasbruno124-dev force-pushed the fix/nested-required-modules-publication branch from 7efd588 to e2401a8 Compare October 10, 2026 06:07
@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Oct 10, 2026
@eliasbruno124-dev

Copy link
Copy Markdown
Contributor Author

Rebased onto main f3999054 as e2401a8d, with one commit and no merge commits. #1503/#1830 are now upstream; the conflict resolution preserves extension matching and shipped filenames while enabling the nested scans. Added cases cover their interaction with exclusions and ambiguous stems.

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.

@adriadam10

Copy link
Copy Markdown
Collaborator

Checked on Linux, merged onto current main: relinker build and ctest 57/57 pass; guest_needed_nested_modules and guest_needed_modules fail with main's GuestModuleBuilder.cpp and pass with the change. The rebase asked for is done, the merge is clean, and the relinker jobs (Linux/Windows/macOS) and conventions are green on this head. Merging. #1782 touches the same lines in GuestModuleBuilder.cpp, so it will need a rebase after this lands.

@adriadam10
adriadam10 merged commit 2f250f8 into boykopovar:main Oct 10, 2026
15 checks passed
SleglJan pushed a commit to SleglJan/AnyPS5 that referenced this pull request Oct 10, 2026
…required-modules-publication

fix(relinker): discover required modules in nested standard directories
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants