162306a36Sopenharmony_ci# GNU objdump version checker
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# Usage:
462306a36Sopenharmony_ci# objdump -v | awk -f chkobjdump.awk
562306a36Sopenharmony_ciBEGIN {
662306a36Sopenharmony_ci	# objdump version 2.19 or later is OK for the test.
762306a36Sopenharmony_ci	od_ver = 2;
862306a36Sopenharmony_ci	od_sver = 19;
962306a36Sopenharmony_ci}
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci/^GNU objdump/ {
1262306a36Sopenharmony_ci	verstr = ""
1362306a36Sopenharmony_ci	gsub(/\(.*\)/, "");
1462306a36Sopenharmony_ci	for (i = 3; i <= NF; i++)
1562306a36Sopenharmony_ci		if (match($(i), "^[0-9]")) {
1662306a36Sopenharmony_ci			verstr = $(i);
1762306a36Sopenharmony_ci			break;
1862306a36Sopenharmony_ci		}
1962306a36Sopenharmony_ci	if (verstr == "") {
2062306a36Sopenharmony_ci		printf("Warning: Failed to find objdump version number.\n");
2162306a36Sopenharmony_ci		exit 0;
2262306a36Sopenharmony_ci	}
2362306a36Sopenharmony_ci	split(verstr, ver, ".");
2462306a36Sopenharmony_ci	if (ver[1] > od_ver ||
2562306a36Sopenharmony_ci	    (ver[1] == od_ver && ver[2] >= od_sver)) {
2662306a36Sopenharmony_ci		exit 1;
2762306a36Sopenharmony_ci	} else {
2862306a36Sopenharmony_ci		printf("Warning: objdump version %s is older than %d.%d\n",
2962306a36Sopenharmony_ci		       verstr, od_ver, od_sver);
3062306a36Sopenharmony_ci		print("Warning: Skipping posttest.");
3162306a36Sopenharmony_ci		# Logic is inverted, because we just skip test without error.
3262306a36Sopenharmony_ci		exit 0;
3362306a36Sopenharmony_ci	}
3462306a36Sopenharmony_ci}
35