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: Masami 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: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
parent
80509e27e4
commit
6f5f67267d
|
@ -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)
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
# 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;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue