LLVM 22.0.0git
|
#include "llvm/ObjCopy/MachO/MachOObjcopy.h"
#include "Archive.h"
#include "MachOReader.h"
#include "MachOWriter.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ObjCopy/CommonConfig.h"
#include "llvm/ObjCopy/MachO/MachOConfig.h"
#include "llvm/ObjCopy/MultiFormatConfig.h"
#include "llvm/ObjCopy/ObjCopy.h"
#include "llvm/Object/ArchiveWriter.h"
#include "llvm/Object/MachOUniversal.h"
#include "llvm/Object/MachOUniversalWriter.h"
#include "llvm/Support/Errc.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/FileOutputBuffer.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/SmallVectorMemoryBuffer.h"
Go to the source code of this file.
Typedefs | |
using | SectionPred = std::function<bool(const std::unique_ptr<Section> &Sec)> |
using | LoadCommandPred = std::function<bool(const LoadCommand &LC)> |
using LoadCommandPred = std::function<bool(const LoadCommand &LC)> |
Definition at line 33 of file MachOObjcopy.cpp.
using SectionPred = std::function<bool(const std::unique_ptr<Section> &Sec)> |
Definition at line 32 of file MachOObjcopy.cpp.
|
static |
Definition at line 330 of file MachOObjcopy.cpp.
References llvm::objcopy::macho::Object::addSegment(), llvm::alignTo(), llvm::objcopy::macho::Section::Content, llvm::objcopy::macho::LoadCommand::getSegmentName(), llvm::objcopy::macho::LoadCommand::getSegmentVMAddr(), llvm::objcopy::macho::Object::LoadCommands, llvm::objcopy::macho::Object::NewSectionsContents, llvm::StringSaver::save(), 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().
|
static |
Definition at line 167 of file MachOObjcopy.cpp.
References llvm::alignTo(), llvm::MachO::rpath_command::cmd, llvm::MachO::rpath_command::cmdsize, llvm::copy(), llvm::objcopy::macho::LoadCommand::MachOLoadCommand, llvm::MachO::rpath_command::path, and llvm::objcopy::macho::LoadCommand::Payload.
Referenced by processLoadCommands().
|
static |
Definition at line 308 of file MachOObjcopy.cpp.
References llvm::copy(), llvm::FileOutputBuffer::create(), llvm::createFileError(), E(), InputFilename, llvm::objcopy::macho::Object::LoadCommands, llvm::object::parse_failed, llvm::objcopy::macho::LoadCommand::Sections, llvm::StringRef::str(), llvm::Error::success(), and llvm::Expected< T >::takeError().
Referenced by handleArgs().
Definition at line 360 of file MachOObjcopy.cpp.
References assert(), llvm::createStringError(), llvm::find_if(), llvm::invalid_argument, llvm::MachO::MH_OBJECT, llvm::StringRef::split(), and llvm::StringRef::str().
Referenced by updateSection().
|
static |
Definition at line 46 of file MachOObjcopy.cpp.
References assert(), isLoadCommandWithPayloadString(), llvm::objcopy::macho::LoadCommand::Payload, and llvm::StringRef::rtrim().
Referenced by processLoadCommands().
|
static |
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(), llvm::objcopy::macho::Object::LoadCommands, 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().
|
static |
Definition at line 36 of file MachOObjcopy.cpp.
References llvm::objcopy::macho::LoadCommand::MachOLoadCommand.
Referenced by getPayloadString(), and updateLoadCommandPayloadString().
Definition at line 421 of file MachOObjcopy.cpp.
References llvm::createStringError(), llvm::invalid_argument, and llvm::Error::success().
Referenced by handleArgs().
|
static |
Definition at line 86 of file MachOObjcopy.cpp.
References llvm::objcopy::macho::Object::IndirectSymTable, llvm::objcopy::macho::IndirectSymbolEntry::Symbol, and llvm::objcopy::macho::IndirectSymbolTable::Symbols.
Referenced by handleArgs().
|
static |
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::Object::LoadCommands, llvm::objcopy::macho::LoadCommand::MachOLoadCommand, llvm::objcopy::MachOConfig::RemoveAllRpaths, llvm::objcopy::macho::Object::removeLoadCommands(), 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::StringRef::str(), llvm::Error::success(), llvm::objcopy::macho::Object::updateLoadCommandIndexes(), and updateLoadCommandPayloadString().
Referenced by handleArgs().
|
static |
Definition at line 55 of file MachOObjcopy.cpp.
References llvm::objcopy::NameMatcher::empty(), llvm::objcopy::NameMatcher::matches(), llvm::objcopy::CommonConfig::OnlySection, llvm::objcopy::macho::Object::removeSections(), llvm::objcopy::CommonConfig::StripAll, llvm::objcopy::CommonConfig::StripDebug, and llvm::objcopy::CommonConfig::ToRemove.
Referenced by handleArgs().
|
static |
Definition at line 93 of file MachOObjcopy.cpp.
References llvm::objcopy::All, llvm::objcopy::CommonConfig::DiscardMode, llvm::objcopy::NameMatcher::empty(), llvm::objcopy::macho::MachHeader::Flags, llvm::objcopy::macho::Object::Header, 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::macho::SymbolTable::removeSymbols(), llvm::objcopy::CommonConfig::StripAll, llvm::objcopy::CommonConfig::StripDebug, llvm::objcopy::MachOConfig::StripSwiftSymbols, llvm::objcopy::macho::Object::SwiftVersion, llvm::objcopy::CommonConfig::SymbolsToGlobalize, llvm::objcopy::CommonConfig::SymbolsToKeepGlobal, llvm::objcopy::CommonConfig::SymbolsToLocalize, llvm::objcopy::CommonConfig::SymbolsToRename, llvm::objcopy::CommonConfig::SymbolsToSkip, llvm::objcopy::CommonConfig::SymbolsToWeaken, llvm::objcopy::macho::Object::SymTable, llvm::objcopy::macho::SymbolTable::updateSymbols(), and llvm::objcopy::CommonConfig::Weaken.
Referenced by handleArgs().
|
static |
Definition at line 156 of file MachOObjcopy.cpp.
References llvm::alignTo(), assert(), llvm::copy(), isLoadCommandWithPayloadString(), llvm::objcopy::macho::LoadCommand::MachOLoadCommand, llvm::objcopy::macho::LoadCommand::Payload, and llvm::StringRef::size().
Referenced by processLoadCommands().
|
static |
Definition at line 402 of file MachOObjcopy.cpp.
References llvm::objcopy::macho::Section::Content, llvm::createStringError(), findSection(), llvm::invalid_argument, llvm::objcopy::NewSectionInfo::SectionData, llvm::objcopy::NewSectionInfo::SectionName, llvm::objcopy::macho::Section::Size, llvm::StringRef::size(), llvm::Error::success(), and llvm::Expected< T >::takeError().
Referenced by handleArgs().