From 8a499d1702ca6c6dcffe99df4daaab1bc7ca4385 Mon Sep 17 00:00:00 2001 From: Masami Hiramatsu Date: Fri, 20 Nov 2009 12:13:14 -0500 Subject: [PATCH] --- yaml --- r: 169879 b: refs/heads/master c: 6f5f67267dc4faecd9cba63894de92ca92a608b8 h: refs/heads/master i: 169877: 07652785fdcd7fc47942d2b54beda2a33ae85f7e 169875: ee205ed56f41a2be731a5c81ba870b6a510bdc01 169871: 67da75ef932955e54b08a545471c7770bb35b72b v: v3 --- [refs] | 2 +- trunk/arch/x86/tools/Makefile | 5 ++++- trunk/arch/x86/tools/chkobjdump.awk | 23 +++++++++++++++++++++++ 3 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 trunk/arch/x86/tools/chkobjdump.awk diff --git a/[refs] b/[refs] index a174a391eae6..ab028af85230 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 80509e27e40d7554e576405ed9f5b7966c567112 +refs/heads/master: 6f5f67267dc4faecd9cba63894de92ca92a608b8 diff --git a/trunk/arch/x86/tools/Makefile b/trunk/arch/x86/tools/Makefile index c80b0792cd83..f82082677337 100644 --- a/trunk/arch/x86/tools/Makefile +++ b/trunk/arch/x86/tools/Makefile @@ -12,8 +12,11 @@ else posttest_64bit = -n endif +distill_awk = $(srctree)/arch/x86/tools/distill.awk +chkobjdump = $(srctree)/arch/x86/tools/chkobjdump.awk + 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 $(call cmd,posttest) diff --git a/trunk/arch/x86/tools/chkobjdump.awk b/trunk/arch/x86/tools/chkobjdump.awk new file mode 100644 index 000000000000..0d13cd9fdcff --- /dev/null +++ b/trunk/arch/x86/tools/chkobjdump.awk @@ -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; + } +}