From 5c4f9b6c8ba66eab15543452a6391595d6eb0295 Mon Sep 17 00:00:00 2001 From: Tim Crawford Date: Thu, 5 Nov 2020 12:34:07 -0700 Subject: [PATCH] Sort object files ROMs produced of Pop!_OS 20.10 and Fedora 33 with SDCC 4.0.0 cause uecflash to crash after verifying the block write, leaving the system unbootable until all power is removed to force an EC reset. Sorting object files appears to resolve this issue, creates a smaller binary (~200 bytes from 20.04), and gives up more reproducible builds. --- src/arch/8051/arch.mk | 2 +- src/arch/avr/arch.mk | 2 +- src/board/system76/common/flash/flash.mk | 2 +- src/board/system76/common/scratch/scratch.mk | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/arch/8051/arch.mk b/src/arch/8051/arch.mk index 2c45d7e..bcd5b16 100644 --- a/src/arch/8051/arch.mk +++ b/src/arch/8051/arch.mk @@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-3.0-only CC=sdcc -mmcs51 --model-large --code-size $(CODE_SIZE) --xram-size $(SRAM_SIZE) --Werror -OBJ=$(patsubst src/%.c,$(BUILD)/%.rel,$(SRC)) +OBJ=$(sort $(patsubst src/%.c,$(BUILD)/%.rel,$(SRC))) # Run EC rom in simulator sim: $(BUILD)/ec.rom diff --git a/src/arch/avr/arch.mk b/src/arch/avr/arch.mk index a847964..08dd6ec 100644 --- a/src/arch/avr/arch.mk +++ b/src/arch/avr/arch.mk @@ -2,7 +2,7 @@ CC=avr-gcc -mmcu=$(EC) CFLAGS+=-Os -fstack-usage -Wall -Werror -Wl,--gc-sections -Wl,-u,vfprintf -lprintf_flt -OBJ=$(patsubst src/%.c,$(BUILD)/%.o,$(SRC)) +OBJ=$(sort $(patsubst src/%.c,$(BUILD)/%.o,$(SRC))) # Run EC rom in simulator sim: $(BUILD)/ec.elf diff --git a/src/board/system76/common/flash/flash.mk b/src/board/system76/common/flash/flash.mk index 9988b70..212ee69 100644 --- a/src/board/system76/common/flash/flash.mk +++ b/src/board/system76/common/flash/flash.mk @@ -17,7 +17,7 @@ FLASH_INCLUDE+=$(wildcard $(FLASH_DIR)/include/flash/*.h) $(FLASH_DIR)/flash.mk FLASH_CFLAGS+=-I$(FLASH_DIR)/include -D__FLASH__ FLASH_BUILD=$(BUILD)/flash -FLASH_OBJ=$(patsubst src/%.c,$(FLASH_BUILD)/%.rel,$(FLASH_SRC)) +FLASH_OBJ=$(sort $(patsubst src/%.c,$(FLASH_BUILD)/%.rel,$(FLASH_SRC))) FLASH_CC=\ sdcc \ -mmcs51 \ diff --git a/src/board/system76/common/scratch/scratch.mk b/src/board/system76/common/scratch/scratch.mk index 6ec36dd..5fa35e8 100644 --- a/src/board/system76/common/scratch/scratch.mk +++ b/src/board/system76/common/scratch/scratch.mk @@ -20,7 +20,7 @@ SCRATCH_SRC+=\ $(SYSTEM76_COMMON_DIR)/smfi.c SCRATCH_BUILD=$(BUILD)/scratch -SCRATCH_OBJ=$(patsubst src/%.c,$(SCRATCH_BUILD)/%.rel,$(SCRATCH_SRC)) +SCRATCH_OBJ=$(sort $(patsubst src/%.c,$(SCRATCH_BUILD)/%.rel,$(SCRATCH_SRC))) SCRATCH_CC=\ sdcc \ -mmcs51 \