]>
Commit | Line | Data |
---|---|---|
fbe934d6 PD |
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 | |
4 | # this architecture | |
5 | # | |
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 | |
8 | # for more details. | |
9 | # | |
10 | ||
11 | LDFLAGS := | |
12 | OBJCOPYFLAGS := -O binary | |
13 | LDFLAGS_vmlinux := | |
14 | KBUILD_AFLAGS_MODULE += -fPIC | |
15 | KBUILD_CFLAGS_MODULE += -fPIC | |
16 | ||
17 | KBUILD_DEFCONFIG = defconfig | |
18 | ||
19 | export BITS | |
20 | ifeq ($(CONFIG_ARCH_RV64I),y) | |
21 | BITS := 64 | |
22 | UTS_MACHINE := riscv64 | |
23 | ||
24 | KBUILD_CFLAGS += -mabi=lp64 | |
25 | KBUILD_AFLAGS += -mabi=lp64 | |
26 | KBUILD_MARCH = rv64im | |
27 | LDFLAGS += -melf64lriscv | |
28 | else | |
29 | BITS := 32 | |
30 | UTS_MACHINE := riscv32 | |
31 | ||
32 | KBUILD_CFLAGS += -mabi=ilp32 | |
33 | KBUILD_AFLAGS += -mabi=ilp32 | |
34 | KBUILD_MARCH = rv32im | |
35 | LDFLAGS += -melf32lriscv | |
36 | endif | |
37 | ||
38 | KBUILD_CFLAGS += -Wall | |
39 | ||
40 | ifeq ($(CONFIG_RISCV_ISA_A),y) | |
41 | KBUILD_ARCH_A = a | |
42 | endif | |
43 | ifeq ($(CONFIG_RISCV_ISA_C),y) | |
44 | KBUILD_ARCH_C = c | |
45 | endif | |
46 | ||
47 | KBUILD_AFLAGS += -march=$(KBUILD_MARCH)$(KBUILD_ARCH_A)fd$(KBUILD_ARCH_C) | |
48 | ||
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) | |
52 | ||
53 | ifeq ($(CONFIG_CMODEL_MEDLOW),y) | |
54 | KBUILD_CFLAGS += -mcmodel=medlow | |
55 | endif | |
56 | ifeq ($(CONFIG_CMODEL_MEDANY),y) | |
57 | KBUILD_CFLAGS += -mcmodel=medany | |
58 | endif | |
59 | ||
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) | |
65 | ||
66 | head-y := arch/riscv/kernel/head.o | |
67 | ||
68 | core-y += arch/riscv/kernel/ arch/riscv/mm/ | |
69 | ||
70 | libs-y += arch/riscv/lib/ | |
71 | ||
72 | all: vmlinux |