1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0 21da177e4SLinus Torvalds# 31da177e4SLinus Torvalds# Makefile for the linux kernel. 41da177e4SLinus Torvalds# 51da177e4SLinus Torvalds 6*29a63aa5SHeiko CarstensCONTEXT_ANALYSIS := y 7*29a63aa5SHeiko Carstens 882897edeSHeiko Carstensifdef CONFIG_FUNCTION_TRACER 982897edeSHeiko Carstens 1082897edeSHeiko Carstens# Do not trace tracer code 1182897edeSHeiko CarstensCFLAGS_REMOVE_ftrace.o = $(CC_FLAGS_FTRACE) 1282897edeSHeiko Carstens 1382897edeSHeiko Carstens# Do not trace early setup code 1482897edeSHeiko CarstensCFLAGS_REMOVE_early.o = $(CC_FLAGS_FTRACE) 15571a2a50SZe GaoCFLAGS_REMOVE_rethook.o = $(CC_FLAGS_FTRACE) 16cae74ba8SSven SchnelleCFLAGS_REMOVE_stacktrace.o = $(CC_FLAGS_FTRACE) 17cae74ba8SSven SchnelleCFLAGS_REMOVE_unwind_bc.o = $(CC_FLAGS_FTRACE) 1882897edeSHeiko Carstens 1982897edeSHeiko Carstensendif 2082897edeSHeiko Carstens 2182897edeSHeiko CarstensGCOV_PROFILE_early.o := n 22907fa061SHeiko CarstensKCOV_INSTRUMENT_early.o := n 2382897edeSHeiko CarstensUBSAN_SANITIZE_early.o := n 24ac1256f8SVasily GorbikKASAN_SANITIZE_ipl.o := n 25ac1256f8SVasily GorbikKASAN_SANITIZE_machine_kexec.o := n 260a9b4091SVasily Gorbik 2782897edeSHeiko Carstens# 2898c7b388SHeiko Carstens# Passing null pointers is ok for smp code, since we access the lowcore here. 2998c7b388SHeiko Carstens# 3098c7b388SHeiko CarstensCFLAGS_smp.o := -Wno-nonnull 3198c7b388SHeiko Carstens 3263506c41SMartin Schwidefsky# 331bca09f7SHeiko Carstens# Disable tailcall optimizations for stack / callchain walking functions 341bca09f7SHeiko Carstens# since this might generate broken code when accessing register 15 and 351bca09f7SHeiko Carstens# passing its content to other functions. 361bca09f7SHeiko Carstens# 371bca09f7SHeiko CarstensCFLAGS_stacktrace.o += -fno-optimize-sibling-calls 381bca09f7SHeiko CarstensCFLAGS_dumpstack.o += -fno-optimize-sibling-calls 3978c98f90SMartin SchwidefskyCFLAGS_unwind_bc.o += -fno-optimize-sibling-calls 401bca09f7SHeiko Carstens 41b3bdfdf1SHeiko Carstensobj-y := head.o traps.o time.o process.o early.o setup.o idle.o vtime.o 4256e62a73SSven Schnelleobj-y += processor.o syscall.o ptrace.o signal.o cpcmd.o ebcdic.o nmi.o 43388cf16dSSumanth Korikkarobj-y += debug.o irq.o ipl.o dis.o vdso.o cpufeature.o 440c4d01f3SHeiko Carstensobj-y += sysinfo.o lgr.o os_info.o ctlreg.o 45b7c92f1aSQingFeng Haoobj-y += runtime_instr.o cache.o fpu.o dumpstack.o guarded_storage.o sthyi.o 46ee417a84SHeiko Carstensobj-y += entry.o reipl.o kdebugfs.o alternative.o skey.o 4778c98f90SMartin Schwidefskyobj-y += nospec-branch.o ipl_vmparm.o machine_kexec_reloc.o unwind_bc.o 48cafeff5aSTobias Huschleobj-y += smp.o text_amode31.o stacktrace.o abs_lowcore.o facility.o uv.o wti.o 4990e6f191SSumanth Korikkarobj-y += diag/ 501da177e4SLinus Torvalds 51e21efe83SMasahiro Yamadaalways-$(KBUILD_BUILTIN) += vmlinux.lds 521da177e4SLinus Torvalds 534253b0e0SMartin Schwidefskyobj-$(CONFIG_SYSFS) += nospec-sysfs.o 54b2e2f43aSMartin SchwidefskyCFLAGS_REMOVE_nospec-branch.o += $(CC_FLAGS_EXPOLINE) 55f19fbd5eSMartin Schwidefsky 569fed8d7cSFinn Calliesobj-$(CONFIG_SYSFS) += cpacf.o 57711f5df7SAl Viroobj-$(CONFIG_MODULES) += module.o 586843d6d9SMete Durluobj-$(CONFIG_SCHED_TOPOLOGY) += topology.o hiperdispatch.o 59b450eeb0SAlexander Gordeevobj-$(CONFIG_NUMA) += numa.o 60c0803799SAl Viroobj-$(CONFIG_AUDIT) += audit.o 6189175cf7SHeiko Carstensobj-$(CONFIG_EARLY_PRINTK) += early_printk.o 624ba069b8SMichael Grundyobj-$(CONFIG_KPROBES) += kprobes.o 6363bf38ffSTobias Huschleobj-$(CONFIG_KPROBES) += mcount.o 641a280f48SVasily Gorbikobj-$(CONFIG_RETHOOK) += rethook.o 6563bf38ffSTobias Huschleobj-$(CONFIG_FUNCTION_TRACER) += ftrace.o 6663bf38ffSTobias Huschleobj-$(CONFIG_FUNCTION_TRACER) += mcount.o 6729eb8a7bSSven Schnelleobj-$(CONFIG_TRACING) += trace_clock.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 73f5730d44SHeiko Carstensobj-$(CONFIG_STACKPROTECTOR) += stackprotector.o 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 773f7c9f9cSIlya Leoshkevichobj-$(CONFIG_KMSAN) += irqflags.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 82492578d3SThomas Richterobj-$(CONFIG_PERF_EVENTS) += perf_pai.o 831da177e4SLinus Torvalds 84b5a6b71bSMartin Schwidefskyobj-$(CONFIG_TRACEPOINTS) += trace.o 85b5a6b71bSMartin Schwidefsky 866fe54677SIlya Leoshkevichobj-$(CONFIG_BPF_SYSCALL) += bpf.o 876fe54677SIlya Leoshkevich 88b020632eSMartin Schwidefsky# vdso 89c0087d80SHeiko Carstensobj-y += vdso/ 90