[vm] Fix Mac Arm64 AOT

The magic number has the opposite endianness on the arm64 macs.

TEST=locally verified + SDK build

Closes: https://github.com/dart-lang/sdk/issues/54796
Change-Id: I4a66f44e0a32fbc3530bda6ffca177ba14d9dca7
Cq-Include-Trybots: luci.dart.try:vm-aot-mac-release-arm64-try,vm-mac-debug-arm64-try,dart-sdk-mac-arm64-try,pkg-mac-release-arm64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/349661
Reviewed-by: Martin Kustermann <kustermann@google.com>
This commit is contained in:
Daco Harkes 2024-02-01 15:30:08 +00:00
parent fe39068928
commit 24eb977761
2 changed files with 7 additions and 0 deletions

View file

@ -40,6 +40,7 @@ MagicNumberData appjit_magic_number = {8, {0xdc, 0xdc, 0xf6, 0xf6, 0, 0, 0, 0}};
MagicNumberData aotelf_magic_number = {4, {0x7F, 0x45, 0x4C, 0x46, 0x0}};
MagicNumberData aotmacho32_magic_number = {4, {0xFE, 0xED, 0xFA, 0xCE}};
MagicNumberData aotmacho64_magic_number = {4, {0xFE, 0xED, 0xFA, 0xCF}};
MagicNumberData aotmacho64_arm64_magic_number = {4, {0xCF, 0xFA, 0xED, 0xFE}};
MagicNumberData aotcoff_arm32_magic_number = {2, {0x01, 0xC0}};
MagicNumberData aotcoff_arm64_magic_number = {2, {0xAA, 0x64}};
MagicNumberData aotcoff_riscv32_magic_number = {2, {0x50, 0x32}};
@ -409,6 +410,7 @@ DartUtils::MagicNumber DartUtils::SniffForMagicNumber(const char* filename) {
ASSERT(aotelf_magic_number.length <= appjit_magic_number.length);
ASSERT(aotmacho32_magic_number.length <= appjit_magic_number.length);
ASSERT(aotmacho64_magic_number.length <= appjit_magic_number.length);
ASSERT(aotmacho64_arm64_magic_number.length <= appjit_magic_number.length);
ASSERT(aotcoff_arm32_magic_number.length <= appjit_magic_number.length);
ASSERT(aotcoff_arm64_magic_number.length <= appjit_magic_number.length);
ASSERT(aotcoff_riscv32_magic_number.length <= appjit_magic_number.length);
@ -463,6 +465,10 @@ DartUtils::MagicNumber DartUtils::SniffForMagicNumber(const uint8_t* buffer,
return kAotMachO64MagicNumber;
}
if (CheckMagicNumber(buffer, buffer_length, aotmacho64_arm64_magic_number)) {
return kAotMachO64Arm64MagicNumber;
}
if (CheckMagicNumber(buffer, buffer_length, aotcoff_arm32_magic_number)) {
return kAotCoffARM32MagicNumber;
}

View file

@ -248,6 +248,7 @@ class DartUtils {
kAotELFMagicNumber,
kAotMachO32MagicNumber,
kAotMachO64MagicNumber,
kAotMachO64Arm64MagicNumber,
kAotCoffARM32MagicNumber,
kAotCoffARM64MagicNumber,
kAotCoffRISCV32MagicNumber,