commit: 900e79febebaa6e8c682755442a385dc6f2ed703
parent fec2323089ab38262195eda4e68db7d0d6c9e7c7
Author: Nick Brassel <nick@tzarc.org>
Date: Sat, 9 Mar 2024 21:40:19 +1100
Attempt to deal with GCC 13+ and rv32 arch extensions. (#23086)
Diffstat:
1 file changed, 11 insertions(+), 0 deletions(-)
diff --git 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-