<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/59449>59449</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Compilation error: use of undeclared identifier 'CPU_SUBTYPE_ARM64E'
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          cglong
      </td>
    </tr>
</table>

<pre>
    I'm trying to compile [LLVM through Homebrew](https://github.com/Homebrew/homebrew-core/blob/-/Formula/llvm.rb) on my Mac running High Sierra, but getting the following error:

```
/tmp/llvm-20221211-52371-a9ye6z/llvm-project-15.0.6.src/lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm:236:52: error: use of undeclared identifier 'CPU_SUBTYPE_ARM64E'
    if (cputype == CPU_TYPE_ARM64 && cpusubtype == CPU_SUBTYPE_ARM64E) {
 ^
1 error generated.
make[2]: *** [tools/lldb/source/Host/macosx/objcxx/CMakeFiles/lldbHostMacOSXObjCXX.dir/HostInfoMacOSX.mm.o] Error 1
make[2]: /Applications/Xcode.app/Contents/Developer/usr/bin/make -f tools/lldb/source/Plugins/Platform/QemuUser/CMakeFiles/lldbPluginPlatformQemuUser.dir/build.make tools/lldb/source/Plugins/Platform/QemuUser/CMakeFiles/lldbPluginPlatformQemuUser.dir/depend
```

I'm able to successfully build LLVM by applying this patch (adapted from [a Stack Overflow answer](https://stackoverflow.com/a/69906054/4585461) I was pointed to):

```diff
diff --git a/lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm b/lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm
index e038b7a..0eeede7 100644
--- a/lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm
+++ b/lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm
@@ -233,7 +233,7 @@ void HostInfoMacOSX::ComputeHostArchitectureSupport(ArchSpec &arch_32,
 len = sizeof(is_64_bit_capable);
 ::sysctlbyname("hw.cpu64bit_capable", &is_64_bit_capable, &len, NULL, 0);
 
-    if (cputype == CPU_TYPE_ARM64 && cpusubtype == CPU_SUBTYPE_ARM64E) {
+    if (cputype == CPU_TYPE_ARM64) {
       // The arm64e architecture is a preview. Pretend the host architecture
 // is arm64.
       cpusubtype = CPU_SUBTYPE_ARM64_ALL;
```

While this was able to resolve the issue for me and other High Sierra users, I don't know the best practices for fixing this in a platform-independent way. Is there a way we can conditionally bypass this undefined symbol for High Sierra and below?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8Vk1v4zYT_jX0ZWBBoj5sHXxw7AgbIHk3b7Np01NAUSOLG4oUSCqO99cXpOzsejdbtEhbQ5Apcj6eIWceDrNW7BTiiuQXJN_O2Og6bVZ8J7XazWrdHFZXhC56cOYg1A6cBq77QUgEkl9cX_96A64zetx18EH3WBvck3xL6LJzbrAkXRNaEVrthOvGOuK6J7R6FaRVdxzOuTZIaFVLXRNazQmtKm36UTJCKymf-8jUhJagFfQHuGEczKiUB_RB7Dq4E2gMI3QD9ehgh84FrB1Cq6XUe_-FxmjjAcVbEp_eRXx8pk9auX44epzTmNKEJsk8p-kimbPygMWX0-Jg9Gfkbp7kURwVkTU8rDQevdWj4RgCtY7Qqmdc2xdCK11_5i8vx4Ur1eobxj_ePUR9T9I1TQuSrnNK0vUrVhgtgm5hVA1yyQw2IBpUTrQCDRC62NzeP97dX3z6_fbycf3LTZFdErqYggEAEC0QuuTD6A4DAkm3JN2C1_mqAIQWhBbAh9GO9fdy39sugSwujvZJfjmNkgkv7FChYQ6baJrv2ROS_IL6hEjXQOh6enzmOK2l_TtbtrlhT1gJiSctLznt38f68-bhIWqEeWtrI03yLVwGhMlPgFXrYZCCMye08vYfuG4wYoPPhY1WDpXz01t8RqkH9H5G69-1UAHtE8K8hZ8FdSvHnQiGbyVzrTa-Cv6P_Xhvg60fYpsUTsInyWOE9ShkEwWf_43DBgdUzdsVE94TQ7BaekRgR87R2naU8gABLASeqA_AhkFONNIJCwNzvPMJyho2OGygNbr3ycHgzjH-BB-f0bRS74Epu0fzFrFYL6iPckd-8ZxRlGVcxHlGaJXlyzwrEp-8V7BnFgYtlHfnNKHlzxihEW07TfkRzOc74YC9q8ihfh9HBDRCNfgCGKfLesGiKEbEBheQxHGRZZPIfD5_J9ITHV5Mzz8CnGQxyWKY0zQldLMAQi9eh9PSsxYNnGv700nXG90Po0O_tDa8Ew65Gw3ejcOgjSN06WfvBuSezJjh3WNKCd0ceUqi8pQGVnxB3RK6FPaxyB5r4R45G3zWhjR4pbXg0h4sd7I-KNYjoUtCabeP-DAW2Zmed-OdvmEyzEtUfvS_--tr_x-fe5pO698man-Af83FOb9Pv6nM4FOHwExfZP7v6xGAsMBgMPgscB_BrUGHqgk3b6etO5M9RT0Z9IreXnTm7Ty4HyN7XF9fv27gm1z0W-d7k8AvvtZPpGTQavmMAZmwdvSdgYEegakGtOvQfNtJ-HvXWH9iV9BoRejCwZPS-6Beo3UwGMad4GiDnVa8vLKaUH5Hjkw69-Xq2ROVgz07RHBlvRGDwPw37BE4U8C1aoS_fVggzcPArJ3M-au_FQobsIe-1jL4-xaqD6BGqfckrWbNKm3KtGQzXCXFIl6UtIyXs25F22VWLzNaljylbZ4sKGuTtF4UZbHkFOuZWJ3aHZrES7qMFkUS84QWGV1yxjglWYw9EzIK3Zg2u1nYxlVeZlk5k6xGaUMTSanC_bTHvj7y7cysQstUjztLslgK6-xXK044iatN6CnD_fvO5mc2Grn6k-bTO_6uiSO0CnD9ZRjC-SMAAP__6P55Zg">