Module Name:    src
Committed By:   christos
Date:           Sat Apr  4 19:50:54 UTC 2020

Modified Files:
        src/distrib/common: Makefile.minirootkmod
        src/distrib/sets: mkvars.mk sets.subr
        src/distrib/sets/lists/base: mi
        src/distrib/sets/lists/modules: mi
        src/etc: Makefile
        src/share/mk: bsd.kmodule.mk
        src/sys/arch/i386/stand/boot: Makefile.boot boot2.c
        src/sys/arch/i386/stand/lib: exec.c
        src/sys/arch/x86/x86: x86_machdep.c
        src/sys/conf: Makefile.kern.inc
        src/sys/kern: kern_module.c
        src/sys/sys: systm.h

Log Message:
Infrastructure for putting kernel+modules in /netbsd/kernel and
/netbsd/modules respectively instead of /netbsd and
/stand/<arch>/<version>/modules.  This is only supported for x86,
and is turned off by default. To try it, add KERNEL_DIR=yes in your
/mk.conf and install a system from that build.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/distrib/common/Makefile.minirootkmod
cvs rdiff -u -r1.37 -r1.38 src/distrib/sets/mkvars.mk
cvs rdiff -u -r1.187 -r1.188 src/distrib/sets/sets.subr
cvs rdiff -u -r1.1238 -r1.1239 src/distrib/sets/lists/base/mi
cvs rdiff -u -r1.135 -r1.136 src/distrib/sets/lists/modules/mi
cvs rdiff -u -r1.441 -r1.442 src/etc/Makefile
cvs rdiff -u -r1.63 -r1.64 src/share/mk/bsd.kmodule.mk
cvs rdiff -u -r1.73 -r1.74 src/sys/arch/i386/stand/boot/Makefile.boot
cvs rdiff -u -r1.72 -r1.73 src/sys/arch/i386/stand/boot/boot2.c
cvs rdiff -u -r1.75 -r1.76 src/sys/arch/i386/stand/lib/exec.c
cvs rdiff -u -r1.136 -r1.137 src/sys/arch/x86/x86/x86_machdep.c
cvs rdiff -u -r1.268 -r1.269 src/sys/conf/Makefile.kern.inc
cvs rdiff -u -r1.148 -r1.149 src/sys/kern/kern_module.c
cvs rdiff -u -r1.293 -r1.294 src/sys/sys/systm.h

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

Modified files:

Index: src/distrib/common/Makefile.minirootkmod
diff -u src/distrib/common/Makefile.minirootkmod:1.3 src/distrib/common/Makefile.minirootkmod:1.4
--- src/distrib/common/Makefile.minirootkmod:1.3	Tue Aug  5 11:40:58 2014
+++ src/distrib/common/Makefile.minirootkmod	Sat Apr  4 15:50:53 2020
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.minirootkmod,v 1.3 2014/08/05 15:40:58 apb Exp $
+#	$NetBSD: Makefile.minirootkmod,v 1.4 2020/04/04 19:50:53 christos Exp $
 #
 # Makefile snippet to build a miniroot kernel module (e.g. miniroot.kmod)
 #
@@ -36,7 +36,11 @@ PROG=		${MINIROOT}.kmod
 # RAMDISKFS is the ramdisk image to be included inside DSTMOD.  It should
 # already have been created by the Makefile in RAMDISKSRCDIR.
 #
+.if ${KERNEL_DIR:U*no} == "yes"
+SRCMOD=		${DESTDIR}/netbsd/modules/miniroot/miniroot.kmod
+.else
 SRCMOD=		${DESTDIR}/stand/${MACHINE}/${MODULEVER}/modules/miniroot/miniroot.kmod
+.endif
 DSTMOD=		${.OBJDIR}/${MINIROOT}.kmod
 RAMDISKSRCDIR=	${.CURDIR}/../ramdisks/${RAMDISK}
 RAMDISKOBJDIR!=	cd ${RAMDISKSRCDIR} && ${PRINTOBJDIR}

