forked from OSchip/llvm-project
parent
cf41c0c930
commit
9b89608698
|
|
@ -650,7 +650,7 @@ typename ELFFile<ELFT>::uintX_t lld::elf2::getSymVA(const SymbolBody &S) {
|
|||
return Out<ELFT>::Bss->getVA() + cast<DefinedCommon<ELFT>>(S).OffsetInBSS;
|
||||
case SymbolBody::SharedKind: {
|
||||
auto &SS = cast<SharedSymbol<ELFT>>(S);
|
||||
if (SS.NeedsCopy)
|
||||
if (SS.needsCopy())
|
||||
return Out<ELFT>::Bss->getVA() + SS.OffsetInBSS;
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1005,7 +1005,7 @@ void SymbolTableSection<ELFT>::writeGlobalSymbols(uint8_t *Buf) {
|
|||
OutSec = Out<ELFT>::Bss;
|
||||
break;
|
||||
case SymbolBody::SharedKind: {
|
||||
if (cast<SharedSymbol<ELFT>>(Body)->NeedsCopy)
|
||||
if (cast<SharedSymbol<ELFT>>(Body)->needsCopy())
|
||||
OutSec = Out<ELFT>::Bss;
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -284,8 +284,8 @@ public:
|
|||
SharedFile<ELFT> *File;
|
||||
|
||||
// Can have offset if requires copy relocation.
|
||||
uintX_t OffsetInBSS = 0;
|
||||
bool NeedsCopy = false;
|
||||
uintX_t OffsetInBSS = -1;
|
||||
bool needsCopy() const { return OffsetInBSS != (uintX_t)-1; }
|
||||
};
|
||||
|
||||
// This class represents a symbol defined in an archive file. It is
|
||||
|
|
|
|||
|
|
@ -201,9 +201,10 @@ void Writer<ELFT>::scanRelocs(
|
|||
bool NeedsPlt = false;
|
||||
if (Body) {
|
||||
if (auto *E = dyn_cast<SharedSymbol<ELFT>>(Body)) {
|
||||
if (E->NeedsCopy)
|
||||
if (E->needsCopy())
|
||||
continue;
|
||||
E->NeedsCopy = Target->relocNeedsCopy(Type, *Body);
|
||||
if (Target->relocNeedsCopy(Type, *Body))
|
||||
E->OffsetInBSS = 0;
|
||||
}
|
||||
NeedsPlt = Target->relocNeedsPlt(Type, *Body);
|
||||
if (NeedsPlt) {
|
||||
|
|
@ -535,7 +536,7 @@ template <class ELFT> void Writer<ELFT>::createSections() {
|
|||
if (auto *C = dyn_cast<DefinedCommon<ELFT>>(Body))
|
||||
CommonSymbols.push_back(C);
|
||||
if (auto *SC = dyn_cast<SharedSymbol<ELFT>>(Body))
|
||||
if (SC->NeedsCopy)
|
||||
if (SC->needsCopy())
|
||||
SharedCopySymbols.push_back(SC);
|
||||
|
||||
if (!includeInSymtab<ELFT>(*Body))
|
||||
|
|
|
|||
Loading…
Reference in New Issue