1*dc6a41b9SJonathan T. Looney 2*dc6a41b9SJonathan T. Looney# Read global symbols from object file. 3*dc6a41b9SJonathan T. LooneyBEGIN { 4*dc6a41b9SJonathan T. Looney while ("${NM:='nm'} " ARGV[1] | getline) { 5*dc6a41b9SJonathan T. Looney if (match($0, /^[^[:space:]]+ [^AU] (.*)$/)) { 6*dc6a41b9SJonathan T. Looney syms[$3] = $2 7*dc6a41b9SJonathan T. Looney } 8*dc6a41b9SJonathan T. Looney } 9*dc6a41b9SJonathan T. Looney delete ARGV[1] 10*dc6a41b9SJonathan T. Looney} 11*dc6a41b9SJonathan T. Looney 12*dc6a41b9SJonathan T. Looney# Strip commons, make everything else local. 13*dc6a41b9SJonathan T. LooneyEND { 14*dc6a41b9SJonathan T. Looney for (member in syms) { 15*dc6a41b9SJonathan T. Looney printf("--redefine-sym=%s=%s%s\n", member, prefix, member); 16*dc6a41b9SJonathan T. Looney } 17*dc6a41b9SJonathan T. Looney} 18