From ce7a8e0740f1f9ec915109392184d335ba231448 Mon Sep 17 00:00:00 2001 From: Bin Meng Date: Wed, 26 Sep 2018 06:55:13 -0700 Subject: riscv: Explicitly pass -march and -mabi to the compiler At present the compiler flag against which architecture and abi variant the riscv image is built for is not explicitly indicated which means the default compiler configuration is used. But this does not work if we want to build a different target (eg: 32-bit riscv images using a toolchain configured for 64-bit riscv). Fix this by explicitly passing -march and -mabi to the compiler. Since generically we don't use floating point in U-Boot, specify the RV[32|64]IMA ISA and software floating ABI. This also fix some alignment coding style issues. Signed-off-by: Bin Meng Reviewed-by: Lukas Auer --- arch/riscv/config.mk | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'arch/riscv/config.mk') diff --git a/arch/riscv/config.mk b/arch/riscv/config.mk index c0b3858edd..b235ae1413 100644 --- a/arch/riscv/config.mk +++ b/arch/riscv/config.mk @@ -18,12 +18,16 @@ endif 64bit-emul := elf64lriscv ifdef CONFIG_32BIT +PLATFORM_CPPFLAGS += -march=rv32ima -mabi=ilp32 PLATFORM_LDFLAGS += -m $(32bit-emul) +CFLAGS_EFI += -march=rv32ima -mabi=ilp32 EFI_LDS := elf_riscv32_efi.lds endif ifdef CONFIG_64BIT +PLATFORM_CPPFLAGS += -march=rv64ima -mabi=lp64 PLATFORM_LDFLAGS += -m $(64bit-emul) +CFLAGS_EFI += -march=rv64ima -mabi=lp64 EFI_LDS := elf_riscv64_efi.lds endif @@ -31,8 +35,8 @@ CONFIG_STANDALONE_LOAD_ADDR = 0x00000000 \ -T $(srctree)/examples/standalone/riscv.lds PLATFORM_CPPFLAGS += -ffixed-gp -fpic -PLATFORM_RELFLAGS += -fno-common -gdwarf-2 -ffunction-sections -LDFLAGS_u-boot += --gc-sections -static -pie +PLATFORM_RELFLAGS += -fno-common -gdwarf-2 -ffunction-sections +LDFLAGS_u-boot += --gc-sections -static -pie EFI_CRT0 := crt0_riscv_efi.o EFI_RELOC := reloc_riscv_efi.o -- cgit From 5845f6612372a63877b2175e058a841e1237ffd6 Mon Sep 17 00:00:00 2001 From: Heinrich Schuchardt Date: Mon, 6 Aug 2018 19:15:38 +0200 Subject: riscv: allow native compilation If environment variable CROSS_COMPILE is not set, this indicates native compilation. In this case we should not set an arbitrary value which is not applicable for 64bit anyway. Signed-off-by: Heinrich Schuchardt --- arch/riscv/config.mk | 4 ---- 1 file changed, 4 deletions(-) (limited to 'arch/riscv/config.mk') diff --git a/arch/riscv/config.mk b/arch/riscv/config.mk index b235ae1413..ed9eb0c24c 100644 --- a/arch/riscv/config.mk +++ b/arch/riscv/config.mk @@ -10,10 +10,6 @@ # Rick Chen, Andes Technology Corporation # -ifeq ($(CROSS_COMPILE),) -CROSS_COMPILE := riscv32-unknown-linux-gnu- -endif - 32bit-emul := elf32lriscv 64bit-emul := elf64lriscv -- cgit