xref: /freebsd/sys/conf/kmod_syms_prefix.awk (revision 031beb4e239bfce798af17f5fe8dba8bcaf13d99)
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