[lld] r261924 - ELF: Split Writer::addPredefiendSections. NFC.
Rui Ueyama via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 25 11:34:38 PST 2016
Author: ruiu
Date: Thu Feb 25 13:34:37 2016
New Revision: 261924
URL: http://llvm.org/viewvc/llvm-project?rev=261924&view=rev
Log:
ELF: Split Writer::addPredefiendSections. NFC.
Modified:
lld/trunk/ELF/Writer.cpp
Modified: lld/trunk/ELF/Writer.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Writer.cpp?rev=261924&r1=261923&r2=261924&view=diff
==============================================================================
--- lld/trunk/ELF/Writer.cpp (original)
+++ lld/trunk/ELF/Writer.cpp Thu Feb 25 13:34:37 2016
@@ -60,6 +60,7 @@ private:
void addReservedSymbols();
bool createSections();
void addPredefinedSections();
+ bool needsGot();
template <bool isRela>
void scanRelocs(InputSectionBase<ELFT> &C,
@@ -1073,6 +1074,20 @@ template <class ELFT> bool Writer<ELFT>:
return true;
}
+template <class ELFT> bool Writer<ELFT>::needsGot() {
+ if (!Out<ELFT>::Got->empty())
+ return true;
+
+ // We add the .got section to the result for dynamic MIPS target because
+ // its address and properties are mentioned in the .dynamic section.
+ if (Config->EMachine == EM_MIPS && isOutputDynamic())
+ return true;
+
+ // If we have a relocation that is relative to GOT (such as GOTOFFREL),
+ // we need to emit a GOT even if it's empty.
+ return HasGotOffRel;
+}
+
// This function add Out<ELFT>::* sections to OutputSections.
template <class ELFT> void Writer<ELFT>::addPredefinedSections() {
auto Add = [&](OutputSectionBase<ELFT> *C) {
@@ -1115,17 +1130,7 @@ template <class ELFT> void Writer<ELFT>:
Out<ELFT>::RelaPlt->Static = !isOutputDynamic();
}
- bool needsGot = !Out<ELFT>::Got->empty();
- // We add the .got section to the result for dynamic MIPS target because
- // its address and properties are mentioned in the .dynamic section.
- if (Config->EMachine == EM_MIPS)
- needsGot |= isOutputDynamic();
- // If we have a relocation that is relative to GOT (such as GOTOFFREL),
- // we need to emit a GOT even if it's empty.
- if (HasGotOffRel)
- needsGot = true;
-
- if (needsGot)
+ if (needsGot())
Add(Out<ELFT>::Got);
if (Out<ELFT>::GotPlt && !Out<ELFT>::GotPlt->empty())
Add(Out<ELFT>::GotPlt);
More information about the llvm-commits
mailing list