1*4882a593Smuzhiyun# GNU objdump version checker 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# Usage: 4*4882a593Smuzhiyun# objdump -v | awk -f chkobjdump.awk 5*4882a593SmuzhiyunBEGIN { 6*4882a593Smuzhiyun # objdump version 2.19 or later is OK for the test. 7*4882a593Smuzhiyun od_ver = 2; 8*4882a593Smuzhiyun od_sver = 19; 9*4882a593Smuzhiyun} 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun/^GNU objdump/ { 12*4882a593Smuzhiyun verstr = "" 13*4882a593Smuzhiyun gsub(/\(.*\)/, ""); 14*4882a593Smuzhiyun for (i = 3; i <= NF; i++) 15*4882a593Smuzhiyun if (match($(i), "^[0-9]")) { 16*4882a593Smuzhiyun verstr = $(i); 17*4882a593Smuzhiyun break; 18*4882a593Smuzhiyun } 19*4882a593Smuzhiyun if (verstr == "") { 20*4882a593Smuzhiyun printf("Warning: Failed to find objdump version number.\n"); 21*4882a593Smuzhiyun exit 0; 22*4882a593Smuzhiyun } 23*4882a593Smuzhiyun split(verstr, ver, "."); 24*4882a593Smuzhiyun if (ver[1] > od_ver || 25*4882a593Smuzhiyun (ver[1] == od_ver && ver[2] >= od_sver)) { 26*4882a593Smuzhiyun exit 1; 27*4882a593Smuzhiyun } else { 28*4882a593Smuzhiyun printf("Warning: objdump version %s is older than %d.%d\n", 29*4882a593Smuzhiyun verstr, od_ver, od_sver); 30*4882a593Smuzhiyun print("Warning: Skipping posttest."); 31*4882a593Smuzhiyun # Logic is inverted, because we just skip test without error. 32*4882a593Smuzhiyun exit 0; 33*4882a593Smuzhiyun } 34*4882a593Smuzhiyun} 35