^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) PHONY += posttest
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) ifeq ($(KBUILD_VERBOSE),1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) posttest_verbose = -v
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) posttest_verbose =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) ifeq ($(CONFIG_64BIT),y)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) posttest_64bit = -y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) posttest_64bit = -n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) reformatter = $(srctree)/arch/x86/tools/objdump_reformat.awk
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) chkobjdump = $(srctree)/arch/x86/tools/chkobjdump.awk
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) quiet_cmd_posttest = TEST $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) cmd_posttest = ($(OBJDUMP) -v | $(AWK) -f $(chkobjdump)) || $(OBJDUMP) -d -j .text $(objtree)/vmlinux | $(AWK) -f $(reformatter) | $(obj)/insn_decoder_test $(posttest_64bit) $(posttest_verbose)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) quiet_cmd_sanitytest = TEST $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) cmd_sanitytest = $(obj)/insn_sanity $(posttest_64bit) -m 1000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) posttest: $(obj)/insn_decoder_test vmlinux $(obj)/insn_sanity
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) $(call cmd,posttest)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) $(call cmd,sanitytest)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) hostprogs += insn_decoder_test insn_sanity
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) # -I needed for generated C source and C source which in the kernel tree.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) HOSTCFLAGS_insn_decoder_test.o := -Wall -I$(objtree)/arch/x86/lib/ -I$(srctree)/arch/x86/include/uapi/ -I$(srctree)/arch/x86/include/ -I$(srctree)/arch/x86/lib/ -I$(srctree)/include/uapi/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) HOSTCFLAGS_insn_sanity.o := -Wall -I$(objtree)/arch/x86/lib/ -I$(srctree)/arch/x86/include/ -I$(srctree)/arch/x86/lib/ -I$(srctree)/include/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) # Dependencies are also needed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) $(obj)/insn_decoder_test.o: $(srctree)/arch/x86/lib/insn.c $(srctree)/arch/x86/lib/inat.c $(srctree)/arch/x86/include/asm/inat_types.h $(srctree)/arch/x86/include/asm/inat.h $(srctree)/arch/x86/include/asm/insn.h $(objtree)/arch/x86/lib/inat-tables.c
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) $(obj)/insn_sanity.o: $(srctree)/arch/x86/lib/insn.c $(srctree)/arch/x86/lib/inat.c $(srctree)/arch/x86/include/asm/inat_types.h $(srctree)/arch/x86/include/asm/inat.h $(srctree)/arch/x86/include/asm/insn.h $(objtree)/arch/x86/lib/inat-tables.c
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) HOST_EXTRACFLAGS += -I$(srctree)/tools/include
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) hostprogs += relocs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) relocs-objs := relocs_32.o relocs_64.o relocs_common.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) PHONY += relocs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) relocs: $(obj)/relocs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) @: