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_als.o = $(CC_FLAGS_FTRACE) 1382897edeSHeiko CarstensCFLAGS_REMOVE_early.o = $(CC_FLAGS_FTRACE) 1482897edeSHeiko Carstens 1582897edeSHeiko Carstensendif 1682897edeSHeiko Carstens 1782897edeSHeiko CarstensGCOV_PROFILE_als.o := n 1882897edeSHeiko CarstensGCOV_PROFILE_early.o := n 1982897edeSHeiko Carstens 2082897edeSHeiko CarstensKCOV_INSTRUMENT_als.o := n 21907fa061SHeiko CarstensKCOV_INSTRUMENT_early.o := n 22907fa061SHeiko Carstens 2382897edeSHeiko CarstensUBSAN_SANITIZE_als.o := n 2482897edeSHeiko CarstensUBSAN_SANITIZE_early.o := n 2582897edeSHeiko Carstens 2682897edeSHeiko Carstens# 279090f3feSHeiko Carstens# Use -march=z900 for als.c to be able to print an error 2882897edeSHeiko Carstens# message if the kernel is started on a machine which is too old 2982897edeSHeiko Carstens# 3082897edeSHeiko Carstensifneq ($(CC_FLAGS_MARCH),-march=z900) 3182897edeSHeiko CarstensCFLAGS_REMOVE_als.o += $(CC_FLAGS_MARCH) 32f19fbd5eSMartin SchwidefskyCFLAGS_REMOVE_als.o += $(CC_FLAGS_EXPOLINE) 3382897edeSHeiko CarstensCFLAGS_als.o += -march=z900 3482897edeSHeiko CarstensAFLAGS_REMOVE_head.o += $(CC_FLAGS_MARCH) 3582897edeSHeiko CarstensAFLAGS_head.o += -march=z900 36dfd9f7abSHeiko Carstensendif 37dfd9f7abSHeiko Carstens 3879962038SHeiko CarstensCFLAGS_als.o += -D__NO_FORTIFY 3979962038SHeiko Carstens 4098c7b388SHeiko Carstens# 4198c7b388SHeiko Carstens# Passing null pointers is ok for smp code, since we access the lowcore here. 4298c7b388SHeiko Carstens# 4398c7b388SHeiko CarstensCFLAGS_smp.o := -Wno-nonnull 4498c7b388SHeiko Carstens 4563506c41SMartin Schwidefsky# 461bca09f7SHeiko Carstens# Disable tailcall optimizations for stack / callchain walking functions 471bca09f7SHeiko Carstens# since this might generate broken code when accessing register 15 and 481bca09f7SHeiko Carstens# passing its content to other functions. 491bca09f7SHeiko Carstens# 501bca09f7SHeiko CarstensCFLAGS_stacktrace.o += -fno-optimize-sibling-calls 511bca09f7SHeiko CarstensCFLAGS_dumpstack.o += -fno-optimize-sibling-calls 521bca09f7SHeiko Carstens 531bca09f7SHeiko Carstens# 5463506c41SMartin Schwidefsky# Pass UTS_MACHINE for user_regset definition 5563506c41SMartin Schwidefsky# 5663506c41SMartin SchwidefskyCFLAGS_ptrace.o += -DUTS_MACHINE='"$(UTS_MACHINE)"' 5763506c41SMartin Schwidefsky 58b5f87f15SMartin Schwidefskyobj-y := traps.o time.o process.o base.o early.o setup.o idle.o vtime.o 591bca09f7SHeiko Carstensobj-y += processor.o sys_s390.o ptrace.o signal.o cpcmd.o ebcdic.o nmi.o 609090f3feSHeiko Carstensobj-y += debug.o irq.o ipl.o dis.o diag.o vdso.o als.o 611bca09f7SHeiko Carstensobj-y += sysinfo.o jump_label.o lgr.o os_info.o machine_kexec.o pgm_check.o 62b7c92f1aSQingFeng Haoobj-y += runtime_instr.o cache.o fpu.o dumpstack.o guarded_storage.o sthyi.o 63049a2c2dSHeiko Carstensobj-y += entry.o reipl.o relocate_kernel.o kdebugfs.o alternative.o 64b2e2f43aSMartin Schwidefskyobj-y += nospec-branch.o 651da177e4SLinus Torvalds 665a79859aSHeiko Carstensextra-y += head.o head64.o vmlinux.lds 671da177e4SLinus Torvalds 68b2e2f43aSMartin SchwidefskyCFLAGS_REMOVE_nospec-branch.o += $(CC_FLAGS_EXPOLINE) 69f19fbd5eSMartin Schwidefsky 70711f5df7SAl Viroobj-$(CONFIG_MODULES) += module.o 7183a24e32SHeiko Carstensobj-$(CONFIG_SMP) += smp.o 729236b4ddSHeiko Carstensobj-$(CONFIG_SCHED_TOPOLOGY) += topology.o 73304987e3SHeiko Carstensobj-$(CONFIG_HIBERNATION) += suspend.o swsusp.o 74c0803799SAl Viroobj-$(CONFIG_AUDIT) += audit.o 75c0803799SAl Virocompat-obj-$(CONFIG_AUDIT) += compat_audit.o 76fa2a0627SHeiko Carstensobj-$(CONFIG_COMPAT) += compat_linux.o compat_signal.o 77fa2a0627SHeiko Carstensobj-$(CONFIG_COMPAT) += compat_wrapper.o $(compat-obj-y) 7889175cf7SHeiko Carstensobj-$(CONFIG_EARLY_PRINTK) += early_printk.o 795bdc9b44SHeiko Carstensobj-$(CONFIG_STACKTRACE) += stacktrace.o 804ba069b8SMichael Grundyobj-$(CONFIG_KPROBES) += kprobes.o 8153255c9aSHeiko Carstensobj-$(CONFIG_FUNCTION_TRACER) += mcount.o ftrace.o 8260a0c68dSMichael Holzheuobj-$(CONFIG_CRASH_DUMP) += crash_dump.o 832a0a5b22SJan Willekeobj-$(CONFIG_UPROBES) += uprobes.o 84305e4f10SHeiko Carstens 85e49bb0a2SPhilipp Rudoobj-$(CONFIG_KEXEC_FILE) += machine_kexec_file.o kexec_image.o 86*8be01882SPhilipp Rudoobj-$(CONFIG_KEXEC_FILE) += kexec_elf.o 8771406883SPhilipp Rudo 885a79859aSHeiko Carstensobj-$(CONFIG_PERF_EVENTS) += perf_event.o perf_cpum_cf.o perf_cpum_sf.o 89c33eff60SHeiko Carstensobj-$(CONFIG_PERF_EVENTS) += perf_cpum_cf_events.o perf_regs.o 901da177e4SLinus Torvalds 91b5a6b71bSMartin Schwidefskyobj-$(CONFIG_TRACEPOINTS) += trace.o 92b5a6b71bSMartin Schwidefsky 93b020632eSMartin Schwidefsky# vdso 945a79859aSHeiko Carstensobj-y += vdso64/ 95b020632eSMartin Schwidefskyobj-$(CONFIG_COMPAT) += vdso32/ 96