diff options
| author | Marcin Bukat <marcin.bukat@gmail.com> | 2012-01-25 09:57:59 +0100 |
|---|---|---|
| committer | Marcin Bukat <marcin.bukat@gmail.com> | 2012-02-22 08:33:26 +0100 |
| commit | b4eab599513324dcaffa4c5693345ae11f3f9725 (patch) | |
| tree | 58d66298269d2cec58102724565b573f250b5153 /tools | |
| parent | 680c6fcde1eabb45dd12c59718d708b2cda61f6a (diff) | |
| download | rockbox-b4eab599513324dcaffa4c5693345ae11f3f9725.zip rockbox-b4eab599513324dcaffa4c5693345ae11f3f9725.tar.gz rockbox-b4eab599513324dcaffa4c5693345ae11f3f9725.tar.bz2 rockbox-b4eab599513324dcaffa4c5693345ae11f3f9725.tar.xz | |
Arm stack unwinder
Simplified stack unwinder for ARM. This is port of
http://www.mcternan.me.uk/ArmStackUnwinding/
backtrace() is called from UIE() on native targets
and from panicf() on both native and ARM RaaA.
Change-Id: I8e4b3c02490dd60b30aa372fe842d193b8929ce0
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/root.make | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/tools/root.make b/tools/root.make index 3cdee2c..7427906 100644 --- a/tools/root.make +++ b/tools/root.make @@ -78,6 +78,10 @@ ifndef APP_TYPE endif endif +ifeq (arm,$(ARCH)) + include $(ROOTDIR)/lib/unwarminder/unwarminder.make +endif + ifneq (,$(findstring bootloader,$(APPSDIR))) include $(APPSDIR)/bootloader.make else ifneq (,$(findstring bootbox,$(APPSDIR))) @@ -170,6 +174,12 @@ ifeq (,$(findstring bootloader,$(APPSDIR))) OBJ += $(LANG_O) +ifeq (arm,$(ARCH)) + UNWARMINDER_LINK := -lunwarminder +else + UNWARMINDER_LINK := +endif + ifndef APP_TYPE ## target build @@ -185,8 +195,6 @@ else LIBARMSUPPORT_LINK := endif - - $(LINKRAM): $(RAMLDS) $(CONFIGFILE) $(call PRINTS,PP $(@F)) $(call preprocess2file,$<,$@,-DLOADADDRESS=$(LOADADDRESS)) @@ -195,21 +203,21 @@ $(LINKROM): $(ROMLDS) $(call PRINTS,PP $(@F)) $(call preprocess2file,$<,$@,-DLOADADDRESS=$(LOADADDRESS)) -$(BUILDDIR)/rockbox.elf : $$(OBJ) $$(FIRMLIB) $$(VOICESPEEXLIB) $$(SKINLIB) $$(LIBARMSUPPORT) $$(LINKRAM) +$(BUILDDIR)/rockbox.elf : $$(OBJ) $$(FIRMLIB) $$(VOICESPEEXLIB) $$(SKINLIB) $$(LIBARMSUPPORT) $$(UNWARMINDER) $$(LINKRAM) $(call PRINTS,LD $(@F))$(CC) $(GCCOPTS) -Os -nostdlib -o $@ $(OBJ) \ -L$(BUILDDIR)/firmware -lfirmware \ -L$(BUILDDIR)/lib -lskin_parser $(LIBARMSUPPORT_LINK) \ - -L$(BUILDDIR)/apps/codecs $(VOICESPEEXLIB:lib%.a=-l%) \ - -lgcc $(BOOTBOXLDOPTS) $(GLOBAL_LDOPTS) \ - -T$(LINKRAM) -Wl,-Map,$(BUILDDIR)/rockbox.map + $(UNWARMINDER_LINK) -L$(BUILDDIR)/apps/codecs \ + $(VOICESPEEXLIB:lib%.a=-l%) -lgcc $(BOOTBOXLDOPTS) \ + $(GLOBAL_LDOPTS) -T$(LINKRAM) -Wl,-Map,$(BUILDDIR)/rockbox.map -$(BUILDDIR)/rombox.elf : $$(OBJ) $$(FIRMLIB) $$(VOICESPEEXLIB) $$(SKINLIB) $$(LIBARMSUPPORT) $$(LINKROM) +$(BUILDDIR)/rombox.elf : $$(OBJ) $$(FIRMLIB) $$(VOICESPEEXLIB) $$(SKINLIB) $$(LIBARMSUPPORT) $$(UNWARMINDER) $$(LINKROM) $(call PRINTS,LD $(@F))$(CC) $(GCCOPTS) -Os -nostdlib -o $@ $(OBJ) \ -L$(BUILDDIR)/firmware -lfirmware \ -L$(BUILDDIR)/lib -lskin_parser $(LIBARMSUPPORT_LINK) \ - -L$(BUILDDIR)/apps/codecs $(VOICESPEEXLIB:lib%.a=-l%) \ - -lgcc $(GLOBAL_LDOPTS) \ - -T$(LINKROM) -Wl,-Map,$(BUILDDIR)/rombox.map + $(UNWARMINDER_LINK) -L$(BUILDDIR)/apps/codecs \ + $(VOICESPEEXLIB:lib%.a=-l%) -lgcc $(GLOBAL_LDOPTS) \ + -T$(LINKROM) -Wl,-Map,$(BUILDDIR)/rombox.map $(BUILDDIR)/rockbox.bin : $(BUILDDIR)/rockbox.elf $(call PRINTS,OC $(@F))$(OC) $(if $(filter yes, $(USE_ELF)), -S -x, -O binary) $< $@ |