Lines Matching defs:pOutput

97 uint64_t GNULDBackend::segmentStartAddr(const Output& pOutput,
101 if (isOutputPIC(pOutput, pInfo))
174 bool GNULDBackend::initStandardSymbols(MCLinker& pLinker, const Output& pOutput)
176 ELFFileFormat* file_format = getOutputFormat(pOutput);
405 GNULDBackend::finalizeStandardSymbols(MCLinker& pLinker, const Output& pOutput)
407 ELFFileFormat* file_format = getOutputFormat(pOutput);
638 ELFFileFormat* GNULDBackend::getOutputFormat(const Output& pOutput)
640 switch (pOutput.type()) {
648 fatal(diag::unrecognized_output_file) << pOutput.type();
653 const ELFFileFormat* GNULDBackend::getOutputFormat(const Output& pOutput) const
655 switch (pOutput.type()) {
663 fatal(diag::unrecognized_output_file) << pOutput.type();
696 GNULDBackend::sizeNamePools(const Output& pOutput,
715 if (isDynamicSymbol(**symbol, pOutput)) {
723 ELFFileFormat* file_format = getOutputFormat(pOutput);
725 switch(pOutput.type()) {
759 dynstr += pOutput.name().size() + 1;
780 if (Output::DynObj == pOutput.type() || Output::Exec == pOutput.type()) {
793 void GNULDBackend::emitRegNamePools(Output& pOutput,
799 assert(pOutput.hasMemArea());
804 ELFFileFormat* file_format = getOutputFormat(pOutput);
805 if (pOutput.type() == Output::Object) {
817 MemoryRegion* symtab_region = pOutput.memArea()->request(symtab_sect.offset(),
819 MemoryRegion* strtab_region = pOutput.memArea()->request(strtab_sect.offset(),
863 if (Output::Object == pOutput.type()) {
900 void GNULDBackend::emitDynNamePools(Output& pOutput,
905 assert(pOutput.hasMemArea());
906 ELFFileFormat* file_format = getOutputFormat(pOutput);
916 MemoryRegion* symtab_region = pOutput.memArea()->request(symtab_sect.offset(),
918 MemoryRegion* strtab_region = pOutput.memArea()->request(strtab_sect.offset(),
920 MemoryRegion* hash_region = pOutput.memArea()->request(hash_sect.offset(),
922 MemoryRegion* dyn_region = pOutput.memArea()->request(dyn_sect.offset(),
968 if (!isDynamicSymbol(**symbol, pOutput))
1033 if (Output::DynObj == pOutput.type())
1038 strcpy((strtab + strtabsize), pOutput.name().c_str());
1039 strtabsize += pOutput.name().size() + 1;
1081 void GNULDBackend::sizeInterp(const Output& pOutput, const MCLDInfo& pLDInfo)
1083 assert(pOutput.type() == Output::Exec);
1096 void GNULDBackend::emitInterp(Output& pOutput, const MCLDInfo& pLDInfo)
1098 assert(pOutput.type() == Output::Exec &&
1100 pOutput.hasMemArea());
1103 MemoryRegion *region = pOutput.memArea()->request(
1115 unsigned int GNULDBackend::getSectionOrder(const Output& pOutput,
1129 const ELFFileFormat* file_format = getOutputFormat(pOutput);
1174 return getTargetSectionOrder(pOutput, pSectHdr, pInfo);
1368 void GNULDBackend::createProgramHdrs(Output& pOutput, const MCLDInfo& pInfo)
1370 assert(pOutput.hasContext());
1371 ELFFileFormat *file_format = getOutputFormat(pOutput);
1386 LDContext::SectionTable& sect_table = pOutput.context()->getSectionTable();
1389 for (idx = 0; idx < pOutput.context()->numOfSections(); ++idx) {
1391 if (getSectionOrder(pOutput, *sect_table[idx], pInfo) > SHO_RELRO_LAST) {
1402 for (++idx; idx < pOutput.context()->numOfSections(); ++idx) {
1419 LDContext::sect_iterator sect, sect_end = pOutput.context()->sectEnd();
1420 for (sect = pOutput.context()->sectBegin(); sect != sect_end; ++sect) {
1446 (*sect)->setAddr(segmentStartAddr(pOutput, pInfo) +
1464 for (LDContext::sect_iterator sect = pOutput.context()->sectBegin();
1465 sect != pOutput.context()->sectEnd(); ++sect) {
1466 unsigned int order = getSectionOrder(pOutput, **sect, pInfo);
1483 void GNULDBackend:: setupProgramHdrs(const Output& pOutput, const MCLDInfo& pInfo)
1502 segment.setVaddr(segmentStartAddr(pOutput, pInfo) + offset);
1517 segment.setVaddr(segmentStartAddr(pOutput, pInfo));
1535 void GNULDBackend::createGNUStackInfo(const Output& pOutput,
1575 if (pOutput.type() != Output::Object)
1588 void GNULDBackend::preLayout(const Output& pOutput,
1593 doPreLayout(pOutput, pLDInfo, pLinker);
1597 ELFFileFormat* format = getOutputFormat(pOutput);
1607 void GNULDBackend::postLayout(const Output& pOutput,
1612 if (pOutput.type() != Output::Object) {
1618 createGNUStackInfo(pOutput, pInfo, pLinker);
1620 if (pOutput.type() != Output::Object) {
1622 setupProgramHdrs(pOutput, pInfo);
1626 doPostLayout(pOutput, pInfo, pLinker);
1629 void GNULDBackend::postProcessing(const Output& pOutput,
1670 const Output& pOutput)
1679 if (Output::DynObj == pOutput.type() || Output::Exec == pOutput.type())
1707 bool GNULDBackend::isOutputPIC(const Output& pOutput,
1710 if (Output::DynObj == pOutput.type() || pInfo.options().isPIE())
1716 bool GNULDBackend::isStaticLink(const Output& pOutput,
1720 if (!isOutputPIC(pOutput, pInfo) && (*it)->attribute()->isStatic())
1730 const Output& pOutput) const
1735 if (Output::DynObj != pOutput.type())
1748 const Output& pOutput) const
1750 if (pSym.isUndef() && !pSym.isDyn() && pOutput.type() != Output::DynObj)
1760 if (isStaticLink(pOutput, pLDInfo) || pLDInfo.options().isPIE())
1765 isSymbolPreemptible(pSym, pLDInfo, pOutput));
1773 const Output& pOutput,
1778 if (pSym.isUndef() && !pSym.isDyn() && (Output::Exec == pOutput.type()))
1782 if (isOutputPIC(pOutput, pLDInfo) && isAbsReloc)
1786 if (!isOutputPIC(pOutput, pLDInfo) && pSymHasPLT)
1789 isSymbolPreemptible(pSym, pLDInfo, pOutput))
1800 const Output& pOutput) const
1804 if (isOutputPIC(pOutput, pLDInfo) ||