build: initial support for ppc64

https://review.haiku-os.org/c/buildtools/+/2784

Change-Id: If429e20752712224ffc2afb0c32ca94d14a8b7a8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10809
Haiku-Format: Haiku-format Bot <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
This commit is contained in:
SED4906
2026-06-05 10:52:04 +00:00
committed by Adrien Destugues
parent 61fec68746
commit c12b2aba11
5 changed files with 29 additions and 0 deletions
+8
View File
@@ -231,6 +231,14 @@ rule KernelArchitectureSetup architecture
# offset in floppy image (>= sizeof(haiku_loader)) # offset in floppy image (>= sizeof(haiku_loader))
HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 384 ; # in kB HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 384 ; # in kB
case ppc64 :
HAIKU_KERNEL_PLATFORM ?= openfirmware ;
HAIKU_BOOT_TARGETS += openfirmware ;
HAIKU_BOOT_FLOPPY_IMAGE_SIZE = 1440 ; # in kB
# offset in floppy image (>= sizeof(haiku_loader))
HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 384 ; # in kB
case sparc : case sparc :
HAIKU_KERNEL_PLATFORM ?= openfirmware ; HAIKU_KERNEL_PLATFORM ?= openfirmware ;
HAIKU_BOOT_TARGETS += openfirmware ; HAIKU_BOOT_TARGETS += openfirmware ;
+10
View File
@@ -82,6 +82,16 @@ powerpc-*)
binutilsConfigureArgs="$binutilsConfigureArgs --disable-tls" binutilsConfigureArgs="$binutilsConfigureArgs --disable-tls"
gccConfigureArgs="$gccConfigureArgs --disable-tls" gccConfigureArgs="$gccConfigureArgs --disable-tls"
;; ;;
powerpc64-*)
binutilsConfigureArgs="--disable-multilib"
gccConfigureArgs="--disable-multilib"
gdbConfigureArgs="--disable-multilib --disable-werror"
gdbTarget="powerpc64-unknown-elf"
# TODO: Disable building with TLS support for PPC64 until implemented.
binutilsConfigureArgs="$binutilsConfigureArgs --disable-tls"
gccConfigureArgs="$gccConfigureArgs --disable-tls"
;;
*) *)
binutilsConfigureArgs="--disable-multilib" binutilsConfigureArgs="--disable-multilib"
gccConfigureArgs="--disable-multilib" gccConfigureArgs="--disable-multilib"
+3
View File
@@ -19,6 +19,9 @@ case "$1" in
"ppc") "ppc")
echo "powerpc-apple-haiku" echo "powerpc-apple-haiku"
;; ;;
"ppc64")
echo "powerpc64-unknown-haiku"
;;
"sparc") "sparc")
echo "sparc64-unknown-haiku" echo "sparc64-unknown-haiku"
;; ;;
Vendored
+4
View File
@@ -289,6 +289,7 @@ standard_gcc_settings()
i?86-*) targetCpu=x86;; i?86-*) targetCpu=x86;;
m68k-*) targetCpu=m68k;; m68k-*) targetCpu=m68k;;
powerpc-*) targetCpu=ppc;; powerpc-*) targetCpu=ppc;;
powerpc64-*) targetCpu=ppc64;;
riscv64-*) targetCpu=riscv64;; riscv64-*) targetCpu=riscv64;;
sparc64-*) targetCpu=sparc;; sparc64-*) targetCpu=sparc;;
x86_64-*) targetCpu=x86_64;; x86_64-*) targetCpu=x86_64;;
@@ -696,6 +697,7 @@ supportedTargetArchs="
arm64 arm64
m68k m68k
ppc ppc
ppc64
riscv64 riscv64
sparc sparc
x86 x86
@@ -747,6 +749,7 @@ while [ $# -gt 0 ] ; do
x86) targetMachine=i586-pc-haiku;; x86) targetMachine=i586-pc-haiku;;
x86_64) targetMachine=x86_64-unknown-haiku;; x86_64) targetMachine=x86_64-unknown-haiku;;
ppc) targetMachine=powerpc-apple-haiku;; ppc) targetMachine=powerpc-apple-haiku;;
ppc64) targetMachine=powerpc64-unknown-haiku;;
m68k) targetMachine=m68k-unknown-haiku;; m68k) targetMachine=m68k-unknown-haiku;;
arm) targetMachine=arm-unknown-haiku;; arm) targetMachine=arm-unknown-haiku;;
arm64) targetMachine=aarch64-unknown-haiku;; arm64) targetMachine=aarch64-unknown-haiku;;
@@ -808,6 +811,7 @@ while [ $# -gt 0 ] ; do
x86) targetMachine=i586-pc-haiku;; x86) targetMachine=i586-pc-haiku;;
x86_64) targetMachine=x86_64-unknown-haiku;; x86_64) targetMachine=x86_64-unknown-haiku;;
ppc) targetMachine=powerpc-apple-haiku;; ppc) targetMachine=powerpc-apple-haiku;;
ppc64) targetMachine=powerpc64-unknown-haiku;;
arm) targetMachine=arm-unknown-haiku;; arm) targetMachine=arm-unknown-haiku;;
arm64) targetMachine=aarch64-unknown-haiku;; arm64) targetMachine=aarch64-unknown-haiku;;
riscv64) targetMachine=riscv64-unknown-haiku;; riscv64) targetMachine=riscv64-unknown-haiku;;
+4
View File
@@ -12,6 +12,8 @@ rule BuildOpenFirmwareLoader {
switch $(TARGET_ARCH) { switch $(TARGET_ARCH) {
case ppc : case ppc :
BuildCoffLoader $(haikuLoader) : $(bootLoader) ; BuildCoffLoader $(haikuLoader) : $(bootLoader) ;
case ppc64 :
BuildCoffLoader $(haikuLoader) : $(bootLoader) ;
case sparc : case sparc :
BuildAoutLoader $(haikuLoader) : $(bootLoader) ; BuildAoutLoader $(haikuLoader) : $(bootLoader) ;
case * : case * :
@@ -50,6 +52,8 @@ rule BuildCoffLoader {
switch $(TARGET_ARCH) { switch $(TARGET_ARCH) {
case ppc : case ppc :
COFF_FORMAT on $(coffLoader) = xcoff-powermac ; COFF_FORMAT on $(coffLoader) = xcoff-powermac ;
case ppc64 :
COFF_FORMAT on $(coffLoader) = xcoff-powermac ;
case * : case * :
Exit "Currently unsupported coff arch:" $(TARGET_ARCH) ; Exit "Currently unsupported coff arch:" $(TARGET_ARCH) ;
} }