Skip to content

Commit 9f1c62e

Browse files
committed
Use robust check for MIPS architecture when generating the lazy bind resolver symbol.
1 parent 7125b1a commit 9f1c62e

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

view/elf/elfview.cpp

+4-5
Original file line numberDiff line numberDiff line change
@@ -650,7 +650,7 @@ bool ElfView::Init()
650650
vector<string> readWriteDataSectionNames = {".data", ".bss"};
651651
vector<string> readOnlyDataSectionNames = {".rodata", ".dynamic", ".dynsym", ".dynstr", ".ehframe",
652652
".ctors", ".dtors", ".got", ".got2", ".data.rel.ro", ".gnu.hash"};
653-
if ((m_elfSections[i].flags & ELF_SHF_EXECINSTR) || In(sectionNames[i], readOnlyCodeSectionNames))
653+
if ((m_elfSections[i].flags & ELF_SHF_EXECINSTR) || In(sectionNames[i], readOnlyCodeSectionNames))
654654
semantics = ReadOnlyCodeSectionSemantics;
655655
else if (!(m_elfSections[i].flags & ELF_SHF_WRITE) || In(sectionNames[i], readOnlyDataSectionNames))
656656
semantics = ReadOnlyDataSectionSemantics;
@@ -1693,8 +1693,7 @@ bool ElfView::Init()
16931693

16941694
for (auto& s : gotSectionsToCreate)
16951695
{
1696-
// Don't try creating a section if it starts in an already-created
1697-
// section.
1696+
// Don't try creating a section if it starts in an already-created section.
16981697
if (GetSectionsAt(s.first).size() > 0)
16991698
continue;
17001699

@@ -2376,8 +2375,8 @@ bool ElfView::Init()
23762375
DefineAutoSymbol(new Symbol(DataSymbol, "__elf_rela_table", m_relocaSection.offset, NoBinding));
23772376
}
23782377

2379-
// In 32-bit mips with .got, add .extern symbol "RTL_Resolve"
2380-
if (gotStart && In(m_arch->GetName(), {"mips32", "mipsel32", "mips64", "nanomips"}))
2378+
// Create resolver symbol for MIPS load files containing a global offset table
2379+
if (gotStart && (m_arch->GetName().find("mips") != std::string::npos))
23812380
{
23822381
const char *name = "RTL_Resolve";
23832382

0 commit comments

Comments
 (0)