diff options
Diffstat (limited to 'arm9/arm9.lcf')
-rw-r--r-- | arm9/arm9.lcf | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf index ebad9dc6..e31740c2 100644 --- a/arm9/arm9.lcf +++ b/arm9/arm9.lcf @@ -1,4 +1,7 @@ -#include "macros.lcf.inc" +/* + * Linker command file for Metrowerks ARM Linker 2.0 + * TODO: Split .rodata, .data, .sbss, .bss sections in source + */ MEMORY { arm9 (RWX) : ORIGIN=0x02000000, LENGTH=0 > arm9.sbin @@ -110,7 +113,6 @@ MEMORY { } SECTIONS { -#include "undefined_syms.txt" .arm9 : { ALIGNALL(4); . = ALIGN(32); SDK_STATIC_START = .; @@ -3269,7 +3271,17 @@ SECTIONS { SDK_OVERLAY_MODULE_86_ID = 86; SDK_OVERLAY.MODULE_86.ID = 86; SDK_OVERLAY.MODULE_86.START = .; - FILE_30C600.o (.text) /* 0x308600 */ + module_86.o (.text) + module_86.o (.rodata) + module_86.o (.init) + SDK_OVERLAY.MODULE_86.SINIT_START = .; + module_86.o (.ctor) + module_86.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_86.SINIT_END = .; + . = ALIGN(32); + module_86.o (.sdata) + module_86.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_86.END = .; SDK_OVERLAY.MODULE_86.SIZE = SDK_OVERLAY.MODULE_86.END - SDK_OVERLAY.MODULE_86.START; @@ -3279,7 +3291,8 @@ SECTIONS { { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_86.BSS_START = .; - FILE_30C600.o (.bss) + module_86.o (.bss) + module_86.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_86.BSS_END = .; SDK_OVERLAY.MODULE_86.BSS_SIZE = SDK_OVERLAY.MODULE_86.BSS_END - SDK_OVERLAY.MODULE_86.BSS_START; @@ -4184,7 +4197,15 @@ SECTIONS { WRITEW 85; WRITEW 0; - OVERLAY_TABLE(MODULE_86, 86) + WRITEW 86; + WRITEW ADDR(.MODULE_86); + WRITEW SDK_OVERLAY.MODULE_86.SIZE; + WRITEW SDK_OVERLAY.MODULE_86.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_86.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_86.SINIT_END; + WRITEW 86; + WRITEW 0; + } > arm9_table SDK_MAIN_ARENA_LO = SDK_SECTION_ARENA_START; |