diff options
author | dfr <dfr@FreeBSD.org> | 2000-10-04 17:40:24 +0000 |
---|---|---|
committer | dfr <dfr@FreeBSD.org> | 2000-10-04 17:40:24 +0000 |
commit | 53282665dc925c25c4272a93d51c1f42b7e94d4a (patch) | |
tree | 2a01bea12b9796880668289106bfc1096b932226 /sys/kern/kern_linker.c | |
parent | 65239bc8b29cfd0bc50a1eed2c08e35729e1f055 (diff) | |
download | FreeBSD-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.c | 6 |
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++) { |