# HG changeset patch # User Paul Boddie # Date 1433537924 -7200 # Node ID 45cbad4c4cab80ae30ef08d18fb84195f595f540 # Parent d94bf387cc1127cdf807f04386a86eb58dd5e243 Set an explicit object ordering, making _start routines first in payloads. diff -r d94bf387cc11 -r 45cbad4c4cab Makefile --- a/Makefile Fri Jun 05 19:34:16 2015 +0200 +++ b/Makefile Fri Jun 05 22:58:44 2015 +0200 @@ -39,10 +39,12 @@ DUMP = $(PAYLOAD:.bin=.dump) MAP = $(PAYLOAD:.bin=.map) +# Ordering of objects is important and cannot be left to replacement rules. + SRC1 = head1.S stage1.c board-nanonote.c SRC2 = head2.S stage2.c board-nanonote.c -OBJ1 = $(filter %.o,$(SRC1:.c=.o) $(SRC1:.S=.o)) -OBJ2 = $(filter %.o,$(SRC2:.c=.o) $(SRC2:.S=.o)) +OBJ1 = head1.o stage1.o board-nanonote.o +OBJ2 = head2.o stage2.o board-nanonote.o OBJ = $(OBJ1) $(OBJ2) .PHONY: all clean distclean @@ -50,7 +52,7 @@ all: $(PAYLOAD) clean: - rm -f $(OBJ) $(TARGET) $(PAYLOAD) $(DUMP) $(MAP) #System.map + rm -f $(OBJ) $(TARGET) $(PAYLOAD) $(DUMP) *.map distclean: clean echo "Nothing else to clean." @@ -59,7 +61,7 @@ $(OBJCOPY) -O binary $(@:.bin=.elf) $@+ $(OBJDUMP) -D $(@:.bin=.elf) > $(@:.bin=.dump) $(OBJDUMP) -h $(@:.bin=.elf) > $(@:.bin=.map) - #$(NM) -n $< > System.map + $(NM) -n $< > System-$(@:.bin=.map) chmod -x $@+ mv -f $@+ $@