summaryrefslogtreecommitdiffstats
path: root/sys/kern/link_elf_obj.c
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1998-11-04 15:20:58 +0000
committerpeter <peter@FreeBSD.org>1998-11-04 15:20:58 +0000
commitabe415781a54116bcd2e4c69d9ae679300c2d482 (patch)
tree8b96a55db8b00f48349d29b47c61019c033ffe05 /sys/kern/link_elf_obj.c
parent7f0987e02d6b66490eb3d84e7441f6e486cc2f7c (diff)
downloadFreeBSD-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_obj.c')
-rw-r--r--sys/kern/link_elf_obj.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/sys/kern/link_elf_obj.c b/sys/kern/link_elf_obj.c
index b1a4193..6f9a578 100644
--- a/sys/kern/link_elf_obj.c
+++ b/sys/kern/link_elf_obj.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;
OpenPOWER on IntegriCloud