mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-03 00:05:11 -04:00
fix(build): REORDER_TUS missed 800c2_2/800c2_3 — $(filter) is an exact stem match
`$(filter $*,$(REORDER_TUS))` matches the TU stem EXACTLY, so `800c2` never
covered `800c2_2` or `800c2_3`. Those two TUs went through maspsx while their
siblings went through reorder_passthrough | as -O2 (the §332b island, landed
2026-09-01).
That gap is why func_80062388's `lui at / jr ra / sw a0,lo(at)` was written up
as COMPILER-INEXPRESSIBLE in cookbook §452: a probe (`void f(int v){D=v;}` ->
cc1 -> reorder_passthrough | as -O2) emits exactly that sequence. It was a
build-config gap, not a gcc-2.7.2 define_delay limit. §452 corrected.
Byte-neutrality PROVEN the right way -- gate_main --assert-baseline builds the
committed tree with NO draft substituted:
BASELINE GREEN — 143dbb89f34491258bbc27810d0a12ec8b43a8dd BYTE-IDENTICAL
This unblocks the 24 SDK-C-REORDER units, four of which were banked as verbatim
assembly on 2026-09-02 off a wall list that predated the fix by one day, with
closeness-0 drafts already in hand.
This commit is contained in:
@@ -729,7 +729,13 @@ CC1FLAGS := -quiet -O2 -G0 -mips1 -mcpu=3000 -mgas -msoft-float -fgnu-linker
|
||||
# TUs only, swap maspsx for tools/reorder_passthrough.py + `as -O2` — the pipeline
|
||||
# tools/oracle_reorder.py proved byte-exact (0 diffs on func_80061FA8 vs 57 on the pinned path).
|
||||
# The whole-binary SHA1 gate is the arbiter: if this were wrong the build simply fails.
|
||||
REORDER_TUS := 800c2 800c3
|
||||
# The §332b -O2 reorder island. THE STEMS MUST BE LISTED INDIVIDUALLY: `$(filter $*,...)` is an
|
||||
# exact match, so `800c2` does NOT cover `800c2_2`/`800c2_3` — those TUs were assembled through
|
||||
# maspsx while their siblings went through reorder_passthrough, which is why func_80062388's
|
||||
# `lui at / jr ra / sw a0,lo(at)` read as COMPILER-INEXPRESSIBLE (P31 S75): a probe showed cc1 +
|
||||
# reorder_passthrough + `as -O2` emits exactly that sequence. It was a build-config gap, not a
|
||||
# gcc limit (cookbook §452 corrected).
|
||||
REORDER_TUS := 800c2 800c2_2 800c2_3 800c3
|
||||
ASFLAGS_REORDER := -Iinclude -march=r3000 -mtune=r3000 -no-pad-sections -O2 -G0
|
||||
|
||||
build/src/%.o: src/%.c
|
||||
|
||||
Reference in New Issue
Block a user