mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-07-05 18:56:15 +09:00
![Bin Meng](/assets/img/avatar_default.png)
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 <bmeng.cn@gmail.com> Reviewed-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de>
43 lines
1.1 KiB
Makefile
43 lines
1.1 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0+
|
|
#
|
|
# (C) Copyright 2000-2002
|
|
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
|
#
|
|
# Copyright (c) 2017 Microsemi Corporation.
|
|
# Padmarao Begari, Microsemi Corporation <padmarao.begari@microsemi.com>
|
|
#
|
|
# Copyright (C) 2017 Andes Technology Corporation
|
|
# Rick Chen, Andes Technology Corporation <rick@andestech.com>
|
|
#
|
|
|
|
ifeq ($(CROSS_COMPILE),)
|
|
CROSS_COMPILE := riscv32-unknown-linux-gnu-
|
|
endif
|
|
|
|
32bit-emul := elf32lriscv
|
|
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
|
|
|
|
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
|
|
|
|
EFI_CRT0 := crt0_riscv_efi.o
|
|
EFI_RELOC := reloc_riscv_efi.o
|