mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-03-21 17:55:13 -05:00
Edit lcf template to ensure correct name for crt0.o and link order for .version symbols
This commit is contained in:
parent
1a50ec043b
commit
31fc5236cb
|
|
@ -6,7 +6,7 @@ MEMORY
|
|||
<END.AUTOLOADS>
|
||||
binary.AUTOLOAD_INFO (RWX) : ORIGIN = 0, LENGTH = 0x0 >> <TARGET.NAME><PROPERTY.SUFFIX>
|
||||
binary.STATIC_FOOTER (RWX) : ORIGIN = 0, LENGTH = 0x0 >> <TARGET.NAME><PROPERTY.SUFFIX>
|
||||
|
||||
|
||||
<PROPERTY.OVERLAYDEFS> (RW) : ORIGIN = AFTER(<STATIC.NAME>), LENGTH = 0x0 > <PROPERTY.OVERLAYDEFS><PROPERTY.SUFFIX>
|
||||
<PROPERTY.OVERLAYTABLE> (RW) : ORIGIN = AFTER(<STATIC.NAME>), LENGTH = 0x0 > <PROPERTY.OVERLAYTABLE><PROPERTY.SUFFIX>
|
||||
<FOREACH.OVERLAYS>
|
||||
|
|
@ -32,6 +32,11 @@ KEEP_SECTION
|
|||
.sinit
|
||||
}
|
||||
|
||||
KEEP_SECTION
|
||||
{
|
||||
.exception
|
||||
}
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
############################ STATIC #################################
|
||||
|
|
@ -48,10 +53,12 @@ SECTIONS
|
|||
SDK_STATIC_TEXT_START =.;
|
||||
#:::::::::: text/rodata
|
||||
libsyscall.a (.text)
|
||||
crt0.o (.text)
|
||||
crt0.o (.rodata)
|
||||
src_crt0.c.o (.text)
|
||||
src_crt0.c.o (.rodata)
|
||||
|
||||
* (.version)
|
||||
<FOREACH.STATIC.LIBRARIES=.version>
|
||||
<STATIC.LIBRARY=.version:t>
|
||||
<END.STATIC.LIBRARIES>
|
||||
OBJECT(NitroMain,*)
|
||||
<FOREACH.STATIC.OBJECTS=.text>
|
||||
<STATIC.OBJECT=.text:t>
|
||||
|
|
@ -116,7 +123,7 @@ SECTIONS
|
|||
#:::::::::: text/rodata
|
||||
. = ALIGN(32);
|
||||
SDK_STATIC_TEXT_END =.;
|
||||
|
||||
|
||||
#
|
||||
# DATA BLOCK: READ WRITE
|
||||
#
|
||||
|
|
@ -146,8 +153,8 @@ SECTIONS
|
|||
|
||||
SDK_STATIC_TEXT_SIZE = SDK_STATIC_TEXT_END - SDK_STATIC_TEXT_START;
|
||||
SDK_STATIC_DATA_SIZE = SDK_STATIC_DATA_END - SDK_STATIC_DATA_START;
|
||||
SDK_STATIC_SIZE = SDK_STATIC_END - SDK_STATIC_START;
|
||||
__sinit__ = SDK_STATIC_SINIT_START; # for static initializer
|
||||
SDK_STATIC_SIZE = SDK_STATIC_END - SDK_STATIC_START;
|
||||
__sinit__ = SDK_STATIC_SINIT_START; # for static initializer
|
||||
__exception_table_start__ = SDK_STATIC_ETABLE_START; # for exception table
|
||||
__exception_table_end__ = SDK_STATIC_ETABLE_END; # for exception table
|
||||
} > <STATIC.NAME>
|
||||
|
|
@ -183,8 +190,8 @@ SECTIONS
|
|||
SDK_STATIC_BSS_SIZE = SDK_STATIC_BSS_END - SDK_STATIC_BSS_START;
|
||||
|
||||
} >> <STATIC.NAME>
|
||||
|
||||
|
||||
|
||||
|
||||
############################ AUTOLOADS ##############################
|
||||
SDK_AUTOLOAD.ITCM.START = 0x01ff8000;
|
||||
SDK_AUTOLOAD.ITCM.END = SDK_AUTOLOAD.ITCM.START;
|
||||
|
|
@ -276,7 +283,7 @@ SECTIONS
|
|||
. = ALIGN(32);
|
||||
SDK_AUTOLOAD.<AUTOLOAD.NAME>.DATA_END =.;
|
||||
SDK_AUTOLOAD.<AUTOLOAD.NAME>.END =.;
|
||||
|
||||
|
||||
SDK_AUTOLOAD.<AUTOLOAD.NAME>.TEXT_SIZE = SDK_AUTOLOAD.<AUTOLOAD.NAME>.TEXT_END - SDK_AUTOLOAD.<AUTOLOAD.NAME>.TEXT_START;
|
||||
SDK_AUTOLOAD.<AUTOLOAD.NAME>.DATA_SIZE = SDK_AUTOLOAD.<AUTOLOAD.NAME>.DATA_END - SDK_AUTOLOAD.<AUTOLOAD.NAME>.DATA_START;
|
||||
SDK_AUTOLOAD.<AUTOLOAD.NAME>.SIZE = SDK_AUTOLOAD.<AUTOLOAD.NAME>.END - SDK_AUTOLOAD.<AUTOLOAD.NAME>.START;
|
||||
|
|
@ -353,11 +360,11 @@ SECTIONS
|
|||
WRITEW SDK_AUTOLOAD.<AUTOLOAD.NAME>.BSS_SIZE;
|
||||
<END.AUTOLOADS>
|
||||
} > binary.AUTOLOAD_INFO
|
||||
|
||||
|
||||
SDK_AUTOLOAD_LIST = SDK_AUTOLOAD_START + SDK_AUTOLOAD_SIZE;
|
||||
SDK_AUTOLOAD_LIST_END = SDK_AUTOLOAD_START + SDK_AUTOLOAD_SIZE + SIZEOF(.binary.AUTOLOAD_INFO);
|
||||
SDK_AUTOLOAD_LIST_END = SDK_AUTOLOAD_START + SDK_AUTOLOAD_SIZE + SIZEOF(.binary.AUTOLOAD_INFO);
|
||||
SDK_AUTOLOAD_SIZE = SDK_AUTOLOAD_SIZE + SIZEOF(.binary.AUTOLOAD_INFO);
|
||||
|
||||
|
||||
############################ STATIC_FOOTER ##########################
|
||||
.binary.STATIC_FOOTER:
|
||||
{
|
||||
|
|
@ -365,7 +372,7 @@ SECTIONS
|
|||
WRITEW _start_ModuleParams - ADDR(.<STATIC.NAME>);
|
||||
WRITEW 0; # NO DIGEST
|
||||
} > binary.STATIC_FOOTER
|
||||
|
||||
|
||||
############################ OVERLAYS ###############################
|
||||
SDK_OVERLAY_NUMBER = <NUMBER.OVERLAYS>;
|
||||
|
||||
|
|
@ -453,7 +460,7 @@ SECTIONS
|
|||
|
||||
SDK_OVERLAY.<OVERLAY.NAME>.TEXT_SIZE = SDK_OVERLAY.<OVERLAY.NAME>.TEXT_END - SDK_OVERLAY.<OVERLAY.NAME>.TEXT_START;
|
||||
SDK_OVERLAY.<OVERLAY.NAME>.DATA_SIZE = SDK_OVERLAY.<OVERLAY.NAME>.DATA_END - SDK_OVERLAY.<OVERLAY.NAME>.DATA_START;
|
||||
SDK_OVERLAY.<OVERLAY.NAME>.SIZE = SDK_OVERLAY.<OVERLAY.NAME>.END - SDK_OVERLAY.<OVERLAY.NAME>.START;
|
||||
SDK_OVERLAY.<OVERLAY.NAME>.SIZE = SDK_OVERLAY.<OVERLAY.NAME>.END - SDK_OVERLAY.<OVERLAY.NAME>.START;
|
||||
|
||||
} > <OVERLAY.NAME>
|
||||
|
||||
|
|
@ -487,31 +494,31 @@ SECTIONS
|
|||
SDK_OVERLAY.<OVERLAY.NAME>.BSS_END = .;
|
||||
|
||||
SDK_OVERLAY.<OVERLAY.NAME>.BSS_SIZE = SDK_OVERLAY.<OVERLAY.NAME>.BSS_END - SDK_OVERLAY.<OVERLAY.NAME>.BSS_START;
|
||||
|
||||
|
||||
} >> <OVERLAY.NAME>
|
||||
|
||||
<END.OVERLAYS>
|
||||
|
||||
|
||||
############################ MAIN EX ##################################
|
||||
# MAIN EX Area
|
||||
.dummy.MAIN_EX:
|
||||
{
|
||||
. = ALIGN(32);
|
||||
} > dummy.MAIN_EX
|
||||
|
||||
|
||||
############################ ARENA ##################################
|
||||
.arena.MAIN:
|
||||
{
|
||||
. = ALIGN(32);
|
||||
SDK_SECTION_ARENA_START =.;
|
||||
} > arena.MAIN
|
||||
|
||||
|
||||
.arena.MAIN_EX:
|
||||
{
|
||||
. = ALIGN(32);
|
||||
SDK_SECTION_ARENA_EX_START =.;
|
||||
} > arena.MAIN_EX
|
||||
|
||||
|
||||
.arena.ITCM:
|
||||
{
|
||||
. = ALIGN(32);
|
||||
|
|
@ -523,21 +530,21 @@ SECTIONS
|
|||
. = ALIGN(32);
|
||||
SDK_SECTION_ARENA_DTCM_START =.;
|
||||
} > arena.DTCM
|
||||
|
||||
|
||||
############################ OVERLAYDEFS ############################
|
||||
.<PROPERTY.OVERLAYDEFS>:
|
||||
{
|
||||
### <STATIC.NAME> module information
|
||||
WRITEW ADDR(.<STATIC.NAME>); # load address
|
||||
WRITEW _start; # entry address
|
||||
### <STATIC.NAME> module information
|
||||
WRITEW ADDR(.<STATIC.NAME>); # load address
|
||||
WRITEW _start; # entry address
|
||||
WRITEW SDK_STATIC_SIZE + SDK_AUTOLOAD_SIZE; # size of module
|
||||
WRITEW _start_AutoloadDoneCallback; # callback autoload done
|
||||
|
||||
### overlay filename
|
||||
WRITEW _start_AutoloadDoneCallback; # callback autoload done
|
||||
|
||||
### overlay filename
|
||||
<FOREACH.OVERLAYS>
|
||||
WRITES ("<TARGET.NAME=%_ov_><OVERLAY.NAME><PROPERTY.SUFFIX>"); # Overlay <OVERLAY.ID>
|
||||
<END.OVERLAYS>
|
||||
|
||||
|
||||
} > <PROPERTY.OVERLAYDEFS>
|
||||
|
||||
|
||||
|
|
@ -546,25 +553,25 @@ SECTIONS
|
|||
{
|
||||
<FOREACH.OVERLAYS>
|
||||
# Overlay <OVERLAY.ID>
|
||||
WRITEW <OVERLAY.ID>; # overlay ID
|
||||
WRITEW ADDR(.<OVERLAY.NAME>); # load address
|
||||
WRITEW SDK_OVERLAY.<OVERLAY.NAME>.SIZE; # size of module
|
||||
WRITEW SDK_OVERLAY.<OVERLAY.NAME>.BSS_SIZE; # size of bss
|
||||
WRITEW <OVERLAY.ID>; # overlay ID
|
||||
WRITEW ADDR(.<OVERLAY.NAME>); # load address
|
||||
WRITEW SDK_OVERLAY.<OVERLAY.NAME>.SIZE; # size of module
|
||||
WRITEW SDK_OVERLAY.<OVERLAY.NAME>.BSS_SIZE; # size of bss
|
||||
WRITEW SDK_OVERLAY.<OVERLAY.NAME>.SINIT_START; # start address of static init
|
||||
WRITEW SDK_OVERLAY.<OVERLAY.NAME>.SINIT_END; # end address of static init
|
||||
WRITEW <OVERLAY.ID>; # ROM file ID
|
||||
WRITEW 0; # Reserved
|
||||
|
||||
WRITEW <OVERLAY.ID>; # ROM file ID
|
||||
WRITEW 0; # Reserved
|
||||
|
||||
<END.OVERLAYS>
|
||||
|
||||
|
||||
} > <PROPERTY.OVERLAYTABLE>
|
||||
|
||||
|
||||
|
||||
|
||||
############################ OTHERS #################################
|
||||
SDK_MAIN_ARENA_LO = SDK_SECTION_ARENA_START;
|
||||
SDK_IRQ_STACKSIZE = <STATIC.IRQSTACKSIZE>; # allocated in DTCM
|
||||
SDK_SYS_STACKSIZE = <STATIC.STACKSIZE>; # when 0 means all remains of DTCM
|
||||
|
||||
|
||||
# Module filelist
|
||||
.binary.MODULE_FILES:
|
||||
{
|
||||
|
|
@ -578,7 +585,7 @@ SECTIONS
|
|||
{
|
||||
. = . + SDK_AUTOLOAD_ITCM_SIZE + SDK_AUTOLOAD_ITCM_BSS_SIZE;
|
||||
} > check.ITCM
|
||||
|
||||
|
||||
SDK_SYS_STACKSIZE_SIGN = (SDK_SYS_STACKSIZE < 0x80000000) * 2 - 1;
|
||||
.check.DTCM:
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user