162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci# 362306a36Sopenharmony_ci# Makefile for the linux kernel. 462306a36Sopenharmony_ci# 562306a36Sopenharmony_ci 662306a36Sopenharmony_ciifdef CONFIG_FUNCTION_TRACER 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci# Do not trace tracer code 962306a36Sopenharmony_ciCFLAGS_REMOVE_ftrace.o = $(CC_FLAGS_FTRACE) 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci# Do not trace early setup code 1262306a36Sopenharmony_ciCFLAGS_REMOVE_early.o = $(CC_FLAGS_FTRACE) 1362306a36Sopenharmony_ciCFLAGS_REMOVE_rethook.o = $(CC_FLAGS_FTRACE) 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciendif 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ciGCOV_PROFILE_early.o := n 1862306a36Sopenharmony_ciKCOV_INSTRUMENT_early.o := n 1962306a36Sopenharmony_ciUBSAN_SANITIZE_early.o := n 2062306a36Sopenharmony_ciKASAN_SANITIZE_ipl.o := n 2162306a36Sopenharmony_ciKASAN_SANITIZE_machine_kexec.o := n 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci# 2462306a36Sopenharmony_ci# Passing null pointers is ok for smp code, since we access the lowcore here. 2562306a36Sopenharmony_ci# 2662306a36Sopenharmony_ciCFLAGS_smp.o := -Wno-nonnull 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci# 2962306a36Sopenharmony_ci# Disable tailcall optimizations for stack / callchain walking functions 3062306a36Sopenharmony_ci# since this might generate broken code when accessing register 15 and 3162306a36Sopenharmony_ci# passing its content to other functions. 3262306a36Sopenharmony_ci# 3362306a36Sopenharmony_ciCFLAGS_stacktrace.o += -fno-optimize-sibling-calls 3462306a36Sopenharmony_ciCFLAGS_dumpstack.o += -fno-optimize-sibling-calls 3562306a36Sopenharmony_ciCFLAGS_unwind_bc.o += -fno-optimize-sibling-calls 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ciobj-y := head64.o traps.o time.o process.o earlypgm.o early.o setup.o idle.o vtime.o 3862306a36Sopenharmony_ciobj-y += processor.o syscall.o ptrace.o signal.o cpcmd.o ebcdic.o nmi.o 3962306a36Sopenharmony_ciobj-y += debug.o irq.o ipl.o dis.o diag.o vdso.o cpufeature.o 4062306a36Sopenharmony_ciobj-y += sysinfo.o lgr.o os_info.o 4162306a36Sopenharmony_ciobj-y += runtime_instr.o cache.o fpu.o dumpstack.o guarded_storage.o sthyi.o 4262306a36Sopenharmony_ciobj-y += entry.o reipl.o kdebugfs.o alternative.o 4362306a36Sopenharmony_ciobj-y += nospec-branch.o ipl_vmparm.o machine_kexec_reloc.o unwind_bc.o 4462306a36Sopenharmony_ciobj-y += smp.o text_amode31.o stacktrace.o abs_lowcore.o 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ciextra-y += vmlinux.lds 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ciobj-$(CONFIG_SYSFS) += nospec-sysfs.o 4962306a36Sopenharmony_ciCFLAGS_REMOVE_nospec-branch.o += $(CC_FLAGS_EXPOLINE) 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ciobj-$(CONFIG_MODULES) += module.o 5262306a36Sopenharmony_ciobj-$(CONFIG_SCHED_TOPOLOGY) += topology.o 5362306a36Sopenharmony_ciobj-$(CONFIG_NUMA) += numa.o 5462306a36Sopenharmony_ciobj-$(CONFIG_AUDIT) += audit.o 5562306a36Sopenharmony_cicompat-obj-$(CONFIG_AUDIT) += compat_audit.o 5662306a36Sopenharmony_ciobj-$(CONFIG_COMPAT) += compat_linux.o compat_signal.o 5762306a36Sopenharmony_ciobj-$(CONFIG_COMPAT) += $(compat-obj-y) 5862306a36Sopenharmony_ciobj-$(CONFIG_EARLY_PRINTK) += early_printk.o 5962306a36Sopenharmony_ciobj-$(CONFIG_KPROBES) += kprobes.o 6062306a36Sopenharmony_ciobj-$(CONFIG_KPROBES) += kprobes_insn_page.o 6162306a36Sopenharmony_ciobj-$(CONFIG_KPROBES) += mcount.o 6262306a36Sopenharmony_ciobj-$(CONFIG_RETHOOK) += rethook.o 6362306a36Sopenharmony_ciobj-$(CONFIG_FUNCTION_TRACER) += ftrace.o 6462306a36Sopenharmony_ciobj-$(CONFIG_FUNCTION_TRACER) += mcount.o 6562306a36Sopenharmony_ciobj-$(CONFIG_CRASH_DUMP) += crash_dump.o 6662306a36Sopenharmony_ciobj-$(CONFIG_KEXEC_CORE) += machine_kexec.o relocate_kernel.o 6762306a36Sopenharmony_ciobj-$(CONFIG_UPROBES) += uprobes.o 6862306a36Sopenharmony_ciobj-$(CONFIG_JUMP_LABEL) += jump_label.o 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ciobj-$(CONFIG_KEXEC_FILE) += machine_kexec_file.o kexec_image.o 7162306a36Sopenharmony_ciobj-$(CONFIG_KEXEC_FILE) += kexec_elf.o 7262306a36Sopenharmony_ciobj-$(CONFIG_CERT_STORE) += cert_store.o 7362306a36Sopenharmony_ciobj-$(CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT) += ima_arch.o 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ciobj-$(CONFIG_PERF_EVENTS) += perf_event.o 7662306a36Sopenharmony_ciobj-$(CONFIG_PERF_EVENTS) += perf_cpum_cf.o perf_cpum_sf.o 7762306a36Sopenharmony_ciobj-$(CONFIG_PERF_EVENTS) += perf_cpum_cf_events.o perf_regs.o 7862306a36Sopenharmony_ciobj-$(CONFIG_PERF_EVENTS) += perf_pai_crypto.o perf_pai_ext.o 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ciobj-$(CONFIG_TRACEPOINTS) += trace.o 8162306a36Sopenharmony_ciobj-$(findstring y, $(CONFIG_PROTECTED_VIRTUALIZATION_GUEST) $(CONFIG_PGSTE)) += uv.o 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_ci# vdso 8462306a36Sopenharmony_ciobj-y += vdso64/ 8562306a36Sopenharmony_ciobj-$(CONFIG_COMPAT) += vdso32/ 86