Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6f5f6726 authored by Masami Hiramatsu's avatar Masami Hiramatsu Committed by H. Peter Anvin
Browse files

x86: insn decoder test checks objdump version



Check objdump version before using it for insn decoder build test,
because some older objdump can't decode AVX code correctly.

Signed-off-by: default avatarMasami Hiramatsu <mhiramat@redhat.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Randy Dunlap <rdunlap@xenotime.net>
Cc: Jim Keniston <jkenisto@us.ibm.com>
LKML-Reference: <20091120171314.6715.30390.stgit@dhcp-100-2-132.bos.redhat.com>
Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
parent 80509e27
Loading
Loading
Loading
Loading
+4 −1
Original line number Original line Diff line number Diff line
@@ -12,8 +12,11 @@ else
  posttest_64bit = -n
  posttest_64bit = -n
endif
endif


distill_awk = $(srctree)/arch/x86/tools/distill.awk
chkobjdump = $(srctree)/arch/x86/tools/chkobjdump.awk

quiet_cmd_posttest = TEST    $@
quiet_cmd_posttest = TEST    $@
      cmd_posttest = $(OBJDUMP) -d -j .text $(objtree)/vmlinux | $(AWK) -f $(srctree)/arch/x86/tools/distill.awk | $(obj)/test_get_len $(posttest_64bit) $(posttest_verbose)
      cmd_posttest = ($(OBJDUMP) -v | $(AWK) -f $(chkobjdump)) || $(OBJDUMP) -d -j .text $(objtree)/vmlinux | $(AWK) -f $(distill_awk) | $(obj)/test_get_len $(posttest_64bit) $(posttest_verbose)


posttest: $(obj)/test_get_len vmlinux
posttest: $(obj)/test_get_len vmlinux
	$(call cmd,posttest)
	$(call cmd,posttest)
+23 −0
Original line number Original line Diff line number Diff line
# GNU objdump version checker
#
# Usage:
# objdump -v | awk -f chkobjdump.awk
BEGIN {
	# objdump version 2.19 or later is OK for the test.
	od_ver = 2;
	od_sver = 19;
}

/^GNU/ {
	split($4, ver, ".");
	if (ver[1] > od_ver ||
	    (ver[1] == od_ver && ver[2] >= od_sver)) {
		exit 1;
	} else {
		printf("Warning: objdump version %s is older than %d.%d\n",
		       $4, od_ver, od_sver);
		print("Warning: Skipping posttest.");
		# Logic is inverted, because we just skip test without error.
		exit 0;
	}
}