Index: src/distrib/sets/mkvars.mk
diff -u src/distrib/sets/mkvars.mk:1.37 src/distrib/sets/mkvars.mk:1.38
--- src/distrib/sets/mkvars.mk:1.37	Tue Apr 16 17:20:51 2019
+++ src/distrib/sets/mkvars.mk	Sat Apr  4 15:50:53 2020
@@ -1,4 +1,4 @@
-# $NetBSD: mkvars.mk,v 1.37 2019/04/16 21:20:51 mrg Exp $
+# $NetBSD: mkvars.mk,v 1.38 2020/04/04 19:50:53 christos Exp $
 
 MKEXTRAVARS= \
 	MACHINE \
@@ -16,6 +16,7 @@ MKEXTRAVARS= \
 	OBJECT_FMT \
 	TOOLCHAIN_MISSING \
 	EXTSRCS \
+	KERNEL_DIR \
 	MKMANZ \
 	MKBFD \
 	MKCOMPAT \

Index: src/distrib/sets/sets.subr
diff -u src/distrib/sets/sets.subr:1.187 src/distrib/sets/sets.subr:1.188
--- src/distrib/sets/sets.subr:1.187	Wed Oct  2 07:16:00 2019
+++ src/distrib/sets/sets.subr	Sat Apr  4 15:50:53 2020
@@ -1,4 +1,4 @@
-#	$NetBSD: sets.subr,v 1.187 2019/10/02 11:16:00 maya Exp $
+#	$NetBSD: sets.subr,v 1.188 2020/04/04 19:50:53 christos Exp $
 #
 
 #
@@ -168,7 +168,11 @@ xlists="xbase xcomp $xdebugset xetc xfon
 extlists="extbase extcomp extetc"
 
 OSRELEASE=$(${HOST_SH} ${NETBSDSRCDIR}/sys/conf/osrelease.sh -k)
-MODULEDIR="stand/${MACHINE}/${OSRELEASE}/modules"
+if [ "${KERNEL_DIR}" = "yes" ]; then
+	MODULEDIR="netbsd/modules"
+else
+	MODULEDIR="stand/${MACHINE}/${OSRELEASE}/modules"
+fi
 SUBST="s#@MODULEDIR@#${MODULEDIR}#g"
 SUBST="${SUBST};s#@OSRELEASE@#${OSRELEASE}#g"
 SUBST="${SUBST};s#@MACHINE@#${MACHINE}#g"
@@ -180,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.187 2019/10/02 11:16:00 maya Exp $
+# 	# $NetBSD: sets.subr,v 1.188 2020/04/04 19:50:53 christos Exp $
 # 	.			base-sys-root	[keyword[,...]]
 # 	./altroot		base-sys-root
 # 	./bin			base-sys-root

Index: src/distrib/sets/lists/base/mi
diff -u src/distrib/sets/lists/base/mi:1.1238 src/distrib/sets/lists/base/mi:1.1239
--- src/distrib/sets/lists/base/mi:1.1238	Sat Apr  4 11:39:15 2020
+++ src/distrib/sets/lists/base/mi	Sat Apr  4 15:50:53 2020
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.1238 2020/04/04 15:39:15 jdolecek Exp $
+# $NetBSD: mi,v 1.1239 2020/04/04 19:50:53 christos Exp $
 #
 # Note:	Don't delete entries from here - mark them as "obsolete" instead,
 #	unless otherwise stated below.
@@ -660,6 +660,7 @@
 ./sbin/zfs					base-zfs-bin            zfs
 ./sbin/zpool					base-zfs-bin            zfs
 ./stand						base-sys-root
+./netbsd					base-sys-root		kernel_dir
 ./tmp						base-sys-root
 ./usr						base-sys-root
 ./usr/bin					base-sys-usr

Index: src/distrib/sets/lists/modules/mi
diff -u src/distrib/sets/lists/modules/mi:1.135 src/distrib/sets/lists/modules/mi:1.136
--- src/distrib/sets/lists/modules/mi:1.135	Sat Apr  4 11:39:16 2020
+++ src/distrib/sets/lists/modules/mi	Sat Apr  4 15:50:53 2020
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.135 2020/04/04 15:39:16 jdolecek Exp $
+# $NetBSD: mi,v 1.136 2020/04/04 19:50:53 christos Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -481,5 +481,6 @@
 ./@MODULEDIR@/zlib				modules-base-kernel     kmod
 ./@MODULEDIR@/zlib/zlib.kmod			modules-base-kernel     kmod
 ./etc/mtree/set.modules				modules-sys-root	kmod
