forked from OSchip/llvm-project
parent
9340b1d966
commit
cdf813bbd1
|
@ -1151,6 +1151,12 @@ template <class ELFT> void Writer<ELFT>::finalizeSections() {
|
|||
removeUnusedSyntheticSections(OutputSections);
|
||||
|
||||
sortSections();
|
||||
if (!Script->Opt.HasSections)
|
||||
Script->fabricateDefaultCommands();
|
||||
for (BaseCommand *Base : Script->Opt.Commands)
|
||||
if (auto *Cmd = dyn_cast<OutputSectionCommand>(Base))
|
||||
OutputSectionCommands.push_back(Cmd);
|
||||
clearOutputSections();
|
||||
|
||||
// This is a bit of a hack. A value of 0 means undef, so we set it
|
||||
// to 1 t make __ehdr_start defined. The section number is not
|
||||
|
@ -1158,18 +1164,12 @@ template <class ELFT> void Writer<ELFT>::finalizeSections() {
|
|||
Out::ElfHeader->SectionIndex = 1;
|
||||
|
||||
unsigned I = 1;
|
||||
for (OutputSection *Sec : OutputSections) {
|
||||
for (OutputSectionCommand *Cmd : OutputSectionCommands) {
|
||||
OutputSection *Sec = Cmd->Sec;
|
||||
Sec->SectionIndex = I++;
|
||||
Sec->ShName = InX::ShStrTab->addString(Sec->Name);
|
||||
}
|
||||
|
||||
if (!Script->Opt.HasSections)
|
||||
Script->fabricateDefaultCommands();
|
||||
for (BaseCommand *Base : Script->Opt.Commands)
|
||||
if (auto *Cmd = dyn_cast<OutputSectionCommand>(Base))
|
||||
OutputSectionCommands.push_back(Cmd);
|
||||
clearOutputSections();
|
||||
|
||||
// Binary and relocatable output does not have PHDRS.
|
||||
// The headers have to be created before finalize as that can influence the
|
||||
// image base and the dynamic section on mips includes the image base.
|
||||
|
|
Loading…
Reference in New Issue