Splice the softfp shims before the sysroot leaves for stage 2 - #179
Merged
Conversation
The shims were a dependency of finalize-sdk and of nothing else. A producer does not run finalize-sdk: it builds the sysroot target, tars the target half and hands it to stage 2. So the archives it exported had never been patched, and stage 2 failed the ABI contract test with checking the softfp ABI shims (23 functions) resolve against the shim missing sceGxmSetViewport resolved against the softfp shim wrapper which is the check doing its job two jobs away from the cause. The first softfp build in CI is where this surfaced; the container builds it was verified in are single-stage, and there finalize-sdk runs. The two lists were the problem, not the missing entry. They are mutually exclusive -- a producer exports, everything else finalizes -- so anything added to one and forgotten in the other stays invisible until something reads the result. Name the target half once and let both wait for it; the splice belongs to that list, at the point where the world is known to be softfp. Stage 2 is excluded because it imports the archives already spliced and builds no components, so there is no softfp-shim target there to wait for. The test reads both recipes and refuses either naming the splice itself, which is what let them drift.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
softfp-shimwas a dependency offinalize-sdkonly. A producer does not runfinalize-sdk— it builds thesysroottarget and hands the target half to stage 2 — so the stub archives it exported were never patched. The first softfp build in CI failed all eight stage 2 and stage 3 jobs on:The container builds this was verified in are single-stage, where
finalize-sdkruns.The fix names the target half once, in
CMakeLists.txt, with the splice in it:ExportSysroot.cmakeandFinalizeSdk.cmakeboth wait for that list instead of spelling the target half out separately. Stage 2 is excluded because it imports the archives already spliced and builds no components, so there is nosoftfp-shimtarget there.The test checks both recipes take the list and that neither names
softfp-shimitself, which is what let them drift.🤖 Generated with Claude Code