mirror of
https://review.haiku-os.org/haiku
synced 2024-11-23 07:18:40 +01:00
build: Add initial ARM64 target.
It will probably be just stubs for the significant future, but, here it is anyway. Regarding the naming: Yes, the official name is "aarch64." However, Linux, FreeBSD, and Zircon all call it "arm64", and so we will do the same. I've configured it initially to be a Clang-only port, making no changes to GCC buildtools whatsoever here. We'll see if that sticks, however.
This commit is contained in:
parent
9a90ee3a38
commit
fb4cc98472
5
configure
vendored
5
configure
vendored
@ -32,7 +32,7 @@ options:
|
||||
directory under "cross-tools". The HAIKU_* tools
|
||||
variables will be set accordingly.
|
||||
<arch> specifies the target architecture, either
|
||||
"x86_gcc2", "x86", "x86_64", "ppc", "m68k", "arm"
|
||||
"x86_gcc2", "x86", "x86_64", "ppc", "m68k", "arm", "arm64"
|
||||
This option and --cross-tools-prefix can be
|
||||
specified multiple times. The first cross tools
|
||||
specify the primary tools, the subsequent ones the
|
||||
@ -254,6 +254,7 @@ standard_gcc_settings()
|
||||
# determine architecture from machine triple
|
||||
case $gccMachine in
|
||||
arm-*) targetCpu=arm;;
|
||||
arm64-*) targetCpu=arm64;;
|
||||
i?86-*) targetCpu=x86;;
|
||||
m68k-*) targetCpu=m68k;;
|
||||
powerpc-*) targetCpu=ppc;;
|
||||
@ -599,6 +600,7 @@ export haikuRequiredLegacyGCCVersion
|
||||
# version of legacy gcc required to build haiku
|
||||
supportedTargetArchs="
|
||||
arm
|
||||
arm64
|
||||
m68k
|
||||
ppc
|
||||
x86
|
||||
@ -706,6 +708,7 @@ while [ $# -gt 0 ] ; do
|
||||
x86_64) targetMachine=x86_64-unknown-haiku;;
|
||||
ppc) targetMachine=powerpc-apple-haiku;;
|
||||
arm) targetMachine=arm-unknown-haiku;;
|
||||
arm64) targetMachine=arm64-unknown-haiku;;
|
||||
*)
|
||||
echo "Unsupported target architecture: $2" >&2
|
||||
exit 1
|
||||
|
@ -56,6 +56,11 @@
|
||||
# define __HAIKU_ARCH_ABI "armeb"
|
||||
# define __HAIKU_ARCH_ARM 1
|
||||
# define __HAIKU_BIG_ENDIAN 1
|
||||
#elif defined(__arm64__)
|
||||
# define __HAIKU_ARCH arm64
|
||||
# define __HAIKU_ARCH_ABI "arm64"
|
||||
# define __HAIKU_ARCH_ARM64 1
|
||||
# define __HAIKU_ARCH_BITS 64
|
||||
#else
|
||||
# error Unsupported architecture!
|
||||
#endif
|
||||
|
@ -186,7 +186,8 @@ typedef struct {
|
||||
#define EM_BLACKFIN 106 /* Analog Devices Blackfin (DSP) processor */
|
||||
#define EM_ARCA 109 /* Arca RISC Microprocessor */
|
||||
#define EM_VIDCORE3 137 /* Broadcom VideoCore III */
|
||||
#define EM_AARCH64 183 /* ARM 64 bit */
|
||||
#define EM_ARM64 183 /* ARM 64 bit */
|
||||
#define EM_AARCH64 EM_ARM64
|
||||
#define EM_AVR32 185 /* AVR-32 */
|
||||
#define EM_STM8 186 /* ST STM8S */
|
||||
#define EM_CUDA 190 /* Nvidia CUDA */
|
||||
|
@ -667,8 +667,8 @@ get_executable_architecture(int fd, const char** _architecture)
|
||||
case EM_ARM:
|
||||
architecture = "arm";
|
||||
break;
|
||||
case EM_AARCH64:
|
||||
architecture = "aarch64";
|
||||
case EM_ARM64:
|
||||
architecture = "arm64";
|
||||
break;
|
||||
case EM_X86_64:
|
||||
architecture = "x86_64";
|
||||
|
Loading…
Reference in New Issue
Block a user