55# Luca Colagrande <colluca@iis.ee.ethz.ch>
66# Viviane Potocnik <vivianep@iis.ee.ethz.ch>
77
8+ # #######
9+ # Util #
10+ # #######
11+
12+ empty :=
13+ space := $(empty ) $(empty )
14+ comma := ,
15+
16+ comma-join = $(subst $(space ) ,$(comma ) ,$(strip $(1 ) ) )
17+
818# ##################
919# Build variables #
1020# ##################
1121
1222# Compiler toolchain
13- SN_LLVM_BINROOT ?= $(dir $(shell which riscv32-unknown-elf-clang) )
14- SN_RISCV_CC ?= $(SN_LLVM_BINROOT ) /clang
15- SN_RISCV_CXX ?= $(SN_LLVM_BINROOT ) /clang++
16- SN_RISCV_LD ?= $(SN_LLVM_BINROOT ) /ld.lld
17- SN_RISCV_AR ?= $(SN_LLVM_BINROOT ) /llvm-ar
18- SN_RISCV_OBJCOPY ?= $(SN_LLVM_BINROOT ) /llvm-objcopy
19- SN_RISCV_OBJDUMP ?= $(SN_LLVM_BINROOT ) /llvm-objdump
23+ SN_LLVM_BINROOT ?= $(dir $(shell which riscv32-unknown-elf-clang) )
24+ SN_RISCV_CC ?= $(SN_LLVM_BINROOT ) /clang
25+ SN_RISCV_CXX ?= $(SN_LLVM_BINROOT ) /clang++
26+ SN_RISCV_LD ?= $(SN_LLVM_BINROOT ) /ld.lld
27+ SN_RISCV_AR ?= $(SN_LLVM_BINROOT ) /llvm-ar
28+ SN_RISCV_OBJCOPY ?= $(SN_LLVM_BINROOT ) /llvm-objcopy
29+ SN_RISCV_OBJDUMP ?= $(SN_LLVM_BINROOT ) /llvm-objdump
30+ SN_RISCV_MC ?= $(SN_LLVM_BINROOT ) /llvm-mc
31+ SN_RISCV_ADDR2LINE ?= $(SN_LLVM_BINROOT ) /llvm-addr2line
2032
2133# Compiler flags
22- SN_MCPU ?= snitch
23- SN_RISCV_CFLAGS := -mcpu=$(SN_MCPU )
34+ SN_RISCV_FEATURES = xfrep xssr xdma xcopift xsmallfloat
35+ SN_RISCV_CFLAGS := -march=rv32imafd_zfh_zifencei
36+ SN_RISCV_CFLAGS += $(foreach feat,$(SN_RISCV_FEATURES ) ,-Xclang -target-feature -Xclang +$(feat ) )
2437SN_RISCV_CFLAGS += -menable-experimental-extensions
2538SN_RISCV_CFLAGS += -mabi=ilp32d
2639SN_RISCV_CFLAGS += -mcmodel=medany
27- SN_RISCV_CFLAGS += -mno-fdiv
40+ # SN_RISCV_CFLAGS += -mno-fdiv
2841SN_RISCV_CFLAGS += -fno-builtin-printf
2942SN_RISCV_CFLAGS += -fno-builtin-sqrtf
3043SN_RISCV_CFLAGS += -fno-common
@@ -49,5 +62,7 @@ SN_RISCV_LDFLAGS += -lm
4962SN_RISCV_ARFLAGS := rcs
5063
5164# Objdump flags
52- SN_RISCV_OBJDUMP_FLAGS := --mcpu=$(SN_MCPU )
53- SN_RISCV_OBJDUMP_FLAGS += -D
65+ SN_RISCV_MATTR_FEATURES = $(call comma-join,$(addprefix +,$(SN_RISCV_FEATURES ) ) )
66+ SN_RISCV_MATTR_FLAG = --mattr=+m,+a,+f,+d,+zfh,+zifencei,$(SN_RISCV_MATTR_FEATURES )
67+ SN_RISCV_OBJDUMP_FLAGS := --triple=riscv32 $(SN_RISCV_MATTR_FLAG )
68+ SN_RISCV_OBJDUMP_FLAGS += -D
0 commit comments