summaryrefslogtreecommitdiffstats
path: root/lld/COFF/Chunks.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lld/COFF/Chunks.cpp')
-rw-r--r--lld/COFF/Chunks.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/lld/COFF/Chunks.cpp b/lld/COFF/Chunks.cpp
index 30a1364cfe9..daf2ff681b5 100644
--- a/lld/COFF/Chunks.cpp
+++ b/lld/COFF/Chunks.cpp
@@ -221,6 +221,15 @@ void ImportThunkChunk::writeTo(uint8_t *Buf) {
write32le(Buf + FileOff + 2, Operand);
}
+void LocalImportChunk::getBaserels(std::vector<uint32_t> *Res,
+ Defined *ImageBase) {
+ Res->push_back(getRVA() + Config->ImageBase);
+}
+
+void LocalImportChunk::writeTo(uint8_t *Buf) {
+ write64le(Buf + FileOff, Sym->getRVA() + Config->ImageBase);
+}
+
// Windows-specific.
// This class represents a block in .reloc section.
BaserelChunk::BaserelChunk(uint32_t Page, uint32_t *Begin, uint32_t *End) {
@@ -237,10 +246,6 @@ BaserelChunk::BaserelChunk(uint32_t Page, uint32_t *Begin, uint32_t *End) {
}
}
-void LocalImportChunk::writeTo(uint8_t *Buf) {
- write32le(Buf + FileOff, Sym->getRVA());
-}
-
void BaserelChunk::writeTo(uint8_t *Buf) {
memcpy(Buf + FileOff, Data.data(), Data.size());
}
OpenPOWER on IntegriCloud