Partial linking of spec segments (#2661)

* Partial linking of overlay segments, relax linker script alignment

* Partial linking of all spec segments

* Fix update, remove _RomPos from linker script

* iQue version working pending COM-plugin update

* Add plf map file resolution to sym_info.py, local symbol merging is broken

* git subrepo pull tools/com-plugin

subrepo:
  subdir:   "tools/com-plugin"
  merged:   "c4f3ba845"
upstream:
  origin:   "git@github.com:Thar0/com-plugin.git"
  branch:   "main"
  commit:   "c4f3ba845"
git-subrepo:
  version:  "0.4.6"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "110b9eb"

* Make tools compatible with partial linking

Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com>

* Remove unused files

* Fix some makefile bits

* mkspecrules cleanup

* Comment on the makerom linker layout in mkldscript

* Revert linker padding strategy back to pad_text spec directives

* Comment on objcopy elf -> rom step

* Adjust tool descriptions

* Fix compressed builds

* rm reloc_prereq, no longer used

* Makefile merge fix

Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>

---------

Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com>
Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
This commit is contained in:
Tharo
2026-05-06 22:33:03 +01:00
committed by GitHub
parent 70701b8ac9
commit 2c481eaeeb
24 changed files with 1568 additions and 1837 deletions
+8 -8
View File
@@ -1,38 +1,39 @@
beginseg
name "ovl_title"
compress
flags OVERLAY
address 0x80800000
include "$(BUILD_DIR)/src/overlays/gamestates/ovl_title/z_title.o"
include "$(BUILD_DIR)/src/overlays/gamestates/ovl_title/ovl_title_reloc.o"
endseg
beginseg
name "ovl_select"
compress
flags OVERLAY
include "$(BUILD_DIR)/src/overlays/gamestates/ovl_select/z_select.o"
include "$(BUILD_DIR)/src/overlays/gamestates/ovl_select/ovl_select_reloc.o"
endseg
beginseg
name "ovl_opening"
compress
flags OVERLAY
include "$(BUILD_DIR)/src/overlays/gamestates/ovl_opening/z_opening.o"
include "$(BUILD_DIR)/src/overlays/gamestates/ovl_opening/ovl_opening_reloc.o"
endseg
beginseg
name "ovl_file_choose"
compress
flags OVERLAY
include "$(BUILD_DIR)/src/overlays/gamestates/ovl_file_choose/z_file_nameset_data.o"
include "$(BUILD_DIR)/src/overlays/gamestates/ovl_file_choose/z_file_copy_erase.o"
include "$(BUILD_DIR)/src/overlays/gamestates/ovl_file_choose/z_file_nameset.o"
include "$(BUILD_DIR)/src/overlays/gamestates/ovl_file_choose/z_file_choose.o"
include "$(BUILD_DIR)/src/overlays/gamestates/ovl_file_choose/ovl_file_choose_reloc.o"
endseg
beginseg
name "ovl_kaleido_scope"
compress
flags OVERLAY
include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.o"
include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug.o"
include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.o"
@@ -46,32 +47,31 @@ beginseg
#else
include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data_mq.o"
#endif
include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/ovl_kaleido_scope_reloc.o"
endseg
beginseg
name "ovl_player_actor"
compress
flags OVERLAY
include "$(BUILD_DIR)/src/overlays/actors/ovl_player_actor/z_player.o"
include "$(BUILD_DIR)/src/overlays/actors/ovl_player_actor/ovl_player_actor_reloc.o"
endseg
beginseg
name "ovl_map_mark_data"
compress
flags OVERLAY
#if !OOT_MQ
include "$(BUILD_DIR)/src/overlays/misc/ovl_map_mark_data/z_map_mark_data.o"
#else
include "$(BUILD_DIR)/src/overlays/misc/ovl_map_mark_data/z_map_mark_data_mq.o"
#endif
include "$(BUILD_DIR)/src/overlays/misc/ovl_map_mark_data/ovl_map_mark_data_reloc.o"
endseg
beginseg
name "ovl_En_Test"
compress
flags OVERLAY
include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Test/z_en_test.o"
include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Test/ovl_En_Test_reloc.o"
endseg
// Overlays for most actors and effects are reordered between versions. On N64 and iQue,
+461 -461
View File
File diff suppressed because it is too large Load Diff
+461 -461
View File
File diff suppressed because it is too large Load Diff
+12 -10
View File
@@ -4,16 +4,6 @@
#include "include/versions.h"
beginseg
name "makerom"
// We set the address of the makerom segment as 0x80000400 - 0x1000, since the ROM header and IPL3 together
// are 0x1000 bytes long and we want the entry code to end up at address 0x80000400.
address 0x7FFFF400
include "$(BUILD_DIR)/src/makerom/rom_header.o"
include "$(BUILD_DIR)/src/makerom/ipl3.o"
include "$(BUILD_DIR)/src/makerom/entry.o"
endseg
beginseg
name "boot"
@@ -742,7 +732,9 @@ beginseg
include "$(BUILD_DIR)/src/libc64/malloc.o"
include "$(BUILD_DIR)/src/libc64/qrand.o"
include "$(BUILD_DIR)/src/libc64/__osMalloc_n64.o"
#if !DEBUG_FEATURES
include "$(BUILD_DIR)/src/libc64/sprintf.o"
#endif
include "$(BUILD_DIR)/src/libc64/aprintf.o"
#elif PLATFORM_GC
include "$(BUILD_DIR)/src/libc64/math64.o"
@@ -750,7 +742,9 @@ beginseg
include "$(BUILD_DIR)/src/libc64/malloc.o"
include "$(BUILD_DIR)/src/libc64/qrand.o"
include "$(BUILD_DIR)/src/libc64/__osMalloc_gc.o"
#if !DEBUG_FEATURES
include "$(BUILD_DIR)/src/libc64/sprintf.o"
#endif
include "$(BUILD_DIR)/src/libc64/aprintf.o"
include "$(BUILD_DIR)/src/libc64/sleep.o"
#elif PLATFORM_IQUE
@@ -761,7 +755,9 @@ beginseg
include "$(BUILD_DIR)/src/libc64/fp.o"
include "$(BUILD_DIR)/src/libc64/qrand.o"
include "$(BUILD_DIR)/src/libc64/sleep.o"
#if !DEBUG_FEATURES
include "$(BUILD_DIR)/src/libc64/sprintf.o"
#endif
#endif
// jpeg
@@ -781,17 +777,23 @@ beginseg
#if PLATFORM_N64
include "$(BUILD_DIR)/src/libc/sqrt.o"
include "$(BUILD_DIR)/src/libc/fmodf.o"
#if !COMPILER_GCC
include "$(BUILD_DIR)/src/libc/memset.o"
include "$(BUILD_DIR)/src/libc/memmove.o"
#endif
#elif PLATFORM_GC
include "$(BUILD_DIR)/src/libc/sqrt.o"
include "$(BUILD_DIR)/src/libc/fabsf.o"
include "$(BUILD_DIR)/src/libc/fmodf.o"
#if !COMPILER_GCC
include "$(BUILD_DIR)/src/libc/memset.o"
include "$(BUILD_DIR)/src/libc/memmove.o"
#endif
#elif PLATFORM_IQUE
include "$(BUILD_DIR)/src/libc/fmodf.o"
#if !COMPILER_GCC
include "$(BUILD_DIR)/src/libc/memmove.o"
#endif
include "$(BUILD_DIR)/src/libc/fabsf.o"
include "$(BUILD_DIR)/src/libc/sqrt.o"
#endif