c8085126a6f98969ec27ab46af8ca8dfe77a3bf4
[linux-2.6-microblaze.git] / arch / riscv / kernel / Makefile
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 endif
11 CFLAGS_syscall_table.o  += $(call cc-option,-Wno-override-init,)
12 CFLAGS_compat_syscall_table.o += $(call cc-option,-Wno-override-init,)
13
14 ifdef CONFIG_KEXEC_CORE
15 AFLAGS_kexec_relocate.o := -mcmodel=medany $(call cc-option,-mno-relax)
16 endif
17
18 # cmodel=medany and notrace when patching early
19 ifdef CONFIG_RISCV_ALTERNATIVE_EARLY
20 CFLAGS_alternative.o := -mcmodel=medany
21 CFLAGS_cpufeature.o := -mcmodel=medany
22 ifdef CONFIG_FTRACE
23 CFLAGS_REMOVE_alternative.o = $(CC_FLAGS_FTRACE)
24 CFLAGS_REMOVE_cpufeature.o = $(CC_FLAGS_FTRACE)
25 endif
26 ifdef CONFIG_RELOCATABLE
27 CFLAGS_alternative.o += -fno-pie
28 CFLAGS_cpufeature.o += -fno-pie
29 endif
30 ifdef CONFIG_KASAN
31 KASAN_SANITIZE_alternative.o := n
32 KASAN_SANITIZE_cpufeature.o := n
33 endif
34 endif
35
36 extra-y += vmlinux.lds
37
38 obj-y   += head.o
39 obj-y   += soc.o
40 obj-$(CONFIG_RISCV_ALTERNATIVE) += alternative.o
41 obj-y   += cpu.o
42 obj-y   += cpufeature.o
43 obj-y   += entry.o
44 obj-y   += irq.o
45 obj-y   += process.o
46 obj-y   += ptrace.o
47 obj-y   += reset.o
48 obj-y   += setup.o
49 obj-y   += signal.o
50 obj-y   += syscall_table.o
51 obj-y   += sys_riscv.o
52 obj-y   += sys_hwprobe.o
53 obj-y   += time.o
54 obj-y   += traps.o
55 obj-y   += riscv_ksyms.o
56 obj-y   += stacktrace.o
57 obj-y   += cacheinfo.o
58 obj-y   += patch.o
59 obj-y   += probes/
60 obj-y   += tests/
61 obj-$(CONFIG_MMU) += vdso.o vdso/
62
63 obj-$(CONFIG_RISCV_MISALIGNED)  += traps_misaligned.o
64 obj-$(CONFIG_RISCV_MISALIGNED)  += unaligned_access_speed.o
65 obj-$(CONFIG_RISCV_PROBE_UNALIGNED_ACCESS)      += copy-unaligned.o
66
67 obj-$(CONFIG_FPU)               += fpu.o
68 obj-$(CONFIG_RISCV_ISA_V)       += vector.o
69 obj-$(CONFIG_RISCV_ISA_V)       += kernel_mode_vector.o
70 obj-$(CONFIG_SMP)               += smpboot.o
71 obj-$(CONFIG_SMP)               += smp.o
72 obj-$(CONFIG_SMP)               += cpu_ops.o
73
74 obj-$(CONFIG_RISCV_BOOT_SPINWAIT) += cpu_ops_spinwait.o
75 obj-$(CONFIG_MODULES)           += module.o
76 obj-$(CONFIG_MODULE_SECTIONS)   += module-sections.o
77
78 obj-$(CONFIG_CPU_PM)            += suspend_entry.o suspend.o
79 obj-$(CONFIG_HIBERNATION)       += hibernate.o hibernate-asm.o
80
81 obj-$(CONFIG_FUNCTION_TRACER)   += mcount.o ftrace.o
82 obj-$(CONFIG_DYNAMIC_FTRACE)    += mcount-dyn.o
83
84 obj-$(CONFIG_PERF_EVENTS)       += perf_callchain.o
85 obj-$(CONFIG_HAVE_PERF_REGS)    += perf_regs.o
86 obj-$(CONFIG_RISCV_SBI)         += sbi.o
87 ifeq ($(CONFIG_RISCV_SBI), y)
88 obj-$(CONFIG_SMP)               += sbi-ipi.o
89 obj-$(CONFIG_SMP) += cpu_ops_sbi.o
90 endif
91 obj-$(CONFIG_HOTPLUG_CPU)       += cpu-hotplug.o
92 obj-$(CONFIG_PARAVIRT)          += paravirt.o
93 obj-$(CONFIG_KGDB)              += kgdb.o
94 obj-$(CONFIG_KEXEC_CORE)        += kexec_relocate.o crash_save_regs.o machine_kexec.o
95 obj-$(CONFIG_KEXEC_FILE)        += elf_kexec.o machine_kexec_file.o
96 obj-$(CONFIG_CRASH_DUMP)        += crash_dump.o
97 obj-$(CONFIG_CRASH_CORE)        += crash_core.o
98
99 obj-$(CONFIG_JUMP_LABEL)        += jump_label.o
100
101 obj-$(CONFIG_CFI_CLANG)         += cfi.o
102
103 obj-$(CONFIG_EFI)               += efi.o
104 obj-$(CONFIG_COMPAT)            += compat_syscall_table.o
105 obj-$(CONFIG_COMPAT)            += compat_signal.o
106 obj-$(CONFIG_COMPAT)            += compat_vdso/
107
108 obj-$(CONFIG_64BIT)             += pi/
109 obj-$(CONFIG_ACPI)              += acpi.o