1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0 21da177e4SLinus Torvalds# 31da177e4SLinus Torvalds# Makefile for the linux kernel. 41da177e4SLinus Torvalds# 51da177e4SLinus Torvalds 682897edeSHeiko Carstensifdef CONFIG_FUNCTION_TRACER 782897edeSHeiko Carstens 882897edeSHeiko Carstens# Do not trace tracer code 982897edeSHeiko CarstensCFLAGS_REMOVE_ftrace.o = $(CC_FLAGS_FTRACE) 1082897edeSHeiko Carstens 1182897edeSHeiko Carstens# Do not trace early setup code 1282897edeSHeiko CarstensCFLAGS_REMOVE_early.o = $(CC_FLAGS_FTRACE) 13571a2a50SZe GaoCFLAGS_REMOVE_rethook.o = $(CC_FLAGS_FTRACE) 14cae74ba8SSven SchnelleCFLAGS_REMOVE_stacktrace.o = $(CC_FLAGS_FTRACE) 15cae74ba8SSven SchnelleCFLAGS_REMOVE_unwind_bc.o = $(CC_FLAGS_FTRACE) 1682897edeSHeiko Carstens 1782897edeSHeiko Carstensendif 1882897edeSHeiko Carstens 1982897edeSHeiko CarstensGCOV_PROFILE_early.o := n 20907fa061SHeiko CarstensKCOV_INSTRUMENT_early.o := n 2182897edeSHeiko CarstensUBSAN_SANITIZE_early.o := n 22ac1256f8SVasily GorbikKASAN_SANITIZE_ipl.o := n 23ac1256f8SVasily GorbikKASAN_SANITIZE_machine_kexec.o := n 240a9b4091SVasily Gorbik 2582897edeSHeiko Carstens# 2698c7b388SHeiko Carstens# Passing null pointers is ok for smp code, since we access the lowcore here. 2798c7b388SHeiko Carstens# 2898c7b388SHeiko CarstensCFLAGS_smp.o := -Wno-nonnull 2998c7b388SHeiko Carstens 3063506c41SMartin Schwidefsky# 311bca09f7SHeiko Carstens# Disable tailcall optimizations for stack / callchain walking functions 321bca09f7SHeiko Carstens# since this might generate broken code when accessing register 15 and 331bca09f7SHeiko Carstens# passing its content to other functions. 341bca09f7SHeiko Carstens# 351bca09f7SHeiko CarstensCFLAGS_stacktrace.o += -fno-optimize-sibling-calls 361bca09f7SHeiko CarstensCFLAGS_dumpstack.o += -fno-optimize-sibling-calls 3778c98f90SMartin SchwidefskyCFLAGS_unwind_bc.o += -fno-optimize-sibling-calls 381bca09f7SHeiko Carstens 39f2bb5b97SHeiko Carstensobj-y := head64.o traps.o time.o process.o early.o setup.o idle.o vtime.o 4056e62a73SSven Schnelleobj-y += processor.o syscall.o ptrace.o signal.o cpcmd.o ebcdic.o nmi.o 41388cf16dSSumanth Korikkarobj-y += debug.o irq.o ipl.o dis.o vdso.o cpufeature.o 420c4d01f3SHeiko Carstensobj-y += sysinfo.o lgr.o os_info.o ctlreg.o 43b7c92f1aSQingFeng Haoobj-y += runtime_instr.o cache.o fpu.o dumpstack.o guarded_storage.o sthyi.o 44*ee417a84SHeiko Carstensobj-y += entry.o reipl.o kdebugfs.o alternative.o skey.o 4578c98f90SMartin Schwidefskyobj-y += nospec-branch.o ipl_vmparm.o machine_kexec_reloc.o unwind_bc.o 46cafeff5aSTobias Huschleobj-y += smp.o text_amode31.o stacktrace.o abs_lowcore.o facility.o uv.o wti.o 4790e6f191SSumanth Korikkarobj-y += diag/ 481da177e4SLinus Torvalds 49e21efe83SMasahiro Yamadaalways-$(KBUILD_BUILTIN) += vmlinux.lds 501da177e4SLinus Torvalds 514253b0e0SMartin Schwidefskyobj-$(CONFIG_SYSFS) += nospec-sysfs.o 52b2e2f43aSMartin SchwidefskyCFLAGS_REMOVE_nospec-branch.o += $(CC_FLAGS_EXPOLINE) 53f19fbd5eSMartin Schwidefsky 549fed8d7cSFinn Calliesobj-$(CONFIG_SYSFS) += cpacf.o 55711f5df7SAl Viroobj-$(CONFIG_MODULES) += module.o 566843d6d9SMete Durluobj-$(CONFIG_SCHED_TOPOLOGY) += topology.o hiperdispatch.o 57b450eeb0SAlexander Gordeevobj-$(CONFIG_NUMA) += numa.o 58c0803799SAl Viroobj-$(CONFIG_AUDIT) += audit.o 59c0803799SAl Virocompat-obj-$(CONFIG_AUDIT) += compat_audit.o 60fa2a0627SHeiko Carstensobj-$(CONFIG_COMPAT) += compat_linux.o compat_signal.o 6190856087SArnd Bergmannobj-$(CONFIG_COMPAT) += $(compat-obj-y) 6289175cf7SHeiko Carstensobj-$(CONFIG_EARLY_PRINTK) += early_printk.o 634ba069b8SMichael Grundyobj-$(CONFIG_KPROBES) += kprobes.o 6463bf38ffSTobias Huschleobj-$(CONFIG_KPROBES) += mcount.o 651a280f48SVasily Gorbikobj-$(CONFIG_RETHOOK) += rethook.o 6663bf38ffSTobias Huschleobj-$(CONFIG_FUNCTION_TRACER) += ftrace.o 6763bf38ffSTobias Huschleobj-$(CONFIG_FUNCTION_TRACER) += mcount.o 6860a0c68dSMichael Holzheuobj-$(CONFIG_CRASH_DUMP) += crash_dump.o 69b9b45688SAlexander Gordeevobj-$(CONFIG_KEXEC_CORE) += machine_kexec.o relocate_kernel.o 70199da871SBaoquan Heobj-$(CONFIG_VMCORE_INFO) += vmcore_info.o 712a0a5b22SJan Willekeobj-$(CONFIG_UPROBES) += uprobes.o 72e9666d10SMasahiro Yamadaobj-$(CONFIG_JUMP_LABEL) += jump_label.o 73305e4f10SHeiko Carstens 74e49bb0a2SPhilipp Rudoobj-$(CONFIG_KEXEC_FILE) += machine_kexec_file.o kexec_image.o 758be01882SPhilipp Rudoobj-$(CONFIG_KEXEC_FILE) += kexec_elf.o 768cf57d72SAnastasia Eskovaobj-$(CONFIG_CERT_STORE) += cert_store.o 779e2b4be3SNayna Jainobj-$(CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT) += ima_arch.o 78268a7840SPhilipp Rudo 791e99c242SThomas Richterobj-$(CONFIG_PERF_EVENTS) += perf_event.o 807f5ac1a0SHendrik Bruecknerobj-$(CONFIG_PERF_EVENTS) += perf_cpum_cf.o perf_cpum_sf.o 81c33eff60SHeiko Carstensobj-$(CONFIG_PERF_EVENTS) += perf_cpum_cf_events.o perf_regs.o 82c432fefeSThomas Richterobj-$(CONFIG_PERF_EVENTS) += perf_pai_crypto.o perf_pai_ext.o 831da177e4SLinus Torvalds 84b5a6b71bSMartin Schwidefskyobj-$(CONFIG_TRACEPOINTS) += trace.o 85b5a6b71bSMartin Schwidefsky 86b020632eSMartin Schwidefsky# vdso 875a79859aSHeiko Carstensobj-y += vdso64/ 88779df224SSven Schnelleobj-$(CONFIG_COMPAT) += vdso32/ 89