summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/ELF/File.h
diff options
context:
space:
mode:
Diffstat (limited to 'lld/lib/ReaderWriter/ELF/File.h')
-rw-r--r--lld/lib/ReaderWriter/ELF/File.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/lld/lib/ReaderWriter/ELF/File.h b/lld/lib/ReaderWriter/ELF/File.h
index 450de6bae38..cbc2fff9895 100644
--- a/lld/lib/ReaderWriter/ELF/File.h
+++ b/lld/lib/ReaderWriter/ELF/File.h
@@ -576,8 +576,12 @@ private:
if (!((rai.r_offset >= symbol->st_value) &&
(rai.r_offset < symbol->st_value + content.size())))
continue;
+ bool isMips64EL = _objFile->isMips64EL();
+ Kind kind = (Kind) rai.getType(isMips64EL);
+ uint32_t symbolIndex = rai.getSymbol(isMips64EL);
auto *ERef = new (_readerStorage)
- ELFReference<ELFT>(&rai, rai.r_offset - symbol->st_value, nullptr);
+ ELFReference<ELFT>(&rai, rai.r_offset - symbol->st_value, nullptr,
+ kind, symbolIndex);
_references.push_back(ERef);
}
@@ -586,8 +590,12 @@ private:
for (auto &ri : rri->second) {
if ((ri.r_offset >= symbol->st_value) &&
(ri.r_offset < symbol->st_value + content.size())) {
+ bool isMips64EL = _objFile->isMips64EL();
+ Kind kind = (Kind) ri.getType(isMips64EL);
+ uint32_t symbolIndex = ri.getSymbol(isMips64EL);
auto *ERef = new (_readerStorage)
- ELFReference<ELFT>(&ri, ri.r_offset - symbol->st_value, nullptr);
+ ELFReference<ELFT>(&ri, ri.r_offset - symbol->st_value, nullptr,
+ kind, symbolIndex);
// Read the addend from the section contents
// TODO : We should move the way lld reads relocations totally from
// ELFObjectFile
OpenPOWER on IntegriCloud