diff options
author | peter <peter@FreeBSD.org> | 1998-11-04 15:20:58 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 1998-11-04 15:20:58 +0000 |
commit | abe415781a54116bcd2e4c69d9ae679300c2d482 (patch) | |
tree | 8b96a55db8b00f48349d29b47c61019c033ffe05 /sys/kern/link_elf.c | |
parent | 7f0987e02d6b66490eb3d84e7441f6e486cc2f7c (diff) | |
download | FreeBSD-src-abe415781a54116bcd2e4c69d9ae679300c2d482.zip FreeBSD-src-abe415781a54116bcd2e4c69d9ae679300c2d482.tar.gz |
The handle for the kernel is common. With this fix, ELF kernels can load
a.out kld modules, and a.out kernels can load ELF kld modules.
Diffstat (limited to 'sys/kern/link_elf.c')
-rw-r--r-- | sys/kern/link_elf.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/sys/kern/link_elf.c b/sys/kern/link_elf.c index b1a4193..6f9a578 100644 --- a/sys/kern/link_elf.c +++ b/sys/kern/link_elf.c @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: link_elf.c,v 1.7 1998/10/16 03:55:00 peter Exp $ + * $Id: link_elf.c,v 1.8 1998/10/25 17:44:51 phk Exp $ */ #include <sys/param.h> @@ -58,13 +58,6 @@ static int link_elf_search_symbol(linker_file_t, caddr_t value, static void link_elf_unload_file(linker_file_t); static void link_elf_unload_module(linker_file_t); -/* - * The file representing the currently running kernel. This contains - * the global symbol table. - */ - -linker_file_t linker_kernel_file; - static struct linker_class_ops link_elf_class_ops = { link_elf_load_module, }; @@ -738,10 +731,11 @@ load_dependancies(linker_file_t lf) /* * All files are dependant on /kernel. */ - linker_kernel_file->refs++; - linker_file_add_dependancy(lf, linker_kernel_file); + if (linker_kernel_file) { + linker_kernel_file->refs++; + linker_file_add_dependancy(lf, linker_kernel_file); + } - for (dp = ef->dynamic; dp->d_tag != DT_NULL; dp++) { if (dp->d_tag == DT_NEEDED) { name = ef->strtab + dp->d_un.d_val; |