git: 0d7a6199b61d - main - kmod_syms.awk: fix removal of the export list from the symbol table

From: Konstantin Belousov <kib_at_FreeBSD.org>
Date: Thu, 18 Nov 2021 13:57:03 UTC
The branch main has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=0d7a6199b61d55caf0a682ef072bdd107472ab49

commit 0d7a6199b61d55caf0a682ef072bdd107472ab49
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2021-11-07 09:00:07 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2021-11-18 13:56:24 +0000

    kmod_syms.awk: fix removal of the export list from the symbol table
    
    Print some warning when export is requested for non-existing symbol.
    
    Reviewed by:    emaste
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    Differential revision:  https://reviews.freebsd.org/D32878
---
 sys/conf/kmod_syms.awk | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/sys/conf/kmod_syms.awk b/sys/conf/kmod_syms.awk
index 677d813507ee..8691d2e0b989 100644
--- a/sys/conf/kmod_syms.awk
+++ b/sys/conf/kmod_syms.awk
@@ -2,6 +2,7 @@
 
 # Read global symbols from object file.
 BEGIN {
+	modname = ARGV[1]
         while ("${NM:='nm'} -g " ARGV[1] | getline) {
                 if (match($0, /^[^[:space:]]+ [^AU] (.*)$/)) {
                         syms[$3] = $2
@@ -12,7 +13,12 @@ BEGIN {
 
 # De-list symbols from the export list.
 {
-        delete syms[$0]
+	smbl = $0
+	if (!(smbl in syms)) {
+		printf "Symbol %s is not present in %s\n",	\
+		    smbl, modname > "/dev/stderr"
+	}
+	delete syms[smbl]
 }
 
 # Strip commons, make everything else local.