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