summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2015-12-17 01:18:40 +0000
committerRui Ueyama <ruiu@google.com>2015-12-17 01:18:40 +0000
commit02dfd496b04919ece112ff2ddf3f195b9f5925cd (patch)
tree0e9377e2e55ef578e9b70f2936510d96100e8fbb
parentbb936067553437ed4dd0de628e173fc5be4d7fa6 (diff)
downloadbcm5719-llvm-02dfd496b04919ece112ff2ddf3f195b9f5925cd.tar.gz
bcm5719-llvm-02dfd496b04919ece112ff2ddf3f195b9f5925cd.zip
ELF: Rename relocNeedsCopy -> needsCopyRel
Just "copy" was a bit too ambiguous to say about copy relocations. llvm-svn: 255866
-rw-r--r--lld/ELF/InputSection.cpp2
-rw-r--r--lld/ELF/OutputSections.cpp2
-rw-r--r--lld/ELF/Target.cpp18
-rw-r--r--lld/ELF/Target.h2
-rw-r--r--lld/ELF/Writer.cpp2
5 files changed, 12 insertions, 14 deletions
diff --git a/lld/ELF/InputSection.cpp b/lld/ELF/InputSection.cpp
index 0d708b58d5c..9ba4c040b7d 100644
--- a/lld/ELF/InputSection.cpp
+++ b/lld/ELF/InputSection.cpp
@@ -199,7 +199,7 @@ void InputSectionBase<ELFT>::relocate(uint8_t *Buf, uint8_t *BufEnd,
SymVA = Out<ELFT>::Got->getEntryAddr(Body);
if (Body.isTls())
Type = Target->getTlsGotReloc();
- } else if (!Target->relocNeedsCopy(Type, Body) &&
+ } else if (!Target->needsCopyRel(Type, Body) &&
isa<SharedSymbol<ELFT>>(Body)) {
continue;
} else if (Target->isTlsDynReloc(Type) ||
diff --git a/lld/ELF/OutputSections.cpp b/lld/ELF/OutputSections.cpp
index bb5e0e16111..723da267e6f 100644
--- a/lld/ELF/OutputSections.cpp
+++ b/lld/ELF/OutputSections.cpp
@@ -258,7 +258,7 @@ template <class ELFT> void RelocationSection<ELFT>::writeTo(uint8_t *Buf) {
uint32_t Type = RI.getType(Config->Mips64EL);
if (applyTlsDynamicReloc(Body, Type, P, reinterpret_cast<Elf_Rel *>(Buf)))
continue;
- bool NeedsCopy = Body && Target->relocNeedsCopy(Type, *Body);
+ bool NeedsCopy = Body && Target->needsCopyRel(Type, *Body);
bool NeedsGot = Body && Target->relocNeedsGot(Type, *Body);
bool CanBePreempted = canBePreempted(Body, NeedsGot);
bool LazyReloc = Body && Target->supportsLazyRelocations() &&
diff --git a/lld/ELF/Target.cpp b/lld/ELF/Target.cpp
index e5568ddfabf..ab2d80864e1 100644
--- a/lld/ELF/Target.cpp
+++ b/lld/ELF/Target.cpp
@@ -83,7 +83,7 @@ public:
void writePltEntry(uint8_t *Buf, uint64_t GotAddr, uint64_t GotEntryAddr,
uint64_t PltEntryAddr, int32_t Index,
unsigned RelOff) const override;
- bool relocNeedsCopy(uint32_t Type, const SymbolBody &S) const override;
+ bool needsCopyRel(uint32_t Type, const SymbolBody &S) const override;
bool relocNeedsGot(uint32_t Type, const SymbolBody &S) const override;
bool relocNeedsPlt(uint32_t Type, const SymbolBody &S) const override;
void relocateOne(uint8_t *Loc, uint8_t *BufEnd, uint32_t Type, uint64_t P,
@@ -117,7 +117,7 @@ public:
void writePltEntry(uint8_t *Buf, uint64_t GotAddr, uint64_t GotEntryAddr,
uint64_t PltEntryAddr, int32_t Index,
unsigned RelOff) const override;
- bool relocNeedsCopy(uint32_t Type, const SymbolBody &S) const override;
+ bool needsCopyRel(uint32_t Type, const SymbolBody &S) const override;
bool relocNeedsGot(uint32_t Type, const SymbolBody &S) const override;
bool relocNeedsPlt(uint32_t Type, const SymbolBody &S) const override;
void relocateOne(uint8_t *Loc, uint8_t *BufEnd, uint32_t Type, uint64_t P,
@@ -169,7 +169,7 @@ public:
void writePltEntry(uint8_t *Buf, uint64_t GotAddr, uint64_t GotEntryAddr,
uint64_t PltEntryAddr, int32_t Index,
unsigned RelOff) const override;
- bool relocNeedsCopy(uint32_t Type, const SymbolBody &S) const override;
+ bool needsCopyRel(uint32_t Type, const SymbolBody &S) const override;
bool relocNeedsGot(uint32_t Type, const SymbolBody &S) const override;
bool relocNeedsPlt(uint32_t Type, const SymbolBody &S) const override;
void relocateOne(uint8_t *Loc, uint8_t *BufEnd, uint32_t Type, uint64_t P,
@@ -226,7 +226,7 @@ bool TargetInfo::isTlsOptimized(unsigned Type, const SymbolBody *S) const {
uint64_t TargetInfo::getVAStart() const { return Config->Shared ? 0 : VAStart; }
-bool TargetInfo::relocNeedsCopy(uint32_t Type, const SymbolBody &S) const {
+bool TargetInfo::needsCopyRel(uint32_t Type, const SymbolBody &S) const {
return false;
}
@@ -327,7 +327,7 @@ void X86TargetInfo::writePltEntry(uint8_t *Buf, uint64_t GotAddr,
write32le(Buf + 12, -Index * PltEntrySize - PltZeroEntrySize - 16);
}
-bool X86TargetInfo::relocNeedsCopy(uint32_t Type, const SymbolBody &S) const {
+bool X86TargetInfo::needsCopyRel(uint32_t Type, const SymbolBody &S) const {
if (Type == R_386_32 || Type == R_386_16 || Type == R_386_8)
if (auto *SS = dyn_cast<SharedSymbol<ELF32LE>>(&S))
return SS->Sym.getType() == STT_OBJECT;
@@ -555,8 +555,7 @@ void X86_64TargetInfo::writePltEntry(uint8_t *Buf, uint64_t GotAddr,
write32le(Buf + 12, -Index * PltEntrySize - PltZeroEntrySize - 16);
}
-bool X86_64TargetInfo::relocNeedsCopy(uint32_t Type,
- const SymbolBody &S) const {
+bool X86_64TargetInfo::needsCopyRel(uint32_t Type, const SymbolBody &S) const {
if (Type == R_X86_64_32S || Type == R_X86_64_32 || Type == R_X86_64_PC32 ||
Type == R_X86_64_64)
if (auto *SS = dyn_cast<SharedSymbol<ELF64LE>>(&S))
@@ -583,7 +582,7 @@ unsigned X86_64TargetInfo::getPltRefReloc(unsigned Type) const {
}
bool X86_64TargetInfo::relocNeedsPlt(uint32_t Type, const SymbolBody &S) const {
- if (relocNeedsCopy(Type, S))
+ if (needsCopyRel(Type, S))
return false;
switch (Type) {
@@ -1122,8 +1121,7 @@ void AArch64TargetInfo::writePltEntry(uint8_t *Buf, uint64_t GotAddr,
GotEntryAddr);
}
-bool AArch64TargetInfo::relocNeedsCopy(uint32_t Type,
- const SymbolBody &S) const {
+bool AArch64TargetInfo::needsCopyRel(uint32_t Type, const SymbolBody &S) const {
if (Config->Shared)
return false;
switch (Type) {
diff --git a/lld/ELF/Target.h b/lld/ELF/Target.h
index 816a2c12757..6bf23db825e 100644
--- a/lld/ELF/Target.h
+++ b/lld/ELF/Target.h
@@ -54,13 +54,13 @@ public:
int32_t Index, unsigned RelOff) const = 0;
virtual bool isRelRelative(uint32_t Type) const;
virtual bool isSizeDynReloc(uint32_t Type, const SymbolBody &S) const;
- virtual bool relocNeedsCopy(uint32_t Type, const SymbolBody &S) const;
virtual bool relocNeedsGot(uint32_t Type, const SymbolBody &S) const = 0;
virtual bool relocNeedsPlt(uint32_t Type, const SymbolBody &S) const = 0;
virtual void relocateOne(uint8_t *Loc, uint8_t *BufEnd, uint32_t Type,
uint64_t P, uint64_t SA, uint64_t ZA = 0,
uint8_t *PairedLoc = nullptr) const = 0;
virtual bool isTlsOptimized(unsigned Type, const SymbolBody *S) const;
+ virtual bool needsCopyRel(uint32_t Type, const SymbolBody &S) const;
virtual unsigned relocateTlsOptimize(uint8_t *Loc, uint8_t *BufEnd,
uint32_t Type, uint64_t P, uint64_t SA,
const SymbolBody &S) const;
diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp
index cae1f20278d..522eb6261c1 100644
--- a/lld/ELF/Writer.cpp
+++ b/lld/ELF/Writer.cpp
@@ -245,7 +245,7 @@ void Writer<ELFT>::scanRelocs(
if (auto *E = dyn_cast<SharedSymbol<ELFT>>(Body)) {
if (E->NeedsCopy)
continue;
- if (Target->relocNeedsCopy(Type, *Body))
+ if (Target->needsCopyRel(Type, *Body))
E->NeedsCopy = true;
}
NeedsPlt = Target->relocNeedsPlt(Type, *Body);
OpenPOWER on IntegriCloud