18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci# 38c2ecf20Sopenharmony_ci# Makefile for x86 specific library files. 48c2ecf20Sopenharmony_ci# 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci# Produces uninteresting flaky coverage. 78c2ecf20Sopenharmony_ciKCOV_INSTRUMENT_delay.o := n 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci# KCSAN uses udelay for introducing watchpoint delay; avoid recursion. 108c2ecf20Sopenharmony_ciKCSAN_SANITIZE_delay.o := n 118c2ecf20Sopenharmony_ciifdef CONFIG_KCSAN 128c2ecf20Sopenharmony_ci# In case KCSAN+lockdep+ftrace are enabled, disable ftrace for delay.o to avoid 138c2ecf20Sopenharmony_ci# lockdep -> [other libs] -> KCSAN -> udelay -> ftrace -> lockdep recursion. 148c2ecf20Sopenharmony_ciCFLAGS_REMOVE_delay.o = $(CC_FLAGS_FTRACE) 158c2ecf20Sopenharmony_ciendif 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci# Early boot use of cmdline; don't instrument it 188c2ecf20Sopenharmony_ciifdef CONFIG_AMD_MEM_ENCRYPT 198c2ecf20Sopenharmony_ciKCOV_INSTRUMENT_cmdline.o := n 208c2ecf20Sopenharmony_ciKASAN_SANITIZE_cmdline.o := n 218c2ecf20Sopenharmony_ciKCSAN_SANITIZE_cmdline.o := n 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ciifdef CONFIG_FUNCTION_TRACER 248c2ecf20Sopenharmony_ciCFLAGS_REMOVE_cmdline.o = -pg 258c2ecf20Sopenharmony_ciendif 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ciCFLAGS_cmdline.o := -fno-stack-protector -fno-jump-tables 288c2ecf20Sopenharmony_ciendif 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ciinat_tables_script = $(srctree)/arch/x86/tools/gen-insn-attr-x86.awk 318c2ecf20Sopenharmony_ciinat_tables_maps = $(srctree)/arch/x86/lib/x86-opcode-map.txt 328c2ecf20Sopenharmony_ciquiet_cmd_inat_tables = GEN $@ 338c2ecf20Sopenharmony_ci cmd_inat_tables = $(AWK) -f $(inat_tables_script) $(inat_tables_maps) > $@ 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci$(obj)/inat-tables.c: $(inat_tables_script) $(inat_tables_maps) 368c2ecf20Sopenharmony_ci $(call cmd,inat_tables) 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ci$(obj)/inat.o: $(obj)/inat-tables.c 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ciclean-files := inat-tables.c 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ciobj-$(CONFIG_SMP) += msr-smp.o cache-smp.o 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_cilib-y := delay.o misc.o cmdline.o cpu.o 458c2ecf20Sopenharmony_cilib-y += usercopy_$(BITS).o usercopy.o getuser.o putuser.o 468c2ecf20Sopenharmony_cilib-y += memcpy_$(BITS).o 478c2ecf20Sopenharmony_cilib-$(CONFIG_ARCH_HAS_COPY_MC) += copy_mc.o copy_mc_64.o 488c2ecf20Sopenharmony_cilib-$(CONFIG_INSTRUCTION_DECODER) += insn.o inat.o insn-eval.o 498c2ecf20Sopenharmony_cilib-$(CONFIG_RANDOMIZE_BASE) += kaslr.o 508c2ecf20Sopenharmony_cilib-$(CONFIG_FUNCTION_ERROR_INJECTION) += error-inject.o 518c2ecf20Sopenharmony_cilib-$(CONFIG_RETPOLINE) += retpoline.o 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ciobj-y += msr.o msr-reg.o msr-reg-export.o hweight.o 548c2ecf20Sopenharmony_ciobj-y += iomem.o 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ciifeq ($(CONFIG_X86_32),y) 578c2ecf20Sopenharmony_ci obj-y += atomic64_32.o 588c2ecf20Sopenharmony_ci lib-y += atomic64_cx8_32.o 598c2ecf20Sopenharmony_ci lib-y += checksum_32.o 608c2ecf20Sopenharmony_ci lib-y += strstr_32.o 618c2ecf20Sopenharmony_ci lib-y += string_32.o 628c2ecf20Sopenharmony_ciifneq ($(CONFIG_X86_CMPXCHG64),y) 638c2ecf20Sopenharmony_ci lib-y += cmpxchg8b_emu.o atomic64_386_32.o 648c2ecf20Sopenharmony_ciendif 658c2ecf20Sopenharmony_ci lib-$(CONFIG_X86_USE_3DNOW) += mmx_32.o 668c2ecf20Sopenharmony_cielse 678c2ecf20Sopenharmony_ci obj-y += iomap_copy_64.o 688c2ecf20Sopenharmony_ci lib-y += csum-partial_64.o csum-copy_64.o csum-wrappers_64.o 698c2ecf20Sopenharmony_ci lib-y += clear_page_64.o copy_page_64.o 708c2ecf20Sopenharmony_ci lib-y += memmove_64.o memset_64.o 718c2ecf20Sopenharmony_ci lib-y += copy_user_64.o 728c2ecf20Sopenharmony_ci lib-y += cmpxchg16b_emu.o 738c2ecf20Sopenharmony_ciendif 74