================
@@ -1568,15 +1569,16 @@ bool Target::SetArchitecture(const ArchSpec &arch_spec, 
bool set_platform,
 
       if (m_arch.GetSpec().IsCompatibleMatch(other)) {
         compatible_local_arch = true;
-        bool arch_changed, vendor_changed, os_changed, os_ver_changed,
-            env_changed;
 
-        m_arch.GetSpec().PiecewiseTripleCompare(other, arch_changed,
-                                                vendor_changed, os_changed,
-                                                os_ver_changed, env_changed);
-
-        if (!arch_changed && !vendor_changed && !os_changed && !env_changed)
+        if (m_arch.GetSpec().GetTriple() == other.GetTriple())
           replace_local_arch = false;
+        // Workaround for for pre-2024 debugserver, which always
+        // returns arm64e on arm64e-capable hardware regardless of
+        // what the process is. This can be deleted at some point in
+        // the future.
----------------
jasonmolenda wrote:

The packet is poorly defined to return a "version" which lldb expects to be 
able to convert to an integer, so what we get today with an Xcode debugserver:

```
(lldb) process plugin packet send qGDBServerVersion
  packet: qGDBServerVersion
response: name:debugserver;version:1500;
```

With github main we'll get the llvm version, so `name:debugserver;version:19;`, 
lol.

This is one of those "version has never been properly/really defined" so we 
could add a "vendor" (llvm.org, apple, linode, etc) and a version *string* that 
might contain more than the major number, the vendor string informing how to 
interpret the version.

https://github.com/llvm/llvm-project/pull/82938
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to