diff options
| author | Nick Brassel <nick@tzarc.org> | 2024-03-09 21:40:19 +1100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-09 21:40:19 +1100 |
| commit | 900e79febebaa6e8c682755442a385dc6f2ed703 (patch) | |
| tree | 7a950302d76b0a399658e91b0f261ca7bb294820 /platforms | |
| parent | fec2323089ab38262195eda4e68db7d0d6c9e7c7 (diff) | |
Attempt to deal with GCC 13+ and rv32 arch extensions. (#23086)
Diffstat (limited to 'platforms')
| -rw-r--r-- | platforms/chibios/platform.mk | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/platforms/chibios/platform.mk b/platforms/chibios/platform.mk index f38a888012..b13eed39be 100644 --- a/platforms/chibios/platform.mk +++ b/platforms/chibios/platform.mk | |||
| @@ -402,6 +402,17 @@ ifeq ($(strip $(MCU)), risc-v) | |||
| 402 | -mabi=$(MCU_ABI) \ | 402 | -mabi=$(MCU_ABI) \ |
| 403 | -mcmodel=$(MCU_CMODEL) \ | 403 | -mcmodel=$(MCU_CMODEL) \ |
| 404 | -mstrict-align | 404 | -mstrict-align |
| 405 | |||
| 406 | # Deal with different arch revisions and gcc renaming them | ||
| 407 | 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) | ||
| 408 | MCUFLAGS = -march=$(MCU_ARCH)_zicsr \ | ||
| 409 | -mabi=$(MCU_ABI) \ | ||
| 410 | -mcmodel=$(MCU_CMODEL) \ | ||
| 411 | -mstrict-align | ||
| 412 | 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) | ||
| 413 | $(call CATASTROPHIC_ERROR,Incompatible toolchain,No compatible RISC-V toolchain found. Can't work out correct architecture.) | ||
| 414 | endif | ||
| 415 | endif | ||
| 405 | else | 416 | else |
| 406 | # ARM toolchain specific configuration | 417 | # ARM toolchain specific configuration |
| 407 | TOOLCHAIN ?= arm-none-eabi- | 418 | TOOLCHAIN ?= arm-none-eabi- |
