aboutsummaryrefslogtreecommitdiff
path: root/backends/platform
diff options
context:
space:
mode:
authorTony Puccinelli2010-07-08 21:40:26 +0000
committerTony Puccinelli2010-07-08 21:40:26 +0000
commit7335e2fc6799478177e70e58645dea3a56883b5f (patch)
tree76879f861030125fa6ca177787c086bdff59a6ba /backends/platform
parent6c8cae3c55c9734b847e30991bbd09dae1075bd1 (diff)
downloadscummvm-rg350-7335e2fc6799478177e70e58645dea3a56883b5f.tar.gz
scummvm-rg350-7335e2fc6799478177e70e58645dea3a56883b5f.tar.bz2
scummvm-rg350-7335e2fc6799478177e70e58645dea3a56883b5f.zip
fixed dependencies/paths/etc. in arm9/makefile to get engine plugins building; changed makefile to not clean before building further engines when building all engines; fixed syntax of plugin.ld
svn-id: r50751
Diffstat (limited to 'backends/platform')
-rw-r--r--backends/platform/ds/arm9/makefile45
-rw-r--r--backends/platform/ds/arm9/source/plugin.ld438
-rw-r--r--backends/platform/ds/makefile18
3 files changed, 254 insertions, 247 deletions
diff --git a/backends/platform/ds/arm9/makefile b/backends/platform/ds/arm9/makefile
index ecbd3fe9c3..97094c8968 100644
--- a/backends/platform/ds/arm9/makefile
+++ b/backends/platform/ds/arm9/makefile
@@ -5,11 +5,7 @@ DYNAMIC_MODULES = 1
libndsdir = $(DEVKITPRO)/libnds
#libndsdir = /home/neil/devkitpror21/libnds
-ifeq ($(DYNAMIC_MODULES),1)
- ENABLED = DYNAMIC_PLUGIN
-else
- ENABLED = STATIC_PLUGIN
-endif
+ENABLED = DYNAMIC_PLUGIN
# Select the build by setting SCUMM_BUILD to a,b,c,d,e,f or g.
# Anything else gets build a.
@@ -70,8 +66,7 @@ ifdef DS_BUILD_F
else
ifdef DS_BUILD_E
# TODO: Inherit the earth uses so much RAM that I have removed libmad in order to
- # claw some back.
-
+ # claw some back.
else
ifdef DS_BUILD_I
@@ -118,8 +113,8 @@ ifdef DS_BUILD_A
DEFINES += -DDS_SCUMM_BUILD -DDS_BUILD_A -DUSE_ARM_GFX_ASM -DUSE_ARM_COSTUME_ASM
LOGO = logoa.bmp
ENABLE_SCUMM = $(ENABLED)
- DEFINES += -DENABLE_SCUMM=$(ENABLED)
- MODULES += engines/scumm
+ #DEFINES += -DENABLE_SCUMM=$(ENABLED)
+ #MODULES += engines/scumm
USE_ARM_GFX_ASM = 1
BUILD=scummvm-A
@@ -206,7 +201,7 @@ endif
# BUILD=scummvm-K
#endif
-ARM7BIN := -7 $(CURDIR)/../../arm7/arm7.bin
+ARM7BIN := -7 $(CURDIR)/../arm7/arm7.bin
CC = arm-eabi-gcc
CXX = arm-eabi-g++
@@ -259,13 +254,11 @@ ifdef WRAP_MALLOC
DEFINES += -DWRAP_MALLOC
endif
-INCLUDES= -I$(portdir)/$(BUILD) -I$(srcdir) -I$(srcdir)/engines \
+INCLUDES= -I$(portdir) -I$(srcdir) -I$(srcdir)/engines \
-I$(portdir)/data -I$(portdir)/../commoninclude \
-I$(portdir)/source -I$(portdir)/source/mad -I$(portdir)/source/libcartreset \
-I$(libndsdir)/include -include $(srcdir)/common/scummsys.h
-CXX_UPDATE_DEP_FLAG = -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d",-MQ,"$@",-MP
-
LIBS = -lm -L$(libndsdir)/lib -L$(portdir)/lib -lnds9
ifdef USE_MAD
LIBS += -lmad
@@ -274,7 +267,6 @@ ifdef USE_DEBUGGER
LIBS += -ldsdebugger -ldswifi9
endif
-
ifeq ($(DYNAMIC_MODULES),1)
DEFINES += -DDYNAMIC_MODULES
PRE_OBJS_FLAGS = -Wl,--whole-archive
@@ -282,11 +274,11 @@ POST_OBJS_FLAGS = -Wl,--no-whole-archive
endif
#-Lscumm -lscumm -Lbase -lbase -Lcommon -lcommon -Lgraphics -lgraphics -Lgui -lgui -Lsound -lsound
-EXECUTABLE = $(portdir)/$(BUILD)/scummvm.elf
+EXECUTABLE = scummvm.elf#$(portdir)/$(BUILD)/scummvm.elf
PLUGIN_PREFIX =
PLUGIN_SUFFIX = .plg
PLUGIN_EXTRA_DEPS = $(portdir)/source/plugin.ld $(portdir)/source/plugin.syms $(EXECUTABLE)
-PLUGIN_LDFLAGS = -nostartfiles -Wl,-q,-T$(portdir)/source/plugin.ld,--just-symbols,$(EXECUTABLE),--retain-symbols-file,$(portdir)/source/plugin.syms -lstdc++ -lc
+PLUGIN_LDFLAGS += -nostartfiles -Wl,-q,--just-symbols,$(EXECUTABLE),-T$(portdir)/source/plugin.ld,--retain-symbols-file,$(portdir)/source/plugin.syms -lstdc++ -lc -mthumb-interwork -mno-fpu -Wl,--gc-sections -mno-crt0 $(DEVKITPRO)/devkitARM/arm-eabi/lib/ds_arm9_crt0.o
MKDIR = mkdir -p
RM = rm -f
RM_REC = rm -rf
@@ -296,7 +288,6 @@ OBJCOPY = arm-eabi-objcopy
AS = arm-eabi-as
HAVE_GCC3 = true
-
PORT_OBJS := $(portdir)/source/blitters_arm.o $(portdir)/source/cdaudio.o $(portdir)/source/dsmain.o \
$(portdir)/../../../fs/ds/ds-fs.o $(portdir)/source/gbampsave.o $(portdir)/source/scummhelp.o\
$(portdir)/source/osystem_ds.o $(portdir)/source/ramsave.o\
@@ -360,11 +351,10 @@ OPT_SIZE := -Os -mthumb
OBJS := $(DATA_OBJS) $(LIBCARTRESET_OBJS) $(PORT_OBJS) $(COMPRESSOR_OBJS) $(FAT_OBJS)
-MODULE_DIRS += ./
+MODULE_DIRS += .
-ndsall:
- @[ -d $(BUILD) ] || mkdir -p $(BUILD)
- make -C ./$(BUILD) -f ../makefile scummvm.nds
+ndsall: plugins
+ make -f makefile scummvm.nds
include $(srcdir)/Makefile.common
@@ -373,16 +363,15 @@ semiclean:
clean:
$(RM) $(OBJS) $(EXECUTABLE)
- rm -fr $(BUILD)
+ rm -rf gui engines sound common plugins base backends graphics scummvm.nds scummvm.elf scummvm-stripped.elf scummvm.ds.gba *.h
plugin_dist :
- find . -name '*.plg' | while read p; do \
- sh-elf-strip -g -o "`basename \"$$p\" | tr '[:lower:]' '[:upper:]'`" "$$p"; \
+ for p in $(PLUGINS); do \
+ arm-elf-strip -g -o "`basename \"$$p\" | LC_CTYPE=C tr '[:lower:]' '[:upper:]'`" "$$p"; \
done
dist : SCUMMVM.BIN plugins plugin_dist
-
#---------------------------------------------------------------------------------
# canned command sequence for binary data
#---------------------------------------------------------------------------------
@@ -474,9 +463,9 @@ endef
#---------------------------------------------------------------------------------
%.nds: %.bin
- @echo ndstool -c $@ -9 scummvm.bin $(ARM7BIN) -b ../../$(LOGO) "$(shell basename $@);ScummVM $(VERSION);DS Port"
- ndstool -c $@ -9 scummvm.bin $(ARM7BIN) -b ../../$(LOGO) "$(shell basename $@);ScummVM $(VERSION);DS Port"
- dsbuild $@ -l ../ndsloader.bin
+ @echo ndstool -c $@ -9 scummvm.bin $(ARM7BIN) -b ../$(LOGO) "$(shell basename $@);ScummVM $(VERSION);DS Port"
+ ndstool -c $@ -9 scummvm.bin $(ARM7BIN) -b ../$(LOGO) "$(shell basename $@);ScummVM $(VERSION);DS Port"
+ dsbuild $@ -l ndsloader.bin
padbin 16 $(basename $@).ds.gba
diff --git a/backends/platform/ds/arm9/source/plugin.ld b/backends/platform/ds/arm9/source/plugin.ld
index 65ba0496c7..0296dd571d 100644
--- a/backends/platform/ds/arm9/source/plugin.ld
+++ b/backends/platform/ds/arm9/source/plugin.ld
@@ -1,216 +1,252 @@
OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm")
OUTPUT_ARCH(arm)
+
/* PHDRS specifies ELF Program Headers (or segments) to the plugin linker */
PHDRS {
plugin PT_LOAD ; /* Specifies that the plugin segment should be loaded from file */
}
+
+MEMORY {
+ rom : ORIGIN = 0x08000000, LENGTH = 32M
+ ewram : ORIGIN = 0x02000000, LENGTH = 4M - 4k
+ dtcm : ORIGIN = 0x0b000000, LENGTH = 16K
+ vectors : ORIGIN = 0x01000000, LENGTH = 256
+ itcm : ORIGIN = 0x01000100, LENGTH = 32K - 256
+}
+
+__vectors_start = ORIGIN(vectors);
+__itcm_start = ORIGIN(itcm);
+__ewram_end = ORIGIN(ewram) + LENGTH(ewram);
+__eheap_end = ORIGIN(ewram) + LENGTH(ewram);
+__dtcm_start = ORIGIN(dtcm);
+__dtcm_top = ORIGIN(dtcm) + LENGTH(dtcm);
+__irq_flags = __dtcm_top - 0x08;
+__irq_vector = __dtcm_top - 0x04;
+
+__sp_svc = __dtcm_top - 0x100;
+__sp_irq = __sp_svc - 0x100;
+__sp_usr = __sp_irq - 0x100;
+
SECTIONS
{
- /* Read-only sections, merged into text segment: */
- . = 0;
- .interp : { *(.interp) } : plugin /*The ": plugin" tells the linker to assign this and
- the following sections to the "plugin" segment*/
- .note.gnu.build-id : { *(.note.gnu.build-id) }
- .hash : { *(.hash) }
- .gnu.hash : { *(.gnu.hash) }
- .dynsym : { *(.dynsym) }
- .dynstr : { *(.dynstr) }
- .gnu.version : { *(.gnu.version) }
- .gnu.version_d : { *(.gnu.version_d) }
- .gnu.version_r : { *(.gnu.version_r) }
- .rel.dyn :
- {
- *(.rel.init)
- *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
- *(.rel.fini)
- *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
- *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*)
- *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
- *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
- *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
- *(.rel.ctors)
- *(.rel.dtors)
- *(.rel.got)
- *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
- PROVIDE_HIDDEN (__rel_iplt_start = .);
- *(.rel.iplt)
- PROVIDE_HIDDEN (__rel_iplt_end = .);
- PROVIDE_HIDDEN (__rela_iplt_start = .);
- PROVIDE_HIDDEN (__rela_iplt_end = .);
- }
- .rela.dyn :
- {
- *(.rela.init)
- *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
- *(.rela.fini)
- *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
- *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
- *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
- *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
- *(.rela.ctors)
- *(.rela.dtors)
- *(.rela.got)
- *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
- PROVIDE_HIDDEN (__rel_iplt_start = .);
- PROVIDE_HIDDEN (__rel_iplt_end = .);
- PROVIDE_HIDDEN (__rela_iplt_start = .);
- *(.rela.iplt)
- PROVIDE_HIDDEN (__rela_iplt_end = .);
- }
- .rel.plt :
- {
- *(.rel.plt)
- }
- .rela.plt :
- {
- *(.rela.plt)
- }
- .init :
- {
- KEEP (*(.init))
- } =0
- .plt : { *(.plt) }
- .iplt : { *(.iplt) }
- .text :
- {
- *(.text.unlikely .text.*_unlikely)
- *(.text .stub .text.* .gnu.linkonce.t.*)
- /* .gnu.warning sections are handled specially by elf32.em. */
- *(.gnu.warning)
- *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx)
- } =0
- .fini :
- {
- KEEP (*(.fini))
- } =0
- PROVIDE (__etext = .);
- PROVIDE (_etext = .);
- PROVIDE (etext = .);
- .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
- .rodata1 : { *(.rodata1) }
- .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) }
+ .init :
+ {
+ __text_start = . ;
+ KEEP (*(.init))
+ . = ALIGN(4); /* REQUIRED. LD is flaky without it. */
+ } >ewram :plugin = 0xff
+
+ .plt : { *(.plt) } >ewram = 0xff
+
+ .text : /* ALIGN (4): */
+ {
+ *(EXCLUDE_FILE (*.itcm*) .text)
+
+ *(.text.*)
+ *(.stub)
+ /* .gnu.warning sections are handled specially by elf32.em. */
+ *(.gnu.warning)
+ *(.gnu.linkonce.t*)
+ *(.glue_7)
+ *(.glue_7t)
+ . = ALIGN(4); /* REQUIRED. LD is flaky without it. */
+ } >ewram = 0xff
+
+ .fini :
+ {
+ KEEP (*(.fini))
+ } >ewram =0xff
+
+ __text_end = . ;
+
+ .rodata :
+ {
+ *(.rodata)
+ *all.rodata*(*)
+ *(.roda)
+ *(.rodata.*)
+ *(.gnu.linkonce.r*)
+ SORT(CONSTRUCTORS)
+ . = ALIGN(4); /* REQUIRED. LD is flaky without it. */
+ } >ewram = 0xff
+
+ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >ewram
__exidx_start = .;
- .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) }
+ .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } >ewram
__exidx_end = .;
- .eh_frame_hdr : { *(.eh_frame_hdr) }
- .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) }
- .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
- /* Adjust the address for the data segment. We want to adjust up to
- the same address within the page on the next page up. */
- . = ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1));
- /* Exception handling */
- .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) }
- .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
- /* Thread Local Storage sections */
- .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
- .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
- .preinit_array :
- {
- PROVIDE_HIDDEN (__preinit_array_start = .);
- KEEP (*(.preinit_array))
- PROVIDE_HIDDEN (__preinit_array_end = .);
- }
+ /* Ensure the __preinit_array_start label is properly aligned. We
+ could instead move the label definition inside the section, but
+ the linker would then create the section even if it turns out to
+ be empty, which isn't pretty. */
+ . = ALIGN(32 / 8);
+ PROVIDE (__preinit_array_start = .);
+ .preinit_array : { KEEP (*(.preinit_array)) } >ewram = 0xff
+ PROVIDE (__preinit_array_end = .);
+ PROVIDE (__init_array_start = .);
.init_array :
{
- PROVIDE_HIDDEN (__init_array_start = .);
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- PROVIDE_HIDDEN (__init_array_end = .);
- }
+ KEEP (*(SORT(.init_array.*)))
+ KEEP (*(.init_array))
+ } >ewram = 0xff
+ PROVIDE (__init_array_end = .);
+ PROVIDE (__fini_array_start = .);
.fini_array :
{
- PROVIDE_HIDDEN (__fini_array_start = .);
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- PROVIDE_HIDDEN (__fini_array_end = .);
- }
- .ctors :
- {
- ___plugin_ctors = .;
- KEEP (*(SORT(.ctors.*)))
- KEEP (*(.ctors))
- ___plugin_ctors_end = .;
- }
- .dtors :
- {
- ___plugin_dtors = .;
- KEEP (*(SORT(.dtors.*)))
- KEEP (*(.dtors))
- ___plugin_dtors_end = .;
- }
- .jcr : { KEEP (*(.jcr)) }
- .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) }
- .dynamic : { *(.dynamic) }
- .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) }
- .data :
- {
- __data_start = . ;
- *(.data .data.* .gnu.linkonce.d.*)
- SORT(CONSTRUCTORS)
- }
- .data1 : { *(.data1) }
- _edata = .; PROVIDE (edata = .);
- __bss_start = .;
- __bss_start__ = .;
- .bss :
- {
- *(.dynbss)
- *(.bss .bss.* .gnu.linkonce.b.*)
- *(COMMON)
- /* Align here to ensure that the .bss section occupies space up to
- _end. Align after .bss to ensure correct alignment even if the
- .bss section disappears because there are no input sections.
- FIXME: Why do we need it? When there is no .bss section, we don't
- pad the .data section. */
- . = ALIGN(. != 0 ? 32 / 8 : 1);
- }
- _bss_end__ = . ; __bss_end__ = . ;
- . = ALIGN(32 / 8);
- . = ALIGN(32 / 8);
- __end__ = . ;
- _end = .; PROVIDE (end = .);
- /* Stabs debugging sections. */
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
- .comment 0 : { *(.comment) }
- /* 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) }
- /* SGI/MIPS DWARF 2 extensions */
- .debug_weaknames 0 : { *(.debug_weaknames) }
- .debug_funcnames 0 : { *(.debug_funcnames) }
- .debug_typenames 0 : { *(.debug_typenames) }
- .debug_varnames 0 : { *(.debug_varnames) }
- /* DWARF 3 */
- .debug_pubtypes 0 : { *(.debug_pubtypes) }
- .debug_ranges 0 : { *(.debug_ranges) }
- .stack 0x80000 :
- {
- _stack = .;
- *(.stack)
- }
- .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }
- .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }
- /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
+ KEEP (*(.fini_array))
+ KEEP (*(SORT(.fini_array.*)))
+ } >ewram = 0xff
+ PROVIDE (__fini_array_end = .);
+
+ .ctors :
+ {
+ /* gcc uses crtbegin.o to find the start of the constructors, so
+ we make sure it is first. Because this is a wildcard, it
+ doesn't matter if the user does not actually link against
+ crtbegin.o; the linker won't look for a file to match a
+ wildcard. The wildcard also means that it doesn't matter which
+ directory crtbegin.o is in. */
+ ___plugin_ctors = .;
+ KEEP (*(SORT(.ctors.*)))
+ KEEP (*(.ctors))
+ . = ALIGN(4); /* REQUIRED. LD is flaky without it. */
+ ___plugin_ctors_end = .;
+ } >ewram = 0xff
+
+ .dtors :
+ {
+ ___plugin_dtors = .;
+ KEEP (*(SORT(.dtors.*)))
+ KEEP (*(.dtors))
+ . = ALIGN(4); /* REQUIRED. LD is flaky without it. */
+ ___plugin_dtors_end = .;
+ } >ewram = 0xff
+
+ .eh_frame :
+ {
+ KEEP (*(.eh_frame))
+ . = ALIGN(4); /* REQUIRED. LD is flaky without it. */
+ } >ewram = 0xff
+
+ .gcc_except_table :
+ {
+ *(.gcc_except_table)
+ . = ALIGN(4); /* REQUIRED. LD is flaky without it. */
+ } >ewram = 0xff
+ .jcr : { KEEP (*(.jcr)) } >ewram = 0
+ .got : { *(.got.plt) *(.got) *(.rel.got) } >ewram = 0
+
+ .ewram ALIGN(4) :
+ {
+ __ewram_start = ABSOLUTE(.) ;
+ *(.ewram)
+ *ewram.*(.text)
+ . = ALIGN(4); /* REQUIRED. LD is flaky without it. */
+ } >ewram = 0xff
+
+
+ .data ALIGN(4) :
+ {
+ __data_start = ABSOLUTE(.);
+ *(.data)
+ *(.data.*)
+ *(.gnu.linkonce.d*)
+ CONSTRUCTORS
+ . = ALIGN(4);
+ __data_end = ABSOLUTE(.) ;
+ } >ewram = 0xff
+
+
+ __dtcm_lma = . ;
+ __bss_vma = . ;
+
+ .dtcm __dtcm_start : AT (__dtcm_lma)
+ {
+ *(.dtcm)
+ *(.dtcm.*)
+ . = ALIGN(4);
+ __dtcm_end = ABSOLUTE(.);
+ } >dtcm = 0xff
+
+
+ __itcm_lma = __dtcm_lma + SIZEOF(.dtcm);
+
+ .itcm __itcm_start : AT (__itcm_lma)
+ {
+ *(.itcm)
+ *itcm.*(.text)
+ . = ALIGN(4);
+ __itcm_end = ABSOLUTE(.);
+ } >itcm = 0xff
+
+ __vectors_lma = __itcm_lma + SIZEOF(.itcm);
+
+ .vectors __vectors_start : AT (__vectors_lma)
+ {
+ *(.vectors)
+ *vectors.*(.text)
+ . = ALIGN(4);
+ __vectors_end = ABSOLUTE(.);
+ } >vectors = 0xff
+
+ .sbss __dtcm_end (NOLOAD):
+ {
+ __sbss_start = ABSOLUTE(.);
+ __sbss_start__ = ABSOLUTE(.);
+ *(.sbss)
+ . = ALIGN(4); /* REQUIRED. LD is flaky without it. */
+ __sbss_end = ABSOLUTE(.);
+ } >dtcm
+
+ .bss __bss_vma (NOLOAD):
+ {
+ __bss_start = ABSOLUTE(.);
+ __bss_start__ = ABSOLUTE(.);
+ *(.dynbss)
+ *(.gnu.linkonce.b*)
+ *(.bss*)
+ *(COMMON)
+ . = ALIGN(4); /* REQUIRED. LD is flaky without it. */
+ __bss_end = ABSOLUTE(.) ;
+ __bss_end__ = __bss_end ;
+ } AT>ewram
+
+
+ _end = __bss_end__ ;
+ __end__ = __bss_end__ ;
+
+ /* Stabs debugging sections. */
+ .stab 0 : { *(.stab) }
+ .stabstr 0 : { *(.stabstr) }
+ .stab.excl 0 : { *(.stab.excl) }
+ .stab.exclstr 0 : { *(.stab.exclstr) }
+ .stab.index 0 : { *(.stab.index) }
+ .stab.indexstr 0 : { *(.stab.indexstr) }
+ .comment 0 : { *(.comment) }
+ /* 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) }
+ .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) }
+ /* SGI/MIPS DWARF 2 extensions */
+ .debug_weaknames 0 : { *(.debug_weaknames) }
+ .debug_funcnames 0 : { *(.debug_funcnames) }
+ .debug_typenames 0 : { *(.debug_typenames) }
+ .debug_varnames 0 : { *(.debug_varnames) }
+ .stack 0x80000 : { _stack = .; *(.stack) }
+ /* These must appear regardless of . */
}
diff --git a/backends/platform/ds/makefile b/backends/platform/ds/makefile
index 7bfd419c14..f6f9033161 100644
--- a/backends/platform/ds/makefile
+++ b/backends/platform/ds/makefile
@@ -22,43 +22,25 @@ export:
allbuilds:
$(MAKE) semiclean
$(MAKE) all SCUMM_BUILD=a
- $(MAKE) semiclean
$(MAKE) all SCUMM_BUILD=b
- $(MAKE) semiclean
$(MAKE) all SCUMM_BUILD=c
- $(MAKE) semiclean
$(MAKE) all SCUMM_BUILD=d
- $(MAKE) semiclean
$(MAKE) all SCUMM_BUILD=e
- $(MAKE) semiclean
$(MAKE) all SCUMM_BUILD=f
- $(MAKE) semiclean
$(MAKE) all SCUMM_BUILD=g
- $(MAKE) semiclean
$(MAKE) all SCUMM_BUILD=h
- $(MAKE) semiclean
$(MAKE) all SCUMM_BUILD=i
- $(MAKE) semiclean
$(MAKE) all SCUMM_BUILD=k
allbuildssafe:
$(MAKE) clean SCUMM_BUILD=a
$(MAKE) all SCUMM_BUILD=a
- $(MAKE) clean SCUMM_BUILD=b
$(MAKE) all SCUMM_BUILD=b
- $(MAKE) clean SCUMM_BUILD=c
$(MAKE) all SCUMM_BUILD=c
- $(MAKE) clean SCUMM_BUILD=d
$(MAKE) all SCUMM_BUILD=d
- $(MAKE) clean SCUMM_BUILD=e
$(MAKE) all SCUMM_BUILD=e
- $(MAKE) clean SCUMM_BUILD=f
$(MAKE) all SCUMM_BUILD=f
- $(MAKE) clean SCUMM_BUILD=g
$(MAKE) all SCUMM_BUILD=g
- $(MAKE) clean SCUMM_BUILD=h
$(MAKE) all SCUMM_BUILD=h
- $(MAKE) clean SCUMM_BUILD=i
$(MAKE) all SCUMM_BUILD=i
- $(MAKE) clean SCUMM_BUILD=k
$(MAKE) all SCUMM_BUILD=k