EFI: Initial test EFI application

* Only set HAIKU_BOOT_PLATFORM to bios_ia32 if not defined
* Add gnuefi build feature
* Introduce BOOT_LDFLAGS, and move options for passing to linker
  into ArchitectureSetup
* x86_64 compile fixes for warnings in boot loader
* loader/elf.cpp: don't include ELF32 support when targeting EFI
* relocation_func.cpp: copy of the relocation code from gnuefi
  to make _relocate extern "C", and avoid including <efilib.h>
* boot_loader_efi.ld: copy of gnuefi's elf_x86_64_efi.lds,
  modified to include support for C++ constructors, etc. Keep in
  sync with the gnuefi package

Signed-off-by: Jessica Hamilton <[email protected]>
This commit is contained in:
Fredrik Holmqvist
2016-09-02 19:02:29 +12:00
committed by Jessica Hamilton
parent 20e11028aa
commit 211483cb51
27 changed files with 474 additions and 59 deletions
+17
View File
@@ -571,6 +571,23 @@ if [ IsPackageAvailable expat_devel ] {
}
# gnu-efi
if $(TARGET_PACKAGING_ARCH) = x86_64 {
if [ IsPackageAvailable gnuefi ] {
ExtractBuildFeatureArchives gnuefi :
file: base gnuefi
headers: $(developHeadersDir)/gnuefi
headersProtocol: $(developHeadersDir)/gnuefi/protocol
headersArch: $(developHeadersDir)/gnuefi/$(TARGET_ARCH)
libdir: $(libDir)/gnuefi
;
EnableBuildFeatures gnuefi ;
} else {
Echo "gnuefi support not available on $(TARGET_PACKAGING_ARCH)" ;
}
}
# GPL add-ons
if $(HAIKU_INCLUDE_GPL_ADDONS) = 1 {
EnableBuildFeatures gpl ;