xref: /linux/arch/riscv/kernel/Makefile (revision 755bc1335e3b116b702205b72eb57b7b8aef2bb2)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2fbe934d6SPalmer Dabbelt#
3fbe934d6SPalmer Dabbelt# Makefile for the RISC-V Linux kernel
4fbe934d6SPalmer Dabbelt#
5fbe934d6SPalmer Dabbelt
6a79be02bSLinus TorvaldsCFLAGS_syscall_table.o	+= $(call cc-disable-warning, override-init)
7a79be02bSLinus TorvaldsCFLAGS_compat_syscall_table.o += $(call cc-disable-warning, override-init)
810626c32SAlan Kao
9d53a154cSBaoquan Heifdef CONFIG_KEXEC_CORE
10030d6dbfSChangbin DuAFLAGS_kexec_relocate.o := -mcmodel=medany $(call cc-option,-mno-relax)
11fba8a867SNick Kossifidisendif
12fba8a867SNick Kossifidis
13a35707c3SHeiko Stuebner# cmodel=medany and notrace when patching early
14a35707c3SHeiko Stuebnerifdef CONFIG_RISCV_ALTERNATIVE_EARLY
15a35707c3SHeiko StuebnerCFLAGS_alternative.o := -mcmodel=medany
16a35707c3SHeiko StuebnerCFLAGS_cpufeature.o := -mcmodel=medany
171ff95eb2SAlexandre GhitiCFLAGS_sbi_ecall.o := -mcmodel=medany
18a35707c3SHeiko Stuebnerifdef CONFIG_FTRACE
19a35707c3SHeiko StuebnerCFLAGS_REMOVE_alternative.o = $(CC_FLAGS_FTRACE)
20a35707c3SHeiko StuebnerCFLAGS_REMOVE_cpufeature.o = $(CC_FLAGS_FTRACE)
21a35707c3SHeiko Stuebnerendif
228dc2a7e8SAlexandre Ghitiifdef CONFIG_RELOCATABLE
238dc2a7e8SAlexandre GhitiCFLAGS_alternative.o += -fno-pie
248dc2a7e8SAlexandre GhitiCFLAGS_cpufeature.o += -fno-pie
251ff95eb2SAlexandre GhitiCFLAGS_sbi_ecall.o += -fno-pie
268dc2a7e8SAlexandre Ghitiendif
27a35707c3SHeiko Stuebnerifdef CONFIG_KASAN
28a35707c3SHeiko StuebnerKASAN_SANITIZE_alternative.o := n
29a35707c3SHeiko StuebnerKASAN_SANITIZE_cpufeature.o := n
301ff95eb2SAlexandre GhitiKASAN_SANITIZE_sbi_ecall.o := n
31a35707c3SHeiko Stuebnerendif
32afedc312SAlexandre Ghitiifdef CONFIG_FORTIFY_SOURCE
33afedc312SAlexandre GhitiCFLAGS_alternative.o += -D__NO_FORTIFY
34afedc312SAlexandre GhitiCFLAGS_cpufeature.o += -D__NO_FORTIFY
35afedc312SAlexandre GhitiCFLAGS_sbi_ecall.o += -D__NO_FORTIFY
36afedc312SAlexandre Ghitiendif
37a35707c3SHeiko Stuebnerendif
38a35707c3SHeiko Stuebner
39*b0d7f5f0SMartin Kaiserifdef CONFIG_FTRACE
40*b0d7f5f0SMartin KaiserCFLAGS_REMOVE_ftrace.o	= $(CC_FLAGS_FTRACE)
41*b0d7f5f0SMartin KaiserCFLAGS_REMOVE_patch.o	= $(CC_FLAGS_FTRACE)
42*b0d7f5f0SMartin KaiserCFLAGS_REMOVE_sbi.o	= $(CC_FLAGS_FTRACE)
43*b0d7f5f0SMartin KaiserCFLAGS_REMOVE_return_address.o	= $(CC_FLAGS_FTRACE)
44*b0d7f5f0SMartin KaiserCFLAGS_REMOVE_sbi_ecall.o = $(CC_FLAGS_FTRACE)
45*b0d7f5f0SMartin Kaiserendif
46*b0d7f5f0SMartin Kaiser
47e21efe83SMasahiro Yamadaalways-$(KBUILD_BUILTIN) += vmlinux.lds
48fbe934d6SPalmer Dabbelt
4932164845SMasahiro Yamadaobj-y	+= head.o
50335b1390SDamien Le Moalobj-y	+= soc.o
51e64f737aSHeiko Stuebnerobj-$(CONFIG_RISCV_ALTERNATIVE) += alternative.o
52fbe934d6SPalmer Dabbeltobj-y	+= cpu.o
53fbe934d6SPalmer Dabbeltobj-y	+= cpufeature.o
54fbe934d6SPalmer Dabbeltobj-y	+= entry.o
55fbe934d6SPalmer Dabbeltobj-y	+= irq.o
56fbe934d6SPalmer Dabbeltobj-y	+= process.o
57fbe934d6SPalmer Dabbeltobj-y	+= ptrace.o
58fbe934d6SPalmer Dabbeltobj-y	+= reset.o
5968034138SZong Liobj-y	+= return_address.o
60fbe934d6SPalmer Dabbeltobj-y	+= setup.o
61fbe934d6SPalmer Dabbeltobj-y	+= signal.o
62fbe934d6SPalmer Dabbeltobj-y	+= syscall_table.o
63fbe934d6SPalmer Dabbeltobj-y	+= sys_riscv.o
6453b2b228SAndrew Jonesobj-y	+= sys_hwprobe.o
65fbe934d6SPalmer Dabbeltobj-y	+= time.o
66fbe934d6SPalmer Dabbeltobj-y	+= traps.o
67fbe934d6SPalmer Dabbeltobj-y	+= riscv_ksyms.o
68fbe934d6SPalmer Dabbeltobj-y	+= stacktrace.o
69fbe934d6SPalmer Dabbeltobj-y	+= cacheinfo.o
70043cb41aSZong Liobj-y	+= patch.o
7123c996fcSCharlie Jenkinsobj-y	+= vendor_extensions.o
7223c996fcSCharlie Jenkinsobj-y	+= vendor_extensions/
73c22b0bcbSGuo Renobj-y	+= probes/
74af71bc19SCharlie Jenkinsobj-y	+= tests/
756bd33e1eSChristoph Hellwigobj-$(CONFIG_MMU) += vdso.o vdso/
76fbe934d6SPalmer Dabbelt
777c832321SClément Légerobj-$(CONFIG_RISCV_MISALIGNED)	+= traps_misaligned.o
78f413aae9SCharlie Jenkinsobj-$(CONFIG_RISCV_MISALIGNED)	+= unaligned_access_speed.o
79f413aae9SCharlie Jenkinsobj-$(CONFIG_RISCV_PROBE_UNALIGNED_ACCESS)		+= copy-unaligned.o
80e7c9d66eSJesse Taubeobj-$(CONFIG_RISCV_PROBE_VECTOR_UNALIGNED_ACCESS)	+= vec-copy-unaligned.o
81f413aae9SCharlie Jenkins
829671f706SAlan Kaoobj-$(CONFIG_FPU)		+= fpu.o
8377acc6b5SSamuel Hollandobj-$(CONFIG_FPU)		+= kernel_mode_fpu.o
847017858eSGreentime Huobj-$(CONFIG_RISCV_ISA_V)	+= vector.o
85ecd2ada8SGreentime Huobj-$(CONFIG_RISCV_ISA_V)	+= kernel_mode_vector.o
86fbe934d6SPalmer Dabbeltobj-$(CONFIG_SMP)		+= smpboot.o
87fbe934d6SPalmer Dabbeltobj-$(CONFIG_SMP)		+= smp.o
882875fe05SAtish Patraobj-$(CONFIG_SMP)		+= cpu_ops.o
892ffc48fcSAtish Patra
902ffc48fcSAtish Patraobj-$(CONFIG_RISCV_BOOT_SPINWAIT) += cpu_ops_spinwait.o
91fbe934d6SPalmer Dabbeltobj-$(CONFIG_MODULES)		+= module.o
92ab1ef68eSZong Liobj-$(CONFIG_MODULE_SECTIONS)	+= module-sections.o
93c15ac4fdSAlan Kao
9463b13e64SAnup Patelobj-$(CONFIG_CPU_PM)		+= suspend_entry.o suspend.o
95c0317210SSia Jee Hengobj-$(CONFIG_HIBERNATION)	+= hibernate.o hibernate-asm.o
9663b13e64SAnup Patel
97c15ac4fdSAlan Kaoobj-$(CONFIG_FUNCTION_TRACER)	+= mcount.o ftrace.o
98c15ac4fdSAlan Kaoobj-$(CONFIG_DYNAMIC_FTRACE)	+= mcount-dyn.o
99fbe934d6SPalmer Dabbelt
100dbeb90b0SMao Hanobj-$(CONFIG_PERF_EVENTS)	+= perf_callchain.o
10198a93b0bSMao Hanobj-$(CONFIG_HAVE_PERF_REGS)	+= perf_regs.o
1021ff95eb2SAlexandre Ghitiobj-$(CONFIG_RISCV_SBI)		+= sbi.o sbi_ecall.o
103cfafe260SAtish Patraifeq ($(CONFIG_RISCV_SBI), y)
104832f15f4SAnup Patelobj-$(CONFIG_SMP)		+= sbi-ipi.o
105cfafe260SAtish Patraobj-$(CONFIG_SMP) += cpu_ops_sbi.o
106cfafe260SAtish Patraendif
107f1e58583SAtish Patraobj-$(CONFIG_HOTPLUG_CPU)	+= cpu-hotplug.o
108323925edSAndrew Jonesobj-$(CONFIG_PARAVIRT)		+= paravirt.o
109fe89bd2bSVincent Chenobj-$(CONFIG_KGDB)		+= kgdb.o
1103a66a087SLi Zhengyuobj-$(CONFIG_KEXEC_CORE)	+= kexec_relocate.o crash_save_regs.o machine_kexec.o
111809a11eeSSong Shuaiobj-$(CONFIG_KEXEC_FILE)	+= kexec_elf.o kexec_image.o machine_kexec_file.o
11256409750SNick Kossifidisobj-$(CONFIG_CRASH_DUMP)	+= crash_dump.o
113443cbaf9SBaoquan Heobj-$(CONFIG_VMCORE_INFO)	+= vmcore_info.o
114178e9fc4SAlan Kao
115ebc00ddeSEmil Renner Berthingobj-$(CONFIG_JUMP_LABEL)	+= jump_label.o
116ebc00ddeSEmil Renner Berthing
11723ef9d43SKees Cookobj-$(CONFIG_CFI)		+= cfi.o
118af0ead42SSami Tolvanen
119b91540d5SAtish Patraobj-$(CONFIG_EFI)		+= efi.o
12059c10c52SGuo Renobj-$(CONFIG_COMPAT)		+= compat_syscall_table.o
1217383ee05SGuo Renobj-$(CONFIG_COMPAT)		+= compat_signal.o
1220715372aSGuo Renobj-$(CONFIG_COMPAT)		+= compat_vdso/
12326e7aacbSAlexandre Ghiti
12426e7aacbSAlexandre Ghitiobj-$(CONFIG_64BIT)		+= pi/
125a91a9ffbSSunil V Lobj-$(CONFIG_ACPI)		+= acpi.o
126eabd9db6SHaibo Xuobj-$(CONFIG_ACPI_NUMA)	+= acpi_numa.o
1274bf97069SCharlie Jenkins
1284bf97069SCharlie Jenkinsobj-$(CONFIG_GENERIC_CPU_VULNERABILITIES) += bugs.o
129