[make] add ability to set EXTRA_LINKER_SCRIPTS in modules

This allows for individual modules to extend the main linker script,
primarily to add their own sections to interate over.
Remove the main shared_* linker scripts.
This commit is contained in:
Travis Geiselbrecht
2015-10-26 16:33:39 -07:00
parent f603756671
commit 0e1ce411ba
22 changed files with 275 additions and 257 deletions

View File

@@ -8,6 +8,8 @@ ifneq (,$(EXTRA_BUILDRULES))
-include $(EXTRA_BUILDRULES)
endif
$(EXTRA_LINKER_SCRIPTS):
$(OUTBIN): $(OUTELF)
@echo generating image: $@
$(NOECHO)$(SIZE) $<
@@ -17,17 +19,18 @@ $(OUTELF).hex: $(OUTELF)
@echo generating hex file: $@
$(NOECHO)$(OBJCOPY) -O ihex $< $@
$(OUTELF): $(ALLMODULE_OBJS) $(EXTRA_OBJS) $(LINKER_SCRIPT)
$(OUTELF): $(ALLMODULE_OBJS) $(EXTRA_OBJS) $(LINKER_SCRIPT) $(EXTRA_LINKER_SCRIPTS)
@echo linking $@
$(NOECHO)$(SIZE) -t --common $(sort $(ALLMODULE_OBJS)) $(EXTRA_OBJS)
$(NOECHO)$(LD) $(GLOBAL_LDFLAGS) -T $(LINKER_SCRIPT) $(ALLMODULE_OBJS) $(EXTRA_OBJS) $(LIBGCC) -o $@
$(NOECHO)$(LD) $(GLOBAL_LDFLAGS) -dT $(LINKER_SCRIPT) $(addprefix -T,$(EXTRA_LINKER_SCRIPTS)) \
$(ALLMODULE_OBJS) $(EXTRA_OBJS) $(LIBGCC) -o $@
$(OUTELF).sym: $(OUTELF)
@echo generating symbols: $@
$(NOECHO)$(OBJDUMP) -t $< | $(CPPFILT) > $@
$(OUTELF).sym.sorted: $(OUTELF)
@echo generating symbols: $@
@echo generating sorted symbols: $@
$(NOECHO)$(OBJDUMP) -t $< | $(CPPFILT) | sort > $@
$(OUTELF).lst: $(OUTELF)
@@ -38,6 +41,10 @@ $(OUTELF).debug.lst: $(OUTELF)
@echo generating listing: $@
$(NOECHO)$(OBJDUMP) -Mreg-names-raw -S $< | $(CPPFILT) > $@
$(OUTELF).dump: $(OUTELF)
@echo generating objdump: $@
$(NOECHO)$(OBJDUMP) -x $< > $@
$(OUTELF).size: $(OUTELF)
@echo generating size map: $@
$(NOECHO)$(NM) -S --size-sort $< > $@