18c2ecf20Sopenharmony_ci# GNU objdump version checker
28c2ecf20Sopenharmony_ci#
38c2ecf20Sopenharmony_ci# Usage:
48c2ecf20Sopenharmony_ci# objdump -v | awk -f chkobjdump.awk
58c2ecf20Sopenharmony_ciBEGIN {
68c2ecf20Sopenharmony_ci	# objdump version 2.19 or later is OK for the test.
78c2ecf20Sopenharmony_ci	od_ver = 2;
88c2ecf20Sopenharmony_ci	od_sver = 19;
98c2ecf20Sopenharmony_ci}
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci/^GNU objdump/ {
128c2ecf20Sopenharmony_ci	verstr = ""
138c2ecf20Sopenharmony_ci	gsub(/\(.*\)/, "");
148c2ecf20Sopenharmony_ci	for (i = 3; i <= NF; i++)
158c2ecf20Sopenharmony_ci		if (match($(i), "^[0-9]")) {
168c2ecf20Sopenharmony_ci			verstr = $(i);
178c2ecf20Sopenharmony_ci			break;
188c2ecf20Sopenharmony_ci		}
198c2ecf20Sopenharmony_ci	if (verstr == "") {
208c2ecf20Sopenharmony_ci		printf("Warning: Failed to find objdump version number.\n");
218c2ecf20Sopenharmony_ci		exit 0;
228c2ecf20Sopenharmony_ci	}
238c2ecf20Sopenharmony_ci	split(verstr, ver, ".");
248c2ecf20Sopenharmony_ci	if (ver[1] > od_ver ||
258c2ecf20Sopenharmony_ci	    (ver[1] == od_ver && ver[2] >= od_sver)) {
268c2ecf20Sopenharmony_ci		exit 1;
278c2ecf20Sopenharmony_ci	} else {
288c2ecf20Sopenharmony_ci		printf("Warning: objdump version %s is older than %d.%d\n",
298c2ecf20Sopenharmony_ci		       verstr, od_ver, od_sver);
308c2ecf20Sopenharmony_ci		print("Warning: Skipping posttest.");
318c2ecf20Sopenharmony_ci		# Logic is inverted, because we just skip test without error.
328c2ecf20Sopenharmony_ci		exit 0;
338c2ecf20Sopenharmony_ci	}
348c2ecf20Sopenharmony_ci}
35