riscv: fix riscv64 unrecognized opcode build error
authorMarek Szulc <m.szulc3@samsung.com>
Fri, 19 Aug 2022 10:29:48 +0000 (12:29 +0200)
committerŁukasz Stelmach <l.stelmach@samsung.com>
Fri, 3 Feb 2023 20:30:53 +0000 (21:30 +0100)
Considering older gcc version, "imafd" has to be changed
to "g", in order for asm to handle "zicsr" and "zifencei"
extensions.

Support for the mentioned extensions has been added
in GCC 11.1, hence this commit may be removed
after GCC update.

The lack of this causes following errors:
Error: unrecognized opcode `csrr a5,0xc01'
Error: unrecognized opcode `csrr a2,0xc01'

Change-Id: I0768a7b1255c828c4fc319f74f2783bc7e1581bf
Signed-off-by: Marek Szulc <m.szulc3@samsung.com>
Signed-off-by: Łukasz Stelmach <l.stelmach@samsung.com>
arch/riscv/Makefile

index 0d13b59..9551509 100644 (file)
@@ -51,6 +51,7 @@ endif
 riscv-march-$(CONFIG_ARCH_RV32I)       := rv32ima
 riscv-march-$(CONFIG_ARCH_RV64I)       := rv64ima
 riscv-march-$(CONFIG_FPU)              := $(riscv-march-y)fd
+riscv-march-y                          := $(subst imafd,g,$(riscv-march-y))
 riscv-march-$(CONFIG_RISCV_ISA_C)      := $(riscv-march-y)c
 
 # Newer binutils versions default to ISA spec version 20191213 which moves some