Index: src/common/mac/arch_utilities.cc |
diff --git a/src/common/mac/arch_utilities.cc b/src/common/mac/arch_utilities.cc |
index 972a3daea2389bb8af51efde908fef032f05eac9..94e3be3b0078d582a81a591391080f3ef3e2f492 100644 |
--- a/src/common/mac/arch_utilities.cc |
+++ b/src/common/mac/arch_utilities.cc |
@@ -45,8 +45,27 @@ |
#define CPU_SUBTYPE_ARM_V7S (static_cast<cpu_subtype_t>(11)) |
#endif // CPU_SUBTYPE_ARM_V7S |
+#ifndef CPU_TYPE_ARM64 |
+#define CPU_TYPE_ARM64 (static_cast<cpu_type_t>(16777228)) |
+#endif // CPU_TYPE_ARM64 |
+ |
+#ifndef CPU_SUBTYPE_ARM64_ALL |
+#define CPU_SUBTYPE_ARM64_ALL (static_cast<cpu_type_t>(0)) |
+#endif // CPU_SUBTYPE_ARM64_ALL |
+ |
namespace { |
+const NXArchInfo* ArchInfo_arm64() { |
+ NXArchInfo* arm64 = new NXArchInfo; |
+ *arm64 = *NXGetArchInfoFromCpuType(CPU_TYPE_ARM, |
+ CPU_SUBTYPE_ARM_V7); |
+ arm64->name = "arm64"; |
+ arm64->cputype = CPU_TYPE_ARM64; |
+ arm64->cpusubtype = CPU_SUBTYPE_ARM64_ALL; |
+ arm64->description = "arm 64"; |
+ return arm64; |
+} |
+ |
const NXArchInfo* ArchInfo_armv7s() { |
NXArchInfo* armv7s = new NXArchInfo; |
*armv7s = *NXGetArchInfoFromCpuType(CPU_TYPE_ARM, |
@@ -62,19 +81,32 @@ const NXArchInfo* ArchInfo_armv7s() { |
namespace google_breakpad { |
const NXArchInfo* BreakpadGetArchInfoFromName(const char* arch_name) { |
+ // TODO: Remove this when the OS knows about arm64. |
+ if (!strcmp("arm64", arch_name)) |
+ return BreakpadGetArchInfoFromCpuType(CPU_TYPE_ARM64, |
+ CPU_SUBTYPE_ARM64_ALL); |
+ |
// TODO: Remove this when the OS knows about armv7s. |
if (!strcmp("armv7s", arch_name)) |
return BreakpadGetArchInfoFromCpuType(CPU_TYPE_ARM, CPU_SUBTYPE_ARM_V7S); |
+ |
return NXGetArchInfoFromName(arch_name); |
} |
const NXArchInfo* BreakpadGetArchInfoFromCpuType(cpu_type_t cpu_type, |
cpu_subtype_t cpu_subtype) { |
+ // TODO: Remove this when the OS knows about arm64. |
+ if (cpu_type == CPU_TYPE_ARM64 && cpu_subtype == CPU_SUBTYPE_ARM64_ALL) { |
+ static const NXArchInfo* arm64 = ArchInfo_arm64(); |
+ return arm64; |
+ } |
+ |
// TODO: Remove this when the OS knows about armv7s. |
if (cpu_type == CPU_TYPE_ARM && cpu_subtype == CPU_SUBTYPE_ARM_V7S) { |
static const NXArchInfo* armv7s = ArchInfo_armv7s(); |
return armv7s; |
} |
+ |
return NXGetArchInfoFromCpuType(cpu_type, cpu_subtype); |
} |