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