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