-./stand/@MACHINE@				modules-base-kernel	kmod
-./stand/@MACHINE@/@OSRELEASE@			modules-base-kernel	kmod
+./stand/@MACHINE@				modules-base-kernel	kmod,!kernel_dir
+./stand/@MACHINE@/@OSRELEASE@			modules-base-kernel	kmod,!kernel_dir
+./netbsd								kmod,kernel_dir

Index: src/etc/Makefile
diff -u src/etc/Makefile:1.441 src/etc/Makefile:1.442
--- src/etc/Makefile:1.441	Wed Oct  2 07:16:00 2019
+++ src/etc/Makefile	Sat Apr  4 15:50:53 2020
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.441 2019/10/02 11:16:00 maya Exp $
+#	$NetBSD: Makefile,v 1.442 2020/04/04 19:50:53 christos Exp $
 #	from: @(#)Makefile	8.7 (Berkeley) 5/25/95
 
 # Environment variables without default values:
@@ -621,21 +621,46 @@ kernset-${configfile}: .PHONY build_kern
 				ks="$${kernel}$${s}"; \
 				[ -f $${ks} ] || continue; \
 				kernels="$${kernels} $${ks}"; \
-				[ -z "$${newest}" -o $${ks} -nt "$${newest}" ] && \
-					newest=$${ks}; \
+				[ -z "$${newest}" -o $${ks} \
+				    -nt "$${newest}" ] && newest=$${ks}; \
 			done; \
 		done; \
 		[ $${kern_tgz} -nt "$${newest}" ] || { \
 			echo "echo $${kernels} | $${pax_cmd}"; \
+			if [ ${KERNELDIR} = "yes" ]; them \
+				tmpdir=kernel$$; \
+				trap "rm -fr $${tmpdir}" 0 1 2 3 15; \
+				mkdir -p $${tmpdir}/netbsd; \
+				d=./netbsd; \
+				cd $${tmpdir}; \
+			else \
+				d=.; \
+			fi; \
 			( echo "/set uname=${BINOWN} gname=${BINGRP}"; \
 			echo ". type=dir optional"; \
+			if [ ${KERNEL_DIR} = "yes" ]; then \
+				echo "./netbsd type=dir optional"; \
+			fi; \
 			dtblist=$$(${MAKE} -v DTB); \
 			for dtb in $${dtblist}; do \
-				echo "./$${dtb} type=file"; \
+				if [ ${KERNEL_DIR} = "yes" ]; then \
+					ln ../$${dtb} ./netbsd/$${dtb}; \
+				fi; \
+				echo "$${d}/$${dtb} type=file"; \
 			done; \
 			for kernel in $${kernels}; do \
-				echo "./$${kernel} type=file"; \
+				if [ ${KERNEL_DIR} = "yes" ]; then \
+					newname=$$(echo $${kernel} | \
+					    ${TOOL_SED} -e s/netbsd/kernel/); \
+					ln ../$${kernel} ./netbsd/$${newname}; \
+				else \
+					newname=$${kernel}; \
+				fi; \
+				echo "$${d}/$${newname} type=file"; \
 			done ) | eval $${pax_cmd}; \
+			if [ ${KERNEL_DIR} = "yes" ]; then \
+				mv $${kern_tgz} ..; \
+			fi; \
 		} \
 	}
 .endif

Index: src/share/mk/bsd.kmodule.mk
diff -u src/share/mk/bsd.kmodule.mk:1.63 src/share/mk/bsd.kmodule.mk:1.64
--- src/share/mk/bsd.kmodule.mk:1.63	Sun Dec  1 15:24:47 2019
+++ src/share/mk/bsd.kmodule.mk	Sat Apr  4 15:50:53 2020
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.kmodule.mk,v 1.63 2019/12/01 20:24:47 jmcneill Exp $
+#	$NetBSD: bsd.kmodule.mk,v 1.64 2020/04/04 19:50:53 christos Exp $
 
 # We are not building this with PIE
 MKPIE=no
@@ -172,7 +172,13 @@ ${PROG}: ${OBJS} ${DPADD} ${KMODSCRIPT}
 ##### Install rules
 .if !target(kmodinstall)
 .if !defined(KMODULEDIR)
