stm32f place startup*.o first in linking order due to gcc flto bug

ref: https://bugs.launchpad.net/gcc-arm-embedded/+bug/1747966
This commit is contained in:
hathach 2019-03-19 16:41:00 +07:00
parent 11eed2f026
commit 0fcd263df3
2 changed files with 8 additions and 8 deletions

View File

@ -62,9 +62,9 @@ else
endif
CFLAGS += $(INC) -Wall -Werror -std=gnu11 -nostdlib -DBOARD_$(shell echo $(BOARD) | tr a-z\- A-Z_)
LDFLAGS += $(CFLAGS) -nostartfiles -fshort-enums -Wl,-T,$(TOP)/$(LD_FILE) -Wl,-Map=$@.map -Wl,-cref -Wl,-gc-sections -specs=nosys.specs -specs=nano.specs
LIBS := -lgcc -lc -lm -lnosys
LIBS = -lgcc -lc -lm -lnosys
EXAMPLE_SOURCE += \
src/main.c \
@ -91,8 +91,8 @@ SRC_C += $(LIB_SOURCE)
# Assembly files can be name with upper case .S, convert it to .s
SRC_S := $(SRC_S:.S=.s)
OBJ += $(addprefix $(BUILD)/obj/, $(SRC_C:.c=.o))
OBJ += $(addprefix $(BUILD)/obj/, $(SRC_S:.s=.o))
OBJ += $(addprefix $(BUILD)/obj/, $(SRC_C:.c=.o))
# Set all as default goal
.DEFAULT_GOAL := all
@ -134,8 +134,7 @@ $(BUILD)/obj/%.o: %.c
vpath %.s . $(TOP)
$(BUILD)/obj/%.o: %.s
@echo AS $(notdir $@)
$(AS) -o $@ $<
#$(CC) -x assembler-with-cpp $(ASFLAGS) -c -o $@ $<
@$(CC) -x assembler-with-cpp $(ASFLAGS) -c -o $@ $<
# ASM sources upper case .S
vpath %.S . $(TOP)
@ -155,6 +154,7 @@ ifeq ($(JLINK_IF),)
JLINK_IF = swd
endif
# Flash using jlink
flash-jlink: $(BUILD)/$(BOARD)-firmware.hex
@echo halt > $(BUILD)/$(BOARD).jlink
@echo loadfile $^ >> $(BUILD)/$(BOARD).jlink

View File

@ -41,9 +41,9 @@ _Min_Stack_Size = 0x4000; /* required amount of stack */
/* Specify the memory areas */
MEMORY
{
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K
CCMRAM (rw) : ORIGIN = 0x10000000, LENGTH = 64K
FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 1024K
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K
CCMRAM (rw) : ORIGIN = 0x10000000, LENGTH = 64K
FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 1024K
}
/* Define output sections */