From eb2e72328bbbab3187eb55336d9a2d989504ff31 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Mon, 3 Aug 2026 22:49:58 -0600 Subject: [PATCH] fix(phase-30 T6): byte-neutral decl conforms unblock the SC07 EXTEND lane MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The dedup_extend SC07 lane banked 0/36. Captured every failure's own compiler error rather than guessing: 5 PLUMBING (declaration conflicts) + 4 DIFF per binary, and the PLUMBING set reduces to 4 distinct symbols repeated across all four binaries. Fixed at the lowest available blast radius, each byte-neutral BY CONSTRUCTION and proven by R22: - func_80146C3C (8 of 36): T2, but 1 token. DEFINE_func_8016A08C / DEFINE_func_8016A1CC declared it `(void)` while the SC07 TUs declare `(u8 *a0)`. Both macros already CAST at the call site, so the prototype is codegen-irrelevant -> relax to `()` (no-prototype). Measured first: all 4,020 fleet decls are (void)/()/(u8*)/(u8 *a0) โ€” no default-promotion param anywhere, so `()` is compatible with every one of them (the gcc-2.7.2 `()` dead-end needs a promoting param; there is none). - func_8014F4C0 (4 of 36, self-axis), D_80126CC4 (3), func_8012E5CC (1): T1 binary-local. Conformed the SC07 decls to the fleet-canonical form. Every one has ZERO uncast uses in its TU (verified per file), so the decls were pure splat boilerplate with no codegen effect. Deliberately NOT touched: engine_core.h beyond those 2 lines. The ยง29 law is about BULK header edits (the 2,046-file sed that still didn't build); 2 targeted macro lines with a measured compatibility argument is not that. R22 clean-fleet: make clean && extract-all && check-all -> 140 passed, 0 failed of 140. Enabling change only; no function banked in this commit. Method note (mine, recorded): I read `corpus.stubs` while `make extract-all` was mid-flight and got garbage โ€” R32's coverage assertion refused to answer instead of returning a wrong stub set. A measurement taken during a rebuild is not a measurement (S27's law, re-earned). Also: `nohup CMD &` inside a backgrounded Bash call makes the harness signal completion of the WRAPPER, not the campaign โ€” the R22 "finished" at 63/140. Waited on `pgrep -x make` instead. --- src/ov_SC07_006/ov_SC07_006_jr_80140608.c | 8 ++++---- src/ov_SC07_007/ov_SC07_007_jr_80140608.c | 4 ++-- src/ov_SC07_010/ov_SC07_010_jr_80140608.c | 2 +- src/ov_SC07_011/ov_SC07_011_jr_80140608.c | 4 ++-- src/shared/engine_core.h | 4 ++-- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/ov_SC07_006/ov_SC07_006_jr_80140608.c b/src/ov_SC07_006/ov_SC07_006_jr_80140608.c index 185665c9c..f13e74c26 100644 --- a/src/ov_SC07_006/ov_SC07_006_jr_80140608.c +++ b/src/ov_SC07_006/ov_SC07_006_jr_80140608.c @@ -365,7 +365,7 @@ extern s32 func_8012E504(s32 a0, s32 a1); extern s32 func_8012E544(s32 a0); extern s32 func_8012E57C(s32 a0, s32 a1); extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3); -extern void func_8012E5CC(s32 param_1, u16 param_2, u16 param_3); +extern s32 func_8012E5CC(s32 a0, s32 a1, s32 a2); extern void func_8012E688(s32 param_1, u16 param_2, u16 param_3); extern s32 func_8012E778(int param_1, int param_2); extern void func_8012E88C(u8 *a0); @@ -536,7 +536,7 @@ extern void func_80136C54(void); extern void func_80136D00(void); extern void SetLineG2(void *); extern void func_80136D08(s32 arg0, s32 arg1); -extern u16 D_80126CC4; +extern s16 D_80126CC4; extern M2C_UNK func_800153CC(M2C_UNK, u16, M2C_UNK, M2C_UNK, s32, s32); extern void func_80136DFC(void); extern void func_80136EC4(void); @@ -3366,7 +3366,7 @@ DEFINE_func_801472F0() /* dedup: shared engine-core @0x801472f0 (src/shared) */ extern s16 currentLocationId; extern s32 D_80126B58; extern void func_80015978(s32, s32*); -extern void func_8012E5CC(s32, u16, u16); +extern s32 func_8012E5CC(s32, s32, s32); extern void func_8002D4C8(s32 a0, s32 a1); void func_80147364(u16 param_1, u16 param_2) { @@ -5942,7 +5942,7 @@ DEFINE_func_8014F3E8() /* dedup: shared engine-core @0x8014F3E8 (src/shared) */ -extern void func_8014F4C0(); +extern s32 func_8014F4C0(); s32 func_8014F468(void) { diff --git a/src/ov_SC07_007/ov_SC07_007_jr_80140608.c b/src/ov_SC07_007/ov_SC07_007_jr_80140608.c index 8de4456e4..7fe4b2e6f 100644 --- a/src/ov_SC07_007/ov_SC07_007_jr_80140608.c +++ b/src/ov_SC07_007/ov_SC07_007_jr_80140608.c @@ -529,7 +529,7 @@ extern void func_80136C54(void); extern void func_80136D00(void); extern void SetLineG2(void *); extern void func_80136D08(s32 arg0, s32 arg1); -extern u16 D_80126CC4; +extern s16 D_80126CC4; extern M2C_UNK func_800153CC(M2C_UNK, u16, M2C_UNK, M2C_UNK, s32, s32); extern void func_80136DFC(void); extern void func_80136EC4(void); @@ -5725,7 +5725,7 @@ DEFINE_func_8014F2E0() /* dedup: shared engine-core @0x8014f2e0 (src/shared) */ DEFINE_func_8014F3E8() /* dedup: shared engine-core @0x8014F3E8 (src/shared) */ -extern void func_8014F4C0(u8 *a0); +extern s32 func_8014F4C0(); s32 func_8014F468(void) { diff --git a/src/ov_SC07_010/ov_SC07_010_jr_80140608.c b/src/ov_SC07_010/ov_SC07_010_jr_80140608.c index 15fc66dc2..dccd9fa92 100644 --- a/src/ov_SC07_010/ov_SC07_010_jr_80140608.c +++ b/src/ov_SC07_010/ov_SC07_010_jr_80140608.c @@ -4766,7 +4766,7 @@ DEFINE_func_8014F2E0() /* dedup: shared engine-core @0x8014f2e0 (src/shared) */ DEFINE_func_8014F3E8() /* dedup: shared engine-core @0x8014F3E8 (src/shared) */ -extern void func_8014F4C0(u8 *a0); +extern s32 func_8014F4C0(); s32 func_8014F468(void) { diff --git a/src/ov_SC07_011/ov_SC07_011_jr_80140608.c b/src/ov_SC07_011/ov_SC07_011_jr_80140608.c index 118939bb0..f9fc2dd1d 100644 --- a/src/ov_SC07_011/ov_SC07_011_jr_80140608.c +++ b/src/ov_SC07_011/ov_SC07_011_jr_80140608.c @@ -529,7 +529,7 @@ extern void func_80136C54(void); extern void func_80136D00(void); extern void SetLineG2(void *); extern void func_80136D08(s32 arg0, s32 arg1); -extern u16 D_80126CC4; +extern s16 D_80126CC4; extern M2C_UNK func_800153CC(M2C_UNK, u16, M2C_UNK, M2C_UNK, s32, s32); extern void func_80136DFC(void); extern void func_80136EC4(void); @@ -5727,7 +5727,7 @@ DEFINE_func_8014F2E0() /* dedup: shared engine-core @0x8014f2e0 (src/shared) */ DEFINE_func_8014F3E8() /* dedup: shared engine-core @0x8014F3E8 (src/shared) */ -extern void func_8014F4C0(u8 *a0); +extern s32 func_8014F4C0(); s32 func_8014F468(void) { diff --git a/src/shared/engine_core.h b/src/shared/engine_core.h index a0f0c5ce4..b3273622e 100644 --- a/src/shared/engine_core.h +++ b/src/shared/engine_core.h @@ -20581,7 +20581,7 @@ extern void func_80147324(s32 arg0); \ extern s32 func_80146A6C(s32 a0, void *a1, s32 a2, s32 a3, s32 a4, s32 a5, s32 a6); \ extern void func_80147364(); \ - extern void func_80146C3C(void); \ + extern void func_80146C3C(); \ void func_8016A08C(s32 param_1) { \ register s32 s0 __asm__("$16"); \ register void *s1 __asm__("$17"); \ @@ -22406,7 +22406,7 @@ extern u8 D_80078EBF; \ extern void func_80147324(s32 arg0); \ extern void func_80147364(); \ - extern void func_80146C3C(void); \ + extern void func_80146C3C(); \ void func_8016A1CC(int param_1) \ { \ register int iVar1 __asm__("$2"); \