Lines Matching defs:Stub
182 explicit ELFStubBuilder(const IFSStub &Stub) {
193 for (const IFSSymbol &Sym : Stub.Symbols)
195 for (const std::string &Lib : Stub.NeededLibs)
197 if (Stub.SoName)
198 DynStr.Content.add(*Stub.SoName);
215 for (const IFSSymbol &Sym : Stub.Symbols) {
231 for (const std::string &Lib : Stub.NeededLibs)
233 if (Stub.SoName)
235 DynStr.Content.getOffset(*Stub.SoName));
254 initELFHeader<ELFT>(ElfHeader, static_cast<uint16_t>(*Stub.Target.Arch));
655 /// @param Stub Source InterFace Stub to generate a binary ELF stub from.
657 static Error writeELFBinaryToFile(StringRef FilePath, const IFSStub &Stub,
659 ELFStubBuilder<ELFT> Builder{Stub};
660 // Write Stub to memory first.
667 // Compare Stub output with existing Stub file.
668 // If Stub file unchanged, abort updating.
712 Error writeBinaryStub(StringRef FilePath, const IFSStub &Stub,
714 assert(Stub.Target.Arch);
715 assert(Stub.Target.BitWidth);
716 assert(Stub.Target.Endianness);
717 if (Stub.Target.BitWidth == IFSBitWidthType::IFS32) {
718 if (Stub.Target.Endianness == IFSEndiannessType::Little) {
719 return writeELFBinaryToFile<ELF32LE>(FilePath, Stub, WriteIfChanged);
721 return writeELFBinaryToFile<ELF32BE>(FilePath, Stub, WriteIfChanged);
724 if (Stub.Target.Endianness == IFSEndiannessType::Little) {
725 return writeELFBinaryToFile<ELF64LE>(FilePath, Stub, WriteIfChanged);
727 return writeELFBinaryToFile<ELF64BE>(FilePath, Stub, WriteIfChanged);