diff options
author | peter <peter@FreeBSD.org> | 2001-09-03 04:37:55 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2001-09-03 04:37:55 +0000 |
commit | a2d9846554d3e9751deea4ac1dc23bc058abe6d7 (patch) | |
tree | 85a415a3c1ff534f20690cf82daed5fdb41a1555 /sys | |
parent | 3459efd284d5fbe3b8a1b7157c1d30cacdb5c82a (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/kern/link_elf.c | 7 | ||||
-rw-r--r-- | sys/kern/link_elf_obj.c | 7 |
2 files changed, 6 insertions, 8 deletions
diff --git a/sys/kern/link_elf.c b/sys/kern/link_elf.c index 0f6a87a..d075281 100644 --- a/sys/kern/link_elf.c +++ b/sys/kern/link_elf.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; 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; |