162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci# 362306a36Sopenharmony_ci# Makefile for ppc-specific library files.. 462306a36Sopenharmony_ci# 562306a36Sopenharmony_ci 662306a36Sopenharmony_ciccflags-$(CONFIG_PPC64) := $(NO_MINIMAL_TOC) 762306a36Sopenharmony_ci 862306a36Sopenharmony_ciCFLAGS_code-patching.o += -fno-stack-protector 962306a36Sopenharmony_ciCFLAGS_feature-fixups.o += -fno-stack-protector 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ciCFLAGS_REMOVE_code-patching.o = $(CC_FLAGS_FTRACE) 1262306a36Sopenharmony_ciCFLAGS_REMOVE_feature-fixups.o = $(CC_FLAGS_FTRACE) 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ciKASAN_SANITIZE_code-patching.o := n 1562306a36Sopenharmony_ciKASAN_SANITIZE_feature-fixups.o := n 1662306a36Sopenharmony_ci# restart_table.o contains functions called in the NMI interrupt path 1762306a36Sopenharmony_ci# which can be in real mode. Disable KASAN. 1862306a36Sopenharmony_ciKASAN_SANITIZE_restart_table.o := n 1962306a36Sopenharmony_ciKCSAN_SANITIZE_code-patching.o := n 2062306a36Sopenharmony_ciKCSAN_SANITIZE_feature-fixups.o := n 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ciifdef CONFIG_KASAN 2362306a36Sopenharmony_ciCFLAGS_code-patching.o += -DDISABLE_BRANCH_PROFILING 2462306a36Sopenharmony_ciCFLAGS_feature-fixups.o += -DDISABLE_BRANCH_PROFILING 2562306a36Sopenharmony_ciendif 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ciCFLAGS_code-patching.o += $(DISABLE_LATENT_ENTROPY_PLUGIN) 2862306a36Sopenharmony_ciCFLAGS_feature-fixups.o += $(DISABLE_LATENT_ENTROPY_PLUGIN) 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ciobj-y += code-patching.o feature-fixups.o pmem.o 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ciobj-$(CONFIG_CODE_PATCHING_SELFTEST) += test-code-patching.o 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ciifndef CONFIG_KASAN 3562306a36Sopenharmony_ciobj-y += string.o memcmp_$(BITS).o 3662306a36Sopenharmony_ciobj-$(CONFIG_PPC32) += strlen_32.o 3762306a36Sopenharmony_ciendif 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ciobj-$(CONFIG_PPC32) += div64.o copy_32.o crtsavres.o 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ciobj-$(CONFIG_FUNCTION_ERROR_INJECTION) += error-inject.o 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci# See corresponding test in arch/powerpc/Makefile 4462306a36Sopenharmony_ci# 64-bit linker creates .sfpr on demand for final link (vmlinux), 4562306a36Sopenharmony_ci# so it is only needed for modules, and only for older linkers which 4662306a36Sopenharmony_ci# do not support --save-restore-funcs 4762306a36Sopenharmony_ciifndef CONFIG_LD_IS_BFD 4862306a36Sopenharmony_cialways-$(CONFIG_PPC64) += crtsavres.o 4962306a36Sopenharmony_ciendif 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ciobj-$(CONFIG_PPC_BOOK3S_64) += copyuser_power7.o copypage_power7.o \ 5262306a36Sopenharmony_ci memcpy_power7.o restart_table.o 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ciobj64-y += copypage_64.o copyuser_64.o mem_64.o hweight_64.o \ 5562306a36Sopenharmony_ci memcpy_64.o copy_mc_64.o 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ciifdef CONFIG_PPC_QUEUED_SPINLOCKS 5862306a36Sopenharmony_ciobj-$(CONFIG_SMP) += qspinlock.o 5962306a36Sopenharmony_cielse 6062306a36Sopenharmony_ciobj64-$(CONFIG_SMP) += locks.o 6162306a36Sopenharmony_ciendif 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ciobj64-$(CONFIG_ALTIVEC) += vmx-helper.o 6462306a36Sopenharmony_ciobj64-$(CONFIG_KPROBES_SANITY_TEST) += test_emulate_step.o \ 6562306a36Sopenharmony_ci test_emulate_step_exec_instr.o 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ciobj-y += checksum_$(BITS).o checksum_wrappers.o \ 6862306a36Sopenharmony_ci string_$(BITS).o 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ciobj-y += sstep.o 7162306a36Sopenharmony_ciobj-$(CONFIG_PPC_FPU) += ldstfp.o 7262306a36Sopenharmony_ciobj64-y += quad.o 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ciobj-$(CONFIG_PPC_LIB_RHEAP) += rheap.o 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ciobj-$(CONFIG_FTR_FIXUP_SELFTEST) += feature-fixups-test.o 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ciobj-$(CONFIG_ALTIVEC) += xor_vmx.o xor_vmx_glue.o 7962306a36Sopenharmony_ciCFLAGS_xor_vmx.o += -mhard-float -maltivec $(call cc-option,-mabi=altivec) 8062306a36Sopenharmony_ci# Enable <altivec.h> 8162306a36Sopenharmony_ciCFLAGS_xor_vmx.o += -isystem $(shell $(CC) -print-file-name=include) 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_ciobj-$(CONFIG_PPC64) += $(obj64-y) 84