summaryrefslogtreecommitdiffstats
path: root/sys/kern/link_elf_obj.c
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2001-09-03 04:37:55 +0000
committerpeter <peter@FreeBSD.org>2001-09-03 04:37:55 +0000
commita2d9846554d3e9751deea4ac1dc23bc058abe6d7 (patch)
tree85a415a3c1ff534f20690cf82daed5fdb41a1555 /sys/kern/link_elf_obj.c
parent3459efd284d5fbe3b8a1b7157c1d30cacdb5c82a (diff)
downloadFreeBSD-src-a2d9846554d3e9751deea4ac1dc23bc058abe6d7.zip
FreeBSD-src-a2d9846554d3e9751deea4ac1dc23bc058abe6d7.tar.gz
Argh. Make the ia64 kernel work in all situations. For some reason,
and I still dont know why, this was not failing on the non-kse kernel. It certainly should have since things were using linker_kernel_file unconditionally. This has highlighted a different problem though that means that trying to do a kldload on a non-dynamic kernel will implode.
Diffstat (limited to 'sys/kern/link_elf_obj.c')
-rw-r--r--sys/kern/link_elf_obj.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/sys/kern/link_elf_obj.c b/sys/kern/link_elf_obj.c
index 0f6a87a..d075281 100644
--- a/sys/kern/link_elf_obj.c
+++ b/sys/kern/link_elf_obj.c
@@ -161,9 +161,7 @@ r_debug_state(struct r_debug *dummy_one __unused,
/*
* The kernel symbol table starts here.
*/
-#ifndef __ia64__
extern struct _dynamic _DYNAMIC;
-#endif
static void
link_elf_init(void* arg)
@@ -186,7 +184,7 @@ link_elf_init(void* arg)
#else
dp = 0;
#endif
- if (dp) {
+ if (1) {
modname = NULL;
modptr = preload_search_by_type("elf kernel");
if (modptr)
@@ -205,7 +203,8 @@ link_elf_init(void* arg)
#endif
ef->dynamic = dp;
- parse_dynamic(ef);
+ if (dp)
+ parse_dynamic(ef);
linker_kernel_file->address = (caddr_t) KERNBASE;
linker_kernel_file->size = -(intptr_t)linker_kernel_file->address;
OpenPOWER on IntegriCloud