]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/conf/kmod_syms.awk
zfs: merge openzfs/zfs@90ba19eb7
[FreeBSD/FreeBSD.git] / sys / conf / kmod_syms.awk
1
2 # Read global symbols from object file.
3 BEGIN {
4         modname = ARGV[1]
5         while ("${NM:='nm'} -g " ARGV[1] | getline) {
6                 if (match($0, /^[^[:space:]]+ [^AU] (.*)$/)) {
7                         syms[$3] = $2
8                 }
9         }
10         delete ARGV[1]
11 }
12
13 # De-list symbols from the export list.
14 {
15         smbl = $0
16         if (!(smbl in syms)) {
17                 printf "Symbol %s is not present in %s\n",      \
18                     smbl, modname > "/dev/stderr"
19         }
20         delete syms[smbl]
21 }
22
23 # Strip commons, make everything else local.
24 END {
25         for (member in syms) {
26                 if (syms[member] == "C")
27                         print "-N" member
28                 else
29                         print "-L" member
30         }
31 }