summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2014-07-12 00:11:34 +0000
committerGreg Clayton <gclayton@apple.com>2014-07-12 00:11:34 +0000
commit44362e06d1a963ac6ed55b01f3c13bc4e1e55a45 (patch)
tree8fab139ebcfbbcb00775a8ca11b9ff1f4713ea0f /lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
parentfb9519838a45547c9acc2434afc9139438e7c700 (diff)
downloadbcm5719-llvm-44362e06d1a963ac6ed55b01f3c13bc4e1e55a45.tar.gz
bcm5719-llvm-44362e06d1a963ac6ed55b01f3c13bc4e1e55a45.zip
Allow generic ARM cores to match any more specific ARM architecture.
<rdar://problem/15932248> llvm-svn: 212863
Diffstat (limited to 'lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp')
-rw-r--r--lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp25
1 files changed, 23 insertions, 2 deletions
diff --git a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
index e7266d2776d..50cdd18a8fb 100644
--- a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
+++ b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
@@ -1251,8 +1251,29 @@ ObjectFileELF::GetSectionHeaderInfo(SectionHeaderColl &section_headers,
if (arch_spec.GetTriple ().getOS () == llvm::Triple::OSType::UnknownOS)
{
arch_spec.SetArchitecture (eArchTypeELF, header.e_machine, LLDB_INVALID_CPUTYPE);
- arch_spec.GetTriple().setOSName (Host::GetOSString().GetCString());
- arch_spec.GetTriple().setVendorName(Host::GetVendorString().GetCString());
+ switch (arch_spec.GetAddressByteSize())
+ {
+ case 4:
+ {
+ const ArchSpec host_arch32 = Host::GetArchitecture (Host::eSystemDefaultArchitecture32);
+ if (host_arch32.GetCore() == arch_spec.GetCore())
+ {
+ arch_spec.GetTriple().setOSName (Host::GetOSString().GetCString());
+ arch_spec.GetTriple().setVendorName(Host::GetVendorString().GetCString());
+ }
+ }
+ break;
+ case 8:
+ {
+ const ArchSpec host_arch64 = Host::GetArchitecture (Host::eSystemDefaultArchitecture64);
+ if (host_arch64.GetCore() == arch_spec.GetCore())
+ {
+ arch_spec.GetTriple().setOSName (Host::GetOSString().GetCString());
+ arch_spec.GetTriple().setVendorName(Host::GetVendorString().GetCString());
+ }
+ }
+ break;
+ }
}
// If there are no section headers we are done.
OpenPOWER on IntegriCloud