LLVM: llvm::MachObjectWriter Class Reference (original) (raw)
#include "[llvm/MC/MCMachObjectWriter.h](MCMachObjectWriter%5F8h%5Fsource.html)"
Public Attributes | |
---|---|
union { | |
MCVersionMinType Type | |
Used when EmitBuildVersion==false. More... | |
MachO::PlatformType Platform | |
Used when EmitBuildVersion==true. More... | |
} | TypeOrPlatform |
unsigned | Major |
unsigned | Minor |
unsigned | Update |
VersionTuple | SDKVersion |
An optional version of the SDK that was used to build the source. | |
support::endian::Writer | W |
Additional Inherited Members | |
---|---|
![]() |
|
MCObjectWriter ()=default | |
![]() |
|
SmallVector< std::pair< std::string, size_t >, 0 > | FileNames |
List of declared file names. | |
std::string | CompilerVersion |
std::vector< const MCSymbol * > | AddrsigSyms |
bool | EmitAddrsigSection = false |
bool | SubsectionsViaSymbols = false |
SmallVector< CGProfileEntry, 0 > | CGProfile |
Definition at line 86 of file MCMachObjectWriter.h.
◆ VersionInfoType
◆ addRelocation()
◆ bindIndirectSymbols()
void MachObjectWriter::bindIndirectSymbols | ( | MCAssembler & | Asm | ) |
---|
◆ computeSectionAddresses()
◆ computeSymbolTable()
void MachObjectWriter::computeSymbolTable | ( | MCAssembler & | Asm, |
---|---|---|---|
std::vector< MachSymbolData > & | LocalSymbolData, | ||
std::vector< MachSymbolData > & | ExternalSymbolData, | ||
std::vector< MachSymbolData > & | UndefinedSymbolData | ||
) |
Compute the symbol table data.
computeSymbolTable - Compute the symbol table data
Definition at line 586 of file MachObjectWriter.cpp.
References assert(), llvm::support::endian::Writer::Endian, isSymbolLinkerVisible(), llvm::little, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::lookup(), llvm::sort(), and W.
Referenced by writeObject().
◆ doesSymbolRequireExternRelocation()
◆ executePostLayoutBinding()
void MachObjectWriter::executePostLayoutBinding ( MCAssembler & Asm) | overridevirtual |
---|
◆ findAliasedSymbol()
◆ getAtom()
◆ getDataRegions()
std::vector< DataRegionData > & llvm::MachObjectWriter::getDataRegions ( ) | inline |
---|
◆ getFragmentAddress()
◆ getIndirectSymbols()
std::vector< IndirectSymbolData > & llvm::MachObjectWriter::getIndirectSymbols ( ) | inline |
---|
◆ getLinkerOptions()
std::vector< std::vector< std::string > > & llvm::MachObjectWriter::getLinkerOptions ( ) | inline |
---|
◆ getLOHContainer()
◆ getPaddingSize()
◆ getSectionAddress()
◆ getSectionAddressMap()
SectionAddrMap & llvm::MachObjectWriter::getSectionAddressMap ( ) | inline |
---|
◆ getSectionOrder()
◆ getSymbolAddress()
Definition at line 98 of file MachObjectWriter.cpp.
References llvm::Address, llvm::CallingConv::C, llvm::MCExpr::evaluateAsRelocatable(), llvm::MCSymbol::getFragment(), llvm::MCSymbol::getName(), llvm::Target::getName(), llvm::MCFragment::getParent(), getSectionAddress(), getSymbolAddress(), llvm::MCSymbol::getVariableValue(), llvm::MCSymbol::isVariable(), and llvm::report_fatal_error().
Referenced by getSymbolAddress(), writeNlist(), and writeObject().
◆ is64Bit()
bool llvm::MachObjectWriter::is64Bit ( ) const | inline |
---|
◆ isFixupKindPCRel()
◆ isSymbolRefDifferenceFullyResolvedImpl()
◆ isX86_64()
bool llvm::MachObjectWriter::isX86_64 ( ) const | inline |
---|
◆ populateAddrSigSection()
void MachObjectWriter::populateAddrSigSection | ( | MCAssembler & | Asm | ) |
---|
◆ recordRelocation()
◆ reset()
void MachObjectWriter::reset ( ) | overridevirtual |
---|
◆ setBuildVersion()
◆ setTargetVariantBuildVersion()
◆ setVersionMin()
◆ writeDysymtabLoadCommand()
◆ writeHeader()
Definition at line 174 of file MachObjectWriter.cpp.
References assert(), llvm::MachO::CPU_SUBTYPE_ARM64E, llvm::MachO::CPU_SUBTYPE_ARM64E_WITH_PTRAUTH_VERSION(), llvm::MachO::CPU_TYPE_ARM64, is64Bit(), llvm::MachO::MH_MAGIC, llvm::MachO::MH_MAGIC_64, llvm::MachO::MH_SUBSECTIONS_VIA_SYMBOLS, llvm::support::endian::Writer::OS, llvm::MCObjectWriter::SubsectionsViaSymbols, llvm::raw_ostream::tell(), Type, W, and llvm::support::endian::Writer::write().
Referenced by writeObject().
◆ writeLinkeditLoadCommand()
◆ writeLinkerOptionsLoadCommand()
void MachObjectWriter::writeLinkerOptionsLoadCommand | ( | const std::vector< std::string > & | Options | ) |
---|
Definition at line 483 of file MachObjectWriter.cpp.
References assert(), ComputeLinkerOptionsLoadCommandSize(), is64Bit(), llvm::offsetToAlignment(), Options, llvm::support::endian::Writer::OS, Size, llvm::raw_ostream::tell(), W, llvm::support::endian::Writer::write(), and llvm::raw_ostream::write_zeros().
Referenced by writeObject().
◆ writeNlist()
void MachObjectWriter::writeNlist | ( | MachSymbolData & | MSD, |
---|---|---|---|
const MCAssembler & | Asm | ||
) |
Definition at line 392 of file MachObjectWriter.cpp.
References llvm::Address, llvm::Data, findAliasedSymbol(), getSymbolAddress(), is64Bit(), llvm::MachO::N_ABS, llvm::MachO::N_EXT, llvm::MachO::N_INDR, llvm::MachO::N_PEXT, llvm::MachO::N_SECT, llvm::MachO::N_UNDF, llvm::support::endian::Writer::OS, W, and llvm::support::endian::Writer::write().
Referenced by writeObject().
◆ writeObject()
Write the object file and returns the number of bytes written.
This routine is called by the assembler after layout and relaxation is complete, fixups have been evaluated and applied, and relocations generated.
Implements llvm::MCObjectWriter.
Definition at line 794 of file MachObjectWriter.cpp.
References llvm::Address, llvm::alignTo(), assert(), llvm::MCSection::begin(), llvm::MCObjectWriter::CGProfile, ComputeLinkerOptionsLoadCommandSize(), computeSymbolTable(), llvm::Data, llvm::dbgs(), llvm::MCLOHContainer::emit(), End, llvm::support::endian::Writer::Endian, llvm::MCLOHContainer::getEmitSize(), getLCFromMCVM(), llvm::SectionKind::getMetadata(), getPaddingSize(), getSectionAddress(), getSymbolAddress(), llvm::MachO::INDIRECT_SYMBOL_ABS, llvm::MachO::INDIRECT_SYMBOL_LOCAL, is64Bit(), LLVM_DEBUG, llvm::MachO::MH_OBJECT, Minor, llvm::offsetToAlignment(), llvm::support::endian::Writer::OS, OS, populateAddrSigSection(), llvm::report_fatal_error(), llvm::reverse(), llvm::MachO::S_ATTR_SOME_INSTRUCTIONS, llvm::MachO::S_NON_LAZY_SYMBOL_POINTERS, SDKVersion, Size, llvm::MCObjectWriter::SubsectionsViaSymbols, llvm::raw_ostream::tell(), Update, llvm::MachO::VM_PROT_EXECUTE, llvm::MachO::VM_PROT_READ, llvm::MachO::VM_PROT_WRITE, W, llvm::support::endian::Writer::write(), llvm::support::endian::write(), llvm::raw_ostream::write_zeros(), writeDysymtabLoadCommand(), writeHeader(), writeLinkeditLoadCommand(), writeLinkerOptionsLoadCommand(), writeNlist(), writeSection(), writeSegmentLoadCommand(), and writeSymtabLoadCommand().
◆ writeSection()
◆ writeSegmentLoadCommand()
◆ writeSymtabLoadCommand()
◆ Major
◆ Minor
◆ Platform
◆ SDKVersion
◆ Type
◆
union { ... } llvm::MachObjectWriter::TypeOrPlatform
◆ Update
◆ W
Definition at line 183 of file MCMachObjectWriter.h.
Referenced by computeSymbolTable(), llvm::MCLOHDirective::emit(), writeDysymtabLoadCommand(), writeHeader(), writeLinkeditLoadCommand(), writeLinkerOptionsLoadCommand(), writeNlist(), writeObject(), writeSection(), writeSegmentLoadCommand(), and writeSymtabLoadCommand().
The documentation for this class was generated from the following files:
- include/llvm/MC/MCMachObjectWriter.h
- lib/MC/MachObjectWriter.cpp