Bug 1900094 - Add telemetry for impressions missing due to domain-to-categories map...
[gecko.git] / build / build-clang / arm64e-hack.patch
blob8856fd2f5b7db3eebab2f066dbc43b5ab674fc34
1 Add hackish support for arm64e to LLD
3 The current lld output is known as arm64e.old. This hack adds the right flag to
4 make it appear as arm64e.
6 An upstreamable solution would be more involved.
8 diff --git a/lld/MachO/Driver.cpp b/lld/MachO/Driver.cpp
9 index 14c111ce9685..45fa7c59c420 100644
10 --- a/lld/MachO/Driver.cpp
11 +++ b/lld/MachO/Driver.cpp
12 @@ -773,8 +773,13 @@ static TargetInfo *createTargetInfo(InputArgList &args) {
13 switch (cpuType) {
14 case CPU_TYPE_X86_64:
15 return createX86_64TargetInfo();
16 - case CPU_TYPE_ARM64:
17 - return createARM64TargetInfo();
18 + case CPU_TYPE_ARM64: {
19 + auto target = createARM64TargetInfo();
20 + if (cpuSubtype == CPU_SUBTYPE_ARM64E) {
21 + target->cpuSubtype = CPU_SUBTYPE_ARM64E | CPU_SUBTYPE_PTRAUTH_ABI;
22 + }
23 + return target;
24 + }
25 case CPU_TYPE_ARM64_32:
26 return createARM64_32TargetInfo();
27 default:
28 diff --git a/lldb/include/lldb/Host/SafeMachO.h b/lldb/include/lldb/Host/SafeMachO.h
29 index 0540383b8c52..a7650f760305 100644
30 --- a/lldb/include/lldb/Host/SafeMachO.h
31 +++ b/lldb/include/lldb/Host/SafeMachO.h
32 @@ -115,6 +115,8 @@
33 #undef CPU_SUBTYPE_MC980000_ALL
34 #undef CPU_SUBTYPE_MC98601
36 +#undef CPU_SUBTYPE_PTRAUTH_ABI
38 #undef VM_PROT_READ
39 #undef VM_PROT_WRITE
40 #undef VM_PROT_EXECUTE
41 diff --git a/llvm/include/llvm/BinaryFormat/MachO.h b/llvm/include/llvm/BinaryFormat/MachO.h
42 index bef70f869520..7dfe5d031381 100644
43 --- a/llvm/include/llvm/BinaryFormat/MachO.h
44 +++ b/llvm/include/llvm/BinaryFormat/MachO.h
45 @@ -1578,6 +1578,7 @@ enum : uint32_t {
46 // Capability bits used in the definition of cpusubtype.
47 CPU_SUBTYPE_MASK = 0xff000000, // Mask for architecture bits
48 CPU_SUBTYPE_LIB64 = 0x80000000, // 64 bit libraries
49 + CPU_SUBTYPE_PTRAUTH_ABI = 0x80000000, // pointer authentication with versioned ABI
51 // Special CPU subtype constants.
52 CPU_SUBTYPE_MULTIPLE = ~0u