+.if ${KERNEL_DIR:Uno} == "yes"
+KMODULEDIR=	${DESTDIR}/netbsd/modules/${KMOD}
+_INST_DIRS=	${DESTDIR}/netbsd
+_INST_DIRS+=	${DESTDIR}/netbsd/modules
+_INST_DIRS+=	${DESTDIR}/netbsd/modules/${KMOD}
 _OSRELEASE!=	${HOST_SH} $S/conf/osrelease.sh -k
+.else
 # Ensure these are recorded properly in METALOG on unprived installes:
 KMODULEARCHDIR?= ${MACHINE}
 _INST_DIRS=	${DESTDIR}/stand/${KMODULEARCHDIR}
@@ -180,6 +186,7 @@ _INST_DIRS+=	${DESTDIR}/stand/${KMODULEA
 _INST_DIRS+=	${DESTDIR}/stand/${KMODULEARCHDIR}/${_OSRELEASE}/modules
 KMODULEDIR=	${DESTDIR}/stand/${KMODULEARCHDIR}/${_OSRELEASE}/modules/${KMOD}
 .endif
+.endif
 _PROG:=		${KMODULEDIR}/${PROG} # installed path
 
 .if ${MKUPDATE} == "no"

Index: src/sys/arch/i386/stand/boot/Makefile.boot
diff -u src/sys/arch/i386/stand/boot/Makefile.boot:1.73 src/sys/arch/i386/stand/boot/Makefile.boot:1.74
--- src/sys/arch/i386/stand/boot/Makefile.boot:1.73	Thu Sep 12 22:19:45 2019
+++ src/sys/arch/i386/stand/boot/Makefile.boot	Sat Apr  4 15:50:54 2020
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.boot,v 1.73 2019/09/13 02:19:45 manu Exp $
+# $NetBSD: Makefile.boot,v 1.74 2020/04/04 19:50:54 christos Exp $
 
 S=	${.CURDIR}/../../../../..
 
@@ -53,6 +53,10 @@ CFLAGS+= -Wall -Wmissing-prototypes -Wst
 CPPFLAGS+= -nostdinc -D_STANDALONE
 CPPFLAGS+= -I$S
 
+.if ${KERNEL_DIR:Uno} == "yes"
+CPPFLAGS+= -DKERNEL_DIR
+.endif
+
 CPPFLAGS+= -DSUPPORT_PS2
 CPPFLAGS+= -DDIRECT_SERIAL
 CPPFLAGS+= -DSUPPORT_SERIAL=boot_params.bp_consdev

Index: src/sys/arch/i386/stand/boot/boot2.c
diff -u src/sys/arch/i386/stand/boot/boot2.c:1.72 src/sys/arch/i386/stand/boot/boot2.c:1.73
--- src/sys/arch/i386/stand/boot/boot2.c:1.72	Mon Sep  2 02:10:24 2019
+++ src/sys/arch/i386/stand/boot/boot2.c	Sat Apr  4 15:50:54 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: boot2.c,v 1.72 2019/09/02 06:10:24 manu Exp $	*/
+/*	$NetBSD: boot2.c,v 1.73 2020/04/04 19:50:54 christos Exp $	*/
 
 /*-
  * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
@@ -279,6 +279,12 @@ bootit(const char *filename, int howto)
 	if (howto & AB_VERBOSE)
 		printf("booting %s (howto 0x%x)\n", sprint_bootsel(filename),
 		    howto);
+#ifdef KERNEL_DIR
+	char path[512];
+	strcpy(path, filename);
+	strcat(path, "/kernel");
+	(void)exec_netbsd(path, 0, howto, boot_biosdev < 0x80, clearit);
+#endif
 
 	if (exec_netbsd(filename, 0, howto, boot_biosdev < 0x80, clearit) < 0)
 		printf("boot: %s: %s\n", sprint_bootsel(filename),

Index: src/sys/arch/i386/stand/lib/exec.c
diff -u src/sys/arch/i386/stand/lib/exec.c:1.75 src/sys/arch/i386/stand/lib/exec.c:1.76
--- src/sys/arch/i386/stand/lib/exec.c:1.75	Fri Dec  6 21:29:03 2019
+++ src/sys/arch/i386/stand/lib/exec.c	Sat Apr  4 15:50:54 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: exec.c,v 1.75 2019/12/07 02:29:03 christos Exp $	 */
+/*	$NetBSD: exec.c,v 1.76 2020/04/04 19:50:54 christos Exp $	 */
 
 /*
  * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
@@ -151,7 +151,7 @@ static void	module_add_common(const char
 static void	userconf_init(void);
 
 static void	extract_device(const char *, char *, size_t);
-static void	module_base_path(char *, size_t);
+static void	module_base_path(char *, size_t, const char *);
 static int	module_open(boot_module_t *, int, const char *, const char *,
 		    bool);
 
@@ -653,8 +653,15 @@ module_open(boot_module_t *bm, int mode,
 }
 
 static void
-module_base_path(char *buf, size_t bufsize)
+module_base_path(char *buf, size_t bufsize, const char *kernel_path)
 {
+#ifdef KERNEL_DIR
+	/* we cheat here, because %.* does not work with the mini printf */
+	char *ptr = strrchr(kernel_path, '/');
+	if (ptr) *ptr = '\0';
+	snprintf(buf, bufsize, "%s/modules", kernel_path);
+	if (ptr) *ptr = '/';
+#else
 	const char *machine;
 
 	switch (netbsd_elf_class) {
@@ -682,6 +689,7 @@ module_base_path(char *buf, size_t bufsi
 		    netbsd_version / 100000000,
 		    netbsd_version / 1000000 % 100);
 	}
+#endif
 }
 
 static void
