Index: llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp =================================================================== --- llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp +++ llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp @@ -10,6 +10,7 @@ #include "llvm/BinaryFormat/ELF.h" #include "llvm/ExecutionEngine/JITLink/ELF_x86_64.h" +#include "llvm/ExecutionEngine/JITLink/aarch64.h" #include "llvm/ExecutionEngine/JITLink/x86_64.h" #include "llvm/ExecutionEngine/Orc/DebugUtils.h" #include "llvm/ExecutionEngine/Orc/ExecutionUtils.h" @@ -47,6 +48,11 @@ Endianness = support::endianness::little; EdgeKind = jitlink::x86_64::Pointer64; break; + case Triple::aarch64: + PointerSize = 8; + Endianness = support::endianness::little; + EdgeKind = jitlink::aarch64::Pointer64; + break; default: llvm_unreachable("Unrecognized architecture"); } @@ -274,6 +280,7 @@ bool ELFNixPlatform::supportedTarget(const Triple &TT) { switch (TT.getArch()) { case Triple::x86_64: + case Triple::aarch64: return true; default: return false;