xref: /linux/arch/riscv/kernel/Makefile (revision 6a069876eb1402478900ee0eb7d7fe276bb1f4e3)
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# Makefile for the RISC-V Linux kernel
4#
5
6CFLAGS_syscall_table.o	+= $(call cc-disable-warning, override-init)
7CFLAGS_compat_syscall_table.o += $(call cc-disable-warning, override-init)
8
9ifdef CONFIG_KEXEC_CORE
10AFLAGS_kexec_relocate.o := -mcmodel=medany $(call cc-option,-mno-relax)
11endif
12
13# cmodel=medany and notrace when patching early
14ifdef CONFIG_RISCV_ALTERNATIVE_EARLY
15CFLAGS_alternative.o := -mcmodel=medany
16CFLAGS_cpufeature.o := -mcmodel=medany
17CFLAGS_sbi_ecall.o := -mcmodel=medany
18ifdef CONFIG_FTRACE
19CFLAGS_REMOVE_alternative.o = $(CC_FLAGS_FTRACE)
20CFLAGS_REMOVE_cpufeature.o = $(CC_FLAGS_FTRACE)
21endif
22ifdef CONFIG_RELOCATABLE
23CFLAGS_alternative.o += -fno-pie
24CFLAGS_cpufeature.o += -fno-pie
25CFLAGS_sbi_ecall.o += -fno-pie
26endif
27ifdef CONFIG_KASAN
28KASAN_SANITIZE_alternative.o := n
29KASAN_SANITIZE_cpufeature.o := n
30KASAN_SANITIZE_sbi_ecall.o := n
31endif
32ifdef CONFIG_FORTIFY_SOURCE
33CFLAGS_alternative.o += -D__NO_FORTIFY
34CFLAGS_cpufeature.o += -D__NO_FORTIFY
35CFLAGS_sbi_ecall.o += -D__NO_FORTIFY
36endif
37endif
38
39ifdef CONFIG_FTRACE
40CFLAGS_REMOVE_ftrace.o	= $(CC_FLAGS_FTRACE)
41CFLAGS_REMOVE_patch.o	= $(CC_FLAGS_FTRACE)
42CFLAGS_REMOVE_sbi.o	= $(CC_FLAGS_FTRACE)
43CFLAGS_REMOVE_return_address.o	= $(CC_FLAGS_FTRACE)
44CFLAGS_REMOVE_sbi_ecall.o = $(CC_FLAGS_FTRACE)
45endif
46
47always-$(KBUILD_BUILTIN) += vmlinux.lds
48
49obj-y	+= head.o
50obj-y	+= soc.o
51obj-$(CONFIG_RISCV_ALTERNATIVE) += alternative.o
52obj-y	+= cpu.o
53obj-y	+= cpufeature.o
54obj-y	+= entry.o
55obj-y	+= irq.o
56obj-y	+= process.o
57obj-y	+= ptrace.o
58obj-y	+= reset.o
59obj-y	+= return_address.o
60obj-y	+= setup.o
61obj-y	+= signal.o
62obj-y	+= syscall_table.o
63obj-y	+= sys_riscv.o
64obj-y	+= sys_hwprobe.o
65obj-y	+= time.o
66obj-y	+= traps.o
67obj-y	+= riscv_ksyms.o
68obj-y	+= stacktrace.o
69obj-y	+= cacheinfo.o
70obj-y	+= patch.o
71obj-y	+= vendor_extensions.o
72obj-y	+= vendor_extensions/
73obj-y	+= probes/
74obj-y	+= tests/
75obj-$(CONFIG_MMU) += vdso.o vdso/
76
77obj-$(CONFIG_RISCV_MISALIGNED)	+= traps_misaligned.o
78obj-$(CONFIG_RISCV_MISALIGNED)	+= unaligned_access_speed.o
79obj-$(CONFIG_RISCV_PROBE_UNALIGNED_ACCESS)		+= copy-unaligned.o
80obj-$(CONFIG_RISCV_PROBE_VECTOR_UNALIGNED_ACCESS)	+= vec-copy-unaligned.o
81
82obj-$(CONFIG_FPU)		+= fpu.o
83obj-$(CONFIG_FPU)		+= kernel_mode_fpu.o
84obj-$(CONFIG_RISCV_ISA_V)	+= vector.o
85obj-$(CONFIG_RISCV_ISA_V)	+= kernel_mode_vector.o
86obj-$(CONFIG_SMP)		+= smpboot.o
87obj-$(CONFIG_SMP)		+= smp.o
88obj-$(CONFIG_SMP)		+= cpu_ops.o
89
90obj-$(CONFIG_RISCV_BOOT_SPINWAIT) += cpu_ops_spinwait.o
91obj-$(CONFIG_MODULES)		+= module.o
92obj-$(CONFIG_MODULE_SECTIONS)	+= module-sections.o
93
94obj-$(CONFIG_CPU_PM)		+= suspend_entry.o suspend.o
95obj-$(CONFIG_HIBERNATION)	+= hibernate.o hibernate-asm.o
96
97obj-$(CONFIG_FUNCTION_TRACER)	+= mcount.o ftrace.o
98obj-$(CONFIG_DYNAMIC_FTRACE)	+= mcount-dyn.o
99
100obj-$(CONFIG_PERF_EVENTS)	+= perf_callchain.o
101obj-$(CONFIG_HAVE_PERF_REGS)	+= perf_regs.o
102obj-$(CONFIG_RISCV_SBI)		+= sbi.o sbi_ecall.o
103ifeq ($(CONFIG_RISCV_SBI), y)
104obj-$(CONFIG_SMP)		+= sbi-ipi.o
105obj-$(CONFIG_SMP) += cpu_ops_sbi.o
106endif
107obj-$(CONFIG_HOTPLUG_CPU)	+= cpu-hotplug.o
108obj-$(CONFIG_PARAVIRT)		+= paravirt.o
109obj-$(CONFIG_KGDB)		+= kgdb.o
110obj-$(CONFIG_KEXEC_CORE)	+= kexec_relocate.o crash_save_regs.o machine_kexec.o
111obj-$(CONFIG_KEXEC_FILE)	+= kexec_elf.o kexec_image.o machine_kexec_file.o
112obj-$(CONFIG_CRASH_DUMP)	+= crash_dump.o
113obj-$(CONFIG_VMCORE_INFO)	+= vmcore_info.o
114
115obj-$(CONFIG_JUMP_LABEL)	+= jump_label.o
116
117obj-$(CONFIG_CFI)		+= cfi.o
118
119obj-$(CONFIG_EFI)		+= efi.o
120obj-$(CONFIG_COMPAT)		+= compat_syscall_table.o
121obj-$(CONFIG_COMPAT)		+= compat_signal.o
122obj-$(CONFIG_COMPAT)		+= compat_vdso/
123
124obj-$(CONFIG_64BIT)		+= pi/
125obj-$(CONFIG_ACPI)		+= acpi.o
126obj-$(CONFIG_ACPI_NUMA)	+= acpi_numa.o
127
128obj-$(CONFIG_GENERIC_CPU_VULNERABILITIES) += bugs.o
129