From 6fcaa51832e8abe62485fb2a78f709846ce5bb6b Mon Sep 17 00:00:00 2001 From: cadmic Date: Sun, 8 Sep 2024 18:37:55 -0700 Subject: [PATCH] fix_bss.py: Restore z_locale special case (#2179) --- tools/fix_bss.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tools/fix_bss.py b/tools/fix_bss.py index 8e633a2f72..da6b6547a3 100755 --- a/tools/fix_bss.py +++ b/tools/fix_bss.py @@ -797,8 +797,14 @@ def main(): for file, bss_section in bss_sections.items(): if not bss_section.pointers: continue + # The following heuristic doesn't work for z_locale, since the first pointer into BSS is not + # at the start of the section. Fortunately z_locale either has one BSS variable (in GC versions) + # or none (in N64 versions), so we can just skip it. + if str(file) == "src/boot/z_locale.c": + continue # For the baserom, assume that the lowest address is the start of the BSS section. This might - # not be true if the first BSS variable is not referenced, but in practice this doesn't happen. + # not be true if the first BSS variable is not referenced, but in practice this doesn't happen + # (except for z_locale above). base_min_address = min(p.base_value for p in bss_section.pointers) build_min_address = bss_section.start_address if not all(