@@ -697,7 +705,7 @@ module_init(const char *kernel_path)
 	int err, fd, nfail = 0;
 
 	extract_device(kernel_path, kdev, sizeof(kdev));
-	module_base_path(module_base, sizeof(module_base));
+	module_base_path(module_base, sizeof(module_base), kernel_path);
 
 	/* First, see which modules are valid and calculate btinfo size */
 	len = sizeof(struct btinfo_modulelist);

Index: src/sys/arch/x86/x86/x86_machdep.c
diff -u src/sys/arch/x86/x86/x86_machdep.c:1.136 src/sys/arch/x86/x86/x86_machdep.c:1.137
--- src/sys/arch/x86/x86/x86_machdep.c:1.136	Sat Apr  4 10:49:35 2020
+++ src/sys/arch/x86/x86/x86_machdep.c	Sat Apr  4 15:50:54 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: x86_machdep.c,v 1.136 2020/04/04 14:49:35 ad Exp $	*/
+/*	$NetBSD: x86_machdep.c,v 1.137 2020/04/04 19:50:54 christos Exp $	*/
 
 /*-
  * Copyright (c) 2002, 2006, 2007 YAMAMOTO Takashi,
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: x86_machdep.c,v 1.136 2020/04/04 14:49:35 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: x86_machdep.c,v 1.137 2020/04/04 19:50:54 christos Exp $");
 
 #include "opt_modular.h"
 #include "opt_physmem.h"
@@ -1160,6 +1160,13 @@ x86_startup(void)
 #endif
 }
 
+const char *
+get_booted_kernel(void)
+{
+	const struct btinfo_bootpath *bibp = lookup_bootinfo(BTINFO_BOOTPATH);
+	return bibp ? bibp->bootpath : NULL;
+}
+
 /* 
  * machine dependent system variables.
  */

Index: src/sys/conf/Makefile.kern.inc
diff -u src/sys/conf/Makefile.kern.inc:1.268 src/sys/conf/Makefile.kern.inc:1.269
--- src/sys/conf/Makefile.kern.inc:1.268	Tue Feb  5 03:33:25 2019
+++ src/sys/conf/Makefile.kern.inc	Sat Apr  4 15:50:54 2020
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.kern.inc,v 1.268 2019/02/05 08:33:25 mrg Exp $
+#	$NetBSD: Makefile.kern.inc,v 1.269 2020/04/04 19:50:54 christos Exp $
 #
 # This file contains common `MI' targets and definitions and it is included
 # at the bottom of each `MD' ${MACHINE}/conf/Makefile.${MACHINE}.
