Lines Matching defs:osec

87   void addStartStopSymbols(OutputSection &osec);
298 if (osd->osec.name == name && osd->osec.partition == partition)
299 return &osd->osec;
503 OutputSection &osec = osd->osec;
507 for (SectionCommand *cmd : osec.commands) {
534 /*value=*/0, /*size=*/0, &osec));
647 unsigned elf::getSectionRank(OutputSection &osec) {
648 unsigned rank = osec.partition * RF_PARTITION;
652 if (config->sectionStartMap.count(osec.name))
658 if (!(osec.flags & SHF_ALLOC))
672 bool isExec = osec.flags & SHF_EXECINSTR;
673 bool isWrite = osec.flags & SHF_WRITE;
681 if (osec.flags & SHF_X86_64_LARGE && config->emachine == EM_X86_64)
686 if (osec.type == SHT_LLVM_PART_EHDR)
688 else if (osec.type == SHT_LLVM_PART_PHDR)
690 else if (osec.name == ".interp")
695 else if (osec.type == SHT_NOTE)
700 else if (osec.type != SHT_PROGBITS)
710 if (!(osec.flags & SHF_TLS))
712 if (isRelroSection(&osec))
713 osec.relro = true;
720 if (osec.flags & SHF_X86_64_LARGE && config->emachine == EM_X86_64) {
722 ? (osec.type == SHT_NOBITS ? 1 : RF_LARGE_ALT)
729 if (osec.type == SHT_NOBITS)
739 StringRef name = osec.name;
747 if (osec.name != ".got")
751 if (osec.flags & SHF_MIPS_GPREL)
758 StringRef name = osec.name;
759 if (name == ".sdata" || (osec.type == SHT_NOBITS && name != ".sbss"))
768 const OutputSection *a = &cast<OutputDesc>(aCmd)->osec;
769 const OutputSection *b = &cast<OutputDesc>(bCmd)->osec;
833 auto isLarge = [](OutputSection *osec) {
834 return config->emachine == EM_X86_64 && osec->flags & SHF_X86_64_LARGE;
906 return (osd && osd->osec.hasInputSections)
907 ? llvm::countl_zero(a->sortRank ^ osd->osec.sortRank)
939 OutputSection *sec = &cast<OutputDesc>(*e)->osec;
966 (p == maxP && cast<OutputDesc>(*j)->osec.sortRank <= sec->sortRank)) {
976 return osd && osd->osec.hasInputSections;
988 if (cast<OutputDesc>(*i)->osec.sortRank <= sec->sortRank || mustAfter) {
1187 static void sortSection(OutputSection &osec,
1189 StringRef name = osec.name;
1200 for (SectionCommand *b : osec.commands)
1202 sortISDBySectionOrder(isd, order, osec.flags & SHF_EXECINSTR);
1208 osec.sortInitFini();
1210 osec.sortCtorsDtors();
1217 assert(osec.commands.size() == 1);
1218 auto *isd = cast<InputSectionDescription>(osec.commands[0]);
1235 sortSection(osd->osec, order);
1252 osd->osec.sortRank = getSectionRank(osd->osec);
1317 return osd->osec.sectionIndex == UINT32_MAX;
1337 OutputSection *orphan = &cast<OutputDesc>(*nonScriptI)->osec;
1343 return cast<OutputDesc>(cmd)->osec.sortRank != rank;
1541 OutputSection *osec = &osd->osec;
1542 if (osec->addr % osec->addralign != 0)
1543 warn("address (0x" + Twine::utohexstr(osec->addr) + ") of section " +
1544 osec->name + " is not a multiple of alignment (" +
1545 Twine(osec->addralign) + ")");
1611 for (OutputSection *osec : outputSections) {
1612 if (!(osec->flags & SHF_EXECINSTR))
1614 ArrayRef<InputSection *> sections = getInputSections(*osec, storage);
1633 for (OutputSection *osec : outputSections)
1634 for (InputSection *is : getInputSections(*osec, storage))
1682 if (OutputSection *osec = cast<SyntheticSection>(sec)->getParent())
1683 for (SectionCommand *cmd : osec->commands)
1706 addStartStopSymbols(osd->osec);
1890 OutputSection *osec = &osd->osec;
1891 outputSections.push_back(osec);
1892 osec->sectionIndex = outputSections.size();
1893 osec->shName = in.shStrTab->addString(osec->name);
2075 for (OutputSection *osec : outputSections)
2076 if (osec->flags & SHF_EXECINSTR)
2077 for (InputSection *isec : getInputSections(*osec, storage))
2080 toString(osec->name) +
2121 void Writer<ELFT>::addStartStopSymbols(OutputSection &osec) {
2122 StringRef s = osec.name;
2125 Defined *startSym = addOptionalRegular(saver().save("__start_" + s), &osec, 0,
2127 Defined *stopSym = addOptionalRegular(saver().save("__stop_" + s), &osec, -1,
2130 osec.usedInExpression = true;
2513 for (OutputSection *osec : outputSections) {
2514 if (osec->flags & SHF_ALLOC)
2516 osec->offset = alignToPowerOf2(off, osec->addralign);
2517 off = osec->offset + osec->size;