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
|
directory under "cross-tools". The HAIKU_* tools
|
||||||
variables will be set accordingly.
|
variables will be set accordingly.
|
||||||
<arch> specifies the target architecture, either
|
<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
|
This option and --cross-tools-prefix can be
|
||||||
specified multiple times. The first cross tools
|
specified multiple times. The first cross tools
|
||||||
specify the primary tools, the subsequent ones the
|
specify the primary tools, the subsequent ones the
|
||||||
@ -254,6 +254,7 @@ standard_gcc_settings()
|
|||||||
# determine architecture from machine triple
|
# determine architecture from machine triple
|
||||||
case $gccMachine in
|
case $gccMachine in
|
||||||
arm-*) targetCpu=arm;;
|
arm-*) targetCpu=arm;;
|
||||||
|
arm64-*) targetCpu=arm64;;
|
||||||
i?86-*) targetCpu=x86;;
|
i?86-*) targetCpu=x86;;
|
||||||
m68k-*) targetCpu=m68k;;
|
m68k-*) targetCpu=m68k;;
|
||||||
powerpc-*) targetCpu=ppc;;
|
powerpc-*) targetCpu=ppc;;
|
||||||
@ -599,6 +600,7 @@ export haikuRequiredLegacyGCCVersion
|
|||||||
# version of legacy gcc required to build haiku
|
# version of legacy gcc required to build haiku
|
||||||
supportedTargetArchs="
|
supportedTargetArchs="
|
||||||
arm
|
arm
|
||||||
|
arm64
|
||||||
m68k
|
m68k
|
||||||
ppc
|
ppc
|
||||||
x86
|
x86
|
||||||
@ -706,6 +708,7 @@ while [ $# -gt 0 ] ; do
|
|||||||
x86_64) targetMachine=x86_64-unknown-haiku;;
|
x86_64) targetMachine=x86_64-unknown-haiku;;
|
||||||
ppc) targetMachine=powerpc-apple-haiku;;
|
ppc) targetMachine=powerpc-apple-haiku;;
|
||||||
arm) targetMachine=arm-unknown-haiku;;
|
arm) targetMachine=arm-unknown-haiku;;
|
||||||
|
arm64) targetMachine=arm64-unknown-haiku;;
|
||||||
*)
|
*)
|
||||||
echo "Unsupported target architecture: $2" >&2
|
echo "Unsupported target architecture: $2" >&2
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -56,6 +56,11 @@
|
|||||||
# define __HAIKU_ARCH_ABI "armeb"
|
# define __HAIKU_ARCH_ABI "armeb"
|
||||||
# define __HAIKU_ARCH_ARM 1
|
# define __HAIKU_ARCH_ARM 1
|
||||||
# define __HAIKU_BIG_ENDIAN 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
|
#else
|
||||||
# error Unsupported architecture!
|
# error Unsupported architecture!
|
||||||
#endif
|
#endif
|
||||||
|
@ -186,7 +186,8 @@ typedef struct {
|
|||||||
#define EM_BLACKFIN 106 /* Analog Devices Blackfin (DSP) processor */
|
#define EM_BLACKFIN 106 /* Analog Devices Blackfin (DSP) processor */
|
||||||
#define EM_ARCA 109 /* Arca RISC Microprocessor */
|
#define EM_ARCA 109 /* Arca RISC Microprocessor */
|
||||||
#define EM_VIDCORE3 137 /* Broadcom VideoCore III */
|
#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_AVR32 185 /* AVR-32 */
|
||||||
#define EM_STM8 186 /* ST STM8S */
|
#define EM_STM8 186 /* ST STM8S */
|
||||||
#define EM_CUDA 190 /* Nvidia CUDA */
|
#define EM_CUDA 190 /* Nvidia CUDA */
|
||||||
|
@ -667,8 +667,8 @@ get_executable_architecture(int fd, const char** _architecture)
|
|||||||
case EM_ARM:
|
case EM_ARM:
|
||||||
architecture = "arm";
|
architecture = "arm";
|
||||||
break;
|
break;
|
||||||
case EM_AARCH64:
|
case EM_ARM64:
|
||||||
architecture = "aarch64";
|
architecture = "arm64";
|
||||||
break;
|
break;
|
||||||
case EM_X86_64:
|
case EM_X86_64:
|
||||||
architecture = "x86_64";
|
architecture = "x86_64";
|
||||||
|
Loading…
Reference in New Issue
Block a user