================ @@ -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