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 39b0d7f5f0SMartin Kaiserifdef CONFIG_FTRACE 40b0d7f5f0SMartin KaiserCFLAGS_REMOVE_ftrace.o = $(CC_FLAGS_FTRACE) 41b0d7f5f0SMartin KaiserCFLAGS_REMOVE_patch.o = $(CC_FLAGS_FTRACE) 42b0d7f5f0SMartin KaiserCFLAGS_REMOVE_sbi.o = $(CC_FLAGS_FTRACE) 43b0d7f5f0SMartin KaiserCFLAGS_REMOVE_return_address.o = $(CC_FLAGS_FTRACE) 44b0d7f5f0SMartin KaiserCFLAGS_REMOVE_sbi_ecall.o = $(CC_FLAGS_FTRACE) 45b0d7f5f0SMartin Kaiserendif 46b0d7f5f0SMartin 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/ 76ccad8c13SDeepak Guptaobj-$(CONFIG_RISCV_USER_CFI) += vdso_cfi/ 77fbe934d6SPalmer Dabbelt 787c832321SClément Légerobj-$(CONFIG_RISCV_MISALIGNED) += traps_misaligned.o 79f413aae9SCharlie Jenkinsobj-$(CONFIG_RISCV_MISALIGNED) += unaligned_access_speed.o 80f413aae9SCharlie Jenkinsobj-$(CONFIG_RISCV_PROBE_UNALIGNED_ACCESS) += copy-unaligned.o 81e7c9d66eSJesse Taubeobj-$(CONFIG_RISCV_PROBE_VECTOR_UNALIGNED_ACCESS) += vec-copy-unaligned.o 82f413aae9SCharlie Jenkins 839671f706SAlan Kaoobj-$(CONFIG_FPU) += fpu.o 8477acc6b5SSamuel Hollandobj-$(CONFIG_FPU) += kernel_mode_fpu.o 857017858eSGreentime Huobj-$(CONFIG_RISCV_ISA_V) += vector.o 86ecd2ada8SGreentime Huobj-$(CONFIG_RISCV_ISA_V) += kernel_mode_vector.o 87fbe934d6SPalmer Dabbeltobj-$(CONFIG_SMP) += smpboot.o 88fbe934d6SPalmer Dabbeltobj-$(CONFIG_SMP) += smp.o 892875fe05SAtish Patraobj-$(CONFIG_SMP) += cpu_ops.o 902ffc48fcSAtish Patra 912ffc48fcSAtish Patraobj-$(CONFIG_RISCV_BOOT_SPINWAIT) += cpu_ops_spinwait.o 92fbe934d6SPalmer Dabbeltobj-$(CONFIG_MODULES) += module.o 93ab1ef68eSZong Liobj-$(CONFIG_MODULE_SECTIONS) += module-sections.o 94c15ac4fdSAlan Kao 9563b13e64SAnup Patelobj-$(CONFIG_CPU_PM) += suspend_entry.o suspend.o 96c0317210SSia Jee Hengobj-$(CONFIG_HIBERNATION) += hibernate.o hibernate-asm.o 9763b13e64SAnup Patel 98c15ac4fdSAlan Kaoobj-$(CONFIG_FUNCTION_TRACER) += mcount.o ftrace.o 99c15ac4fdSAlan Kaoobj-$(CONFIG_DYNAMIC_FTRACE) += mcount-dyn.o 100fbe934d6SPalmer Dabbelt 101dbeb90b0SMao Hanobj-$(CONFIG_PERF_EVENTS) += perf_callchain.o 10298a93b0bSMao Hanobj-$(CONFIG_HAVE_PERF_REGS) += perf_regs.o 1031ff95eb2SAlexandre Ghitiobj-$(CONFIG_RISCV_SBI) += sbi.o sbi_ecall.o 104cfafe260SAtish Patraifeq ($(CONFIG_RISCV_SBI), y) 105832f15f4SAnup Patelobj-$(CONFIG_SMP) += sbi-ipi.o 106cfafe260SAtish Patraobj-$(CONFIG_SMP) += cpu_ops_sbi.o 107cfafe260SAtish Patraendif 108f1e58583SAtish Patraobj-$(CONFIG_HOTPLUG_CPU) += cpu-hotplug.o 109323925edSAndrew Jonesobj-$(CONFIG_PARAVIRT) += paravirt.o 110fe89bd2bSVincent Chenobj-$(CONFIG_KGDB) += kgdb.o 1113a66a087SLi Zhengyuobj-$(CONFIG_KEXEC_CORE) += kexec_relocate.o crash_save_regs.o machine_kexec.o 112809a11eeSSong Shuaiobj-$(CONFIG_KEXEC_FILE) += kexec_elf.o kexec_image.o machine_kexec_file.o 11356409750SNick Kossifidisobj-$(CONFIG_CRASH_DUMP) += crash_dump.o 114443cbaf9SBaoquan Heobj-$(CONFIG_VMCORE_INFO) += vmcore_info.o 115178e9fc4SAlan Kao 116ebc00ddeSEmil Renner Berthingobj-$(CONFIG_JUMP_LABEL) += jump_label.o 117ebc00ddeSEmil Renner Berthing 11823ef9d43SKees Cookobj-$(CONFIG_CFI) += cfi.o 119af0ead42SSami Tolvanen 120b91540d5SAtish Patraobj-$(CONFIG_EFI) += efi.o 12159c10c52SGuo Renobj-$(CONFIG_COMPAT) += compat_syscall_table.o 1227383ee05SGuo Renobj-$(CONFIG_COMPAT) += compat_signal.o 1230715372aSGuo Renobj-$(CONFIG_COMPAT) += compat_vdso/ 12426e7aacbSAlexandre Ghiti 12526e7aacbSAlexandre Ghitiobj-$(CONFIG_64BIT) += pi/ 126a91a9ffbSSunil V Lobj-$(CONFIG_ACPI) += acpi.o 127eabd9db6SHaibo Xuobj-$(CONFIG_ACPI_NUMA) += acpi_numa.o 1284bf97069SCharlie Jenkins 1294bf97069SCharlie Jenkinsobj-$(CONFIG_GENERIC_CPU_VULNERABILITIES) += bugs.o 130c70772afSDeepak Guptaobj-$(CONFIG_RISCV_USER_CFI) += usercfi.o 131*326ba66dSDrew Fustini 132*326ba66dSDrew Fustiniobj-$(CONFIG_RISCV_ISA_SSQOSID) += qos.o 133