From b0c780ed32712d2eb38c69a2b9465a00b861381e Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 20 May 2020 16:28:39 +0100 Subject: [PATCH] Fix ChibiOS FPU build logic (#9132) --- tmk_core/chibios.mk | 28 ++++++++++++---------------- tmk_core/rules.mk | 2 +- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/tmk_core/chibios.mk b/tmk_core/chibios.mk index d0f1032acb..09aaddeef0 100644 --- a/tmk_core/chibios.mk +++ b/tmk_core/chibios.mk @@ -220,6 +220,18 @@ COMPILEFLAGS += -fno-common COMPILEFLAGS += -fshort-wchar COMPILEFLAGS += $(THUMBFLAGS) +# FPU options default (Cortex-M4 and Cortex-M7 single precision). +USE_FPU_OPT ?= -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant + +# FPU-related options +USE_FPU ?= no +ifneq ($(USE_FPU),no) + COMPILEFLAGS += $(USE_FPU_OPT) + OPT_DEFS += -DCORTEX_USE_FPU=TRUE +else + OPT_DEFS += -DCORTEX_USE_FPU=FALSE +endif + CFLAGS += $(COMPILEFLAGS) ASFLAGS += $(THUMBFLAGS) @@ -241,22 +253,6 @@ OPT_DEFS += -DPORT_IGNORE_GCC_VERSION_CHECK=1 MCUFLAGS = -mcpu=$(MCU) -# FPU options default (Cortex-M4 and Cortex-M7 single precision). -ifeq ($(USE_FPU_OPT),) - USE_FPU_OPT = -mfloat-abi=$(USE_FPU) -mfpu=fpv4-sp-d16 -fsingle-precision-constant -endif - -# FPU-related options -ifeq ($(USE_FPU),) - USE_FPU = no -endif -ifneq ($(USE_FPU),no) - OPT += $(USE_FPU_OPT) - OPT_DEFS += -DCORTEX_USE_FPU=TRUE -else - OPT_DEFS += -DCORTEX_USE_FPU=FALSE -endif - DEBUG = gdb DFU_ARGS ?= diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk index f45fd37929..9bb341ecb1 100644 --- a/tmk_core/rules.mk +++ b/tmk_core/rules.mk @@ -46,7 +46,7 @@ FORMAT = ihex # Optimization level, can be [0, 1, 2, 3, s]. # 0 = turn off optimization. s = optimize for size. # (Note: 3 is not always the best optimization level. See avr-libc FAQ.) -OPT = s +OPT ?= s # Compiler flag to set the C Standard level. # c89 = "ANSI" C