Merge tag 'powerpc-6.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc...
[linux-block.git] / arch / powerpc / kernel / Makefile
CommitLineData
b2441318 1# SPDX-License-Identifier: GPL-2.0
14cf11af
PM
2#
3# Makefile for the linux kernel.
4#
5
badf436f 6ifdef CONFIG_PPC32
9b6b563c 7CFLAGS_prom_init.o += -fPIC
b3491269 8CFLAGS_btext.o += -fPIC
cabb5587 9endif
9b6b563c 10
bba49665 11CFLAGS_early_32.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
38addce8 12CFLAGS_cputable.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
eac6f8b0 13CFLAGS_prom_init.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
38addce8
ER
14CFLAGS_btext.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
15CFLAGS_prom.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
16
893ab004 17CFLAGS_prom_init.o += -fno-stack-protector
6266a4da 18CFLAGS_prom_init.o += -DDISABLE_BRANCH_PROFILING
8dcd71b4 19CFLAGS_prom_init.o += -ffreestanding
be640317 20CFLAGS_prom_init.o += $(call cc-option, -ftrivial-auto-var-init=uninitialized)
c3ff2a51 21
606576ce 22ifdef CONFIG_FUNCTION_TRACER
4e491d14 23# Do not trace early boot code
2a056f58
NP
24CFLAGS_REMOVE_cputable.o = $(CC_FLAGS_FTRACE)
25CFLAGS_REMOVE_prom_init.o = $(CC_FLAGS_FTRACE)
26CFLAGS_REMOVE_btext.o = $(CC_FLAGS_FTRACE)
27CFLAGS_REMOVE_prom.o = $(CC_FLAGS_FTRACE)
4e491d14
SR
28endif
29
f072015c
CL
30KASAN_SANITIZE_early_32.o := n
31KASAN_SANITIZE_cputable.o := n
32KASAN_SANITIZE_prom_init.o := n
33KASAN_SANITIZE_btext.o := n
41b7a347
DA
34KASAN_SANITIZE_paca.o := n
35KASAN_SANITIZE_setup_64.o := n
36KASAN_SANITIZE_mce.o := n
37KASAN_SANITIZE_mce_power.o := n
743cdb7b
PM
38KASAN_SANITIZE_udbg.o := n
39KASAN_SANITIZE_udbg_16550.o := n
41b7a347
DA
40
41# we have to be particularly careful in ppc64 to exclude code that
42# runs with translations off, as we cannot access the shadow with
43# translations off. However, ppc32 can sanitize this.
44ifdef CONFIG_PPC64
45KASAN_SANITIZE_traps.o := n
46endif
f072015c
CL
47
48ifdef CONFIG_KASAN
49CFLAGS_early_32.o += -DDISABLE_BRANCH_PROFILING
50CFLAGS_cputable.o += -DDISABLE_BRANCH_PROFILING
f072015c
CL
51CFLAGS_btext.o += -DDISABLE_BRANCH_PROFILING
52endif
53
2fb857bc 54KCSAN_SANITIZE_early_32.o := n
2fb857bc
RM
55KCSAN_SANITIZE_cputable.o := n
56KCSAN_SANITIZE_btext.o := n
57KCSAN_SANITIZE_paca.o := n
58KCSAN_SANITIZE_setup_64.o := n
59
f4a0318f
XJ
60#ifdef CONFIG_RANDOMIZE_KSTACK_OFFSET
61# Remove stack protector to avoid triggering unneeded stack canary
62# checks due to randomize_kstack_offset.
63CFLAGS_REMOVE_syscall.o = -fstack-protector -fstack-protector-strong
64CFLAGS_syscall.o += -fno-stack-protector
65#endif
66
afc63868 67obj-y := cputable.o syscalls.o switch.o \
0a7601b6 68 irq.o align.o signal_$(BITS).o pmc.o vdso.o \
b0ce50aa 69 process.o systbl.o idle.o \
698193d8
ME
70 signal.o sysfs.o cacheinfo.o time.o \
71 prom.o traps.o setup-common.o \
68005b67 72 udbg.o misc.o io.o misc_$(BITS).o \
edc8dd99 73 of_platform.o prom_parse.o firmware.o \
dbf77fed 74 hw_breakpoint_constraints.o interrupt.o \
1547db7d 75 kdebugfs.o stacktrace.o syscall.o
da9a1c10 76obj-y += ptrace/
7d7b28b3 77obj-$(CONFIG_PPC64) += setup_64.o irq_64.o\
344bb20b 78 paca.o nvram_64.o note.o
e2375062 79obj-$(CONFIG_PPC32) += sys_ppc32.o
0a7601b6 80obj-$(CONFIG_COMPAT) += sys_ppc32.o signal_32.o
bce74491 81obj-$(CONFIG_VDSO32) += vdso32_wrapper.o
75eb767e 82obj-$(CONFIG_PPC_WATCHDOG) += watchdog.o
5aae8a53 83obj-$(CONFIG_HAVE_HW_BREAKPOINT) += hw_breakpoint.o
a278e7ea 84obj-$(CONFIG_PPC_DAWR) += dawr.o
2d27cfd3 85obj-$(CONFIG_PPC_BOOK3S_64) += cpu_setup_ppc970.o cpu_setup_pa6t.o
179ab1cb 86obj-$(CONFIG_PPC_BOOK3S_64) += cpu_setup_power.o
bbd99922 87obj-$(CONFIG_PPC_BOOK3S_64) += dexcr.o
7c379526 88obj-$(CONFIG_PPC_BOOK3S_64) += mce.o mce_power.o
6556fd1a 89obj-$(CONFIG_PPC_BOOK3E_64) += exceptions-64e.o idle_64e.o
179ab1cb 90obj-$(CONFIG_PPC_BARRIER_NOSPEC) += security.o
bce74491 91obj-$(CONFIG_PPC64) += vdso64_wrapper.o
e821ea70 92obj-$(CONFIG_ALTIVEC) += vecemu.o
ed0bc98f 93obj-$(CONFIG_PPC_BOOK3S_IDLE) += idle_book3s.o
188917e1 94procfs-y := proc_powerpc.o
d3d2176a 95obj-$(CONFIG_PROC_FS) += $(procfs-y)
bed59275 96rtaspci-$(CONFIG_PPC64)-$(CONFIG_PCI) := rtas_pci.o
838ee286 97obj-$(CONFIG_PPC_RTAS) += rtas_entry.o rtas.o rtas-rtc.o $(rtaspci-y-y)
3d541c4b 98obj-$(CONFIG_PPC_RTAS_DAEMON) += rtasd.o
f4fcbbe9
PM
99obj-$(CONFIG_RTAS_FLASH) += rtas_flash.o
100obj-$(CONFIG_RTAS_PROC) += rtas-proc.o
5a61ef74 101obj-$(CONFIG_PPC_DT_CPU_FTRS) += dt_cpu_ftrs.o
d74ee8e9 102obj-$(CONFIG_EEH) += eeh.o eeh_pe.o eeh_cache.o \
317f06de 103 eeh_driver.o eeh_event.o eeh_sysfs.o
8ad200d7 104obj-$(CONFIG_GENERIC_TBSYNC) += smp-tbsync.o
0cc4746c 105obj-$(CONFIG_CRASH_DUMP) += crash_dump.o
cd1d55f1
HB
106obj-$(CONFIG_FA_DUMP) += fadump.o
107obj-$(CONFIG_PRESERVE_FA_DUMP) += fadump.o
6556fd1a 108obj-$(CONFIG_PPC_85xx) += idle_85xx.o
d7cceda9 109obj-$(CONFIG_PPC_BOOK3S_32) += idle_6xx.o l2cr_6xx.o cpu_setup_6xx.o
9b781727 110obj-$(CONFIG_TAU) += tau_6xx.o
90103f93 111obj-$(CONFIG_HIBERNATION) += swsusp.o suspend.o
dfc3095c
CL
112ifdef CONFIG_PPC_85xx
113obj-$(CONFIG_HIBERNATION) += swsusp_85xx.o
90103f93 114else
68201fbb 115obj-$(CONFIG_HIBERNATION) += swsusp_$(BITS).o
90103f93 116endif
2578bfae 117obj64-$(CONFIG_HIBERNATION) += swsusp_asm64.o
68201fbb 118obj-$(CONFIG_MODULES) += module.o module_$(BITS).o
26f571d7 119obj-$(CONFIG_44x) += cpu_setup_44x.o
3e731858 120obj-$(CONFIG_PPC_E500) += cpu_setup_e500.o
440bc685 121obj-$(CONFIG_PPC_DOORBELL) += dbell.o
ac5f89c7 122obj-$(CONFIG_JUMP_LABEL) += jump_label.o
40ef8cbc 123
32164845
MY
124obj-$(CONFIG_PPC64) += head_64.o
125obj-$(CONFIG_PPC_BOOK3S_32) += head_book3s_32.o
126obj-$(CONFIG_40x) += head_40x.o
127obj-$(CONFIG_44x) += head_44x.o
32164845 128obj-$(CONFIG_PPC_8xx) += head_8xx.o
ae5b6779 129obj-$(CONFIG_PPC_85xx) += head_85xx.o
14cf11af
PM
130extra-y += vmlinux.lds
131
68201fbb 132obj-$(CONFIG_RELOCATABLE) += reloc_$(BITS).o
9c5f7d39 133
5c810ced 134obj-$(CONFIG_PPC32) += entry_32.o setup_32.o early_32.o static_call.o
4fc665b8 135obj-$(CONFIG_PPC64) += dma-iommu.o iommu.o
17ce452f 136obj-$(CONFIG_KGDB) += kgdb.o
9b6b563c 137obj-$(CONFIG_BOOTX_TEXT) += btext.o
5ad57078 138obj-$(CONFIG_SMP) += smp.o
7568cb4e 139obj-$(CONFIG_KPROBES) += kprobes.o
51c9c084 140obj-$(CONFIG_OPTPROBES) += optprobes.o optprobes_head.o
ead514d5 141obj-$(CONFIG_KPROBES_ON_FTRACE) += kprobes-ftrace.o
8b7b80b9 142obj-$(CONFIG_UPROBES) += uprobes.o
13b8a272 143obj-$(CONFIG_PPC_UDBG_16550) += legacy_serial.o udbg_16550.o
ec3cf2ec 144obj-$(CONFIG_SWIOTLB) += dma-swiotlb.o
11ddce15 145obj-$(CONFIG_ARCH_HAS_DMA_SET_MASK) += dma-mask.o
4c75a6f4 146
317f06de 147pci64-$(CONFIG_PPC64) += pci_dn.o pci-hotplug.o isa-bridge.o
68201fbb 148obj-$(CONFIG_PCI) += pci_$(BITS).o $(pci64-y) \
fbe65447 149 pci-common.o pci_of_scan.o
df87ef55 150obj-$(CONFIG_PCI_MSI) += msi.o
467d2782 151
b7472e17
ME
152obj-$(CONFIG_AUDIT) += audit.o
153obj64-$(CONFIG_AUDIT) += compat_audit.o
154
3cc30d07
ME
155obj-$(CONFIG_PPC_IO_WORKAROUNDS) += io-workarounds.o
156
7853f9c0 157obj-y += trace/
a1110654 158
ecd73cc5 159ifneq ($(CONFIG_PPC_INDIRECT_PIO),y)
68a64357 160obj-y += iomap.o
4cb3cee0
BH
161endif
162
98ae22e1
MN
163obj64-$(CONFIG_PPC_TRANSACTIONAL_MEM) += tm.o
164
fc2a5a61 165ifneq ($(CONFIG_XMON)$(CONFIG_KEXEC_CORE)(CONFIG_PPC_BOOK3S),)
322b4394
AV
166obj-y += ppc_save_regs.o
167endif
168
2e1ae9c0 169obj-$(CONFIG_EPAPR_PARAVIRT) += epapr_paravirt.o epapr_hcalls.o
d17051cb 170obj-$(CONFIG_KVM_GUEST) += kvm.o kvm_emul.o
136bc039
TJB
171ifneq ($(CONFIG_PPC_POWERNV)$(CONFIG_PPC_SVM),)
172obj-y += ucall.o
173endif
2a342ed5 174
9155e234 175obj-$(CONFIG_PPC_SECURE_BOOT) += secure_boot.o ima_arch.o secvar-ops.o
bd5d9c74 176obj-$(CONFIG_PPC_SECVAR_SYSFS) += secvar-sysfs.o
1a8916ee 177
fb0b0a73 178# Disable GCOV, KCOV & sanitizers in odd or sensitive code
a15098c9 179GCOV_PROFILE_prom_init.o := n
fb0b0a73 180KCOV_INSTRUMENT_prom_init.o := n
2fb857bc 181KCSAN_SANITIZE_prom_init.o := n
bf76f73c 182UBSAN_SANITIZE_prom_init.o := n
a15098c9 183GCOV_PROFILE_kprobes.o := n
fb0b0a73 184KCOV_INSTRUMENT_kprobes.o := n
2fb857bc 185KCSAN_SANITIZE_kprobes.o := n
bf76f73c 186UBSAN_SANITIZE_kprobes.o := n
ead514d5 187GCOV_PROFILE_kprobes-ftrace.o := n
fb0b0a73 188KCOV_INSTRUMENT_kprobes-ftrace.o := n
2fb857bc 189KCSAN_SANITIZE_kprobes-ftrace.o := n
ead514d5 190UBSAN_SANITIZE_kprobes-ftrace.o := n
bf76f73c 191UBSAN_SANITIZE_vdso.o := n
a15098c9 192
fb0b0a73
AD
193# Necessary for booting with kcov enabled on book3e machines
194KCOV_INSTRUMENT_cputable.o := n
195KCOV_INSTRUMENT_setup_64.o := n
196KCOV_INSTRUMENT_paca.o := n
197
a7223f5b
AB
198CFLAGS_setup_64.o += -fno-stack-protector
199CFLAGS_paca.o += -fno-stack-protector
200
32164845
MY
201obj-$(CONFIG_PPC_FPU) += fpu.o
202obj-$(CONFIG_ALTIVEC) += vector.o
0a4690cf 203
27be2456
NP
204obj-$(CONFIG_PPC_OF_BOOT_TRAMPOLINE) += prom_init.o
205obj64-$(CONFIG_PPC_OF_BOOT_TRAMPOLINE) += prom_entry_64.o
206extra-$(CONFIG_PPC_OF_BOOT_TRAMPOLINE) += prom_init_check
207
208obj-$(CONFIG_PPC64) += $(obj64-y)
209obj-$(CONFIG_PPC32) += $(obj32-y)
5c02cd2f 210
1fdfa4c6
MY
211quiet_cmd_prom_init_check = PROMCHK $@
212 cmd_prom_init_check = $(CONFIG_SHELL) $< "$(NM)" $(obj)/prom_init.o; touch $@
5c02cd2f 213
1fdfa4c6
MY
214$(obj)/prom_init_check: $(src)/prom_init_check.sh $(obj)/prom_init.o FORCE
215 $(call if_changed,prom_init_check)
216targets += prom_init_check
5c02cd2f 217
e4ccde02 218clean-files := vmlinux.lds
791f9e36
CL
219
220# Force dependency (incbin is bad)
fd1feade
CL
221$(obj)/vdso32_wrapper.o : $(obj)/vdso/vdso32.so.dbg
222$(obj)/vdso64_wrapper.o : $(obj)/vdso/vdso64.so.dbg
964c33cd
MY
223
224# for cleaning
fd1feade 225subdir- += vdso