Phdr &Added = Phdrs.back();
if (Cmd.HasFilehdr)
- Added.AddSec(Out<ELFT>::ElfHeader);
+ Added.add(Out<ELFT>::ElfHeader);
if (Cmd.HasPhdrs)
- Added.AddSec(Out<ELFT>::ProgramHeaders);
+ Added.add(Out<ELFT>::ProgramHeaders);
switch (Cmd.Type) {
case PT_INTERP:
if (needsInterpSection<ELFT>())
- Added.AddSec(Out<ELFT>::Interp);
+ Added.add(Out<ELFT>::Interp);
break;
case PT_DYNAMIC:
if (isOutputDynamic<ELFT>()) {
Added.H.p_flags = toPhdrFlags(Out<ELFT>::Dynamic->getFlags());
- Added.AddSec(Out<ELFT>::Dynamic);
+ Added.add(Out<ELFT>::Dynamic);
}
break;
case PT_TLS:
case PT_GNU_EH_FRAME:
if (!Out<ELFT>::EhFrame->empty() && Out<ELFT>::EhFrameHdr) {
Added.H.p_flags = toPhdrFlags(Out<ELFT>::EhFrameHdr->getFlags());
- Added.AddSec(Out<ELFT>::EhFrameHdr);
+ Added.add(Out<ELFT>::EhFrameHdr);
}
break;
}
break;
if (TlsNum != -1 && (Sec->getFlags() & SHF_TLS))
- Phdrs[TlsNum].AddSec(Sec);
+ Phdrs[TlsNum].add(Sec);
if (!needsPtLoad<ELFT>(Sec))
continue;
if (!PhdrIds.empty()) {
// Assign headers specified by linker script
for (size_t Id : PhdrIds) {
- Phdrs[Id].AddSec(Sec);
+ Phdrs[Id].add(Sec);
Phdrs[Id].H.p_flags |= toPhdrFlags(Sec->getFlags());
}
} else {
Load = &*Phdrs.emplace(Phdrs.end(), PT_LOAD, NewFlags);
Flags = NewFlags;
}
- Load->AddSec(Sec);
+ Load->add(Sec);
}
if (RelroNum != -1 && isRelroSection(Sec))
- Phdrs[RelroNum].AddSec(Sec);
+ Phdrs[RelroNum].add(Sec);
if (NoteNum != -1 && Sec->getType() == SHT_NOTE)
- Phdrs[NoteNum].AddSec(Sec);
+ Phdrs[NoteNum].add(Sec);
}
return Phdrs;
}
}
template<class ELFT>
-void PhdrEntry<ELFT>::AddSec(OutputSectionBase<ELFT> *Sec) {
+void PhdrEntry<ELFT>::add(OutputSectionBase<ELFT> *Sec) {
Last = Sec;
if (!First)
First = Sec;
// The first phdr entry is PT_PHDR which describes the program header itself.
Phdr &Hdr = *AddHdr(PT_PHDR, PF_R);
- Hdr.AddSec(Out<ELFT>::ProgramHeaders);
+ Hdr.add(Out<ELFT>::ProgramHeaders);
// PT_INTERP must be the second entry if exists.
if (needsInterpSection<ELFT>()) {
Phdr &Hdr = *AddHdr(PT_INTERP, toPhdrFlags(Out<ELFT>::Interp->getFlags()));
- Hdr.AddSec(Out<ELFT>::Interp);
+ Hdr.add(Out<ELFT>::Interp);
}
// Add the first PT_LOAD segment for regular output sections.
uintX_t Flags = PF_R;
Phdr *Load = AddHdr(PT_LOAD, Flags);
- Load->AddSec(Out<ELFT>::ElfHeader);
- Load->AddSec(Out<ELFT>::ProgramHeaders);
+ Load->add(Out<ELFT>::ElfHeader);
+ Load->add(Out<ELFT>::ProgramHeaders);
Phdr TlsHdr(PT_TLS, PF_R);
Phdr RelRo(PT_GNU_RELRO, PF_R);
// and put all TLS sections inside for futher use when
// assign addresses.
if (Sec->getFlags() & SHF_TLS)
- TlsHdr.AddSec(Sec);
+ TlsHdr.add(Sec);
if (!needsPtLoad<ELFT>(Sec))
continue;
Flags = NewFlags;
}
- Load->AddSec(Sec);
+ Load->add(Sec);
if (isRelroSection(Sec))
- RelRo.AddSec(Sec);
+ RelRo.add(Sec);
if (Sec->getType() == SHT_NOTE)
- Note.AddSec(Sec);
+ Note.add(Sec);
}
// Add the TLS segment unless it's empty.
// Add an entry for .dynamic.
if (isOutputDynamic<ELFT>()) {
Phdr &H = *AddHdr(PT_DYNAMIC, toPhdrFlags(Out<ELFT>::Dynamic->getFlags()));
- H.AddSec(Out<ELFT>::Dynamic);
+ H.add(Out<ELFT>::Dynamic);
}
// PT_GNU_RELRO includes all sections that should be marked as
if (!Out<ELFT>::EhFrame->empty() && Out<ELFT>::EhFrameHdr) {
Phdr &Hdr = *AddHdr(PT_GNU_EH_FRAME,
toPhdrFlags(Out<ELFT>::EhFrameHdr->getFlags()));
- Hdr.AddSec(Out<ELFT>::EhFrameHdr);
+ Hdr.add(Out<ELFT>::EhFrameHdr);
}
// PT_GNU_STACK is a special section to tell the loader to make the