LLVM 20.0.0git |
This class is the base class for all object file types.More...
#include "llvm/Object/ObjectFile.h"
Public Types | |
using | symbol_iterator_range =iterator_range<symbol_iterator > |
using | section_iterator_range =iterator_range<section_iterator > |
![]() | |
using | basic_symbol_iterator_range =iterator_range<basic_symbol_iterator > |
Friends | |
class | SymbolRef |
class | SectionRef |
class | RelocationRef |
Additional Inherited Members | |
![]() | |
enum | { ID_Archive,ID_MachOUniversalBinary,ID_COFFImportFile,ID_IR, ID_TapiUniversal,ID_TapiFile,ID_Minidump,ID_WinRes, ID_Offload,ID_StartObjects,ID_COFF,ID_XCOFF32, ID_XCOFF64,ID_ELF32L,ID_ELF32B,ID_ELF64L, ID_ELF64B,ID_MachO32L,ID_MachO32B,ID_MachO64L, ID_MachO64B,ID_GOFF,ID_Wasm,ID_EndObjects } |
![]() | |
staticunsigned int | getELFType (bool isLE,bool is64Bits) |
staticunsigned int | getMachOType (bool isLE,bool is64Bits) |
![]() | |
MemoryBufferRef | Data |
This class is the base class for all object file types.
Concrete instances of this object are created by createObjectFile, which figures out which type to create.
Definition at line229 of fileObjectFile.h.
Definition at line328 of fileObjectFile.h.
Definition at line320 of fileObjectFile.h.
| protected |
Definition at line43 of fileObjectFile.cpp.
| delete |
| delete |
Definition at line235 of fileObjectFile.h.
Referencesllvm::object::Binary::Data, andllvm::MemoryBufferRef::getBufferStart().
Referenced byllvm::object::COFFObjectFile::getDOSHeader(),llvm::object::COFFObjectFile::getHybridObjectView(),llvm::object::COFFObjectFile::getRelocations(),llvm::object::COFFObjectFile::getRvaAndSizeAsBytes(),llvm::object::COFFObjectFile::getRvaPtr(),llvm::object::COFFObjectFile::getSectionContents(),llvm::object::XCOFFObjectFile::getSectionContents(),llvm::object::XCOFFObjectFile::getSectionFileOffsetToRawData(),llvm::object::COFFObjectFile::getSymbolAuxData(),llvm::object::GOFFObjectFile::GOFFObjectFile(),llvm::object::COFFObjectFile::section_rel_begin(), andllvm::object::COFFObjectFile::section_rel_end().
Definition at line380 of fileObjectFile.h.
| static |
Definition at line1896 of fileCOFFObjectFile.cpp.
Referencesllvm::object::COFFObjectFile::create().
Referenced byllvm::jitlink::createLinkGraphFromCOFFObject_x86_64(), andcreateObjectFile().
| static |
Definition at line72 of fileELFObjectFile.cpp.
Referencesllvm::countr_zero(),llvm::object::createError(),llvm::ELF::ELFCLASS32,llvm::ELF::ELFCLASS64,llvm::ELF::ELFDATA2LSB,llvm::ELF::ELFDATA2MSB,llvm::MemoryBufferRef::getBuffer(),llvm::MemoryBufferRef::getBufferStart(), andllvm::object::getElfArchType().
Referenced byllvm::jitlink::createLinkGraphFromELFObject_aarch32(),llvm::jitlink::createLinkGraphFromELFObject_aarch64(),llvm::jitlink::createLinkGraphFromELFObject_i386(),llvm::jitlink::createLinkGraphFromELFObject_loongarch(),llvm::jitlink::createLinkGraphFromELFObject_ppc64(),llvm::jitlink::createLinkGraphFromELFObject_riscv(),llvm::jitlink::createLinkGraphFromELFObject_x86_64(), andcreateObjectFile().
| static |
Definition at line28 of fileGOFFObjectFile.cpp.
Referencesllvm::Error::success().
| static |
Create aMachOObjectFile instance from a given buffer.
Buffer | Memory buffer containing theMachO binary data. |
UniversalCputype | CPU type when theMachO part of a universal binary. |
UniversalIndex | Index of theMachO within a universal binary. |
MachOFilesetEntryOffset | Offset of theMachO entry in a filesetMachO. |
Definition at line5319 of fileMachOObjectFile.cpp.
Referencesllvm::object::MachOObjectFile::create(),llvm::MemoryBufferRef::getBuffer(),llvm::object::invalid_file_type, andllvm::StringRef::slice().
Referenced byllvm::jitlink::createLinkGraphFromMachOObject_arm64(),llvm::jitlink::createLinkGraphFromMachOObject_x86_64(),createObjectFile(), andllvm::object::MachOUniversalBinary::ObjectForArch::getAsObjectFile().
| inlinestatic |
Definition at line376 of fileObjectFile.h.
ReferencescreateObjectFile(), andllvm::file_magic::unknown.
| static |
Definition at line149 of fileObjectFile.cpp.
Referencesllvm::file_magic::archive,llvm::file_magic::bitcode,llvm::file_magic::clang_ast,llvm::file_magic::coff_cl_gl_object,llvm::file_magic::coff_import_library,llvm::file_magic::coff_object,createCOFFObjectFile(),createELFObjectFile(),createMachOObjectFile(),createWasmObjectFile(),createXCOFFObjectFile(),llvm::file_magic::cuda_fatbinary,llvm::object::Binary::Data,llvm::file_magic::dxcontainer_object,llvm::file_magic::elf,llvm::file_magic::elf_core,llvm::file_magic::elf_executable,llvm::file_magic::elf_relocatable,llvm::file_magic::elf_shared_object,llvm::errorCodeToError(),llvm::file_magic::goff_object,llvm::object::Binary::ID_XCOFF32,llvm::object::Binary::ID_XCOFF64,llvm::identify_magic(),llvm::object::invalid_file_type,llvm_unreachable,llvm::file_magic::macho_bundle,llvm::file_magic::macho_core,llvm::file_magic::macho_dsym_companion,llvm::file_magic::macho_dynamic_linker,llvm::file_magic::macho_dynamically_linked_shared_lib,llvm::file_magic::macho_dynamically_linked_shared_lib_stub,llvm::file_magic::macho_executable,llvm::file_magic::macho_file_set,llvm::file_magic::macho_fixed_virtual_memory_shared_lib,llvm::file_magic::macho_kext_bundle,llvm::file_magic::macho_object,llvm::file_magic::macho_preload_executable,llvm::file_magic::macho_universal_binary,llvm::file_magic::minidump,llvm::file_magic::offload_binary,llvm::file_magic::offload_bundle,llvm::file_magic::offload_bundle_compressed,llvm::file_magic::pdb,llvm::file_magic::pecoff_executable,llvm::file_magic::spirv_object,llvm::file_magic::tapi_file,llvm::file_magic::unknown,llvm::file_magic::wasm_object,llvm::file_magic::windows_resource,llvm::file_magic::xcoff_object_32, andllvm::file_magic::xcoff_object_64.
| static |
ObjectPath | The path to the object file. ObjectPath.isObject must return true. CreateObjectFile from path. |
Definition at line209 of fileObjectFile.cpp.
ReferencescreateObjectFile(),llvm::errorCodeToError(),llvm::Expected< T >::get(),llvm::ErrorOr< T >::get(),llvm::ErrorOr< T >::getError(),llvm::MemoryBuffer::getFile(), andllvm::Expected< T >::takeError().
Referenced bycreateObjectFile(),llvm::object::SymbolicFile::createSymbolicFile(),llvm::NewArchiveMember::detectKindFromObject(),llvm::orc::RTDyldObjectLinkingLayer::emit(),llvm::object::extractOffloadBinaries(),llvm::object::IRObjectFile::findBitcodeInMemBuffer(),llvm::MCJIT::generateCodeForModule(),llvm::orc::getObjectFileInterface(),LLVMCreateObjectFile(),llvm::xray::loadInstrumentationMap(),llvm::cgdata::mergeCodeGenData(),llvm::orc::ForceLoadMachOArchiveMembers::operator()(),llvm::orc::SimpleCompiler::operator()(),llvm::dwarf_linker::parallel::SectionDescriptor::setSizesForSectionCreatedByAsmPrinter(),llvm::write(), andllvm::yaml::yaml2ObjectFile().
| static |
Definition at line66 of fileWasmObjectFile.cpp.
Referencesllvm::Error::success().
Referenced bycreateObjectFile().
| static |
Definition at line1232 of fileXCOFFObjectFile.cpp.
Referenced bycreateObjectFile().
| inlinevirtual |
Reimplemented inllvm::object::ELFObjectFile< ELFT >.
Definition at line316 of fileObjectFile.h.
| pure virtual |
Implemented inllvm::object::COFFObjectFile,llvm::object::ELFObjectFile< ELFT >,llvm::object::GOFFObjectFile,llvm::object::MachOObjectFile,llvm::object::WasmObjectFile, andllvm::object::XCOFFObjectFile.
Referenced byllvm::symbolize::SymbolizableObjectFile::create(),llvm::DWARFContext::getArch(),llvm::object::getRelocationResolver(),llvm::RuntimeDyld::loadObject(),llvm::RuntimeDyldImpl::loadObjectImpl(), andmakeTriple().
| pure virtual |
The number of bytes used to represent an address in this object file format.
Implemented inllvm::object::COFFObjectFile,llvm::object::ELFObjectFile< ELFT >,llvm::object::GOFFObjectFile,llvm::object::MachOObjectFile,llvm::object::WasmObjectFile, andllvm::object::XCOFFObjectFile.
Referenced byllvm::symbolize::SymbolizableObjectFile::create(),llvm::object::getRelocationResolver(), andllvm::BTFParser::ParseContext::makeExtractor().
| inline |
Definition at line307 of fileObjectFile.h.
Referencesassert(),getCommonSymbolSizeImpl(),llvm::object::SymbolicFile::getSymbolFlags(),llvm::report_fatal_error(),llvm::object::BasicSymbolRef::SF_Common, andllvm::Expected< T >::takeError().
Referenced byllvm::object::SymbolRef::getCommonSize(), andgetSymbolValue().
| protectedpure virtual |
| pure virtual |
| pure virtual |
| inlinevirtual |
Reimplemented inllvm::object::ELFObjectFile< ELFT >.
Definition at line341 of fileObjectFile.h.
Referencesllvm::Triple::UnknownOS.
Referenced bymakeTriple().
| protectedvirtual |
Reimplemented inllvm::object::ELFObjectFile< ELFT >.
Definition at line105 of fileObjectFile.cpp.
ReferencesSectionRef.
Referenced byllvm::object::SectionRef::getRelocatedSection().
| protectedpure virtual |
| protectedpure virtual |
| protectedpure virtual |
| protectedpure virtual |
| protectedpure virtual |
| protectedpure virtual |
| protectedpure virtual |
| protectedpure virtual |
| protectedpure virtual |
| protectedpure virtual |
Reimplemented inllvm::object::COFFObjectFile,llvm::object::ELFObjectFile< ELFT >, andllvm::object::XCOFFObjectFile.
Definition at line347 of fileObjectFile.h.
Referencesllvm::errorCodeToError(), andllvm::object::parse_failed.
| protectedpure virtual |
| protectedvirtual |
Reimplemented inllvm::object::COFFObjectFile,llvm::object::ELFObjectFile< ELFT >,llvm::object::MachOObjectFile,llvm::object::WasmObjectFile, andllvm::object::XCOFFObjectFile.
Definition at line77 of fileObjectFile.cpp.
Referenced byllvm::object::SymbolRef::getAlignment().
| protectedpure virtual |
| protectedpure virtual |
| protectedpure virtual |
| protected |
Definition at line56 of fileObjectFile.cpp.
ReferencesgetCommonSymbolSize(),llvm::object::SymbolicFile::getSymbolFlags(),getSymbolValueImpl(),llvm::Ref,llvm::object::BasicSymbolRef::SF_Common, andllvm::object::BasicSymbolRef::SF_Undefined.
Referenced byllvm::object::COFFObjectFile::getSymbolAddress(),llvm::object::MachOObjectFile::getSymbolAddress(),llvm::object::WasmObjectFile::getSymbolAddress(), andllvm::object::SymbolRef::getValue().
| protectedpure virtual |
Implemented inllvm::object::COFFObjectFile,llvm::object::ELFObjectFile< ELFT >,llvm::object::WasmObjectFile, andllvm::object::XCOFFObjectFile.
Referenced bygetSymbolValue().
| virtual |
Definition at line99 of fileObjectFile.cpp.
Referencesllvm::any_of(),llvm::object::SectionRef::isDebugSection(), andsections().
Referenced byllvm::symbolize::useBTFContext().
| protectedvirtual |
Reimplemented inllvm::object::ELFObjectFile< ELFT >.
Definition at line93 of fileObjectFile.cpp.
ReferencesisSectionData().
Referenced byllvm::object::SectionRef::isBerkeleyData().
| protectedvirtual |
Reimplemented inllvm::object::ELFObjectFile< ELFT >.
Definition at line89 of fileObjectFile.cpp.
ReferencesisSectionText().
Referenced byllvm::object::SectionRef::isBerkeleyText().
| protectedvirtual |
Reimplemented inllvm::object::COFFObjectFile,llvm::object::ELFObjectFile< ELFT >,llvm::object::MachOObjectFile, andllvm::object::XCOFFObjectFile.
Definition at line97 of fileObjectFile.cpp.
Referenced byllvm::object::SectionRef::isDebugSection().
bool ObjectFile::isReflectionSectionStrippable | ( | llvm::binaryformat::Swift5ReflectionSectionKind | ReflectionSectionKind | ) | const |
True if the reflection section can be stripped by the linker.
Definition at line225 of fileObjectFile.cpp.
| pure virtual |
True if this is a relocatable object (.o/.obj).
Implemented inllvm::object::COFFObjectFile,llvm::object::ELFObjectFile< ELFT >,llvm::object::GOFFObjectFile,llvm::object::MachOObjectFile,llvm::object::WasmObjectFile, andllvm::object::XCOFFObjectFile.
Referenced byshouldSkipSectionFirstByte().
| protectedvirtual |
Reimplemented inllvm::object::MachOObjectFile.
Definition at line79 of fileObjectFile.cpp.
Referencesllvm::consumeError(),getSectionName(), andllvm::Expected< T >::takeError().
Referenced byllvm::object::SectionRef::isBitcode().
| protectedpure virtual |
| protectedpure virtual |
| protectedpure virtual |
| protectedvirtual |
Reimplemented inllvm::object::MachOObjectFile.
Definition at line87 of fileObjectFile.cpp.
Referenced byllvm::object::SectionRef::isStripped().
| protectedpure virtual |
| protectedpure virtual |
Triple ObjectFile::makeTriple | ( | ) | const |
Create a triple from the data in this object file.
Definition at line109 of fileObjectFile.cpp.
Referencesllvm::Triple::AIX,llvm::Triple::AMD,llvm::Triple::arm,llvm::Triple::armeb,getArch(),getOS(),llvm::Triple::GOFF,llvm::Triple::isAMDGPU(),llvm::object::Binary::isCOFF(),llvm::object::Binary::isGOFF(),llvm::object::Binary::isMachO(),llvm::Triple::isNVPTX(),llvm::object::Binary::isXCOFF(),llvm::Triple::MachO,llvm::Triple::NVIDIA,OS,llvm::Triple::setArch(),setARMSubArch(),llvm::Triple::setObjectFormat(),llvm::Triple::setOS(),llvm::Triple::setTriple(),llvm::Triple::setVendor(),llvm::Triple::thumb,llvm::Triple::UnknownOS,llvm::Triple::XCOFF, andllvm::Triple::ZOS.
Referenced byllvm::object::ELFObjectFileBase::getPltEntries(),getUUID(),llvm::CodeGenDataReader::mergeFromObjectFile(), andllvm::symbolize::useBTFContext().
Maps a debug section name to a standard DWARF section name.
Reimplemented inllvm::object::COFFObjectFile,llvm::object::MachOObjectFile, andllvm::object::XCOFFObjectFile.
Definition at line355 of fileObjectFile.h.
ReferencesName.
| inlineprotectedvirtual |
Reimplemented inllvm::object::MachOObjectFile.
Definition at line296 of fileObjectFile.h.
Referencesllvm::binaryformat::unknown.
| protectedpure virtual |
| protectedpure virtual |
| delete |
| overrideprotectedvirtual |
Implementsllvm::object::SymbolicFile.
Definition at line69 of fileObjectFile.cpp.
ReferencesgetSymbolName(),Name,OS, andllvm::Error::success().
| pure virtual |
Implemented inllvm::object::COFFObjectFile,llvm::object::ELFObjectFile< ELFT >,llvm::object::GOFFObjectFile,llvm::object::MachOObjectFile,llvm::object::WasmObjectFile, andllvm::object::XCOFFObjectFile.
Referenced byllvm::object::SectionFilter::begin(),llvm::RuntimeDyldImpl::computeGOTSize(),llvm::RuntimeDyldImpl::computeSectionStubBufSize(),llvm::RuntimeDyldImpl::computeTotalAllocSize(),llvm::RuntimeDyldELF::finalizeLoad(),llvm::RuntimeDyldImpl::loadObjectImpl(), andsections().
| pure virtual |
Implemented inllvm::object::COFFObjectFile,llvm::object::ELFObjectFile< ELFT >,llvm::object::GOFFObjectFile,llvm::object::MachOObjectFile,llvm::object::WasmObjectFile, andllvm::object::XCOFFObjectFile.
Referenced byllvm::object::SectionFilter::begin(),llvm::RuntimeDyldImpl::computeGOTSize(),llvm::RuntimeDyldImpl::computeSectionStubBufSize(),llvm::RuntimeDyldImpl::computeTotalAllocSize(),llvm::object::SectionFilter::end(),llvm::RuntimeDyldELF::finalizeLoad(),getSymbolInfo(),llvm::RuntimeDyldImpl::loadObjectImpl(),llvm::RuntimeDyldCOFFAArch64::processRelocationRef(),llvm::RuntimeDyldCOFFI386::processRelocationRef(),llvm::RuntimeDyldCOFFThumb::processRelocationRef(),llvm::RuntimeDyldCOFFX86_64::processRelocationRef(),llvm::RuntimeDyldELF::processRelocationRef(), andsections().
| protectedpure virtual |
| protectedpure virtual |
| inline |
Definition at line329 of fileObjectFile.h.
Referencessection_begin(), andsection_end().
Referenced byllvm::object::BindRebaseSegInfo::BindRebaseSegInfo(),llvm::objcopy::wasm::Reader::create(),llvm::symbolize::SymbolizableObjectFile::create(),llvm::RuntimeDyldMachOCRTPBase< Impl >::finalizeLoad(),llvm::object::IRObjectFile::findBitcodeInObject(),llvm::orc::getCOFFObjectFileSymbolInfo(),llvm::object::ResourceSectionRef::getContents(),llvm::orc::getELFObjectFileSymbolInfo(),getInstrProfSection(),llvm::orc::getMachOObjectFileSymbolInfo(),llvm::object::ELFObjectFileBase::getPltEntries(),llvm::remarks::getRemarksSectionContents(),llvm::object::COFFObjectFile::getRvaAndSizeAsBytes(),llvm::object::COFFObjectFile::getRvaPtr(),llvm::object::MachOObjectFile::getSection(),getUUID(),llvm::BTFParser::hasBTFSections(),hasDebugInfo(),lookupSections(),llvm::logicalview::LVBinaryReader::mapVirtualAddress(),llvm::CodeGenDataReader::mergeFromObjectFile(),llvm::BTFParser::parse(),readMachOHeader(), andllvm::jitlink::COFFLinkGraphBuilder::sections().
| inlinevirtual |
Reimplemented inllvm::object::ELFObjectFileBase.
Definition at line346 of fileObjectFile.h.
Referenced bymakeTriple().
| inline |
Definition at line321 of fileObjectFile.h.
Referencesllvm::object::SymbolicFile::symbol_begin(), andllvm::object::SymbolicFile::symbol_end().
Referenced byaccumulateLocs(),llvm::object::MachOObjectFile::checkSymbolTable(),llvm::gsym::ObjectFileTransformer::convert(),llvm::orc::getCOFFObjectFileSymbolInfo(),llvm::orc::getGenericObjectFileSymbolInfo(),llvm::orc::getMachOObjectFileSymbolInfo(),llvm::RuntimeDyldImpl::loadObjectImpl(), andreadSymbols().
| inlinevirtual |
Reimplemented inllvm::object::ELFObjectFileBase, andllvm::object::XCOFFObjectFile.
Definition at line343 of fileObjectFile.h.
| friend |
Definition at line287 of fileObjectFile.h.
Referenced byllvm::object::MachOObjectFile::extrel_begin(),llvm::object::MachOObjectFile::extrel_end(),llvm::object::XCOFFRelocation< llvm::support::ubig32_t >::getRelocatedLength(),llvm::object::MachOObjectFile::locrel_begin(),llvm::object::MachOObjectFile::locrel_end(),llvm::object::COFFObjectFile::section_rel_begin(),llvm::object::MachOObjectFile::section_rel_begin(),llvm::object::WasmObjectFile::section_rel_begin(),llvm::object::COFFObjectFile::section_rel_end(),llvm::object::MachOObjectFile::section_rel_end(),llvm::object::WasmObjectFile::section_rel_end(), andllvm::object::XCOFFObjectFile::section_rel_end().
| friend |
Definition at line261 of fileObjectFile.h.
Referenced byllvm::object::MachOObjectFile::getAnyRelocationSection(),getRelocatedSection(),llvm::object::MachOObjectFile::getRelocationRelocatedSection(),llvm::object::MachOObjectFile::getSection(),llvm::object::COFFObjectFile::getSymbolSection(),llvm::object::MachOObjectFile::getSymbolSection(),llvm::object::WasmObjectFile::getSymbolSection(),llvm::object::XCOFFObjectFile::getSymbolSection(),llvm::object::COFFObjectFile::section_begin(),llvm::object::GOFFObjectFile::section_begin(),llvm::object::MachOObjectFile::section_begin(),llvm::object::WasmObjectFile::section_begin(),llvm::object::XCOFFObjectFile::section_begin(),llvm::object::COFFObjectFile::section_end(),llvm::object::GOFFObjectFile::section_end(),llvm::object::MachOObjectFile::section_end(),llvm::object::WasmObjectFile::section_end(), andllvm::object::XCOFFObjectFile::section_end().
| friend |
Definition at line247 of fileObjectFile.h.
Referenced byllvm::object::COFFObjectFile::getRelocationSymbol(),llvm::object::MachOObjectFile::getRelocationSymbol(),llvm::object::WasmObjectFile::getRelocationSymbol(),llvm::object::XCOFFObjectFile::getRelocationSymbol(),llvm::object::MachOObjectFile::getSymbolByIndex(),llvm::object::COFFObjectFile::symbol_begin(),llvm::object::GOFFObjectFile::symbol_begin(),llvm::object::MachOObjectFile::symbol_begin(),llvm::object::XCOFFObjectFile::symbol_begin(),llvm::object::COFFObjectFile::symbol_end(),llvm::object::GOFFObjectFile::symbol_end(),llvm::object::MachOObjectFile::symbol_end(), andllvm::object::XCOFFObjectFile::symbol_end().