diff options
Diffstat (limited to 'c/src/lib/libbsp/powerpc/papyrus/startup/linkcmds')
-rw-r--r-- | c/src/lib/libbsp/powerpc/papyrus/startup/linkcmds | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/powerpc/papyrus/startup/linkcmds b/c/src/lib/libbsp/powerpc/papyrus/startup/linkcmds index df1997639f..00bf4c6876 100644 --- a/c/src/lib/libbsp/powerpc/papyrus/startup/linkcmds +++ b/c/src/lib/libbsp/powerpc/papyrus/startup/linkcmds @@ -21,6 +21,23 @@ MEMORY /* Do we need any of these for elf? __DYNAMIC = 0; */ + +/* What are these for? */ + +__EXCEPT_START__ = 0; +__EXCEPT_END__ = 0; +__SDATA2_START__ = 0; +__SDATA2_END__ = 0; +__SBSS2_START__ = 0; +__SBSS2_END__ = 0; +__FIXUP_START__ = 0; +__FIXUP_END__ = 0; +__GOT2_START__ = 0; +__GOT2_END__ = 0; +__SDATA_START__ = 0; +__SDATA_END__ = 0; + + SECTIONS { .vectors 0x0100 : @@ -37,6 +54,23 @@ SECTIONS *(.rodata1) *(.descriptors) *(rom_ver) + etext = ALIGN(0x10); + _etext = .; + __CTOR_LIST__ = .; + LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) + *(.ctors) + LONG(0) + __CTOR_END__ = .; + __DTOR_LIST__ = .; + LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) + *(.dtors) + LONG(0) + __DTOR_END__ = .; + *(.lit) + *(.shdata) + *(.init) + *(.fini) + _endtext = .; } > RAM /* R/W Data */ @@ -46,18 +80,22 @@ SECTIONS *(.data1) } > RAM + __GOT_START__ = .; .got : { s.got = .; *(.got.plt) *(.got) } > RAM + __GOT_END__ = .; + __SBSS_START__ = .; .bss : { bss.start = .; *(.bss) *(.sbss) *(COMMON) bss.end = ALIGN(4); } > RAM + __SBSS_END__ = .; bss.size = bss.end - bss.start; PROVIDE(_end = bss.end); |