hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/arch/powerpc/kernel/Makefile
....@@ -3,10 +3,6 @@
33 # Makefile for the linux kernel.
44 #
55
6
-CFLAGS_ptrace.o += -DUTS_MACHINE='"$(UTS_MACHINE)"'
7
-
8
-subdir-ccflags-$(CONFIG_PPC_WERROR) := -Werror
9
-
106 ifdef CONFIG_PPC64
117 CFLAGS_prom_init.o += $(NO_MINIMAL_TOC)
128 endif
....@@ -15,11 +11,16 @@
1511 CFLAGS_btext.o += -fPIC
1612 endif
1713
18
-CFLAGS_setup_32.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
14
+CFLAGS_early_32.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
1915 CFLAGS_cputable.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
2016 CFLAGS_prom_init.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
2117 CFLAGS_btext.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
2218 CFLAGS_prom.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
19
+
20
+CFLAGS_prom_init.o += -fno-stack-protector
21
+CFLAGS_prom_init.o += -DDISABLE_BRANCH_PROFILING
22
+CFLAGS_prom_init.o += -ffreestanding
23
+CFLAGS_prom_init.o += $(call cc-option, -ftrivial-auto-var-init=uninitialized)
2324
2425 ifdef CONFIG_FUNCTION_TRACER
2526 # Do not trace early boot code
....@@ -29,19 +30,33 @@
2930 CFLAGS_REMOVE_prom.o = $(CC_FLAGS_FTRACE)
3031 endif
3132
32
-obj-y := cputable.o ptrace.o syscalls.o \
33
- irq.o align.o signal_32.o pmc.o vdso.o \
33
+KASAN_SANITIZE_early_32.o := n
34
+KASAN_SANITIZE_cputable.o := n
35
+KASAN_SANITIZE_prom_init.o := n
36
+KASAN_SANITIZE_btext.o := n
37
+
38
+ifdef CONFIG_KASAN
39
+CFLAGS_early_32.o += -DDISABLE_BRANCH_PROFILING
40
+CFLAGS_cputable.o += -DDISABLE_BRANCH_PROFILING
41
+CFLAGS_btext.o += -DDISABLE_BRANCH_PROFILING
42
+endif
43
+
44
+obj-y := cputable.o syscalls.o \
45
+ irq.o align.o signal_$(BITS).o pmc.o vdso.o \
3446 process.o systbl.o idle.o \
3547 signal.o sysfs.o cacheinfo.o time.o \
3648 prom.o traps.o setup-common.o \
37
- udbg.o misc.o io.o dma.o misc_$(BITS).o \
38
- of_platform.o prom_parse.o
39
-obj-$(CONFIG_PPC64) += setup_64.o sys_ppc32.o \
40
- signal_64.o ptrace32.o \
41
- paca.o nvram_64.o firmware.o
49
+ udbg.o misc.o io.o misc_$(BITS).o \
50
+ of_platform.o prom_parse.o firmware.o \
51
+ hw_breakpoint_constraints.o
52
+obj-y += ptrace/
53
+obj-$(CONFIG_PPC64) += setup_64.o \
54
+ paca.o nvram_64.o note.o syscall_64.o
55
+obj-$(CONFIG_COMPAT) += sys_ppc32.o signal_32.o
4256 obj-$(CONFIG_VDSO32) += vdso32/
4357 obj-$(CONFIG_PPC_WATCHDOG) += watchdog.o
4458 obj-$(CONFIG_HAVE_HW_BREAKPOINT) += hw_breakpoint.o
59
+obj-$(CONFIG_PPC_DAWR) += dawr.o
4560 obj-$(CONFIG_PPC_BOOK3S_64) += cpu_setup_ppc970.o cpu_setup_pa6t.o
4661 obj-$(CONFIG_PPC_BOOK3S_64) += cpu_setup_power.o
4762 obj-$(CONFIG_PPC_BOOK3S_64) += mce.o mce_power.o
....@@ -49,8 +64,7 @@
4964 obj-$(CONFIG_PPC_BARRIER_NOSPEC) += security.o
5065 obj-$(CONFIG_PPC64) += vdso64/
5166 obj-$(CONFIG_ALTIVEC) += vecemu.o
52
-obj-$(CONFIG_PPC_970_NAP) += idle_power4.o
53
-obj-$(CONFIG_PPC_P7_NAP) += idle_book3s.o
67
+obj-$(CONFIG_PPC_BOOK3S_IDLE) += idle_book3s.o
5468 procfs-y := proc_powerpc.o
5569 obj-$(CONFIG_PROC_FS) += $(procfs-y)
5670 rtaspci-$(CONFIG_PPC64)-$(CONFIG_PCI) := rtas_pci.o
....@@ -59,15 +73,16 @@
5973 obj-$(CONFIG_RTAS_FLASH) += rtas_flash.o
6074 obj-$(CONFIG_RTAS_PROC) += rtas-proc.o
6175 obj-$(CONFIG_PPC_DT_CPU_FTRS) += dt_cpu_ftrs.o
62
-obj-$(CONFIG_EEH) += eeh.o eeh_pe.o eeh_dev.o eeh_cache.o \
76
+obj-$(CONFIG_EEH) += eeh.o eeh_pe.o eeh_cache.o \
6377 eeh_driver.o eeh_event.o eeh_sysfs.o
6478 obj-$(CONFIG_GENERIC_TBSYNC) += smp-tbsync.o
6579 obj-$(CONFIG_CRASH_DUMP) += crash_dump.o
6680 obj-$(CONFIG_FA_DUMP) += fadump.o
81
+obj-$(CONFIG_PRESERVE_FA_DUMP) += fadump.o
6782 ifdef CONFIG_PPC32
6883 obj-$(CONFIG_E500) += idle_e500.o
6984 endif
70
-obj-$(CONFIG_6xx) += idle_6xx.o l2cr_6xx.o cpu_setup_6xx.o
85
+obj-$(CONFIG_PPC_BOOK3S_32) += idle_6xx.o l2cr_6xx.o cpu_setup_6xx.o
7186 obj-$(CONFIG_TAU) += tau_6xx.o
7287 obj-$(CONFIG_HIBERNATION) += swsusp.o suspend.o
7388 ifdef CONFIG_FSL_BOOKE
....@@ -82,7 +97,8 @@
8297 obj-$(CONFIG_PPC_DOORBELL) += dbell.o
8398 obj-$(CONFIG_JUMP_LABEL) += jump_label.o
8499
85
-extra-y := head_$(BITS).o
100
+extra-$(CONFIG_PPC64) := head_64.o
101
+extra-$(CONFIG_PPC_BOOK3S_32) := head_book3s_32.o
86102 extra-$(CONFIG_40x) := head_40x.o
87103 extra-$(CONFIG_44x) := head_44x.o
88104 extra-$(CONFIG_FSL_BOOKE) := head_fsl_booke.o
....@@ -91,7 +107,7 @@
91107
92108 obj-$(CONFIG_RELOCATABLE) += reloc_$(BITS).o
93109
94
-obj-$(CONFIG_PPC32) += entry_32.o setup_32.o
110
+obj-$(CONFIG_PPC32) += entry_32.o setup_32.o early_32.o
95111 obj-$(CONFIG_PPC64) += dma-iommu.o iommu.o
96112 obj-$(CONFIG_KGDB) += kgdb.o
97113 obj-$(CONFIG_BOOTX_TEXT) += btext.o
....@@ -103,19 +119,12 @@
103119 obj-$(CONFIG_PPC_UDBG_16550) += legacy_serial.o udbg_16550.o
104120 obj-$(CONFIG_STACKTRACE) += stacktrace.o
105121 obj-$(CONFIG_SWIOTLB) += dma-swiotlb.o
122
+obj-$(CONFIG_ARCH_HAS_DMA_SET_MASK) += dma-mask.o
106123
107124 pci64-$(CONFIG_PPC64) += pci_dn.o pci-hotplug.o isa-bridge.o
108125 obj-$(CONFIG_PCI) += pci_$(BITS).o $(pci64-y) \
109126 pci-common.o pci_of_scan.o
110127 obj-$(CONFIG_PCI_MSI) += msi.o
111
-obj-$(CONFIG_KEXEC_CORE) += machine_kexec.o crash.o \
112
- machine_kexec_$(BITS).o
113
-obj-$(CONFIG_KEXEC_FILE) += machine_kexec_file_$(BITS).o kexec_elf_$(BITS).o
114
-ifdef CONFIG_HAVE_IMA_KEXEC
115
-ifdef CONFIG_IMA
116
-obj-y += ima_kexec.o
117
-endif
118
-endif
119128
120129 obj-$(CONFIG_AUDIT) += audit.o
121130 obj64-$(CONFIG_AUDIT) += compat_audit.o
....@@ -139,44 +148,48 @@
139148
140149 obj-$(CONFIG_EPAPR_PARAVIRT) += epapr_paravirt.o epapr_hcalls.o
141150 obj-$(CONFIG_KVM_GUEST) += kvm.o kvm_emul.o
151
+ifneq ($(CONFIG_PPC_POWERNV)$(CONFIG_PPC_SVM),)
152
+obj-y += ucall.o
153
+endif
142154
143
-# Disable GCOV & sanitizers in odd or sensitive code
155
+obj-$(CONFIG_PPC_SECURE_BOOT) += secure_boot.o ima_arch.o secvar-ops.o
156
+obj-$(CONFIG_PPC_SECVAR_SYSFS) += secvar-sysfs.o
157
+
158
+# Disable GCOV, KCOV & sanitizers in odd or sensitive code
144159 GCOV_PROFILE_prom_init.o := n
160
+KCOV_INSTRUMENT_prom_init.o := n
145161 UBSAN_SANITIZE_prom_init.o := n
146
-GCOV_PROFILE_machine_kexec_64.o := n
147
-UBSAN_SANITIZE_machine_kexec_64.o := n
148
-GCOV_PROFILE_machine_kexec_32.o := n
149
-UBSAN_SANITIZE_machine_kexec_32.o := n
150162 GCOV_PROFILE_kprobes.o := n
163
+KCOV_INSTRUMENT_kprobes.o := n
151164 UBSAN_SANITIZE_kprobes.o := n
152165 GCOV_PROFILE_kprobes-ftrace.o := n
166
+KCOV_INSTRUMENT_kprobes-ftrace.o := n
153167 UBSAN_SANITIZE_kprobes-ftrace.o := n
168
+GCOV_PROFILE_syscall_64.o := n
169
+KCOV_INSTRUMENT_syscall_64.o := n
170
+UBSAN_SANITIZE_syscall_64.o := n
154171 UBSAN_SANITIZE_vdso.o := n
172
+
173
+# Necessary for booting with kcov enabled on book3e machines
174
+KCOV_INSTRUMENT_cputable.o := n
175
+KCOV_INSTRUMENT_setup_64.o := n
176
+KCOV_INSTRUMENT_paca.o := n
177
+
178
+CFLAGS_setup_64.o += -fno-stack-protector
179
+CFLAGS_paca.o += -fno-stack-protector
155180
156181 extra-$(CONFIG_PPC_FPU) += fpu.o
157182 extra-$(CONFIG_ALTIVEC) += vector.o
158183 extra-$(CONFIG_PPC64) += entry_64.o
159184 extra-$(CONFIG_PPC_OF_BOOT_TRAMPOLINE) += prom_init.o
160185
161
-extra-y += systbl_chk.i
162
-$(obj)/systbl.o: systbl_chk
186
+extra-$(CONFIG_PPC_OF_BOOT_TRAMPOLINE) += prom_init_check
163187
164
-quiet_cmd_systbl_chk = CALL $<
165
- cmd_systbl_chk = $(CONFIG_SHELL) $< $(obj)/systbl_chk.i
188
+quiet_cmd_prom_init_check = PROMCHK $@
189
+ cmd_prom_init_check = $(CONFIG_SHELL) $< "$(NM)" $(obj)/prom_init.o; touch $@
166190
167
-PHONY += systbl_chk
168
-systbl_chk: $(src)/systbl_chk.sh $(obj)/systbl_chk.i
169
- $(call cmd,systbl_chk)
170
-
171
-ifdef CONFIG_PPC_OF_BOOT_TRAMPOLINE
172
-$(obj)/built-in.a: prom_init_check
173
-
174
-quiet_cmd_prom_init_check = CALL $<
175
- cmd_prom_init_check = $(CONFIG_SHELL) $< "$(NM)" "$(obj)/prom_init.o"
176
-
177
-PHONY += prom_init_check
178
-prom_init_check: $(src)/prom_init_check.sh $(obj)/prom_init.o
179
- $(call cmd,prom_init_check)
180
-endif
191
+$(obj)/prom_init_check: $(src)/prom_init_check.sh $(obj)/prom_init.o FORCE
192
+ $(call if_changed,prom_init_check)
193
+targets += prom_init_check
181194
182195 clean-files := vmlinux.lds