Lines Matching refs:MachO
300 if (MachOObjectFile *MachO = dyn_cast<MachOObjectFile>(&Obj)) in isSymbolList64Bit() local
301 return MachO->is64Bit(); in isSymbolList64Bit()
318 MachO::mach_header H; in darwinPrintSymbol()
319 MachO::mach_header_64 H_64; in darwinPrintSymbol()
320 uint32_t Filetype = MachO::MH_OBJECT; in darwinPrintSymbol()
327 MachOObjectFile *MachO = dyn_cast<MachOObjectFile>(&Obj); in darwinPrintSymbol() local
331 NType |= MachO::N_EXT; in darwinPrintSymbol()
333 NType |= MachO::N_PEXT; in darwinPrintSymbol()
335 NType |= MachO::N_EXT | MachO::N_UNDF; in darwinPrintSymbol()
340 NType |= MachO::N_SECT; in darwinPrintSymbol()
349 NDesc |= MachO::N_WEAK_DEF; in darwinPrintSymbol()
352 if (MachO->is64Bit()) { in darwinPrintSymbol()
353 H_64 = MachO->MachOObjectFile::getHeader64(); in darwinPrintSymbol()
357 MachO::nlist_64 STE_64 = MachO->getSymbol64TableEntry(SymDRI); in darwinPrintSymbol()
371 H = MachO->MachOObjectFile::getHeader(); in darwinPrintSymbol()
375 MachO::nlist STE = MachO->getSymbolTableEntry(SymDRI); in darwinPrintSymbol()
396 if ((NType & MachO::N_TYPE) == MachO::N_INDR) { in darwinPrintSymbol()
401 if (MachO->getIndirectName(S.Sym.getRawDataRefImpl(), IndirectName)) in darwinPrintSymbol()
413 if ((NType & MachO::N_TYPE) == MachO::N_INDR) in darwinPrintSymbol()
415 if (Obj.isIR() && (NType & MachO::N_TYPE) == MachO::N_TYPE) in darwinPrintSymbol()
420 switch (NType & MachO::N_TYPE) { in darwinPrintSymbol()
421 case MachO::N_UNDF: in darwinPrintSymbol()
424 if (MachO::GET_COMM_ALIGN(NDesc) != 0) in darwinPrintSymbol()
425 outs() << "(alignment 2^" << (int)MachO::GET_COMM_ALIGN(NDesc) << ") "; in darwinPrintSymbol()
427 if ((NType & MachO::N_TYPE) == MachO::N_PBUD) in darwinPrintSymbol()
431 if ((NDesc & MachO::REFERENCE_TYPE) == in darwinPrintSymbol()
432 MachO::REFERENCE_FLAG_UNDEFINED_LAZY) in darwinPrintSymbol()
434 else if ((NDesc & MachO::REFERENCE_TYPE) == in darwinPrintSymbol()
435 MachO::REFERENCE_FLAG_PRIVATE_UNDEFINED_LAZY) in darwinPrintSymbol()
437 else if ((NDesc & MachO::REFERENCE_TYPE) == in darwinPrintSymbol()
438 MachO::REFERENCE_FLAG_PRIVATE_UNDEFINED_NON_LAZY) in darwinPrintSymbol()
444 case MachO::N_ABS: in darwinPrintSymbol()
447 case MachO::N_INDR: in darwinPrintSymbol()
450 case MachO::N_SECT: { in darwinPrintSymbol()
467 MachO->getSymbolSection(S.Sym.getRawDataRefImpl()); in darwinPrintSymbol()
474 if (Sec == MachO->section_end()) { in darwinPrintSymbol()
483 if (Expected<StringRef> NameOrErr = MachO->getSectionName(Ref)) in darwinPrintSymbol()
485 StringRef SegmentName = MachO->getSectionFinalSegmentName(Ref); in darwinPrintSymbol()
494 if (NType & MachO::N_EXT) { in darwinPrintSymbol()
495 if (NDesc & MachO::REFERENCED_DYNAMICALLY) in darwinPrintSymbol()
497 if (NType & MachO::N_PEXT) { in darwinPrintSymbol()
498 if ((NDesc & MachO::N_WEAK_DEF) == MachO::N_WEAK_DEF) in darwinPrintSymbol()
503 if ((NDesc & MachO::N_WEAK_REF) == MachO::N_WEAK_REF || in darwinPrintSymbol()
504 (NDesc & MachO::N_WEAK_DEF) == MachO::N_WEAK_DEF) { in darwinPrintSymbol()
505 if ((NDesc & (MachO::N_WEAK_REF | MachO::N_WEAK_DEF)) == in darwinPrintSymbol()
506 (MachO::N_WEAK_REF | MachO::N_WEAK_DEF)) in darwinPrintSymbol()
514 if (NType & MachO::N_PEXT) in darwinPrintSymbol()
520 if (Filetype == MachO::MH_OBJECT) { in darwinPrintSymbol()
521 if (NDesc & MachO::N_NO_DEAD_STRIP) in darwinPrintSymbol()
523 if ((NType & MachO::N_TYPE) != MachO::N_UNDF && in darwinPrintSymbol()
524 NDesc & MachO::N_SYMBOL_RESOLVER) in darwinPrintSymbol()
526 if ((NType & MachO::N_TYPE) != MachO::N_UNDF && NDesc & MachO::N_ALT_ENTRY) in darwinPrintSymbol()
528 if ((NType & MachO::N_TYPE) != MachO::N_UNDF && NDesc & MachO::N_COLD_FUNC) in darwinPrintSymbol()
532 if ((NDesc & MachO::N_ARM_THUMB_DEF) == MachO::N_ARM_THUMB_DEF) in darwinPrintSymbol()
535 if ((NType & MachO::N_TYPE) == MachO::N_INDR) { in darwinPrintSymbol()
538 if (MachO) { in darwinPrintSymbol()
540 if (MachO->getIndirectName(S.Sym.getRawDataRefImpl(), IndirectName)) in darwinPrintSymbol()
551 if ((Flags & MachO::MH_TWOLEVEL) == MachO::MH_TWOLEVEL && in darwinPrintSymbol()
552 (((NType & MachO::N_TYPE) == MachO::N_UNDF && NValue == 0) || in darwinPrintSymbol()
553 (NType & MachO::N_TYPE) == MachO::N_PBUD)) { in darwinPrintSymbol()
554 uint32_t LibraryOrdinal = MachO::GET_LIBRARY_ORDINAL(NDesc); in darwinPrintSymbol()
556 if (LibraryOrdinal == MachO::EXECUTABLE_ORDINAL) in darwinPrintSymbol()
558 else if (LibraryOrdinal == MachO::DYNAMIC_LOOKUP_ORDINAL) in darwinPrintSymbol()
562 if (!MachO || in darwinPrintSymbol()
563 MachO->getLibraryShortNameByIndex(LibraryOrdinal - 1, LibraryName)) in darwinPrintSymbol()
580 {MachO::N_GSYM, "GSYM"},
581 {MachO::N_FNAME, "FNAME"},
582 {MachO::N_FUN, "FUN"},
583 {MachO::N_STSYM, "STSYM"},
584 {MachO::N_LCSYM, "LCSYM"},
585 {MachO::N_BNSYM, "BNSYM"},
586 {MachO::N_PC, "PC"},
587 {MachO::N_AST, "AST"},
588 {MachO::N_OPT, "OPT"},
589 {MachO::N_RSYM, "RSYM"},
590 {MachO::N_SLINE, "SLINE"},
591 {MachO::N_ENSYM, "ENSYM"},
592 {MachO::N_SSYM, "SSYM"},
593 {MachO::N_SO, "SO"},
594 {MachO::N_OSO, "OSO"},
595 {MachO::N_LSYM, "LSYM"},
596 {MachO::N_BINCL, "BINCL"},
597 {MachO::N_SOL, "SOL"},
598 {MachO::N_PARAMS, "PARAM"},
599 {MachO::N_VERSION, "VERS"},
600 {MachO::N_OLEVEL, "OLEV"},
601 {MachO::N_PSYM, "PSYM"},
602 {MachO::N_EINCL, "EINCL"},
603 {MachO::N_ENTRY, "ENTRY"},
604 {MachO::N_LBRAC, "LBRAC"},
605 {MachO::N_EXCL, "EXCL"},
606 {MachO::N_RBRAC, "RBRAC"},
607 {MachO::N_BCOMM, "BCOMM"},
608 {MachO::N_ECOMM, "ECOMM"},
609 {MachO::N_ECOML, "ECOML"},
610 {MachO::N_LENG, "LENG"},
622 static void darwinPrintStab(MachOObjectFile *MachO, const NMSymbol &S) { in darwinPrintStab() argument
623 MachO::nlist_64 STE_64; in darwinPrintStab()
624 MachO::nlist STE; in darwinPrintStab()
629 if (MachO->is64Bit()) { in darwinPrintStab()
630 STE_64 = MachO->getSymbol64TableEntry(SymDRI); in darwinPrintStab()
635 STE = MachO->getSymbolTableEntry(SymDRI); in darwinPrintStab()
761 MachOObjectFile *MachO = dyn_cast<MachOObjectFile>(&Obj); in printSymbolList() local
775 (UndefinedOnly && MachO && OutputFormat != darwin)) && in printSymbolList()
799 else if (MachO && S.TypeChar == 'I') in printSymbolList()
812 if ((OutputFormat == darwin || FormatMachOasHex) && (MachO || Obj.isIR())) { in printSymbolList()
817 << (MachO ? "0" : SymbolSizeStr) << "\n"; in printSymbolList()
818 } else if (OutputFormat == bsd || (OutputFormat == darwin && !MachO)) { in printSymbolList()
824 if (S.TypeChar == '-' && MachO) in printSymbolList()
825 darwinPrintStab(MachO, S); in printSymbolList()
827 if (S.TypeChar == 'I' && MachO) { in printSymbolList()
831 if (MachO->getIndirectName(S.Sym.getRawDataRefImpl(), IndirectName)) in printSymbolList()
1001 if (NType & MachO::N_STAB) in getSymbolNMTypeChar()
1004 switch (NType & MachO::N_TYPE) { in getSymbolNMTypeChar()
1005 case MachO::N_ABS: in getSymbolNMTypeChar()
1007 case MachO::N_INDR: in getSymbolNMTypeChar()
1009 case MachO::N_SECT: { in getSymbolNMTypeChar()
1023 if (Obj.is64Bit() && Obj.getHeader64().filetype == MachO::MH_KEXT_BUNDLE && in getSymbolNMTypeChar()
1136 else if (MachOObjectFile *MachO = dyn_cast<MachOObjectFile>(&Obj)) in getNMSectionTagAndName() local
1137 Ret = getSymbolNMTypeChar(*MachO, I); in getNMSectionTagAndName()
1184 MachO::nlist_64 STE = Obj.getSymbol64TableEntry(Symb); in getNsectInMachO()
1185 return (STE.n_type & MachO::N_TYPE) == MachO::N_SECT ? STE.n_sect : 0; in getNsectInMachO()
1187 MachO::nlist STE = Obj.getSymbolTableEntry(Symb); in getNsectInMachO()
1188 return (STE.n_type & MachO::N_TYPE) == MachO::N_SECT ? STE.n_sect : 0; in getNsectInMachO()
1191 static void dumpSymbolsFromDLInfoMachO(MachOObjectFile &MachO, in dumpSymbolsFromDLInfoMachO() argument
1205 MachO::mach_header H; in dumpSymbolsFromDLInfoMachO()
1206 MachO::mach_header_64 H_64; in dumpSymbolsFromDLInfoMachO()
1208 if (MachO.is64Bit()) { in dumpSymbolsFromDLInfoMachO()
1209 H_64 = MachO.MachOObjectFile::getHeader64(); in dumpSymbolsFromDLInfoMachO()
1212 H = MachO.MachOObjectFile::getHeader(); in dumpSymbolsFromDLInfoMachO()
1216 for (const auto &Command : MachO.load_commands()) { in dumpSymbolsFromDLInfoMachO()
1217 if (Command.C.cmd == MachO::LC_SEGMENT) { in dumpSymbolsFromDLInfoMachO()
1218 MachO::segment_command Seg = MachO.getSegmentLoadCommand(Command); in dumpSymbolsFromDLInfoMachO()
1223 } else if (Command.C.cmd == MachO::LC_SEGMENT_64) { in dumpSymbolsFromDLInfoMachO()
1224 MachO::segment_command_64 Seg = MachO.getSegment64LoadCommand(Command); in dumpSymbolsFromDLInfoMachO()
1232 HFlags & MachO::MH_NLIST_OUTOFSYNC_WITH_DYLDINFO) { in dumpSymbolsFromDLInfoMachO()
1235 for (const llvm::object::ExportEntry &Entry : MachO.exports(Err)) { in dumpSymbolsFromDLInfoMachO()
1263 bool Abs = ((EFlags & MachO::EXPORT_SYMBOL_FLAGS_KIND_MASK) == in dumpSymbolsFromDLInfoMachO()
1264 MachO::EXPORT_SYMBOL_FLAGS_KIND_ABSOLUTE); in dumpSymbolsFromDLInfoMachO()
1265 bool Resolver = (EFlags & MachO::EXPORT_SYMBOL_FLAGS_STUB_AND_RESOLVER); in dumpSymbolsFromDLInfoMachO()
1266 ReExport = (EFlags & MachO::EXPORT_SYMBOL_FLAGS_REEXPORT); in dumpSymbolsFromDLInfoMachO()
1267 bool WeakDef = (EFlags & MachO::EXPORT_SYMBOL_FLAGS_WEAK_DEFINITION); in dumpSymbolsFromDLInfoMachO()
1269 S.NDesc |= MachO::N_WEAK_DEF; in dumpSymbolsFromDLInfoMachO()
1271 S.NType = MachO::N_EXT | MachO::N_ABS; in dumpSymbolsFromDLInfoMachO()
1274 S.NType = MachO::N_EXT | MachO::N_INDR; in dumpSymbolsFromDLInfoMachO()
1277 S.NType = MachO::N_EXT | MachO::N_SECT; in dumpSymbolsFromDLInfoMachO()
1280 if ((S.Address & 1) != 0 && !MachO.is64Bit() && in dumpSymbolsFromDLInfoMachO()
1281 H.cputype == MachO::CPU_TYPE_ARM) { in dumpSymbolsFromDLInfoMachO()
1283 S.NDesc |= MachO::N_ARM_THUMB_DEF; in dumpSymbolsFromDLInfoMachO()
1290 for (const SectionRef &Section : MachO.sections()) { in dumpSymbolsFromDLInfoMachO()
1299 MachO.getSectionFinalSegmentName(Section.getRawDataRefImpl()); in dumpSymbolsFromDLInfoMachO()
1307 S.NDesc |= MachO::REFERENCED_DYNAMICALLY; in dumpSymbolsFromDLInfoMachO()
1354 U.NType = MachO::N_EXT | MachO::N_UNDF; in dumpSymbolsFromDLInfoMachO()
1359 MachO::SET_LIBRARY_ORDINAL(U.NDesc, Entry.other()); in dumpSymbolsFromDLInfoMachO()
1373 error(std::move(Err), MachO.getFileName()); in dumpSymbolsFromDLInfoMachO()
1393 for (const llvm::object::MachOBindEntry &Entry : MachO.bindTable(BErr)) { in dumpSymbolsFromDLInfoMachO()
1414 B.NType = MachO::N_EXT | MachO::N_UNDF; in dumpSymbolsFromDLInfoMachO()
1417 MachO::SET_LIBRARY_ORDINAL(B.NDesc, Entry.ordinal()); in dumpSymbolsFromDLInfoMachO()
1426 error(std::move(BErr), MachO.getFileName()); in dumpSymbolsFromDLInfoMachO()
1447 MachO.lazyBindTable(LErr)) { in dumpSymbolsFromDLInfoMachO()
1472 L.NType = MachO::N_EXT | MachO::N_UNDF; in dumpSymbolsFromDLInfoMachO()
1476 L.NDesc = MachO::REFERENCE_FLAG_UNDEFINED_LAZY; in dumpSymbolsFromDLInfoMachO()
1477 MachO::SET_LIBRARY_ORDINAL(L.NDesc, Entry.ordinal()); in dumpSymbolsFromDLInfoMachO()
1485 error(std::move(LErr), MachO.getFileName()); in dumpSymbolsFromDLInfoMachO()
1507 MachO.weakBindTable(WErr)) { in dumpSymbolsFromDLInfoMachO()
1511 Entry.flags() & MachO::BIND_SYMBOL_FLAGS_NON_WEAK_DEFINITION) { in dumpSymbolsFromDLInfoMachO()
1533 W.NType = MachO::N_EXT | MachO::N_UNDF; in dumpSymbolsFromDLInfoMachO()
1538 W.NDesc = MachO::N_WEAK_DEF; in dumpSymbolsFromDLInfoMachO()
1549 SymbolList[J].NDesc |= MachO::N_WEAK_DEF; in dumpSymbolsFromDLInfoMachO()
1553 error(std::move(WErr), MachO.getFileName()); in dumpSymbolsFromDLInfoMachO()
1573 for (const auto &Command : MachO.load_commands()) { in dumpSymbolsFromDLInfoMachO()
1574 if (Command.C.cmd == MachO::LC_FUNCTION_STARTS) { in dumpSymbolsFromDLInfoMachO()
1577 MachO::linkedit_data_command LLC = in dumpSymbolsFromDLInfoMachO()
1578 MachO.getLinkeditDataLoadCommand(Command); in dumpSymbolsFromDLInfoMachO()
1580 MachO.ReadULEB128s(LLC.dataoff, FoundFns); in dumpSymbolsFromDLInfoMachO()
1581 } else if (Command.C.cmd == MachO::LC_MAIN) { in dumpSymbolsFromDLInfoMachO()
1582 MachO::entry_point_command LCmain = MachO.getEntryPointCommand(Command); in dumpSymbolsFromDLInfoMachO()
1606 F.NType = MachO::N_SECT; in dumpSymbolsFromDLInfoMachO()
1610 for (const SectionRef &Section : MachO.sections()) { in dumpSymbolsFromDLInfoMachO()
1617 MachO.getSectionFinalSegmentName(Section.getRawDataRefImpl()); in dumpSymbolsFromDLInfoMachO()
1783 MachOObjectFile *MachO = dyn_cast<MachOObjectFile>(&Obj); in getSymbolNamesFromObject() local
1784 if (!SegSect.empty() && MachO) { in getSymbolNamesFromObject()
1785 Nsect = getNsectForSegSect(MachO); in getSymbolNamesFromObject()
1791 if (!(MachO && DyldInfoOnly)) { in getSymbolNamesFromObject()
1814 if (Nsect && Nsect != getNsectInMachO(*MachO, Sym)) in getSymbolNamesFromObject()
1840 if (MachO) { in getSymbolNamesFromObject()
1862 if (MachO && !NoDyldInfo) in getSymbolNamesFromObject()
1863 dumpSymbolsFromDLInfoMachO(*MachO, SymbolList); in getSymbolNamesFromObject()
1931 auto *MachO = dyn_cast<MachOObjectFile>(O); in checkMachOAndArchFlags() local
1933 if (!MachO || ArchAll || ArchFlags.empty()) in checkMachOAndArchFlags()
1936 MachO::mach_header H; in checkMachOAndArchFlags()
1937 MachO::mach_header_64 H_64; in checkMachOAndArchFlags()
1940 if (MachO->is64Bit()) { in checkMachOAndArchFlags()
1941 H_64 = MachO->MachOObjectFile::getHeader64(); in checkMachOAndArchFlags()
1945 H = MachO->MachOObjectFile::getHeader(); in checkMachOAndArchFlags()