mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-01-17 05:32:45 +01:00
fe310: Support the LLVM toolchain (i.e. compilation with clang)
This requires -nostartfiles to be only passed to the linker, not the compiler, as it is a linker flag and passing it to the compiler causes a clang warning to be emitted. Additionally, clang does not seem to support `-mcmodel=medlow` and `-msmall-data-limit=8` but these options do not seem strictly necessary to me anyhow thus they are deactivated conditionally when using clang.
This commit is contained in:
parent
3a9f8d5851
commit
125e4b54c1
@ -1,6 +1,8 @@
|
||||
CFLAGS += -Wno-pedantic
|
||||
INCLUDES += -I$(RIOTCPU)/riscv_common/include
|
||||
|
||||
TOOLCHAINS_SUPPORTED = gnu llvm
|
||||
|
||||
# All variables must be defined in the CPU configuration when using the common
|
||||
# `ldscripts/riscv.ld`
|
||||
ifneq (,$(ROM_START_ADDR)$(RAM_START_ADDR)$(ROM_LEN)$(RAM_LEN))
|
||||
|
@ -30,8 +30,15 @@ TARGET_ARCH_RISCV ?= \
|
||||
TARGET_ARCH ?= $(TARGET_ARCH_RISCV)
|
||||
|
||||
# define build specific options
|
||||
CFLAGS_CPU = -march=rv32imac -mabi=ilp32 -mcmodel=medlow -msmall-data-limit=8
|
||||
CFLAGS_LINK = -nostartfiles -ffunction-sections -fdata-sections
|
||||
CFLAGS_CPU = -march=rv32imac -mabi=ilp32
|
||||
ifeq ($(TOOLCHAIN),llvm)
|
||||
# Always use riscv32-none-elf as target triple for clang, as some
|
||||
# autodetected gcc target triples are incompatible with clang
|
||||
TARGET_ARCH_LLVM := riscv32-none-elf
|
||||
else
|
||||
CFLAGS_CPU += -mcmodel=medlow -msmall-data-limit=8
|
||||
endif
|
||||
CFLAGS_LINK = -ffunction-sections -fdata-sections
|
||||
CFLAGS_DBG ?= -g3
|
||||
CFLAGS_OPT ?= -Os
|
||||
|
||||
@ -42,4 +49,4 @@ LINKFLAGS += -T$(LINKER_SCRIPT)
|
||||
CFLAGS += $(CFLAGS_CPU) $(CFLAGS_DBG) $(CFLAGS_OPT) $(CFLAGS_LINK)
|
||||
ASFLAGS += $(CFLAGS_CPU) $(CFLAGS_DBG)
|
||||
# export linker flags
|
||||
LINKFLAGS += $(CFLAGS_CPU) $(CFLAGS_LINK) $(CFLAGS_DBG) $(CFLAGS_OPT) -Wl,--gc-sections -static -lgcc
|
||||
LINKFLAGS += $(CFLAGS_CPU) $(CFLAGS_LINK) $(CFLAGS_DBG) $(CFLAGS_OPT) -nostartfiles -Wl,--gc-sections -static -lgcc
|
||||
|
Loading…
Reference in New Issue
Block a user