mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-13 07:14:59 +00:00
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
This commit is contained in:
parent
6c8cae3c55
commit
7335e2fc67
@ -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
|
||||
|
||||
|
@ -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 . */
|
||||
}
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user