diff options
-rw-r--r-- | lld/ELF/LinkerScript.cpp | 10 | ||||
-rw-r--r-- | lld/ELF/LinkerScript.h | 7 |
2 files changed, 8 insertions, 9 deletions
diff --git a/lld/ELF/LinkerScript.cpp b/lld/ELF/LinkerScript.cpp index 4ee9e1ba374..7da00fa4224 100644 --- a/lld/ELF/LinkerScript.cpp +++ b/lld/ELF/LinkerScript.cpp @@ -81,7 +81,7 @@ static bool isUnderSysroot(StringRef Path) { template <class ELFT> void LinkerScript<ELFT>::setDot(Expr E, const Twine &Loc, bool InSec) { - uintX_t Val = E(); + uint64_t Val = E(); if (Val < Dot) { if (InSec) error(Loc + ": unable to move location counter backward for: " + @@ -398,7 +398,7 @@ template <class ELFT> void LinkerScript<ELFT>::output(InputSection *S) { return; bool IsTbss = isTbss<ELFT>(CurOutSec); - uintX_t Pos = IsTbss ? Dot + ThreadBssOffset : Dot; + uint64_t Pos = IsTbss ? Dot + ThreadBssOffset : Dot; Pos = alignTo(Pos, S->Alignment); S->OutSecOff = Pos - CurOutSec->Addr; Pos += S->getSize(); @@ -555,7 +555,7 @@ void LinkerScript<ELFT>::assignOffsets(OutputSectionCommand *Cmd) { setDot(Cmd->AddrExpr, Cmd->Location); if (Cmd->LMAExpr) { - uintX_t D = Dot; + uint64_t D = Dot; LMAOffset = [=] { return Cmd->LMAExpr() - D; }; } @@ -612,7 +612,7 @@ template <class ELFT> void LinkerScript<ELFT>::adjustSectionsBeforeSorting() { // corresponding output section. The bfd linker seems to only create them if // '.' is assigned to, but creating these section should not have any bad // consequeces and gives us a section to put the symbol in. - uintX_t Flags = SHF_ALLOC; + uint64_t Flags = SHF_ALLOC; uint32_t Type = SHT_NOBITS; for (const std::unique_ptr<BaseCommand> &Base : Opt.Commands) { auto *Cmd = dyn_cast<OutputSectionCommand>(Base.get()); @@ -784,7 +784,7 @@ void LinkerScript<ELFT>::assignAddresses(std::vector<PhdrEntry> &Phdrs) { assignOffsets(Cmd); } - uintX_t MinVA = std::numeric_limits<uintX_t>::max(); + uint64_t MinVA = std::numeric_limits<uint64_t>::max(); for (OutputSection *Sec : *OutputSections) { if (Sec->Flags & SHF_ALLOC) MinVA = std::min<uint64_t>(MinVA, Sec->Addr); diff --git a/lld/ELF/LinkerScript.h b/lld/ELF/LinkerScript.h index 6d53cf71ce4..e41e6743995 100644 --- a/lld/ELF/LinkerScript.h +++ b/lld/ELF/LinkerScript.h @@ -234,6 +234,9 @@ protected: // "ScriptConfig" is a bit too long, so define a short name for it. ScriptConfiguration &Opt = *ScriptConfig; + uint64_t Dot; + uint64_t ThreadBssOffset = 0; + public: bool hasPhdrsCommands() { return !Opt.PhdrsCommands.empty(); } @@ -248,8 +251,6 @@ public: // This is a runner of the linker script. template <class ELFT> class LinkerScript final : public LinkerScriptBase { - typedef typename ELFT::uint uintX_t; - public: LinkerScript(); ~LinkerScript(); @@ -297,11 +298,9 @@ private: MemoryRegion *findMemoryRegion(OutputSectionCommand *Cmd, OutputSection *Sec); - uintX_t Dot; std::function<uint64_t()> LMAOffset; OutputSection *CurOutSec = nullptr; MemoryRegion *CurMemRegion = nullptr; - uintX_t ThreadBssOffset = 0; void switchTo(OutputSection *Sec); void flush(); void output(InputSection *Sec); |