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)
11 CFLAGS_syscall_table.o += $(call cc-option,-Wno-override-init,)
14 AFLAGS_kexec_relocate.o := -mcmodel=medany $(call cc-option,-mno-relax)
18 extra-y += vmlinux.lds
30 obj-y += syscall_table.o
34 obj-y += riscv_ksyms.o
39 obj-$(CONFIG_MMU) += vdso.o vdso/
41 obj-$(CONFIG_RISCV_M_MODE) += traps_misaligned.o
42 obj-$(CONFIG_FPU) += fpu.o
43 obj-$(CONFIG_SMP) += smpboot.o
44 obj-$(CONFIG_SMP) += smp.o
45 obj-$(CONFIG_SMP) += cpu_ops.o
46 obj-$(CONFIG_SMP) += cpu_ops_spinwait.o
47 obj-$(CONFIG_MODULES) += module.o
48 obj-$(CONFIG_MODULE_SECTIONS) += module-sections.o
50 obj-$(CONFIG_FUNCTION_TRACER) += mcount.o ftrace.o
51 obj-$(CONFIG_DYNAMIC_FTRACE) += mcount-dyn.o
53 obj-$(CONFIG_RISCV_BASE_PMU) += perf_event.o
54 obj-$(CONFIG_PERF_EVENTS) += perf_callchain.o
55 obj-$(CONFIG_HAVE_PERF_REGS) += perf_regs.o
56 obj-$(CONFIG_RISCV_SBI) += sbi.o
57 ifeq ($(CONFIG_RISCV_SBI), y)
58 obj-$(CONFIG_SMP) += cpu_ops_sbi.o
60 obj-$(CONFIG_HOTPLUG_CPU) += cpu-hotplug.o
61 obj-$(CONFIG_KGDB) += kgdb.o
62 obj-$(CONFIG_KEXEC) += kexec_relocate.o crash_save_regs.o machine_kexec.o
63 obj-$(CONFIG_CRASH_DUMP) += crash_dump.o
65 obj-$(CONFIG_JUMP_LABEL) += jump_label.o
67 obj-$(CONFIG_EFI) += efi.o