summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/ELF/Config.h2
-rw-r--r--lld/ELF/Driver.cpp6
-rw-r--r--lld/ELF/OutputSections.cpp2
-rw-r--r--lld/ELF/Target.cpp6
-rw-r--r--lld/ELF/Target.h4
-rw-r--r--lld/ELF/Writer.cpp4
6 files changed, 13 insertions, 11 deletions
diff --git a/lld/ELF/Config.h b/lld/ELF/Config.h
index 8a8cc04b760..eb1ff9e597b 100644
--- a/lld/ELF/Config.h
+++ b/lld/ELF/Config.h
@@ -117,7 +117,7 @@ struct Configuration {
ELFKind EKind = ELFNoneKind;
uint16_t EMachine = llvm::ELF::EM_NONE;
uint64_t EntryAddr = -1;
- uint64_t VAStart;
+ uint64_t ImageBase;
unsigned LtoJobs;
unsigned LtoO;
unsigned Optimize;
diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp
index e88a883b16a..b90909df58b 100644
--- a/lld/ELF/Driver.cpp
+++ b/lld/ELF/Driver.cpp
@@ -535,12 +535,12 @@ template <class ELFT> void LinkerDriver::link(opt::InputArgList &Args) {
if (auto *Arg = Args.getLastArg(OPT_image_base)) {
StringRef S = Arg->getValue();
- if (S.getAsInteger(0, Config->VAStart))
+ if (S.getAsInteger(0, Config->ImageBase))
error(Arg->getSpelling() + ": number expected, but got " + S);
- else if ((Config->VAStart % Target->PageSize) != 0)
+ else if ((Config->ImageBase % Target->PageSize) != 0)
warning(Arg->getSpelling() + ": address isn't multiple of page size");
} else {
- Config->VAStart = Target->getVAStart();
+ Config->ImageBase = Target->getImageBase();
}
for (std::unique_ptr<InputFile> &F : Files)
diff --git a/lld/ELF/OutputSections.cpp b/lld/ELF/OutputSections.cpp
index 16833e0aa15..a3d228c0b22 100644
--- a/lld/ELF/OutputSections.cpp
+++ b/lld/ELF/OutputSections.cpp
@@ -724,7 +724,7 @@ template <class ELFT> void DynamicSection<ELFT>::finalize() {
if (Config->EMachine == EM_MIPS) {
Add({DT_MIPS_RLD_VERSION, 1});
Add({DT_MIPS_FLAGS, RHF_NOTPOT});
- Add({DT_MIPS_BASE_ADDRESS, (uintX_t)Target->getVAStart()});
+ Add({DT_MIPS_BASE_ADDRESS, (uintX_t)Target->getImageBase()});
Add({DT_MIPS_SYMTABNO, Out<ELFT>::DynSymTab->getNumSymbols()});
Add({DT_MIPS_LOCAL_GOTNO, Out<ELFT>::Got->getMipsLocalEntriesNum()});
if (const SymbolBody *B = Out<ELFT>::Got->getMipsFirstGlobalEntry())
diff --git a/lld/ELF/Target.cpp b/lld/ELF/Target.cpp
index c27af428032..8e520fbfaf1 100644
--- a/lld/ELF/Target.cpp
+++ b/lld/ELF/Target.cpp
@@ -250,7 +250,9 @@ uint64_t TargetInfo::getImplicitAddend(const uint8_t *Buf,
return 0;
}
-uint64_t TargetInfo::getVAStart() const { return Config->Pic ? 0 : VAStart; }
+uint64_t TargetInfo::getImageBase() const {
+ return Config->Pic ? 0 : ImageBase;
+}
bool TargetInfo::usesOnlyLowPageBits(uint32_t Type) const { return false; }
@@ -989,7 +991,7 @@ PPC64TargetInfo::PPC64TargetInfo() {
//
// And because the lowest non-zero 256M boundary is 0x10000000, PPC64 linkers
// use 0x10000000 as the starting address.
- VAStart = 0x10000000;
+ ImageBase = 0x10000000;
}
static uint64_t PPC64TocOffset = 0x8000;
diff --git a/lld/ELF/Target.h b/lld/ELF/Target.h
index a5ee37d9d54..c1efb20c38d 100644
--- a/lld/ELF/Target.h
+++ b/lld/ELF/Target.h
@@ -23,7 +23,7 @@ class SymbolBody;
class TargetInfo {
public:
- uint64_t getVAStart() const;
+ uint64_t getImageBase() const;
virtual bool isTlsInitialExecRel(uint32_t Type) const;
virtual bool isTlsLocalDynamicRel(uint32_t Type) const;
virtual bool isTlsGlobalDynamicRel(uint32_t Type) const;
@@ -70,7 +70,7 @@ public:
// Given that, the smallest value that can be used in here is 0x10000.
// If using 2MB pages, the smallest page aligned address that works is
// 0x200000, but it looks like every OS uses 4k pages for executables.
- uint64_t VAStart = 0x10000;
+ uint64_t ImageBase = 0x10000;
uint32_t CopyRel;
uint32_t GotRel;
diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp
index 3ef7bcdaa28..214b6d234ee 100644
--- a/lld/ELF/Writer.cpp
+++ b/lld/ELF/Writer.cpp
@@ -1022,7 +1022,7 @@ template <class ELFT> void Writer<ELFT>::fixSectionAlignments() {
// sections. These are special, we do not include them into output sections
// list, but have them to simplify the code.
template <class ELFT> void Writer<ELFT>::fixHeaders() {
- uintX_t BaseVA = ScriptConfig->DoLayout ? 0 : Config->VAStart;
+ uintX_t BaseVA = ScriptConfig->DoLayout ? 0 : Config->ImageBase;
Out<ELFT>::ElfHeader->setVA(BaseVA);
uintX_t Off = Out<ELFT>::ElfHeader->getSize();
Out<ELFT>::ProgramHeaders->setVA(Off + BaseVA);
@@ -1030,7 +1030,7 @@ template <class ELFT> void Writer<ELFT>::fixHeaders() {
// Assign VAs (addresses at run-time) to output sections.
template <class ELFT> void Writer<ELFT>::assignAddresses() {
- uintX_t VA = Config->VAStart + Out<ELFT>::ElfHeader->getSize() +
+ uintX_t VA = Config->ImageBase + Out<ELFT>::ElfHeader->getSize() +
Out<ELFT>::ProgramHeaders->getSize();
uintX_t ThreadBssOffset = 0;
OpenPOWER on IntegriCloud