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) 1482897edeSHeiko Carstens 1582897edeSHeiko Carstensendif 1682897edeSHeiko Carstens 1782897edeSHeiko CarstensGCOV_PROFILE_early.o := n 18907fa061SHeiko CarstensKCOV_INSTRUMENT_early.o := n 1982897edeSHeiko CarstensUBSAN_SANITIZE_early.o := n 20ac1256f8SVasily GorbikKASAN_SANITIZE_ipl.o := n 21ac1256f8SVasily GorbikKASAN_SANITIZE_machine_kexec.o := n 220a9b4091SVasily Gorbik 2382897edeSHeiko Carstens# 2498c7b388SHeiko Carstens# Passing null pointers is ok for smp code, since we access the lowcore here. 2598c7b388SHeiko Carstens# 2698c7b388SHeiko CarstensCFLAGS_smp.o := -Wno-nonnull 2798c7b388SHeiko Carstens 2863506c41SMartin Schwidefsky# 291bca09f7SHeiko Carstens# Disable tailcall optimizations for stack / callchain walking functions 301bca09f7SHeiko Carstens# since this might generate broken code when accessing register 15 and 311bca09f7SHeiko Carstens# passing its content to other functions. 321bca09f7SHeiko Carstens# 331bca09f7SHeiko CarstensCFLAGS_stacktrace.o += -fno-optimize-sibling-calls 341bca09f7SHeiko CarstensCFLAGS_dumpstack.o += -fno-optimize-sibling-calls 3578c98f90SMartin SchwidefskyCFLAGS_unwind_bc.o += -fno-optimize-sibling-calls 361bca09f7SHeiko Carstens 3732164845SMasahiro Yamadaobj-y := head64.o traps.o time.o process.o earlypgm.o early.o setup.o idle.o vtime.o 3856e62a73SSven Schnelleobj-y += processor.o syscall.o ptrace.o signal.o cpcmd.o ebcdic.o nmi.o 390a5f9b38SHeiko Carstensobj-y += debug.o irq.o ipl.o dis.o diag.o vdso.o cpufeature.o 40*b9b45688SAlexander Gordeevobj-y += sysinfo.o lgr.o os_info.o 41b7c92f1aSQingFeng Haoobj-y += runtime_instr.o cache.o fpu.o dumpstack.o guarded_storage.o sthyi.o 42*b9b45688SAlexander Gordeevobj-y += entry.o reipl.o kdebugfs.o alternative.o 4378c98f90SMartin Schwidefskyobj-y += nospec-branch.o ipl_vmparm.o machine_kexec_reloc.o unwind_bc.o 444df29d2bSAlexander Gordeevobj-y += smp.o text_amode31.o stacktrace.o abs_lowcore.o 451da177e4SLinus Torvalds 4632164845SMasahiro Yamadaextra-y += vmlinux.lds 471da177e4SLinus Torvalds 484253b0e0SMartin Schwidefskyobj-$(CONFIG_SYSFS) += nospec-sysfs.o 49b2e2f43aSMartin SchwidefskyCFLAGS_REMOVE_nospec-branch.o += $(CC_FLAGS_EXPOLINE) 50f19fbd5eSMartin Schwidefsky 51711f5df7SAl Viroobj-$(CONFIG_MODULES) += module.o 529236b4ddSHeiko Carstensobj-$(CONFIG_SCHED_TOPOLOGY) += topology.o 53b450eeb0SAlexander Gordeevobj-$(CONFIG_NUMA) += numa.o 54c0803799SAl Viroobj-$(CONFIG_AUDIT) += audit.o 55c0803799SAl Virocompat-obj-$(CONFIG_AUDIT) += compat_audit.o 56fa2a0627SHeiko Carstensobj-$(CONFIG_COMPAT) += compat_linux.o compat_signal.o 5790856087SArnd Bergmannobj-$(CONFIG_COMPAT) += $(compat-obj-y) 5889175cf7SHeiko Carstensobj-$(CONFIG_EARLY_PRINTK) += early_printk.o 594ba069b8SMichael Grundyobj-$(CONFIG_KPROBES) += kprobes.o 60b61e1f32SHeiko Carstensobj-$(CONFIG_KPROBES) += kprobes_insn_page.o 6163bf38ffSTobias Huschleobj-$(CONFIG_KPROBES) += mcount.o 621a280f48SVasily Gorbikobj-$(CONFIG_RETHOOK) += rethook.o 6363bf38ffSTobias Huschleobj-$(CONFIG_FUNCTION_TRACER) += ftrace.o 6463bf38ffSTobias Huschleobj-$(CONFIG_FUNCTION_TRACER) += mcount.o 6560a0c68dSMichael Holzheuobj-$(CONFIG_CRASH_DUMP) += crash_dump.o 66*b9b45688SAlexander Gordeevobj-$(CONFIG_KEXEC_CORE) += machine_kexec.o relocate_kernel.o 672a0a5b22SJan Willekeobj-$(CONFIG_UPROBES) += uprobes.o 68e9666d10SMasahiro Yamadaobj-$(CONFIG_JUMP_LABEL) += jump_label.o 69305e4f10SHeiko Carstens 70e49bb0a2SPhilipp Rudoobj-$(CONFIG_KEXEC_FILE) += machine_kexec_file.o kexec_image.o 718be01882SPhilipp Rudoobj-$(CONFIG_KEXEC_FILE) += kexec_elf.o 728cf57d72SAnastasia Eskovaobj-$(CONFIG_CERT_STORE) += cert_store.o 739e2b4be3SNayna Jainobj-$(CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT) += ima_arch.o 74268a7840SPhilipp Rudo 751e99c242SThomas Richterobj-$(CONFIG_PERF_EVENTS) += perf_event.o 767f5ac1a0SHendrik Bruecknerobj-$(CONFIG_PERF_EVENTS) += perf_cpum_cf.o perf_cpum_sf.o 77c33eff60SHeiko Carstensobj-$(CONFIG_PERF_EVENTS) += perf_cpum_cf_events.o perf_regs.o 78c432fefeSThomas Richterobj-$(CONFIG_PERF_EVENTS) += perf_pai_crypto.o perf_pai_ext.o 791da177e4SLinus Torvalds 80b5a6b71bSMartin Schwidefskyobj-$(CONFIG_TRACEPOINTS) += trace.o 81ecdc5d84SVasily Gorbikobj-$(findstring y, $(CONFIG_PROTECTED_VIRTUALIZATION_GUEST) $(CONFIG_PGSTE)) += uv.o 82b5a6b71bSMartin Schwidefsky 83b020632eSMartin Schwidefsky# vdso 845a79859aSHeiko Carstensobj-y += vdso64/ 85779df224SSven Schnelleobj-$(CONFIG_COMPAT) += vdso32/ 86