Module Name:    src
Committed By:   christos
Date:           Sat May  2 19:44:59 UTC 2020

Modified Files:
        src/distrib/sets: sets.subr

Log Message:
Add support for debugging modules for multi-arch (xen etc.)


To generate a diff of this commit:
cvs rdiff -u -r1.189 -r1.190 src/distrib/sets/sets.subr

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/distrib/sets/sets.subr
diff -u src/distrib/sets/sets.subr:1.189 src/distrib/sets/sets.subr:1.190
--- src/distrib/sets/sets.subr:1.189	Fri May  1 18:21:49 2020
+++ src/distrib/sets/sets.subr	Sat May  2 15:44:59 2020
@@ -1,4 +1,4 @@
-#	$NetBSD: sets.subr,v 1.189 2020/05/01 22:21:49 christos Exp $
+#	$NetBSD: sets.subr,v 1.190 2020/05/02 19:44:59 christos Exp $
 #
 
 #
@@ -184,7 +184,7 @@ SUBST="${SUBST};s#@MACHINE@#${MACHINE}#g
 # In each file, a record consists of a path and a System Package name,
 # separated by whitespace. E.g.,
 #
-# 	# $NetBSD: sets.subr,v 1.189 2020/05/01 22:21:49 christos Exp $
+# 	# $NetBSD: sets.subr,v 1.190 2020/05/02 19:44:59 christos Exp $
 # 	.			base-sys-root	[keyword[,...]]
 # 	./altroot		base-sys-root
 # 	./bin			base-sys-root
@@ -254,6 +254,17 @@ list_set_files()
 	fi
 	print_set_lists "$@" | \
 	${AWK} -v obsolete=${obsolete} '
+		function addkmod(line, fname, prefix, pat, patlen) {
+			if (substr(line, 1, patlen) != pat) {
+				return;
+			}
+			for (d in kmodarchdirs) {
+				xd = prefix kmodarchdirs[d]
+				xfile = xd substr(line, patlen + 1)
+				tmp = xd substr(fname, patlen + 1)
+				list[xfile] = tmp;
+			}
+		}
 		BEGIN {
 			if (obsolete)
 				wanted["obsolete"] = 1
@@ -298,8 +309,12 @@ list_set_files()
 
 			if (("kmod" in wanted) && ("compatmodules" in wanted)) {
 				split("'"${KMODARCHDIRS}"'", kmodarchdirs, ",");
-				kmodpat = "./stand/" ENVIRON["MACHINE"]
+				kmodprefix = "./stand/"
+				kmodpat = kmodprefix ENVIRON["MACHINE"]
 				l_kmodpat = length(kmodpat)
+				kmoddbprefix = "./usr/libdata/debug/stand/" 
+				kmoddbpat = kmoddbprefix ENVIRON["MACHINE"]
+				l_kmoddbpat = length(kmoddbpat)
 			}
 
 			if ("'"${TOOLCHAIN_MISSING}"'" != "yes") {
@@ -391,13 +406,9 @@ list_set_files()
 				next
 
 			list[$1] = $0
-			if (havekmod > 0 && substr($1,1,l_kmodpat) == kmodpat) {
-				for (d in kmodarchdirs) {
-					xd = "./stand/" kmodarchdirs[d]
-					xfile = xd substr($1, l_kmodpat+1)
-					tmp = xd substr($0, l_kmodpat+1)
-					list[xfile] = tmp;
-				}
+			if (havekmod > 0) {
+				addkmod($0, $1, kmodprefix, kmodpat, l_kmodpat)
+				addkmod($0, $1, kmoddbprefix, kmoddbpat, l_kmoddbpat)
 				next
 			}
 

Reply via email to