1 # SPDX-License-Identifier: GPL-2.0-only
3 # Makefile for the RISC-V Linux kernel
7 CFLAGS_REMOVE_ftrace.o
= $(CC_FLAGS_FTRACE
)
8 CFLAGS_REMOVE_patch.o
= $(CC_FLAGS_FTRACE
)
9 CFLAGS_REMOVE_sbi.o
= $(CC_FLAGS_FTRACE
)
10 CFLAGS_REMOVE_return_address.o
= $(CC_FLAGS_FTRACE
)
12 CFLAGS_syscall_table.o
+= $(call cc-option
,-Wno-override-init
,)
13 CFLAGS_compat_syscall_table.o
+= $(call cc-option
,-Wno-override-init
,)
15 ifdef CONFIG_KEXEC_CORE
16 AFLAGS_kexec_relocate.o
:= -mcmodel
=medany
$(call cc-option
,-mno-relax
)
19 # cmodel=medany and notrace when patching early
20 ifdef CONFIG_RISCV_ALTERNATIVE_EARLY
21 CFLAGS_alternative.o
:= -mcmodel
=medany
22 CFLAGS_cpufeature.o
:= -mcmodel
=medany
23 CFLAGS_sbi_ecall.o
:= -mcmodel
=medany
25 CFLAGS_REMOVE_alternative.o
= $(CC_FLAGS_FTRACE
)
26 CFLAGS_REMOVE_cpufeature.o
= $(CC_FLAGS_FTRACE
)
27 CFLAGS_REMOVE_sbi_ecall.o
= $(CC_FLAGS_FTRACE
)
29 ifdef CONFIG_RELOCATABLE
30 CFLAGS_alternative.o
+= -fno-pie
31 CFLAGS_cpufeature.o
+= -fno-pie
32 CFLAGS_sbi_ecall.o
+= -fno-pie
35 KASAN_SANITIZE_alternative.o
:= n
36 KASAN_SANITIZE_cpufeature.o
:= n
37 KASAN_SANITIZE_sbi_ecall.o
:= n
41 extra-y
+= vmlinux.lds
45 obj-
$(CONFIG_RISCV_ALTERNATIVE
) += alternative.o
53 obj-y
+= return_address.o
56 obj-y
+= syscall_table.o
58 obj-y
+= sys_hwprobe.o
61 obj-y
+= riscv_ksyms.o
65 obj-y
+= vendor_extensions.o
66 obj-y
+= vendor_extensions
/
69 obj-
$(CONFIG_MMU
) += vdso.o vdso
/
71 obj-
$(CONFIG_RISCV_MISALIGNED
) += traps_misaligned.o
72 obj-
$(CONFIG_RISCV_MISALIGNED
) += unaligned_access_speed.o
73 obj-
$(CONFIG_RISCV_PROBE_UNALIGNED_ACCESS
) += copy-unaligned.o
75 obj-
$(CONFIG_FPU
) += fpu.o
76 obj-
$(CONFIG_FPU
) += kernel_mode_fpu.o
77 obj-
$(CONFIG_RISCV_ISA_V
) += vector.o
78 obj-
$(CONFIG_RISCV_ISA_V
) += kernel_mode_vector.o
79 obj-
$(CONFIG_SMP
) += smpboot.o
80 obj-
$(CONFIG_SMP
) += smp.o
81 obj-
$(CONFIG_SMP
) += cpu_ops.o
83 obj-
$(CONFIG_RISCV_BOOT_SPINWAIT
) += cpu_ops_spinwait.o
84 obj-
$(CONFIG_MODULES
) += module.o
85 obj-
$(CONFIG_MODULE_SECTIONS
) += module-sections.o
87 obj-
$(CONFIG_CPU_PM
) += suspend_entry.o suspend.o
88 obj-
$(CONFIG_HIBERNATION
) += hibernate.o hibernate-asm.o
90 obj-
$(CONFIG_FUNCTION_TRACER
) += mcount.o ftrace.o
91 obj-
$(CONFIG_DYNAMIC_FTRACE
) += mcount-dyn.o
93 obj-
$(CONFIG_PERF_EVENTS
) += perf_callchain.o
94 obj-
$(CONFIG_HAVE_PERF_REGS
) += perf_regs.o
95 obj-
$(CONFIG_RISCV_SBI
) += sbi.o sbi_ecall.o
96 ifeq ($(CONFIG_RISCV_SBI
), y
)
97 obj-
$(CONFIG_SMP
) += sbi-ipi.o
98 obj-
$(CONFIG_SMP
) += cpu_ops_sbi.o
100 obj-
$(CONFIG_HOTPLUG_CPU
) += cpu-hotplug.o
101 obj-
$(CONFIG_PARAVIRT
) += paravirt.o
102 obj-
$(CONFIG_KGDB
) += kgdb.o
103 obj-
$(CONFIG_KEXEC_CORE
) += kexec_relocate.o crash_save_regs.o machine_kexec.o
104 obj-
$(CONFIG_KEXEC_FILE
) += elf_kexec.o machine_kexec_file.o
105 obj-
$(CONFIG_CRASH_DUMP
) += crash_dump.o
106 obj-
$(CONFIG_VMCORE_INFO
) += vmcore_info.o
108 obj-
$(CONFIG_JUMP_LABEL
) += jump_label.o
110 obj-
$(CONFIG_CFI_CLANG
) += cfi.o
112 obj-
$(CONFIG_EFI
) += efi.o
113 obj-
$(CONFIG_COMPAT
) += compat_syscall_table.o
114 obj-
$(CONFIG_COMPAT
) += compat_signal.o
115 obj-
$(CONFIG_COMPAT
) += compat_vdso
/
117 obj-
$(CONFIG_64BIT
) += pi
/
118 obj-
$(CONFIG_ACPI
) += acpi.o
119 obj-
$(CONFIG_ACPI_NUMA
) += acpi_numa.o