Revert "[lldb] Fix ppc64 detection in lldb"
authorDavid Spickett <david.spickett@linaro.org>
Tue, 3 May 2022 13:24:10 +0000 (13:24 +0000)
committerDavid Spickett <david.spickett@linaro.org>
Tue, 3 May 2022 13:24:10 +0000 (13:24 +0000)
This reverts commit f114f009486816ed4b3bf984f0fbbb8fc80914f6.

Due to hitting an assert on our lldb bots:
https://lab.llvm.org/buildbot/#/builders/96/builds/22715

../llvm-project/lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp:170:
virtual lldb::RegisterContextSP ThreadElfCore::CreateRegisterContextForFrame(
lldb_private::StackFrame *): Assertion `false && "Architecture or OS not supported"' failed.

lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
lldb/source/Utility/ArchSpec.cpp
lldb/test/API/functionalities/postmortem/elf-core/TestLinuxCore.py
lldb/test/API/functionalities/postmortem/elf-core/linux-ppc64.core [deleted file]
lldb/test/API/functionalities/postmortem/elf-core/linux-ppc64.out [deleted file]

index 28ccfbe..684d070 100644 (file)
@@ -310,19 +310,9 @@ static uint32_t riscvVariantFromElfFlags(const elf::ELFHeader &header) {
   }
 }
 
-static uint32_t ppc64VariantFromElfFlags(const elf::ELFHeader &header) {
-  uint32_t endian = header.e_ident[EI_DATA];
-  if (endian == ELFDATA2LSB)
-    return ArchSpec::eCore_ppc64le_generic;
-  else
-    return ArchSpec::eCore_ppc64_generic;
-}
-
 static uint32_t subTypeFromElfHeader(const elf::ELFHeader &header) {
   if (header.e_machine == llvm::ELF::EM_MIPS)
     return mipsVariantFromElfFlags(header);
-  else if (header.e_machine == llvm::ELF::EM_PPC64)
-    return ppc64VariantFromElfFlags(header);
   else if (header.e_machine == llvm::ELF::EM_RISCV)
     return riscvVariantFromElfFlags(header);
 
index c6feacf..963005b 100644 (file)
@@ -358,10 +358,10 @@ static const ArchDefinitionEntry g_elf_arch_entries[] = {
      0xFFFFFFFFu, 0xFFFFFFFFu}, // Intel MCU // FIXME: is this correct?
     {ArchSpec::eCore_ppc_generic, llvm::ELF::EM_PPC, LLDB_INVALID_CPUTYPE,
      0xFFFFFFFFu, 0xFFFFFFFFu}, // PowerPC
-    {ArchSpec::eCore_ppc64le_generic, llvm::ELF::EM_PPC64,
-     ArchSpec::eCore_ppc64le_generic, 0xFFFFFFFFu, 0xFFFFFFFFu}, // PowerPC64le
-    {ArchSpec::eCore_ppc64_generic, llvm::ELF::EM_PPC64,
-     ArchSpec::eCore_ppc64_generic, 0xFFFFFFFFu, 0xFFFFFFFFu}, // PowerPC64
+    {ArchSpec::eCore_ppc64le_generic, llvm::ELF::EM_PPC64, LLDB_INVALID_CPUTYPE,
+     0xFFFFFFFFu, 0xFFFFFFFFu}, // PowerPC64le
+    {ArchSpec::eCore_ppc64_generic, llvm::ELF::EM_PPC64, LLDB_INVALID_CPUTYPE,
+     0xFFFFFFFFu, 0xFFFFFFFFu}, // PowerPC64
     {ArchSpec::eCore_arm_generic, llvm::ELF::EM_ARM, LLDB_INVALID_CPUTYPE,
      0xFFFFFFFFu, 0xFFFFFFFFu}, // ARM
     {ArchSpec::eCore_arm_aarch64, llvm::ELF::EM_AARCH64, LLDB_INVALID_CPUTYPE,
@@ -400,8 +400,8 @@ static const ArchDefinitionEntry g_elf_arch_entries[] = {
      LLDB_INVALID_CPUTYPE, 0xFFFFFFFFu, 0xFFFFFFFFu}, // HEXAGON
     {ArchSpec::eCore_arc, llvm::ELF::EM_ARC_COMPACT2, LLDB_INVALID_CPUTYPE,
      0xFFFFFFFFu, 0xFFFFFFFFu}, // ARC
-    {ArchSpec::eCore_avr, llvm::ELF::EM_AVR, LLDB_INVALID_CPUTYPE, 0xFFFFFFFFu,
-     0xFFFFFFFFu}, // AVR
+    {ArchSpec::eCore_avr, llvm::ELF::EM_AVR, LLDB_INVALID_CPUTYPE,
+     0xFFFFFFFFu, 0xFFFFFFFFu}, // AVR
     {ArchSpec::eCore_riscv32, llvm::ELF::EM_RISCV,
      ArchSpec::eRISCVSubType_riscv32, 0xFFFFFFFFu, 0xFFFFFFFFu}, // riscv32
     {ArchSpec::eCore_riscv64, llvm::ELF::EM_RISCV,
index 14da7f6..d1948b6 100644 (file)
@@ -24,14 +24,12 @@ class LinuxCoreTestCase(TestBase):
     _i386_pid = 32306
     _x86_64_pid = 32259
     _s390x_pid = 1045
-    _ppc64_pid = 28146
     _ppc64le_pid = 28147
 
     _aarch64_regions = 4
     _i386_regions = 4
     _x86_64_regions = 5
     _s390x_regions = 2
-    _ppc64_regions = 2
     _ppc64le_regions = 2
 
     @skipIfLLVMTargetMissing("AArch64")
@@ -51,12 +49,6 @@ class LinuxCoreTestCase(TestBase):
         self.do_test("linux-ppc64le", self._ppc64le_pid, self._ppc64le_regions,
                      "linux-ppc64le.ou")
 
-    @skipIfLLVMTargetMissing("PowerPC")
-    def test_ppc64(self):
-        """Test that lldb can read the process information from an ppc64 linux core file."""
-        self.do_test("linux-ppc64", self._ppc64_pid, self._ppc64_regions,
-                     "linux-ppc64.ou")
-
     @skipIfLLVMTargetMissing("X86")
     def test_x86_64(self):
         """Test that lldb can read the process information from an x86_64 linux core file."""
diff --git a/lldb/test/API/functionalities/postmortem/elf-core/linux-ppc64.core b/lldb/test/API/functionalities/postmortem/elf-core/linux-ppc64.core
deleted file mode 100644 (file)
index fb776e0..0000000
Binary files a/lldb/test/API/functionalities/postmortem/elf-core/linux-ppc64.core and /dev/null differ
diff --git a/lldb/test/API/functionalities/postmortem/elf-core/linux-ppc64.out b/lldb/test/API/functionalities/postmortem/elf-core/linux-ppc64.out
deleted file mode 100755 (executable)
index c1c0871..0000000
Binary files a/lldb/test/API/functionalities/postmortem/elf-core/linux-ppc64.out and /dev/null differ