1 # This file is included by the global makefile so that you can add your own
2 # architecture-specific flags and dependencies. Remember to do have actions
3 # for "archclean" and "archdep" for cleaning up and making dependencies for
6 # This file is subject to the terms and conditions of the GNU General Public
7 # License. See the file "COPYING" in the main directory of this archive
12 OBJCOPYFLAGS
:= -O binary
14 KBUILD_AFLAGS_MODULE
+= -fPIC
15 KBUILD_CFLAGS_MODULE
+= -fPIC
17 KBUILD_DEFCONFIG
= defconfig
20 ifeq ($(CONFIG_ARCH_RV64I
),y
)
22 UTS_MACHINE
:= riscv64
24 KBUILD_CFLAGS
+= -mabi
=lp64
25 KBUILD_AFLAGS
+= -mabi
=lp64
27 LDFLAGS
+= -melf64lriscv
30 UTS_MACHINE
:= riscv32
32 KBUILD_CFLAGS
+= -mabi
=ilp32
33 KBUILD_AFLAGS
+= -mabi
=ilp32
35 LDFLAGS
+= -melf32lriscv
38 KBUILD_CFLAGS
+= -Wall
40 ifeq ($(CONFIG_RISCV_ISA_A
),y
)
43 ifeq ($(CONFIG_RISCV_ISA_C
),y
)
47 KBUILD_AFLAGS
+= -march
=$(KBUILD_MARCH
)$(KBUILD_ARCH_A
)fd
$(KBUILD_ARCH_C
)
49 KBUILD_CFLAGS
+= -march
=$(KBUILD_MARCH
)$(KBUILD_ARCH_A
)$(KBUILD_ARCH_C
)
50 KBUILD_CFLAGS
+= -mno-save-restore
51 KBUILD_CFLAGS
+= -DCONFIG_PAGE_OFFSET
=$(CONFIG_PAGE_OFFSET
)
53 ifeq ($(CONFIG_CMODEL_MEDLOW
),y
)
54 KBUILD_CFLAGS
+= -mcmodel
=medlow
56 ifeq ($(CONFIG_CMODEL_MEDANY
),y
)
57 KBUILD_CFLAGS
+= -mcmodel
=medany
60 # GCC versions that support the "-mstrict-align" option default to allowing
61 # unaligned accesses. While unaligned accesses are explicitly allowed in the
62 # RISC-V ISA, they're emulated by machine mode traps on all extant
63 # architectures. It's faster to have GCC emit only aligned accesses.
64 KBUILD_CFLAGS
+= $(call cc-option
,-mstrict-align
)
66 head-y
:= arch
/riscv
/kernel
/head.o
68 core-y
+= arch
/riscv
/kernel
/ arch
/riscv
/mm
/
70 libs-y
+= arch
/riscv
/lib
/