History log of /haiku-fatelf/src/system/kernel/arch/x86/arch_elf.cpp
Revision Date Author Comments
# c1068dff 25-Nov-2012 Landon Fuller <landonf@plausible.coop>

Add initial FatELF boot loader support.


# 416b2b7e 25-Nov-2012 Landon Fuller <landonf@plausible.coop>

Minor arch_elf API improvements

- Renamed arch_elf_score_abi_ident
- Added arch_elf_arch_compat for verifying architecture compatibility between two modules.


# cbbca595 25-Nov-2012 Landon Fuller <landonf@plausible.coop>

Clean up the multiple methods of describing an ELF binary arch.


# 325832f1 24-Nov-2012 Landon Fuller <landonf@plausible.coop>

Use CPUID to determine boot-time long-mode support

When running under an ia32 boot loader, the compile time constants can
not be used to determine x86-64 support. Once the kernel is loaded, we
can assume that 64-bit binaries require a 64-bit kernel -- although
that's not strictly necessary:

Mac OS X supports a 64-bit compatible syscall interface and userspace
execution mode from a 32-bit kernel. That was implemented in large part
to support a 32-bit to 64-bit transition, during which time many
3rd-party kernel extensions had not been updated.


# 6dbfa46a 24-Nov-2012 Landon Fuller <landonf@plausible.coop>

Add _BOOT_MODE arch_elf_score_abi_ident() variant.


# 09dea9d9 24-Nov-2012 Landon Fuller <landonf@plausible.coop>

Add additional missing ABI compatibility checks.


# c3338d91 21-Nov-2012 Landon Fuller <landonf@plausible.coop>

Implement elf_find_best_fat_arch()

Uses the scoring ABI to find the preferred ELF data.


# ad5518e5 21-Nov-2012 Landon Fuller <landonf@plausible.coop>

Fix incorrect declaration


# 49586059 21-Nov-2012 Landon Fuller <landonf@plausible.coop>

Add arch_elf_score_abi_ident() arch-specific API

Provides scoring of binaries to select preferred binary type,
optionally based on CPU feature detection.


# 6e06fa6f 12-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Added missing validity check on relocation address.


# 3b802628 09-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Support ELF64 in the kernel.

This has been done by adding typedefs in elf_common.h to the correct ELF
structures for the architecture, and changing all Elf32_* uses to those
types. I don't know whether image loading works as I cannot test it yet,
there may be some 64-bit safety issues around. However, symbol lookup for
the kernel is working correctly.


# 90907c35 03-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Moved ELF64 relocation functions to x86 arch_elf.cpp.


# f6a34444 24-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Added x86_64 ELF64 relocation functions for the bootloader. All that's left to do now is handle the 64-bit load address properly.


# 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.


# bd185b41 01-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

*.c -> *.cpp


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34417 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c1068dff09dd97ec1e9ee8521906b93eea2f743a 25-Nov-2012 Landon Fuller <landonf@plausible.coop>

Add initial FatELF boot loader support.


# 416b2b7e7ba36e17a0c2841b0de5a52f6c17cf36 25-Nov-2012 Landon Fuller <landonf@plausible.coop>

Minor arch_elf API improvements

- Renamed arch_elf_score_abi_ident
- Added arch_elf_arch_compat for verifying architecture compatibility between two modules.


# cbbca595b2d6bc8aea824f072765880571637e51 25-Nov-2012 Landon Fuller <landonf@plausible.coop>

Clean up the multiple methods of describing an ELF binary arch.


# 325832f133506bf47d62f751a4c2f276f778e92d 24-Nov-2012 Landon Fuller <landonf@plausible.coop>

Use CPUID to determine boot-time long-mode support

When running under an ia32 boot loader, the compile time constants can
not be used to determine x86-64 support. Once the kernel is loaded, we
can assume that 64-bit binaries require a 64-bit kernel -- although
that's not strictly necessary:

Mac OS X supports a 64-bit compatible syscall interface and userspace
execution mode from a 32-bit kernel. That was implemented in large part
to support a 32-bit to 64-bit transition, during which time many
3rd-party kernel extensions had not been updated.


# 6dbfa46a7e7bbe2f78cd30c83637bcb920e299f6 24-Nov-2012 Landon Fuller <landonf@plausible.coop>

Add _BOOT_MODE arch_elf_score_abi_ident() variant.


# 09dea9d9fcf459815e83df934049add92d758ffe 24-Nov-2012 Landon Fuller <landonf@plausible.coop>

Add additional missing ABI compatibility checks.


# c3338d918c8e00f2871893930c9804ca174848c6 21-Nov-2012 Landon Fuller <landonf@plausible.coop>

Implement elf_find_best_fat_arch()

Uses the scoring ABI to find the preferred ELF data.


# ad5518e53d7f822ab1be98dd971c16d07ef617b7 21-Nov-2012 Landon Fuller <landonf@plausible.coop>

Fix incorrect declaration


# 4958605919cfce7be4df3d7f913bd0bcf754b8eb 21-Nov-2012 Landon Fuller <landonf@plausible.coop>

Add arch_elf_score_abi_ident() arch-specific API

Provides scoring of binaries to select preferred binary type,
optionally based on CPU feature detection.


# 6e06fa6f7ea099cec5247fa2e8409c9c8ab3c983 12-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Added missing validity check on relocation address.


# 3b802628b8e2aa14eb4c674d0a8cf900f522baa1 09-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Support ELF64 in the kernel.

This has been done by adding typedefs in elf_common.h to the correct ELF
structures for the architecture, and changing all Elf32_* uses to those
types. I don't know whether image loading works as I cannot test it yet,
there may be some 64-bit safety issues around. However, symbol lookup for
the kernel is working correctly.


# 90907c35ac51e760221470563fdcd90a9232cc51 03-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Moved ELF64 relocation functions to x86 arch_elf.cpp.


# f6a3444449c452a63e0e0d91e8480f39bca81aed 24-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Added x86_64 ELF64 relocation functions for the bootloader. All that's left to do now is handle the 64-bit load address properly.


# 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.


# bd185b4117e06c1674c4d214abc3917acedc560d 01-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

*.c -> *.cpp


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34417 a95241bf-73f2-0310-859d-f6bbb57e9c96