From 484a49514f9d3e40c671a28cf8d9627b4049c51a Mon Sep 17 00:00:00 2001 From: Rui Ueyama Date: Wed, 13 Jul 2016 18:40:59 +0000 Subject: [PATCH] Rename VAStart -> ImageBase. NFC. Config members are named after corresponding command line options. This patch renames VAStart ImageBase so that they are in line with --image-base. Differential Revision: http://reviews.llvm.org/D22277 llvm-svn: 275298 --- lld/ELF/Config.h | 2 +- lld/ELF/Driver.cpp | 6 +++--- lld/ELF/OutputSections.cpp | 2 +- lld/ELF/Target.cpp | 6 ++++-- lld/ELF/Target.h | 4 ++-- lld/ELF/Writer.cpp | 4 ++-- 6 files changed, 13 insertions(+), 11 deletions(-) diff --git a/lld/ELF/Config.h b/lld/ELF/Config.h index 8a8cc04b76036..eb1ff9e597baa 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 e88a883b16a93..b90909df58bb2 100644 --- a/lld/ELF/Driver.cpp +++ b/lld/ELF/Driver.cpp @@ -535,12 +535,12 @@ template 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 &F : Files) diff --git a/lld/ELF/OutputSections.cpp b/lld/ELF/OutputSections.cpp index 16833e0aa1595..a3d228c0b22b9 100644 --- a/lld/ELF/OutputSections.cpp +++ b/lld/ELF/OutputSections.cpp @@ -724,7 +724,7 @@ template void DynamicSection::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::DynSymTab->getNumSymbols()}); Add({DT_MIPS_LOCAL_GOTNO, Out::Got->getMipsLocalEntriesNum()}); if (const SymbolBody *B = Out::Got->getMipsFirstGlobalEntry()) diff --git a/lld/ELF/Target.cpp b/lld/ELF/Target.cpp index c27af42803272..8e520fbfaf15a 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 a5ee37d9d5436..c1efb20c38d68 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 @@ class TargetInfo { // 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 3ef7bcdaa2885..214b6d234ee9b 100644 --- a/lld/ELF/Writer.cpp +++ b/lld/ELF/Writer.cpp @@ -1022,7 +1022,7 @@ template void Writer::fixSectionAlignments() { // sections. These are special, we do not include them into output sections // list, but have them to simplify the code. template void Writer::fixHeaders() { - uintX_t BaseVA = ScriptConfig->DoLayout ? 0 : Config->VAStart; + uintX_t BaseVA = ScriptConfig->DoLayout ? 0 : Config->ImageBase; Out::ElfHeader->setVA(BaseVA); uintX_t Off = Out::ElfHeader->getSize(); Out::ProgramHeaders->setVA(Off + BaseVA); @@ -1030,7 +1030,7 @@ template void Writer::fixHeaders() { // Assign VAs (addresses at run-time) to output sections. template void Writer::assignAddresses() { - uintX_t VA = Config->VAStart + Out::ElfHeader->getSize() + + uintX_t VA = Config->ImageBase + Out::ElfHeader->getSize() + Out::ProgramHeaders->getSize(); uintX_t ThreadBssOffset = 0;