xref: /linux/arch/riscv/kernel/Makefile (revision 680341382da56bd192ebfa4e58eaf4fec2e5bca7)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2fbe934d6SPalmer Dabbelt#
3fbe934d6SPalmer Dabbelt# Makefile for the RISC-V Linux kernel
4fbe934d6SPalmer Dabbelt#
5fbe934d6SPalmer Dabbelt
610626c32SAlan Kaoifdef CONFIG_FTRACE
767d94577SGuo RenCFLAGS_REMOVE_ftrace.o	= $(CC_FLAGS_FTRACE)
867d94577SGuo RenCFLAGS_REMOVE_patch.o	= $(CC_FLAGS_FTRACE)
95ad84adfSGuo RenCFLAGS_REMOVE_sbi.o	= $(CC_FLAGS_FTRACE)
10*68034138SZong LiCFLAGS_REMOVE_return_address.o	= $(CC_FLAGS_FTRACE)
1110626c32SAlan Kaoendif
12a6a58ecfSNanyong SunCFLAGS_syscall_table.o	+= $(call cc-option,-Wno-override-init,)
13f9c4bbddSGuo RenCFLAGS_compat_syscall_table.o += $(call cc-option,-Wno-override-init,)
1410626c32SAlan Kao
15d53a154cSBaoquan Heifdef CONFIG_KEXEC_CORE
16030d6dbfSChangbin DuAFLAGS_kexec_relocate.o := -mcmodel=medany $(call cc-option,-mno-relax)
17fba8a867SNick Kossifidisendif
18fba8a867SNick Kossifidis
19a35707c3SHeiko Stuebner# cmodel=medany and notrace when patching early
20a35707c3SHeiko Stuebnerifdef CONFIG_RISCV_ALTERNATIVE_EARLY
21a35707c3SHeiko StuebnerCFLAGS_alternative.o := -mcmodel=medany
22a35707c3SHeiko StuebnerCFLAGS_cpufeature.o := -mcmodel=medany
23a35707c3SHeiko Stuebnerifdef CONFIG_FTRACE
24a35707c3SHeiko StuebnerCFLAGS_REMOVE_alternative.o = $(CC_FLAGS_FTRACE)
25a35707c3SHeiko StuebnerCFLAGS_REMOVE_cpufeature.o = $(CC_FLAGS_FTRACE)
26a35707c3SHeiko Stuebnerendif
278dc2a7e8SAlexandre Ghitiifdef CONFIG_RELOCATABLE
288dc2a7e8SAlexandre GhitiCFLAGS_alternative.o += -fno-pie
298dc2a7e8SAlexandre GhitiCFLAGS_cpufeature.o += -fno-pie
308dc2a7e8SAlexandre Ghitiendif
31a35707c3SHeiko Stuebnerifdef CONFIG_KASAN
32a35707c3SHeiko StuebnerKASAN_SANITIZE_alternative.o := n
33a35707c3SHeiko StuebnerKASAN_SANITIZE_cpufeature.o := n
34a35707c3SHeiko Stuebnerendif
35a35707c3SHeiko Stuebnerendif
36a35707c3SHeiko Stuebner
37fbe934d6SPalmer Dabbeltextra-y += vmlinux.lds
38fbe934d6SPalmer Dabbelt
3932164845SMasahiro Yamadaobj-y	+= head.o
40335b1390SDamien Le Moalobj-y	+= soc.o
41e64f737aSHeiko Stuebnerobj-$(CONFIG_RISCV_ALTERNATIVE) += alternative.o
42584ea656SEvan Greenobj-y	+= copy-unaligned.o
43fbe934d6SPalmer Dabbeltobj-y	+= cpu.o
44fbe934d6SPalmer Dabbeltobj-y	+= cpufeature.o
45fbe934d6SPalmer Dabbeltobj-y	+= entry.o
46fbe934d6SPalmer Dabbeltobj-y	+= irq.o
47fbe934d6SPalmer Dabbeltobj-y	+= process.o
48fbe934d6SPalmer Dabbeltobj-y	+= ptrace.o
49fbe934d6SPalmer Dabbeltobj-y	+= reset.o
50*68034138SZong Liobj-y	+= return_address.o
51fbe934d6SPalmer Dabbeltobj-y	+= setup.o
52fbe934d6SPalmer Dabbeltobj-y	+= signal.o
53fbe934d6SPalmer Dabbeltobj-y	+= syscall_table.o
54fbe934d6SPalmer Dabbeltobj-y	+= sys_riscv.o
5553b2b228SAndrew Jonesobj-y	+= sys_hwprobe.o
56fbe934d6SPalmer Dabbeltobj-y	+= time.o
57fbe934d6SPalmer Dabbeltobj-y	+= traps.o
58fbe934d6SPalmer Dabbeltobj-y	+= riscv_ksyms.o
59fbe934d6SPalmer Dabbeltobj-y	+= stacktrace.o
60fbe934d6SPalmer Dabbeltobj-y	+= cacheinfo.o
61043cb41aSZong Liobj-y	+= patch.o
62c22b0bcbSGuo Renobj-y	+= probes/
63af71bc19SCharlie Jenkinsobj-y	+= tests/
646bd33e1eSChristoph Hellwigobj-$(CONFIG_MMU) += vdso.o vdso/
65fbe934d6SPalmer Dabbelt
667c832321SClément Légerobj-$(CONFIG_RISCV_MISALIGNED)	+= traps_misaligned.o
679671f706SAlan Kaoobj-$(CONFIG_FPU)		+= fpu.o
687017858eSGreentime Huobj-$(CONFIG_RISCV_ISA_V)	+= vector.o
69ecd2ada8SGreentime Huobj-$(CONFIG_RISCV_ISA_V)	+= kernel_mode_vector.o
70fbe934d6SPalmer Dabbeltobj-$(CONFIG_SMP)		+= smpboot.o
71fbe934d6SPalmer Dabbeltobj-$(CONFIG_SMP)		+= smp.o
722875fe05SAtish Patraobj-$(CONFIG_SMP)		+= cpu_ops.o
732ffc48fcSAtish Patra
742ffc48fcSAtish Patraobj-$(CONFIG_RISCV_BOOT_SPINWAIT) += cpu_ops_spinwait.o
75fbe934d6SPalmer Dabbeltobj-$(CONFIG_MODULES)		+= module.o
76ab1ef68eSZong Liobj-$(CONFIG_MODULE_SECTIONS)	+= module-sections.o
77c15ac4fdSAlan Kao
7863b13e64SAnup Patelobj-$(CONFIG_CPU_PM)		+= suspend_entry.o suspend.o
79c0317210SSia Jee Hengobj-$(CONFIG_HIBERNATION)	+= hibernate.o hibernate-asm.o
8063b13e64SAnup Patel
81c15ac4fdSAlan Kaoobj-$(CONFIG_FUNCTION_TRACER)	+= mcount.o ftrace.o
82c15ac4fdSAlan Kaoobj-$(CONFIG_DYNAMIC_FTRACE)	+= mcount-dyn.o
83fbe934d6SPalmer Dabbelt
84dbeb90b0SMao Hanobj-$(CONFIG_PERF_EVENTS)	+= perf_callchain.o
8598a93b0bSMao Hanobj-$(CONFIG_HAVE_PERF_REGS)	+= perf_regs.o
863320648eSChristoph Hellwigobj-$(CONFIG_RISCV_SBI)		+= sbi.o
87cfafe260SAtish Patraifeq ($(CONFIG_RISCV_SBI), y)
88832f15f4SAnup Patelobj-$(CONFIG_SMP)		+= sbi-ipi.o
89cfafe260SAtish Patraobj-$(CONFIG_SMP) += cpu_ops_sbi.o
90cfafe260SAtish Patraendif
91f1e58583SAtish Patraobj-$(CONFIG_HOTPLUG_CPU)	+= cpu-hotplug.o
92323925edSAndrew Jonesobj-$(CONFIG_PARAVIRT)		+= paravirt.o
93fe89bd2bSVincent Chenobj-$(CONFIG_KGDB)		+= kgdb.o
943a66a087SLi Zhengyuobj-$(CONFIG_KEXEC_CORE)	+= kexec_relocate.o crash_save_regs.o machine_kexec.o
956261586eSLiao Changobj-$(CONFIG_KEXEC_FILE)	+= elf_kexec.o machine_kexec_file.o
9656409750SNick Kossifidisobj-$(CONFIG_CRASH_DUMP)	+= crash_dump.o
97649d6b10SXianting Tianobj-$(CONFIG_CRASH_CORE)	+= crash_core.o
98178e9fc4SAlan Kao
99ebc00ddeSEmil Renner Berthingobj-$(CONFIG_JUMP_LABEL)	+= jump_label.o
100ebc00ddeSEmil Renner Berthing
101af0ead42SSami Tolvanenobj-$(CONFIG_CFI_CLANG)		+= cfi.o
102af0ead42SSami Tolvanen
103b91540d5SAtish Patraobj-$(CONFIG_EFI)		+= efi.o
10459c10c52SGuo Renobj-$(CONFIG_COMPAT)		+= compat_syscall_table.o
1057383ee05SGuo Renobj-$(CONFIG_COMPAT)		+= compat_signal.o
1060715372aSGuo Renobj-$(CONFIG_COMPAT)		+= compat_vdso/
10726e7aacbSAlexandre Ghiti
10826e7aacbSAlexandre Ghitiobj-$(CONFIG_64BIT)		+= pi/
109a91a9ffbSSunil V Lobj-$(CONFIG_ACPI)		+= acpi.o
110