#
75c31ae2 |
|
26-Oct-2015 |
Simon South <ssouth@simonsouth.com> |
system: Build using public elf.h header Reduce duplication of code by * Removing from elf_common.h definitions available in os/kernel/elf.h * Deleting elf32.h and elf64.h * Renaming elf_common.h to elf_private.h * Updating source to build using public and private ELF header files together Signed-off-by: Jessica Hamilton <jessica.l.hamilton@gmail.com>
|
#
ccadfaee |
|
22-Jun-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Changed the boot ELF code to use templates and added ELF64 support. The actual implementation of the ELF loading methods have been put into an ELFLoader template class that takes a single template parameter, which is a structure containing all the necessary ELF typedefs. It's a bit verbose, but I thought it was a neater solution than using a bunch of standalone functions with a huge number of template parameters. There is no change to code outside of elf.cpp, the ELF32/ELF64 differences are handled internally.
|
#
f1244978 |
|
22-Jun-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Added an ELF64 version of preloaded_image. * There is now 2 structures, preloaded_elf32_image and preloaded_elf64_image, which both inherit from preloaded_image. * For now I've just hardcoded in use of preloaded_elf32_image, but the bootloader ELF code will shortly be converted to use templates which use the appropriate structure. The kernel will be changed later when I add ELF64 support to it. * All kernel_args data is now compatible between 32-bit and 64-bit kernels.
|
#
04ec719a |
|
26-Jun-2010 |
Andreas Färber <andreas.faerber@web.de> |
Convert line endings to LF In r33670 the svn:eol-style property was dropped, which took care of locally converting the line endings to the user's native style. While most files use Unix-style LF line endings, some files have Windows-style CR LF line endings. Assure that the following r37262 directories use Unix-style line endings: src/system/boot/ src/system/boot/arch/ src/system/boot/arch/ppc/ src/system/boot/loader/ src/system/boot/loader/net/ src/system/boot/platform/ src/system/boot/platform/openfirmware/ src/system/boot/platform/openfirmware/arch/ src/system/boot/platform/openfirmware/arch/ppc/ src/system/kernel/ src/system/kernel/arch/ src/system/kernel/arch/ppc/ src/system/kernel/platform/ src/system/kernel/platform/openfirmware/ headers/private/kernel/ headers/private/kernel/arch/ headers/private/kernel/arch/ppc/ headers/private/kernel/platform/ headers/private/kernel/platform/openfirmware/ headers/private/kernel/boot/ headers/private/kernel/boot/net/ headers/private/kernel/boot/platform/ headers/private/kernel/boot/platform/openfirmware/ This avoids patches containing irrelevant lines unintentionally converted. No functional changes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37265 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
957a1b17 |
|
30-Dec-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Introduced new build system variables {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
|
#
ccadfaeeb577eb5f129adcc1441b92aaf9f5e443 |
|
22-Jun-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Changed the boot ELF code to use templates and added ELF64 support. The actual implementation of the ELF loading methods have been put into an ELFLoader template class that takes a single template parameter, which is a structure containing all the necessary ELF typedefs. It's a bit verbose, but I thought it was a neater solution than using a bunch of standalone functions with a huge number of template parameters. There is no change to code outside of elf.cpp, the ELF32/ELF64 differences are handled internally.
|
#
f1244978152350f9cc010e766d09c2e9ad34dfce |
|
22-Jun-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Added an ELF64 version of preloaded_image. * There is now 2 structures, preloaded_elf32_image and preloaded_elf64_image, which both inherit from preloaded_image. * For now I've just hardcoded in use of preloaded_elf32_image, but the bootloader ELF code will shortly be converted to use templates which use the appropriate structure. The kernel will be changed later when I add ELF64 support to it. * All kernel_args data is now compatible between 32-bit and 64-bit kernels.
|
#
04ec719a7040836b0860309cdf002a2cd156f913 |
|
26-Jun-2010 |
Andreas Färber <andreas.faerber@web.de> |
Convert line endings to LF In r33670 the svn:eol-style property was dropped, which took care of locally converting the line endings to the user's native style. While most files use Unix-style LF line endings, some files have Windows-style CR LF line endings. Assure that the following r37262 directories use Unix-style line endings: src/system/boot/ src/system/boot/arch/ src/system/boot/arch/ppc/ src/system/boot/loader/ src/system/boot/loader/net/ src/system/boot/platform/ src/system/boot/platform/openfirmware/ src/system/boot/platform/openfirmware/arch/ src/system/boot/platform/openfirmware/arch/ppc/ src/system/kernel/ src/system/kernel/arch/ src/system/kernel/arch/ppc/ src/system/kernel/platform/ src/system/kernel/platform/openfirmware/ headers/private/kernel/ headers/private/kernel/arch/ headers/private/kernel/arch/ppc/ headers/private/kernel/platform/ headers/private/kernel/platform/openfirmware/ headers/private/kernel/boot/ headers/private/kernel/boot/net/ headers/private/kernel/boot/platform/ headers/private/kernel/boot/platform/openfirmware/ This avoids patches containing irrelevant lines unintentionally converted. No functional changes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37265 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
957a1b17eb9d13d6dbf164145e82997e16742549 |
|
30-Dec-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Introduced new build system variables {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
|