summaryrefslogtreecommitdiff
path: root/ld_script_modern.txt
diff options
context:
space:
mode:
Diffstat (limited to 'ld_script_modern.txt')
-rw-r--r--ld_script_modern.txt156
1 files changed, 156 insertions, 0 deletions
diff --git a/ld_script_modern.txt b/ld_script_modern.txt
new file mode 100644
index 000000000..98ef16b17
--- /dev/null
+++ b/ld_script_modern.txt
@@ -0,0 +1,156 @@
+ENTRY(Start)
+
+gNumMusicPlayers = 4;
+gMaxLines = 0;
+
+SECTIONS {
+ . = 0x2000000;
+
+ ewram (NOLOAD) :
+ ALIGN(4)
+ {
+ gHeap = .;
+
+ . = 0x1C000;
+
+ src/*.o(ewram_data);
+
+ . = 0x40000;
+}
+
+ . = 0x3000000;
+
+ iwram (NOLOAD) :
+ ALIGN(4)
+ {
+ /* .bss starts at 0x3000000 */
+ src/*.o(.bss);
+ asm/m4a_1.o(.bss);
+
+ /* .bss.code starts at 0x3001AA8 */
+ src/m4a.o(.bss.code);
+
+ /* COMMON starts at 0x30022A8 */
+ src/*.o(COMMON);
+ *libc.a:sbrkr.o(COMMON);
+ end = .;
+ . = 0x8000;
+ }
+
+ . = 0x8000000;
+
+ .text :
+ ALIGN(4)
+ {
+ asm/crt0.o(.text);
+ src/*.o(.text);
+ asm/*.o(.text);
+ } =0
+
+ script_data :
+ ALIGN(4)
+ {
+ data/*.o(script_data);
+ } =0
+
+ lib_text :
+ ALIGN(4)
+ {
+ asm/libgcnmultiboot.o(.text);
+ asm/m4a_1.o(.text);
+ src/m4a.o(.text);
+ src/agb_flash.o(.text);
+ src/agb_flash_1m.o(.text);
+ src/agb_flash_mx.o(.text);
+ src/siirtc.o(.text);
+ src/librfu_stwi.o(.text);
+ src/librfu_intr.o(.text);
+ asm/librfu_intr.o(.text);
+ src/librfu_rfu.o(.text);
+ asm/librfu.o(.text);
+ asm/libagbsyscall.o(.text);
+ *libgcc.a:*.o(.text*);
+ *libc.a:*.o(.text*);
+ src/libisagbprn.o(.text);
+ } =0
+
+ .rodata :
+ ALIGN(4)
+ {
+ src/*.o(.rodata*);
+ data/*.o(.rodata*);
+ } =0
+
+ song_data :
+ ALIGN(4)
+ {
+ sound/songs/*.o(.rodata);
+ } =0
+
+ lib_rodata :
+ SUBALIGN(4)
+ {
+ src/m4a.o(.rodata);
+ src/agb_flash.o(.rodata);
+ src/agb_flash_1m.o(.rodata);
+ src/agb_flash_mx.o(.rodata);
+ src/agb_flash_le.o(.rodata);
+ src/siirtc.o(.rodata);
+ data/librfu_rodata.o(.rodata);
+ *libgcc.a:*.o(.rodata*);
+ *libc.a:*.o(.rodata*);
+ *libc.a:*.o(.data*);
+ src/libisagbprn.o(.rodata);
+ } =0
+
+ other_data :
+ ALIGN(4)
+ {
+ data/unknown_serial_data.o(.rodata);
+ data/multiboot_berry_glitch_fix.o(.rodata);
+ data/multiboot_pokemon_colosseum.o(.rodata);
+ } =0
+
+ anim_mon_front_pic_data :
+ ALIGN(4)
+ {
+ src/anim_mon_front_pics.o(.rodata);
+ } =0
+
+ gfx_data :
+ ALIGN(4)
+ {
+ src/graphics.o(.rodata);
+ } =0
+
+ /* DWARF debug sections.
+ Symbols in the DWARF debugging sections are relative to the beginning
+ of the section so we begin them at 0. */
+
+ /* DWARF 1 */
+ .debug 0 : { *(.debug) }
+ .line 0 : { *(.line) }
+
+ /* GNU DWARF 1 extensions */
+ .debug_srcinfo 0 : { *(.debug_srcinfo) }
+ .debug_sfnames 0 : { *(.debug_sfnames) }
+
+ /* DWARF 1.1 and DWARF 2 */
+ .debug_aranges 0 : { *(.debug_aranges) }
+ .debug_pubnames 0 : { *(.debug_pubnames) }
+
+ /* DWARF 2 */
+ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
+ .debug_abbrev 0 : { *(.debug_abbrev) }
+ .debug_line 0 : { *(.debug_line) }
+ .debug_frame 0 : { *(.debug_frame) }
+ .debug_str 0 : { *(.debug_str) }
+ .debug_loc 0 : { *(.debug_loc) }
+ .debug_macinfo 0 : { *(.debug_macinfo) }
+
+ /* Discard everything not specifically mentioned above. */
+ /DISCARD/ :
+ {
+ *(*);
+ }
+}