From 1a8515ecf8ca5a2dbe3d2da6fce5708a0e5490c5 Mon Sep 17 00:00:00 2001 From: wawa Date: Wed, 2 Jan 2019 11:03:45 +0000 Subject: [PATCH] allow for building a kickstart file with embedded debug symbols, in particular for debugging under emulation like winuae. git-svn-id: https://svn.aros.org/svn/aros/trunk/AROS@55515 fb15a70f-31f2-0310-bbcc-cdcc74a49acc --- arch/m68k-amiga/boot/aros-dbg.ld | 43 ++++++++++++++++++++++++++++++++++++++ arch/m68k-amiga/boot/mmakefile.src | 27 ++++++++++++++++++++++-- 2 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 arch/m68k-amiga/boot/aros-dbg.ld diff --git a/arch/m68k-amiga/boot/aros-dbg.ld b/arch/m68k-amiga/boot/aros-dbg.ld new file mode 100644 index 0000000000..a712e4a285 --- /dev/null +++ b/arch/m68k-amiga/boot/aros-dbg.ld @@ -0,0 +1,43 @@ +MEMORY { + valid (rwx) : org = 0x00000000 , l = 2M + tempstack (rwx) : org = 0x0003f800, l = 0x800 + invalid (rwx) : org = 0xdead0000 , l = 0x0 +} + +SECTIONS +{ + .start.MEMF_LOCAL : { _ext_start = .; +INCLUDE ../../../bin/amiga-m68k/gen/start_objs.ld + } >valid + .kick.MEMF_KICK : { _kick_start = .; +INCLUDE ../../../bin/amiga-m68k/gen/any_objs.ld + _kick_end = .; + _ext_end = .; + } >valid + .rom.MEMF_LOCAL : { _rom_start = .; +INCLUDE ../../../bin/amiga-m68k/gen/local_objs.ld + /* This is for the static libs */ + *(.text .text.* .rodata .rodata.*) + *(.eh_frame) + _rom_end = .; + } >valid + /* Supervisor stack, only used until after all autoconfig boards have + * been initialized, at which point we'll allocate a faster location for it. + */ +.ss : { + _ss = .; + . = . + 0x800; + _ss_end = .; + } >tempstack + + /* This should cause angry complaints if .data exists + * We don't want .bss, and we don't need it. + */ + .bss : { *(.bss) } >invalid + + /* This should cause angry complaints if .data exists + * We don't want .data, and we don't need it. + */ + .data : { *(.data) } >invalid + +} \ No newline at end of file diff --git a/arch/m68k-amiga/boot/mmakefile.src b/arch/m68k-amiga/boot/mmakefile.src index d849bde337..f387b2eabd 100644 --- a/arch/m68k-amiga/boot/mmakefile.src +++ b/arch/m68k-amiga/boot/mmakefile.src @@ -268,8 +268,8 @@ DEPS := $(foreach f, $(FILES), $(TARGETDIR)/$(f).d) #MM kernel-boot-elf: #MM kernel-boot-elf-quick: -kernel-boot-elf: $(AROSARCHDIR)/aros.elf -kernel-boot-elf-quick: $(AROSARCHDIR)/aros.elf +kernel-boot-elf: $(AROSARCHDIR)/aros.elf $(AROSARCHDIR)/aros.elf.dbg +kernel-boot-elf-quick: $(AROSARCHDIR)/aros.elf $(AROSARCHDIR)/aros.elf.dbg # Main ROM, that must live in MEMF_LOCAL memory @@ -350,4 +350,27 @@ $(AROSARCHDIR)/aros.elf: $(DISTDIR)/aros-amiga-m68k-ram.elf \ --strip-unneeded \ $< $@ + +$(AROSARCHDIR)/aros.elf.dbg : $(DEPLIBS) $(SRCDIR)/$(CURDIR)/mmakefile.src \ + $(OBJS_start) \ + $(OBJS_local) $(KOBJS_local) \ + $(OBJS_any) $(KOBJS_any) \ + $(SRCDIR)/$(CURDIR)/aros-dbg.ld \ + $(GENDIR)/start_objs.ld \ + $(GENDIR)/local_objs.ld \ + $(GENDIR)/any_objs.ld + @$(IF) [ "$(DEBUG)" = "yes" ]; then \ + $(ECHO) Linking $@...; \ + $(KERNEL_CC) -Wl,-r \ + -static -nostartfiles -nostdlib \ + -Wl,--defsym -Wl,start=0x0 \ + -Wl,--defsym -Wl,SysBase=0x4 \ + -Wl,--defsym -Wl,AbsExecBase=0x4 \ + -m68000 \ + -o $@ -Wl,-T -Wl,$(SRCDIR)/$(CURDIR)/aros-dbg.ld \ + -L$(AROS_LIB) $(LIBS) -lgcc; \ + $(TARGET_OBJCOPY) --add-gnu-debuglink=$@ $(AROSARCHDIR)/aros.elf; \ + fi + + %common -- 2.11.4.GIT