957a1b17eb
{HAIKU,HOST,TARGET}_KERNEL_PIC_{CC,LINK}FLAGS which define the compiler/linker flags specifying the kind of position independence the kernel shall have. For x86 we had and still have -fno-pic, but the PPC kernel has -fPIE (position independent executable) now, as we need to relocate it. * The boot loader relocates the kernel now. Mostly copied the relocation code from the kernel ELF loader. Almost completely rewrote the PPC specific relocation code, though. It's more correct and more complete now (some things are still missing though). * Added boot platform awareness to the kernel. Moved the generic Open Firmware code (openfirmware.c/h) from the boot loader to the kernel. * The kernel PPC serial debug output is sent to the console for the time being. * The PPC boot loader counts the CPUs now and allocates the kernel stacks (made OF device iteration a bit more flexible on the way -- the search can be restricted to subtree). Furthermore we really enter the kernel... (Yay! :-) ... and crash in the first dprintf() (in the atomic_set() called by acquire_spinlock()). kprintf() works, though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15756 a95241bf-73f2-0310-859d-f6bbb57e9c96
29 lines
599 B
C
29 lines
599 B
C
/*
|
|
* Copyright 2005, Ingo Weinhold <bonefish@cs.tu-berlin.de>.
|
|
* Distributed under the terms of the MIT License.
|
|
*/
|
|
#ifndef KERNEL_BOOT_ARCH_H
|
|
#define KERNEL_BOOT_ARCH_H
|
|
|
|
#include <SupportDefs.h>
|
|
#include <boot/elf.h>
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* ELF support */
|
|
|
|
extern status_t boot_arch_elf_relocate_rel(struct preloaded_image *image,
|
|
struct Elf32_Rel *rel, int rel_len);
|
|
extern status_t boot_arch_elf_relocate_rela(struct preloaded_image *image,
|
|
struct Elf32_Rela *rel, int rel_len);
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* KERNEL_BOOT_ARCH_H */
|