From 900e79febebaa6e8c682755442a385dc6f2ed703 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sat, 9 Mar 2024 21:40:19 +1100 Subject: [PATCH] Attempt to deal with GCC 13+ and rv32 arch extensions. (#23086) --- platforms/chibios/platform.mk | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/platforms/chibios/platform.mk b/platforms/chibios/platform.mk index f38a888012e..b13eed39be8 100644 --- a/platforms/chibios/platform.mk +++ b/platforms/chibios/platform.mk @@ -402,6 +402,17 @@ ifeq ($(strip $(MCU)), risc-v) -mabi=$(MCU_ABI) \ -mcmodel=$(MCU_CMODEL) \ -mstrict-align + + # Deal with different arch revisions and gcc renaming them + ifneq ($(shell echo 'int main() { asm("csrc 0x300,8"); return 0; }' | $(TOOLCHAIN)gcc $(MCUFLAGS) $(TOOLCHAIN_CFLAGS) -x c -o /dev/null - 2>/dev/null >/dev/null; echo $$?),0) + MCUFLAGS = -march=$(MCU_ARCH)_zicsr \ + -mabi=$(MCU_ABI) \ + -mcmodel=$(MCU_CMODEL) \ + -mstrict-align + ifneq ($(shell echo 'int main() { asm("csrc 0x300,8"); return 0; }' | $(TOOLCHAIN)gcc $(MCUFLAGS) $(TOOLCHAIN_CFLAGS) -x c -o /dev/null - 2>/dev/null >/dev/null; echo $$?),0) + $(call CATASTROPHIC_ERROR,Incompatible toolchain,No compatible RISC-V toolchain found. Can't work out correct architecture.) + endif + endif else # ARM toolchain specific configuration TOOLCHAIN ?= arm-none-eabi-