kmod_syms.awk 579 B

123456789101112131415161718192021222324252627
  1. # $FreeBSD$
  2. # Read global symbols from object file.
  3. BEGIN {
  4. while ("${NM:='nm'} -g " ARGV[1] | getline) {
  5. if (match($0, /^[^[:space:]]+ [^AU] (.*)$/)) {
  6. syms[$3] = $2
  7. }
  8. }
  9. delete ARGV[1]
  10. }
  11. # De-list symbols from the export list.
  12. {
  13. delete syms[$0]
  14. }
  15. # Strip commons, make everything else local.
  16. END {
  17. for (member in syms) {
  18. if (syms[member] == "C")
  19. print "-N" member
  20. else
  21. print "-L" member
  22. }
  23. }