Lines Matching refs:Stub

140   static void mapping(IO &IO, IFSStub &Stub) {
143 IO.mapRequired("IfsVersion", Stub.IfsVersion);
144 IO.mapOptional("SoName", Stub.SoName);
145 IO.mapOptional("Target", Stub.Target);
146 IO.mapOptional("NeededLibs", Stub.NeededLibs);
147 IO.mapRequired("Symbols", Stub.Symbols);
153 static void mapping(IO &IO, IFSStubTriple &Stub) {
156 IO.mapRequired("IfsVersion", Stub.IfsVersion);
157 IO.mapOptional("SoName", Stub.SoName);
158 IO.mapOptional("Target", Stub.Target.Triple);
159 IO.mapOptional("NeededLibs", Stub.NeededLibs);
160 IO.mapRequired("Symbols", Stub.Symbols);
181 std::unique_ptr<IFSStubTriple> Stub(new IFSStubTriple());
183 YamlIn >> *Stub;
185 YamlIn >> *static_cast<IFSStub *>(Stub.get());
191 if (Stub->IfsVersion > IFSVersionCurrent)
193 "IFS version " + Stub->IfsVersion.getAsString() + " is unsupported.",
195 if (Stub->Target.ArchString) {
197 ELF::convertArchNameToEMachine(*Stub->Target.ArchString);
201 "IFS arch '" + *Stub->Target.ArchString + "' is unsupported");
202 Stub->Target.Arch = eMachine;
204 for (const auto &Item : Stub->Symbols) {
210 return std::move(Stub);
213 Error ifs::writeIFSToOutputStream(raw_ostream &OS, const IFSStub &Stub) {
215 std::unique_ptr<IFSStubTriple> CopyStub(new IFSStubTriple(Stub));
216 if (Stub.Target.Arch) {
218 std::string(ELF::convertEMachineToArchName(*Stub.Target.Arch));
220 IFSTarget Target = Stub.Target;
232 IFSStub &Stub, std::optional<IFSArch> OverrideArch,
238 if (Stub.Target.Arch && *Stub.Target.Arch != *OverrideArch) {
242 Stub.Target.Arch = *OverrideArch;
245 if (Stub.Target.Endianness &&
246 *Stub.Target.Endianness != *OverrideEndianness) {
250 Stub.Target.Endianness = *OverrideEndianness;
253 if (Stub.Target.BitWidth && *Stub.Target.BitWidth != *OverrideBitWidth) {
257 Stub.Target.BitWidth = *OverrideBitWidth;
260 if (Stub.Target.Triple && *Stub.Target.Triple != *OverrideTriple) {
264 Stub.Target.Triple = *OverrideTriple;
269 Error ifs::validateIFSTarget(IFSStub &Stub, bool ParseTriple) {
271 if (Stub.Target.Triple) {
272 if (Stub.Target.Arch || Stub.Target.BitWidth || Stub.Target.Endianness ||
273 Stub.Target.ObjectFormat) {
279 IFSTarget TargetFromTriple = parseTriple(*Stub.Target.Triple);
280 Stub.Target.Arch = TargetFromTriple.Arch;
281 Stub.Target.BitWidth = TargetFromTriple.BitWidth;
282 Stub.Target.Endianness = TargetFromTriple.Endianness;
286 if (!Stub.Target.Arch || !Stub.Target.BitWidth || !Stub.Target.Endianness) {
288 if (!Stub.Target.Arch) {
292 if (!Stub.Target.BitWidth) {
296 if (!Stub.Target.Endianness) {
328 void ifs::stripIFSTarget(IFSStub &Stub, bool StripTriple, bool StripArch,
331 Stub.Target.Arch.reset();
332 Stub.Target.ArchString.reset();
335 Stub.Target.Endianness.reset();
338 Stub.Target.BitWidth.reset();
341 Stub.Target.Triple.reset();
343 if (!Stub.Target.Arch && !Stub.Target.BitWidth && !Stub.Target.Endianness) {
344 Stub.Target.ObjectFormat.reset();
348 Error ifs::filterIFSSyms(IFSStub &Stub, bool StripUndefined,
369 llvm::erase_if(Stub.Symbols, Filter);