c8d7b7e592
Currently the x86 instruction decoder is used from: - the kernel itself, - from tools like objtool and perf, - within x86 tools, i.e. instruction decoder selftests. The first two cases are similar, because tools headers try to mimic kernel headers. Instruction decoder selftests include some of the kernel headers directly, including uapi headers. This works until headers dependencies are kept to a minimum and tools are not cross-compiled. Since the goal of the x86 instruction decoder selftests is not to verify uapi headers, move it to using tools headers, like is already done for vdso2c tool, mkpiggy and other tools in arch/x86/boot/. Signed-off-by: Vasily Gorbik <gor@linux.ibm.com> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Acked-by: Masami Hiramatsu <mhiramat@kernel.org> Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
47 lines
1.9 KiB
Makefile
47 lines
1.9 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
PHONY += posttest
|
|
|
|
ifeq ($(KBUILD_VERBOSE),1)
|
|
posttest_verbose = -v
|
|
else
|
|
posttest_verbose =
|
|
endif
|
|
|
|
ifeq ($(CONFIG_64BIT),y)
|
|
posttest_64bit = -y
|
|
else
|
|
posttest_64bit = -n
|
|
endif
|
|
|
|
reformatter = $(srctree)/arch/x86/tools/objdump_reformat.awk
|
|
chkobjdump = $(srctree)/arch/x86/tools/chkobjdump.awk
|
|
|
|
quiet_cmd_posttest = TEST $@
|
|
cmd_posttest = ($(OBJDUMP) -v | $(AWK) -f $(chkobjdump)) || $(OBJDUMP) -d -j .text $(objtree)/vmlinux | $(AWK) -f $(reformatter) | $(obj)/insn_decoder_test $(posttest_64bit) $(posttest_verbose)
|
|
|
|
quiet_cmd_sanitytest = TEST $@
|
|
cmd_sanitytest = $(obj)/insn_sanity $(posttest_64bit) -m 1000000
|
|
|
|
posttest: $(obj)/insn_decoder_test vmlinux $(obj)/insn_sanity
|
|
$(call cmd,posttest)
|
|
$(call cmd,sanitytest)
|
|
|
|
hostprogs += insn_decoder_test insn_sanity
|
|
|
|
# -I needed for generated C source and C source which in the kernel tree.
|
|
HOSTCFLAGS_insn_decoder_test.o := -Wall -I$(srctree)/tools/arch/x86/lib/ -I$(srctree)/tools/arch/x86/include/ -I$(objtree)/arch/x86/lib/
|
|
|
|
HOSTCFLAGS_insn_sanity.o := -Wall -I$(srctree)/tools/arch/x86/lib/ -I$(srctree)/tools/arch/x86/include/ -I$(objtree)/arch/x86/lib/
|
|
|
|
# Dependencies are also needed.
|
|
$(obj)/insn_decoder_test.o: $(srctree)/tools/arch/x86/lib/insn.c $(srctree)/tools/arch/x86/lib/inat.c $(srctree)/tools/arch/x86/include/asm/inat_types.h $(srctree)/tools/arch/x86/include/asm/inat.h $(srctree)/tools/arch/x86/include/asm/insn.h $(objtree)/arch/x86/lib/inat-tables.c
|
|
|
|
$(obj)/insn_sanity.o: $(srctree)/tools/arch/x86/lib/insn.c $(srctree)/tools/arch/x86/lib/inat.c $(srctree)/tools/arch/x86/include/asm/inat_types.h $(srctree)/tools/arch/x86/include/asm/inat.h $(srctree)/tools/arch/x86/include/asm/insn.h $(objtree)/arch/x86/lib/inat-tables.c
|
|
|
|
HOST_EXTRACFLAGS += -I$(srctree)/tools/include
|
|
hostprogs += relocs
|
|
relocs-objs := relocs_32.o relocs_64.o relocs_common.o
|
|
PHONY += relocs
|
|
relocs: $(obj)/relocs
|
|
@:
|