Skip to content

ci: merge train for 4 reviewed PRs (CI batch, do not merge) - #2561

Closed
oneandonlydean wants to merge 9 commits into
boykopovar:mainfrom
oneandonlydean:ci/merge-train-1010c
Closed

oneandonlydean wants to merge 9 commits into
boykopovar:mainfrom
oneandonlydean:ci/merge-train-1010c

Conversation

@oneandonlydean

Copy link
Copy Markdown
Collaborator

CI batch for the pull requests below, merged onto main 0011248 in this order. Do not merge this PR. It exists only so one full build tests them together; each PR is merged on its own after this build is green, and this PR is then closed.

JAB-dev and others added 9 commits October 9, 2026 23:26
…lumeMatrix

Pan follows the PS4 firmware 11.00 libSceNgs2.sprx: the speaker layout
from the init angles, then each param's angle and distance into a
volume matrix for the voice. Every param is checked before anything is
written, and angles too large to wrap throw. The pan functions are
exported from the existing Voice.cpp export block.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
flock mapped each call straight onto LockFileEx/UnlockFileEx, whose
byte-range locks stack per handle. LOCK_UN without a lock failed with
ERROR_NOT_LOCKED and aborted the process, a repeated LOCK_EX blocked
forever, converting between shared and exclusive failed, and a repeated
LOCK_SH needed as many unlocks.

Track the one lock each descriptor holds: a repeated mode and LOCK_UN
without a lock succeed, a conversion releases the old lock before taking
the new one, and close forgets the descriptor's lock.
FreeBSD sys_flock takes LOCK_UN over LOCK_EX over LOCK_SH, ignores other
bits and fails with EBADF when none of the three is set. The operation
reached the host unchanged, so malformed operations differed between
hosts: Linux rejects them with EINVAL and the Windows lock tracking threw.
Decode the operation before either host sees it.
The CFG/GOT filter's entry point collector checked header and symbol
positions as `offset + size > file size`, which wraps for offsets
near 2^64. A section header or symbol table offset there passed the
check, read bytes before the input buffer, and could reach an
in-bounds table through the wrapped address, adding entry points that
keep relocations alive. Check every position by subtraction instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Progress report (0011248 → 3116908)

📈 System libraries: 85.73% (+0.06%, +2 implemented functions)

✅ 2 implemented
Library Name
libSceNgs2.native sceNgs2PanGetVolumeMatrix
libSceNgs2.native sceNgs2PanInit

@github-actions

github-actions Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.

Pull request Conflicting files (lines on main) Same exports Same new files
#2117 core/relinker/cli/tests/test_help.py
#2196 core/relinker/relinker/tests/test_entry_point_bounds.py

@oneandonlydean

Copy link
Copy Markdown
Collaborator Author

Train build 38028193639 was green; the listed pull requests were merged individually. Closing.

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.

5 participants