xref: /openbmc/linux/arch/x86/tools/chkobjdump.awk (revision 839ad22f)
16f5f6726SMasami Hiramatsu# GNU objdump version checker
26f5f6726SMasami Hiramatsu#
36f5f6726SMasami Hiramatsu# Usage:
46f5f6726SMasami Hiramatsu# objdump -v | awk -f chkobjdump.awk
56f5f6726SMasami HiramatsuBEGIN {
66f5f6726SMasami Hiramatsu	# objdump version 2.19 or later is OK for the test.
76f5f6726SMasami Hiramatsu	od_ver = 2;
86f5f6726SMasami Hiramatsu	od_sver = 19;
96f5f6726SMasami Hiramatsu}
106f5f6726SMasami Hiramatsu
118bee738bSMasami Hiramatsu/^GNU objdump/ {
128bee738bSMasami Hiramatsu	verstr = ""
13*839ad22fSRandy Dunlap	gsub(/\(.*\)/, "");
148bee738bSMasami Hiramatsu	for (i = 3; i <= NF; i++)
158bee738bSMasami Hiramatsu		if (match($(i), "^[0-9]")) {
168bee738bSMasami Hiramatsu			verstr = $(i);
178bee738bSMasami Hiramatsu			break;
188bee738bSMasami Hiramatsu		}
198bee738bSMasami Hiramatsu	if (verstr == "") {
208bee738bSMasami Hiramatsu		printf("Warning: Failed to find objdump version number.\n");
218bee738bSMasami Hiramatsu		exit 0;
228bee738bSMasami Hiramatsu	}
238bee738bSMasami Hiramatsu	split(verstr, ver, ".");
246f5f6726SMasami Hiramatsu	if (ver[1] > od_ver ||
256f5f6726SMasami Hiramatsu	    (ver[1] == od_ver && ver[2] >= od_sver)) {
266f5f6726SMasami Hiramatsu		exit 1;
276f5f6726SMasami Hiramatsu	} else {
286f5f6726SMasami Hiramatsu		printf("Warning: objdump version %s is older than %d.%d\n",
298bee738bSMasami Hiramatsu		       verstr, od_ver, od_sver);
306f5f6726SMasami Hiramatsu		print("Warning: Skipping posttest.");
316f5f6726SMasami Hiramatsu		# Logic is inverted, because we just skip test without error.
326f5f6726SMasami Hiramatsu		exit 0;
336f5f6726SMasami Hiramatsu	}
346f5f6726SMasami Hiramatsu}
35