LLVM: llvm::objcopy::coff Namespace Reference (original) (raw)

Classes
struct AuxSymbol
class COFFObjectFile
class COFFReader
class COFFWriter
struct Object
struct Relocation
struct Section
struct Symbol
Functions
LLVM_ABI Error executeObjcopyOnBinary (const CommonConfig &Config, const COFFConfig &, object::COFFObjectFile &In, raw_ostream &Out)
Apply the transformations described by Config and COFFConfig to In and writes the result into Out.
static bool isDebugSection (const Section &Sec)
static uint64_t getNextRVA (const Object &Obj)
static Expected< std::vector< uint8_t > > createGnuDebugLinkSectionContents (StringRef File)
static void addSection (Object &Obj, StringRef Name, ArrayRef< uint8_t > Contents, uint32_t Characteristics)
static Error addGnuDebugLink (Object &Obj, StringRef DebugLinkFile)
static uint32_t flagsToCharacteristics (SectionFlag AllFlags, uint32_t OldChar)
static Error dumpSection (Object &O, StringRef SectionName, StringRef FileName)
static Error handleArgs (const CommonConfig &Config, const COFFConfig &COFFConfig, Object &Obj)
template<class Symbol1Ty, class Symbol2Ty>
void copySymbol (Symbol1Ty &Dest, const Symbol2Ty &Src)
template<class PeHeader1Ty, class PeHeader2Ty>
void copyPeHeader (PeHeader1Ty &Dest, const PeHeader2Ty &Src)

addSection()

copyPeHeader()

template<class PeHeader1Ty, class PeHeader2Ty>

void llvm::objcopy::coff::copyPeHeader ( PeHeader1Ty & Dest,
const PeHeader2Ty & Src )

copySymbol()

template<class Symbol1Ty, class Symbol2Ty>

void llvm::objcopy::coff::copySymbol ( Symbol1Ty & Dest,
const Symbol2Ty & Src )

createGnuDebugLinkSectionContents()

Definition at line 44 of file COFFObjcopy.cpp.

References llvm::alignTo(), llvm::arrayRefFromStringRef(), llvm::crc32(), llvm::createFileError(), llvm::Data, llvm::StringRef::data(), llvm::objcopy::File, llvm::sys::path::filename(), llvm::ErrorOr< T >::getError(), llvm::MemoryBuffer::getFile(), llvm::StringRef::size(), and llvm::support::endian::write32le().

Referenced by addGnuDebugLink().

dumpSection()

executeObjcopyOnBinary()

flagsToCharacteristics()

Definition at line 98 of file COFFObjcopy.cpp.

References llvm::COFF::IMAGE_SCN_ALIGN_1024BYTES, llvm::COFF::IMAGE_SCN_ALIGN_128BYTES, llvm::COFF::IMAGE_SCN_ALIGN_16BYTES, llvm::COFF::IMAGE_SCN_ALIGN_1BYTES, llvm::COFF::IMAGE_SCN_ALIGN_2048BYTES, llvm::COFF::IMAGE_SCN_ALIGN_256BYTES, llvm::COFF::IMAGE_SCN_ALIGN_2BYTES, llvm::COFF::IMAGE_SCN_ALIGN_32BYTES, llvm::COFF::IMAGE_SCN_ALIGN_4096BYTES, llvm::COFF::IMAGE_SCN_ALIGN_4BYTES, llvm::COFF::IMAGE_SCN_ALIGN_512BYTES, llvm::COFF::IMAGE_SCN_ALIGN_64BYTES, llvm::COFF::IMAGE_SCN_ALIGN_8192BYTES, llvm::COFF::IMAGE_SCN_ALIGN_8BYTES, llvm::COFF::IMAGE_SCN_CNT_CODE, llvm::COFF::IMAGE_SCN_CNT_INITIALIZED_DATA, llvm::COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA, llvm::COFF::IMAGE_SCN_LNK_REMOVE, llvm::COFF::IMAGE_SCN_MEM_DISCARDABLE, llvm::COFF::IMAGE_SCN_MEM_EXECUTE, llvm::COFF::IMAGE_SCN_MEM_READ, llvm::COFF::IMAGE_SCN_MEM_SHARED, llvm::COFF::IMAGE_SCN_MEM_WRITE, llvm::objcopy::SecAlloc, llvm::objcopy::SecCode, llvm::objcopy::SecData, llvm::objcopy::SecDebug, llvm::objcopy::SecExclude, llvm::objcopy::SecLoad, llvm::objcopy::SecNoload, llvm::objcopy::SecReadonly, and llvm::objcopy::SecShare.

Referenced by handleArgs().

getNextRVA()

handleArgs()

Definition at line 157 of file COFFObjcopy.cpp.

References llvm::objcopy::CommonConfig::AddGnuDebugLink, addGnuDebugLink(), llvm::objcopy::CommonConfig::AddSection, addSection(), llvm::objcopy::All, llvm::object::coff_section::Characteristics, llvm::createStringError(), llvm::COFF::DEBUG_DIRECTORY, llvm::objcopy::CommonConfig::DiscardMode, llvm::objcopy::CommonConfig::DumpSection, dumpSection(), E(), llvm::objcopy::NameMatcher::empty(), llvm::StringRef::empty(), llvm::objcopy::File, llvm::find_if(), flagsToCharacteristics(), llvm::objcopy::coff::Section::Header, I, llvm::COFF::IMAGE_SCN_ALIGN_1BYTES, llvm::COFF::IMAGE_SCN_CNT_CODE, llvm::COFF::IMAGE_SCN_CNT_INITIALIZED_DATA, llvm::COFF::IMAGE_SCN_MEM_DISCARDABLE, llvm::COFF::IMAGE_SYM_CLASS_STATIC, llvm::invalid_argument, isDebugSection(), llvm::objcopy::COFFConfig::MajorSubsystemVersion, llvm::objcopy::NameMatcher::matches(), llvm::objcopy::COFFConfig::MinorSubsystemVersion, llvm::objcopy::coff::Section::Name, llvm::objcopy::CommonConfig::OnlyKeepDebug, llvm::objcopy::CommonConfig::OnlySection, llvm::objcopy::CommonConfig::OutputFilename, llvm::object::data_directory::RelativeVirtualAddress, llvm::objcopy::coff::Section::Relocs, llvm::objcopy::NewSectionInfo::SectionData, llvm::objcopy::NewSectionInfo::SectionName, llvm::objcopy::CommonConfig::SetSectionFlags, llvm::object::data_directory::Size, llvm::object::coff_section::SizeOfRawData, llvm::StringRef::str(), llvm::objcopy::CommonConfig::StripAll, llvm::objcopy::CommonConfig::StripAllGNU, llvm::objcopy::CommonConfig::StripDebug, llvm::objcopy::CommonConfig::StripUnneeded, llvm::objcopy::COFFConfig::Subsystem, llvm::Error::success(), llvm::objcopy::CommonConfig::SymbolsToRemove, llvm::objcopy::CommonConfig::SymbolsToRename, llvm::objcopy::CommonConfig::ToRemove, ToRemove, llvm::objcopy::CommonConfig::UnneededSymbolsToRemove, llvm::objcopy::CommonConfig::UpdateSection, and llvm::object::coff_section::VirtualAddress.

Referenced by executeObjcopyOnBinary().

isDebugSection()