summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_linker.c
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>2000-10-04 17:40:24 +0000
committerdfr <dfr@FreeBSD.org>2000-10-04 17:40:24 +0000
commit53282665dc925c25c4272a93d51c1f42b7e94d4a (patch)
tree2a01bea12b9796880668289106bfc1096b932226 /sys/kern/kern_linker.c
parent65239bc8b29cfd0bc50a1eed2c08e35729e1f055 (diff)
downloadFreeBSD-src-53282665dc925c25c4272a93d51c1f42b7e94d4a.zip
FreeBSD-src-53282665dc925c25c4272a93d51c1f42b7e94d4a.tar.gz
Add a workaround for statically linked kernels.
Diffstat (limited to 'sys/kern/kern_linker.c')
-rw-r--r--sys/kern/kern_linker.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/kern/kern_linker.c b/sys/kern/kern_linker.c
index 7c355ac..2060958 100644
--- a/sys/kern/kern_linker.c
+++ b/sys/kern/kern_linker.c
@@ -237,6 +237,8 @@ linker_file_unregister_sysctls(linker_file_t lf)
sysctl_unregister_set(sysctls);
}
+extern struct linker_set modmetadata_set;
+
static int
linker_file_register_modules(linker_file_t lf)
{
@@ -251,6 +253,10 @@ linker_file_register_modules(linker_file_t lf)
modules = (struct linker_set*)
linker_file_lookup_symbol(lf, "modmetadata_set", 0);
+
+ if (!modules && lf == linker_kernel_file)
+ modules = &modmetadata_set;
+
mcount = 0;
if (modules) {
for (mdpp = (struct mod_metadata**)modules->ls_items; *mdpp; mdpp++) {
OpenPOWER on IntegriCloud