ARM64 Jamfiles, missed in previous commit

* Use generic c versions of memset and memcpy
   Wwrite fast asm for that later, therefore no need for arch_string.S
 * Disable FDT and DTB until ARM64 is ready
   (WIP: do it later)
 * use ELF64
This commit is contained in:
Fredrik Holmqvist 2021-08-21 14:32:32 +02:00
parent 763968b1a3
commit 5e567c1091
3 changed files with 41 additions and 35 deletions

View File

@ -1,41 +1,43 @@
SubDir HAIKU_TOP src system boot arch arm64 ; SubDir HAIKU_TOP src system boot arch arm64 ;
UseLibraryHeaders [ FDirName libfdt ] ;
UsePrivateHeaders [ FDirName kernel platform $(TARGET_BOOT_PLATFORM) ] ;
SubDirHdrs $(HAIKU_TOP) src add-ons kernel bus_managers fdt ;
# TODO: Is there any reason to recompile arch_string.S here?
local librootArchObjects =
# <src!system!libroot!posix!string!arch!$(TARGET_ARCH)>arch_string.o
arch_string.S
;
local kernelLibArchObjects =
<src!system!kernel!lib!arch!$(TARGET_ARCH)>byteorder.o
<src!system!kernel!lib!arch!$(TARGET_ARCH)>memset.o
;
local platform ; local platform ;
for platform in [ MultiBootSubDirSetup u-boot efi ] {
on $(platform) { local kernelArchSources =
arch_elf.cpp
;
kernelLibGenericSources =
memcpy.c
memset.c
;
local kernelLibArchSources = ;
local librootOsArchSources =
byteorder.S
;
for platform in [ MultiBootSubDirSetup efi ] {
on $(platform) {
DEFINES += _BOOT_MODE ; DEFINES += _BOOT_MODE ;
BootMergeObject [ FGristFiles boot_arch_$(TARGET_KERNEL_ARCH).o ] : BootMergeObject [ FGristFiles boot_arch_$(TARGET_KERNEL_ARCH).o ] :
# Reuse a subset of kernel debugging. $(kernelArchSources)
$(librootArchObjects) $(kernelLibArchSources)
: $(kernelLibGenericSources)
: $(librootOsArchSources)
$(kernelLibArchObjects) arch_cpu.cpp
: # additional flags
; ;
SEARCH on [ FGristFiles arch_elf.cpp $(kernelArchDriverSources) ]
= [ FDirName $(HAIKU_TOP) src system kernel arch $(TARGET_KERNEL_ARCH) ] ;
SEARCH on [ FGristFiles $(kernelGenericDriverSources) ] SEARCH on [ FGristFiles $(kernelArchSources) ]
= [ FDirName $(HAIKU_TOP) src system kernel arch generic ] ; = [ FDirName $(HAIKU_TOP) src system kernel arch arm64 ] ;
SEARCH on [ FGristFiles $(kernelLibGenericSources) ]
SEARCH on [ FGristFiles $(librootArchObjects) ] = [ FDirName $(HAIKU_TOP) src system libroot posix string arch generic ] ;
= [ FDirName $(HAIKU_TOP) src system libroot posix string arch $(TARGET_ARCH) ] ; SEARCH on [ FGristFiles $(kernelLibArchSources) ]
= [ FDirName $(HAIKU_TOP) src system libroot posix string arch arm64 ] ;
SEARCH on [ FGristFiles $(kernelDebugSources) ] SEARCH on [ FGristFiles $(librootOsArchSources) ]
= [ FDirName $(HAIKU_TOP) src system kernel debug ] ; = [ FDirName $(HAIKU_TOP) src system libroot os arch arm64 ] ;
} }
} }

View File

@ -83,6 +83,10 @@ for platform in [ MultiBootSubDirSetup ] {
{ {
DEFINES += BOOT_SUPPORT_ELF32 ; DEFINES += BOOT_SUPPORT_ELF32 ;
} }
case "arm64" :
{
DEFINES += BOOT_SUPPORT_ELF64 ;
}
} }
local kernelC++Header = [ FDirName $(HAIKU_TOP) headers private kernel util local kernelC++Header = [ FDirName $(HAIKU_TOP) headers private kernel util

View File

@ -5,7 +5,7 @@ UsePrivateHeaders [ FDirName kernel platform ] ;
UsePrivateHeaders [ FDirName kernel boot platform efi ] ; UsePrivateHeaders [ FDirName kernel boot platform efi ] ;
UsePrivateHeaders [ FDirName kernel boot arch $(TARGET_KERNEL_ARCH) ] ; UsePrivateHeaders [ FDirName kernel boot arch $(TARGET_KERNEL_ARCH) ] ;
if $(TARGET_ARCH) != x86_64 && $(TARGET_ARCH) != x86 { if $(TARGET_ARCH) != x86_64 && $(TARGET_ARCH) != x86 && $(TARGET_ARCH) != arm64 {
UseLibraryHeaders [ FDirName libfdt ] ; UseLibraryHeaders [ FDirName libfdt ] ;
} }
@ -14,7 +14,7 @@ SubDirHdrs $(HAIKU_TOP) src add-ons kernel partitioning_systems gpt ;
{ {
local defines = _BOOT_MODE _BOOT_PLATFORM_EFI ; local defines = _BOOT_MODE _BOOT_PLATFORM_EFI ;
if $(TARGET_ARCH) != x86_64 && $(TARGET_ARCH) != x86 { if $(TARGET_ARCH) != x86_64 && $(TARGET_ARCH) != x86 && $(TARGET_ARCH) != arm64 {
defines += _BOOT_FDT_SUPPORT ; defines += _BOOT_FDT_SUPPORT ;
} }
@ -42,7 +42,7 @@ local platform_src =
local support_libs ; local support_libs ;
if $(TARGET_ARCH) != x86_64 && $(TARGET_ARCH) != x86 { if $(TARGET_ARCH) != x86_64 && $(TARGET_ARCH) != x86 && $(TARGET_ARCH) != arm64 {
support_libs += boot_fdt.a ; support_libs += boot_fdt.a ;
platform_src += dtb.cpp ; platform_src += dtb.cpp ;
} }