[lldb] Stop passing both i386 and i686 in parallel as architectures on Windows
authorMartin Storsjö <martin@martin.st>
Thu, 23 Jun 2022 11:19:47 +0000 (14:19 +0300)
committerMartin Storsjö <martin@martin.st>
Wed, 6 Jul 2022 09:13:36 +0000 (12:13 +0300)
When an object file returns multiple architectures, it is treated
as a fat binary - which really isn't the case of i386 vs i686 where
the object file actually has one architecture.

This allows getting rid of hardcoded architecture triples in
PlatformWindows.

The parallel i386 and i686 architecture strings stem from
5e6f45201f0b62c1e7a24fc396f3ea6e10dc880d / D7120 and
ad587ae4ca143d388c0ec4ef2faa1b5eddedbf67 / D4658.

Differential Revision: https://reviews.llvm.org/D128617

lldb/source/Plugins/ObjectFile/PDB/ObjectFilePDB.cpp
lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp
lldb/source/Plugins/Platform/Windows/PlatformWindows.cpp
lldb/test/Shell/ObjectFile/PECOFF/settings-abi-i686.yaml

index 1c10efe..44c7086 100644 (file)
@@ -137,8 +137,6 @@ size_t ObjectFilePDB::GetModuleSpecifications(
   case PDB_Machine::x86:
     module_arch.SetTriple("i386-pc-windows");
     specs.Append(module_spec);
-    module_arch.SetTriple("i686-pc-windows");
-    specs.Append(module_spec);
     break;
   case PDB_Machine::ArmNT:
     module_arch.SetTriple("armv7-pc-windows");
index fd34ac6..45593e9 100644 (file)
@@ -337,9 +337,6 @@ size_t ObjectFilePECOFF::GetModuleSpecifications(
     spec.SetTriple("i386-pc-windows");
     spec.GetTriple().setEnvironment(env);
     specs.Append(module_spec);
-    spec.SetTriple("i686-pc-windows");
-    spec.GetTriple().setEnvironment(env);
-    specs.Append(module_spec);
     break;
   case MachineArmNt:
     spec.SetTriple("armv7-pc-windows");
index 38f387d..e5e2358 100644 (file)
@@ -124,11 +124,9 @@ PlatformWindows::PlatformWindows(bool is_host) : RemoteAwarePlatform(is_host) {
     if (spec.IsValid())
       m_supported_architectures.push_back(spec);
   };
-  AddArch(ArchSpec("i686-pc-windows"));
   AddArch(HostInfo::GetArchitecture(HostInfo::eArchKindDefault));
   AddArch(HostInfo::GetArchitecture(HostInfo::eArchKind32));
   AddArch(HostInfo::GetArchitecture(HostInfo::eArchKind64));
-  AddArch(ArchSpec("i386-pc-windows"));
 }
 
 Status PlatformWindows::ConnectRemote(Args &args) {
index ca2bac3..5612104 100644 (file)
@@ -18,7 +18,7 @@
 # RUN:   FileCheck -DABI=gnu -DFILENAME=%basename_t.tmp %s
 
 # CHECK-LABEL: image list --triple --basename
-# CHECK-NEXT: i686-pc-windows-[[ABI]] [[FILENAME]]
+# CHECK-NEXT: i386-pc-windows-[[ABI]] [[FILENAME]]
 
 --- !COFF
 OptionalHeader: