LLVM: lib/ObjCopy/MachO/MachOObjcopy.cpp File Reference (original) (raw)

Go to the source code of this file.

Functions
static bool isLoadCommandWithPayloadString (const LoadCommand &LC)
static StringRef getPayloadString (const LoadCommand &LC)
static Error removeSections (const CommonConfig &Config, Object &Obj)
static void markSymbols (const CommonConfig &, Object &Obj)
static void updateAndRemoveSymbols (const CommonConfig &Config, const MachOConfig &MachOConfig, Object &Obj)
template
static void updateLoadCommandPayloadString (LoadCommand &LC, StringRef S)
static LoadCommand buildRPathLoadCommand (StringRef Path)
static Error processLoadCommands (const MachOConfig &MachOConfig, Object &Obj)
static Error dumpSectionToFile (StringRef SecName, StringRef Filename, StringRef InputFilename, Object &Obj)
static Error addSection (const NewSectionInfo &NewSection, Object &Obj)
static Expected< Section & > findSection (StringRef SecName, Object &O)
static Error updateSection (const NewSectionInfo &NewSection, Object &O)
static Error isValidMachOCannonicalName (StringRef Name)
static Error handleArgs (const CommonConfig &Config, const MachOConfig &MachOConfig, Object &Obj)

LoadCommandPred

SectionPred

addSection()

Definition at line 330 of file MachOObjcopy.cpp.

References llvm::alignTo(), llvm::objcopy::macho::Section::Content, llvm::objcopy::macho::LoadCommand::getSegmentName(), llvm::objcopy::macho::LoadCommand::getSegmentVMAddr(), llvm::objcopy::NewSectionInfo::SectionData, llvm::objcopy::NewSectionInfo::SectionName, llvm::objcopy::macho::LoadCommand::Sections, llvm::objcopy::macho::Section::Size, llvm::StringRef::size(), llvm::StringRef::split(), and llvm::Error::success().

Referenced by handleArgs().

buildRPathLoadCommand()

dumpSectionToFile()

findSection()

getPayloadString()

handleArgs()

Definition at line 440 of file MachOObjcopy.cpp.

References llvm::objcopy::CommonConfig::AddSection, addSection(), llvm::createFileError(), llvm::objcopy::CommonConfig::DumpSection, dumpSectionToFile(), E(), llvm::objcopy::CommonConfig::InputFilename, isValidMachOCannonicalName(), markSymbols(), processLoadCommands(), removeSections(), llvm::objcopy::NewSectionInfo::SectionName, llvm::objcopy::macho::LoadCommand::Sections, llvm::objcopy::CommonConfig::StripAll, llvm::Error::success(), updateAndRemoveSymbols(), llvm::objcopy::CommonConfig::UpdateSection, and updateSection().

Referenced by llvm::objcopy::macho::executeObjcopyOnBinary().

isLoadCommandWithPayloadString()

isValidMachOCannonicalName()

markSymbols()

processLoadCommands()

Definition at line 179 of file MachOObjcopy.cpp.

References buildRPathLoadCommand(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::contains(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::count(), llvm::createStringError(), E(), llvm::StringRef::empty(), llvm::objcopy::MachOConfig::EmptySegmentsToRemove, llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::erase(), getPayloadString(), llvm::objcopy::macho::LoadCommand::getSegmentName(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::insert(), llvm::objcopy::MachOConfig::InstallNamesToUpdate, llvm::invalid_argument, llvm::objcopy::macho::LoadCommand::MachOLoadCommand, llvm::objcopy::MachOConfig::RemoveAllRpaths, llvm::objcopy::MachOConfig::RPathsToRemove, llvm::objcopy::MachOConfig::RPathsToUpdate, llvm::objcopy::MachOConfig::RPathToAdd, llvm::objcopy::MachOConfig::RPathToPrepend, llvm::objcopy::macho::LoadCommand::Sections, llvm::objcopy::MachOConfig::SharedLibId, llvm::Error::success(), and updateLoadCommandPayloadString().

Referenced by handleArgs().

removeSections()

updateAndRemoveSymbols()

Definition at line 93 of file MachOObjcopy.cpp.

References llvm::objcopy::All, llvm::objcopy::CommonConfig::DiscardMode, llvm::objcopy::NameMatcher::empty(), I, llvm::objcopy::macho::SymbolEntry::isExternalSymbol(), llvm::objcopy::macho::SymbolEntry::isUndefinedSymbol(), llvm::objcopy::MachOConfig::KeepUndefined, llvm::objcopy::NameMatcher::matches(), llvm::MachO::MH_DYLDLINK, N, llvm::objcopy::macho::SymbolEntry::n_desc, llvm::MachO::N_EXT, llvm::MachO::N_STAB, llvm::objcopy::macho::SymbolEntry::n_type, llvm::MachO::N_WEAK_DEF, llvm::objcopy::macho::SymbolEntry::Name, llvm::MachO::REFERENCED_DYNAMICALLY, llvm::objcopy::CommonConfig::StripAll, llvm::objcopy::CommonConfig::StripDebug, llvm::objcopy::MachOConfig::StripSwiftSymbols, llvm::objcopy::CommonConfig::SymbolsToGlobalize, llvm::objcopy::CommonConfig::SymbolsToKeepGlobal, llvm::objcopy::CommonConfig::SymbolsToLocalize, llvm::objcopy::CommonConfig::SymbolsToRename, llvm::objcopy::CommonConfig::SymbolsToSkip, llvm::objcopy::CommonConfig::SymbolsToWeaken, and llvm::objcopy::CommonConfig::Weaken.

Referenced by handleArgs().

updateLoadCommandPayloadString()

template

updateSection()