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