x86: Fix objdump version check in chkobjdump.awk for different formats.
authorMasami Hiramatsu <mhiramat@redhat.com>
Fri, 18 Dec 2009 15:40:13 +0000 (10:40 -0500)
committerH. Peter Anvin <hpa@zytor.com>
Fri, 18 Dec 2009 17:26:56 +0000 (09:26 -0800)
Different version of objdump says its version in different way;

GNU objdump 2.16.1

or

GNU objdump version 2.19.51.0.14-1.fc11 20090722

This patch uses the first argument which starts with a number
as version string.

Changes in v2:
 - Remove unneeded increment.

Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com>
LKML-Reference: <20091218154012.16960.5113.stgit@dhcp-100-2-132.bos.redhat.com>
Suggested-by: H. Peter Anvin <hpa@zytor.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
arch/x86/tools/chkobjdump.awk

index 5bbb5a33f22029f39578114adfef535971e4853a..fd1ab80be0dece39b8f99bdb1f5a0b16e06e7de5 100644 (file)
@@ -8,14 +8,24 @@ BEGIN {
        od_sver = 19;
 }
 
-/^GNU/ {
-       split($3, ver, ".");
+/^GNU objdump/ {
+       verstr = ""
+       for (i = 3; i <= NF; i++)
+               if (match($(i), "^[0-9]")) {
+                       verstr = $(i);
+                       break;
+               }
+       if (verstr == "") {
+               printf("Warning: Failed to find objdump version number.\n");
+               exit 0;
+       }
+       split(verstr, 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);
+                      verstr, od_ver, od_sver);
                print("Warning: Skipping posttest.");
                # Logic is inverted, because we just skip test without error.
                exit 0;