[Lldb-commits] [lldb] 3f91bdf - Revert "Replace ArchSpec::PiecewiseCompare() with Triple::operator==()"
Adrian Prantl via lldb-commits
lldb-commits at lists.llvm.org
Fri Feb 23 15:26:23 PST 2024
Author: Adrian Prantl
Date: 2024-02-23T15:26:14-08:00
New Revision: 3f91bdfdd50aa4eaf1d3e49cf797220cfeccaf16
URL: https://github.com/llvm/llvm-project/commit/3f91bdfdd50aa4eaf1d3e49cf797220cfeccaf16
DIFF: https://github.com/llvm/llvm-project/commit/3f91bdfdd50aa4eaf1d3e49cf797220cfeccaf16.diff
LOG: Revert "Replace ArchSpec::PiecewiseCompare() with Triple::operator==()"
This reverts commit 5e6bed8c0ea2f7fe380127763c8f753adae0fc1b while investigating the bots.
Added:
Modified:
lldb/include/lldb/Utility/ArchSpec.h
lldb/source/Target/Target.cpp
lldb/source/Utility/ArchSpec.cpp
Removed:
lldb/test/API/macosx/arm64e-attach/Makefile
lldb/test/API/macosx/arm64e-attach/TestArm64eAttach.py
lldb/test/API/macosx/arm64e-attach/main.c
################################################################################
diff --git a/lldb/include/lldb/Utility/ArchSpec.h b/lldb/include/lldb/Utility/ArchSpec.h
index 50830b889b9115..a226a3a5a9b71d 100644
--- a/lldb/include/lldb/Utility/ArchSpec.h
+++ b/lldb/include/lldb/Utility/ArchSpec.h
@@ -505,6 +505,11 @@ class ArchSpec {
bool IsFullySpecifiedTriple() const;
+ void PiecewiseTripleCompare(const ArchSpec &other, bool &arch_
diff erent,
+ bool &vendor_
diff erent, bool &os_
diff erent,
+ bool &os_version_
diff erent,
+ bool &env_
diff erent) const;
+
/// Detect whether this architecture uses thumb code exclusively
///
/// Some embedded ARM chips (e.g. the ARM Cortex M0-7 line) can only execute
diff --git a/lldb/source/Target/Target.cpp b/lldb/source/Target/Target.cpp
index e982a30a3ae4ff..e17bfcb5d5e2ad 100644
--- a/lldb/source/Target/Target.cpp
+++ b/lldb/source/Target/Target.cpp
@@ -1568,8 +1568,14 @@ 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;
- if (m_arch.GetSpec().GetTriple() == other.GetTriple())
+ 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)
replace_local_arch = false;
}
}
diff --git a/lldb/source/Utility/ArchSpec.cpp b/lldb/source/Utility/ArchSpec.cpp
index 07ef435ef451d2..fb0e985a0d5657 100644
--- a/lldb/source/Utility/ArchSpec.cpp
+++ b/lldb/source/Utility/ArchSpec.cpp
@@ -1421,6 +1421,23 @@ bool ArchSpec::IsFullySpecifiedTriple() const {
return true;
}
+void ArchSpec::PiecewiseTripleCompare(
+ const ArchSpec &other, bool &arch_
diff erent, bool &vendor_
diff erent,
+ bool &os_
diff erent, bool &os_version_
diff erent, bool &env_
diff erent) const {
+ const llvm::Triple &me(GetTriple());
+ const llvm::Triple &them(other.GetTriple());
+
+ arch_
diff erent = (me.getArch() != them.getArch());
+
+ vendor_
diff erent = (me.getVendor() != them.getVendor());
+
+ os_
diff erent = (me.getOS() != them.getOS());
+
+ os_version_
diff erent = (me.getOSMajorVersion() != them.getOSMajorVersion());
+
+ env_
diff erent = (me.getEnvironment() != them.getEnvironment());
+}
+
bool ArchSpec::IsAlwaysThumbInstructions() const {
std::string Status;
if (GetTriple().getArch() == llvm::Triple::arm ||
diff --git a/lldb/test/API/macosx/arm64e-attach/Makefile b/lldb/test/API/macosx/arm64e-attach/Makefile
deleted file mode 100644
index c9319d6e6888a4..00000000000000
--- a/lldb/test/API/macosx/arm64e-attach/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-C_SOURCES := main.c
-include Makefile.rules
diff --git a/lldb/test/API/macosx/arm64e-attach/TestArm64eAttach.py b/lldb/test/API/macosx/arm64e-attach/TestArm64eAttach.py
deleted file mode 100644
index 0dc8700ed02dd8..00000000000000
--- a/lldb/test/API/macosx/arm64e-attach/TestArm64eAttach.py
+++ /dev/null
@@ -1,28 +0,0 @@
-import lldb
-from lldbsuite.test.decorators import *
-from lldbsuite.test.lldbtest import *
-from lldbsuite.test import lldbutil
-
-
-class TestArm64eAttach(TestBase):
- NO_DEBUG_INFO_TESTCASE = True
-
- # On Darwin systems, arch arm64e means ARMv8.3 with ptrauth ABI used.
- @skipIf(archs=no_match(["arm64e"]))
- def test(self):
- # Skip this test if not running on AArch64 target that supports PAC
- if not self.isAArch64PAuth():
- self.skipTest("Target must support pointer authentication.")
- self.build()
- popen = self.spawnSubprocess(self.getBuildArtifact(), [])
- error = lldb.SBError()
- # This simulates how Xcode attaches to a process by pid/name.
- target = self.dbg.CreateTarget("", "arm64", "", True, error)
- listener = lldb.SBListener("my.attach.listener")
- process = target.AttachToProcessWithID(listener, popen.pid, error)
- self.assertSuccess(error)
- self.assertTrue(process, PROCESS_IS_VALID)
- self.assertEqual(target.GetTriple().split('-')[0], "arm64e",
- "target triple is updated correctly")
- error = process.Kill()
- self.assertSuccess(error)
diff --git a/lldb/test/API/macosx/arm64e-attach/main.c b/lldb/test/API/macosx/arm64e-attach/main.c
deleted file mode 100644
index 7baf2ffd8f2899..00000000000000
--- a/lldb/test/API/macosx/arm64e-attach/main.c
+++ /dev/null
@@ -1,2 +0,0 @@
-int getchar();
-int main() { return getchar(); }
More information about the lldb-commits
mailing list