From 6dff3fdd403b57cd9ebaa9518a2e51e42e18e6ff Mon Sep 17 00:00:00 2001 From: Jonathan Neuschäfer Date: Sun, 30 Sep 2018 20:09:58 +0200 Subject: arch/riscv: Adjust compiler flags for scan-build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Clang doesn't understand -march=riscv64imac and -mcmodel=medany, so don't use them when running the clang static analyzer. On the other hand, __riscv and __riscv_xlen need to be defined in order to select some macros in src/arch/riscv/include/arch/encoding.h. __riscv_flen selects the floating-point paths in src/arch/riscv/misaligned.c. -mabi is moved with -march for consistency. A complete list of preprocessor definitions on RISC-V can be found at https://github.com/riscv/riscv-toolchain-conventions#cc-preprocessor-definitions With this commit, scan-build produces a useful result on RISC-V. Change-Id: Ia2eb8c3c2f7eb5ddd47db24b8e5fcd6eaf6c5589 Signed-off-by: Jonathan Neuschäfer Reviewed-on: https://review.coreboot.org/28713 Tested-by: build bot (Jenkins) Reviewed-by: Angel Pons Reviewed-by: Philipp Hug Reviewed-by: Martin Roth Reviewed-by: Paul Menzel --- src/arch/riscv/Makefile.inc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/arch/riscv/Makefile.inc b/src/arch/riscv/Makefile.inc index 50c1ae69d6..a2bd763cd9 100644 --- a/src/arch/riscv/Makefile.inc +++ b/src/arch/riscv/Makefile.inc @@ -25,7 +25,12 @@ ifeq ($(CONFIG_ARCH_RAMSTAGE_RISCV),y) check-ramstage-overlap-regions += stack endif -riscv_flags = -I$(src)/arch/riscv/ -mcmodel=$(CONFIG_RISCV_CODEMODEL) -march=$(CONFIG_RISCV_ARCH) -mabi=$(CONFIG_RISCV_ABI) +riscv_flags = -I$(src)/arch/riscv/ +ifeq ($(CCC_ANALYZER_OUTPUT_FORMAT),) +riscv_flags += -march=$(CONFIG_RISCV_ARCH) -mabi=$(CONFIG_RISCV_ABI) -mcmodel=$(CONFIG_RISCV_CODEMODEL) +else +riscv_flags += -D__riscv -D__riscv_xlen=64 -D__riscv_flen=64 +endif riscv_asm_flags = -march=$(CONFIG_RISCV_ARCH) -mabi=$(CONFIG_RISCV_ABI) -- cgit v1.2.3