@@ -66,6 +66,9 @@ CPPFLAGS+=	${INCLUDES} ${IDENT} -D_KERNE
 .if !defined(COVERITY_TOP_CONFIG)
 CPPFLAGS+=	-std=gnu99
 .endif
+.if ${KERNEL_DIR:Uno} == "yes"
+CPPFLAGS+=	-DKERNEL_DIR
+.endif
 DEFCOPTS?=	-O2
 COPTS?=		${DEFCOPTS}
 DBG=		# might contain unwanted -Ofoo
@@ -413,10 +416,17 @@ install: install-kernel-${MACHINE_NAME}
 .if !target(install-kernel-${MACHINE_NAME})
 install-kernel-${MACHINE_NAME}:
 .for _K in ${KERNIMAGES}
+.if ${KERNEL_DIR:Uno} == "yes"
+	rm -fr ${DESTDIR}/o${_K}
+	mv ${DESTDIR}/${_K} ${DESTDIR}/o${_K}
+	mkdir -p ${DESTDIR}/${_K}
+	cp ${_K} ${DESTDIR}/${_K}/kernel
+.else
 	rm -f ${DESTDIR}/o${_K}
 	ln ${DESTDIR}/${_K} ${DESTDIR}/o${_K}
 	cp ${_K} ${DESTDIR}/n${_K}
 	mv ${DESTDIR}/n${_K} ${DESTDIR}/${_K}
+.endif
 .endfor
 .endif
 .endif

Index: src/sys/kern/kern_module.c
diff -u src/sys/kern/kern_module.c:1.148 src/sys/kern/kern_module.c:1.149
--- src/sys/kern/kern_module.c:1.148	Fri Mar 20 19:09:01 2020
+++ src/sys/kern/kern_module.c	Sat Apr  4 15:50:54 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_module.c,v 1.148 2020/03/20 23:09:01 pgoyette Exp $	*/
+/*	$NetBSD: kern_module.c,v 1.149 2020/04/04 19:50:54 christos Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_module.c,v 1.148 2020/03/20 23:09:01 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_module.c,v 1.149 2020/04/04 19:50:54 christos Exp $");
 
 #define _MODULE_INTERNAL
 
@@ -421,6 +421,18 @@ module_init(void)
 	module_init_md();
 #endif
 
+#ifdef KERNEL_DIR
+	const char *booted_kernel = get_booted_kernel();
+	if (booted_kernel) {
+		char *ptr = strrchr(booted_kernel, '/');
+		snprintf(module_base, sizeof(module_base), "/%.*s/modules",
+		    (int)(ptr - booted_kernel), booted_kernel);
+	} else {
+		strlcpy(module_base, "/netbsd/modules", sizeof(module_base));
+		printf("Cannot find kernel name, loading modules from \"%s\"\n",
+		    module_base);
+	}
+#else
 	if (!module_machine)
 		module_machine = machine;
 #if __NetBSD_Version__ / 1000000 % 100 == 99	/* -current */
@@ -431,6 +443,7 @@ module_init(void)
 	    module_machine, __NetBSD_Version__ / 100000000,
 	    __NetBSD_Version__ / 1000000 % 100);
 #endif
+#endif
 
 	module_listener = kauth_listen_scope(KAUTH_SCOPE_SYSTEM,
 	    module_listener_cb, NULL);

Index: src/sys/sys/systm.h
diff -u src/sys/sys/systm.h:1.293 src/sys/sys/systm.h:1.294
--- src/sys/sys/systm.h:1.293	Sat Feb  8 02:07:07 2020
+++ src/sys/sys/systm.h	Sat Apr  4 15:50:54 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: systm.h,v 1.293 2020/02/08 07:07:07 maxv Exp $	*/
+/*	$NetBSD: systm.h,v 1.294 2020/04/04 19:50:54 christos Exp $	*/
 
 /*-
  * Copyright (c) 1982, 1988, 1991, 1993
@@ -166,6 +166,8 @@ extern int boothowto;		/* reboot flags, 
 #define	bootverbose	(boothowto & AB_VERBOSE)
 #define	bootquiet	(boothowto & AB_QUIET)
 
+extern const char *get_booted_kernel(void);
+
 extern void (*v_putc)(int); /* Virtual console putc routine */
 
 /*

Reply via email to