LLVM 17.0.0git
|
#include "llvm/Object/ELFObjectFile.h"
Protected Attributes | |
ELFFile< ELFT > | EF |
const Elf_Shdr * | DotDynSymSec = nullptr |
const Elf_Shdr * | DotSymtabSec = nullptr |
const Elf_Shdr * | DotSymtabShndxSec = nullptr |
bool | isDyldELFObject = false |
![]() | |
MemoryBufferRef | Data |
Definition at line 246 of file ELFObjectFile.h.
llvm::object::ELFObjectFile< ELFT >::ELFObjectFile | ( | ELFObjectFile< ELFT > && | Other | ) |
Definition at line 1126 of file ELFObjectFile.h.
|
inlinestatic |
Definition at line 460 of file ELFObjectFile.h.
References llvm::object::Binary::getELFType(), and llvm::support::little.
|
static |
Definition at line 1101 of file ELFObjectFile.h.
References llvm::object::ELFFile< ELFT >::create(), E, and llvm::object::ELFObjectFile< ELFT >::initContent().
Referenced by createPtr().
|
inline |
Definition at line 469 of file ELFObjectFile.h.
References llvm::object::ELFObjectFile< ELFT >::EF.
|
overrideprotectedvirtual |
Reimplemented from llvm::object::ObjectFile.
Definition at line 910 of file ELFObjectFile.h.
References llvm::Dynamic, llvm::is_contained(), and llvm::ELF::SHT_DYNAMIC.
elf_symbol_iterator llvm::object::ELFObjectFile< ELFT >::dynamic_symbol_begin |
Definition at line 1148 of file ELFObjectFile.h.
elf_symbol_iterator llvm::object::ELFObjectFile< ELFT >::dynamic_symbol_end |
Definition at line 1158 of file ELFObjectFile.h.
References Sym.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 1266 of file ELFObjectFile.h.
References llvm::Triple::aarch64, llvm::Triple::aarch64_be, llvm::Triple::amdgcn, llvm::Triple::arm, llvm::Triple::avr, llvm::Triple::bpfeb, llvm::Triple::bpfel, llvm::Triple::csky, llvm::ELF::EF_AMDGPU_MACH, llvm::ELF::EF_AMDGPU_MACH_AMDGCN_FIRST, llvm::ELF::EF_AMDGPU_MACH_AMDGCN_LAST, llvm::ELF::EF_AMDGPU_MACH_R600_FIRST, llvm::ELF::EF_AMDGPU_MACH_R600_LAST, llvm::ELF::EI_CLASS, llvm::ELF::ELFCLASS32, llvm::ELF::ELFCLASS64, llvm::ELF::EM_386, llvm::ELF::EM_68K, llvm::ELF::EM_AARCH64, llvm::ELF::EM_AMDGPU, llvm::ELF::EM_ARM, llvm::ELF::EM_AVR, llvm::ELF::EM_BPF, llvm::ELF::EM_CSKY, llvm::ELF::EM_HEXAGON, llvm::ELF::EM_IAMCU, llvm::ELF::EM_LANAI, llvm::ELF::EM_LOONGARCH, llvm::ELF::EM_MIPS, llvm::ELF::EM_MSP430, llvm::ELF::EM_PPC, llvm::ELF::EM_PPC64, llvm::ELF::EM_RISCV, llvm::ELF::EM_S390, llvm::ELF::EM_SPARC, llvm::ELF::EM_SPARC32PLUS, llvm::ELF::EM_SPARCV9, llvm::ELF::EM_VE, llvm::ELF::EM_X86_64, llvm::ELF::EM_XTENSA, llvm::Triple::hexagon, llvm::Triple::lanai, llvm::support::little, llvm::Triple::loongarch32, llvm::Triple::loongarch64, llvm::Triple::m68k, llvm::Triple::mips, llvm::Triple::mips64, llvm::Triple::mips64el, llvm::Triple::mipsel, llvm::Triple::msp430, llvm::Triple::ppc, llvm::Triple::ppc64, llvm::Triple::ppc64le, llvm::Triple::ppcle, llvm::Triple::r600, llvm::report_fatal_error(), llvm::Triple::riscv32, llvm::Triple::riscv64, llvm::Triple::sparc, llvm::Triple::sparcel, llvm::Triple::sparcv9, llvm::Triple::systemz, llvm::Triple::UnknownArch, llvm::Triple::ve, llvm::Triple::x86, llvm::Triple::x86_64, and llvm::Triple::xtensa.
|
inlineoverrideprotectedvirtual |
Implements llvm::object::ELFObjectFileBase.
Definition at line 383 of file ELFObjectFile.h.
References Attributes, E, llvm::object::ELFObjectFile< ELFT >::EF, llvm::ELFAttrs::Format_Version, llvm::ELF::SHT_ARM_ATTRIBUTES, llvm::ELF::SHT_RISCV_ATTRIBUTES, and llvm::Error::success().
|
overridevirtual |
The number of bytes used to represent an address in this object file format.
Implements llvm::object::ObjectFile.
Definition at line 1183 of file ELFObjectFile.h.
Referenced by llvm::object::ELFObjectFile< ELFT >::is64Bit().
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 650 of file ELFObjectFile.h.
|
overridevirtual |
Implements llvm::object::ELFObjectFileBase.
Definition at line 1367 of file ELFObjectFile.h.
References llvm::make_range().
|
inline |
Definition at line 457 of file ELFObjectFile.h.
References llvm::object::ELFObjectFile< ELFT >::EF.
Referenced by llvm::ifs::buildStub().
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 1188 of file ELFObjectFile.h.
References llvm::ELF::EI_CLASS, llvm::ELF::ELFCLASS32, llvm::ELF::ELFCLASS64, llvm::ELF::EM_386, llvm::ELF::EM_68K, llvm::ELF::EM_AARCH64, llvm::ELF::EM_AMDGPU, llvm::ELF::EM_ARM, llvm::ELF::EM_AVR, llvm::ELF::EM_BPF, llvm::ELF::EM_CSKY, llvm::ELF::EM_HEXAGON, llvm::ELF::EM_IAMCU, llvm::ELF::EM_LANAI, llvm::ELF::EM_LOONGARCH, llvm::ELF::EM_MIPS, llvm::ELF::EM_MSP430, llvm::ELF::EM_PPC, llvm::ELF::EM_PPC64, llvm::ELF::EM_RISCV, llvm::ELF::EM_S390, llvm::ELF::EM_SPARC, llvm::ELF::EM_SPARC32PLUS, llvm::ELF::EM_SPARCV9, llvm::ELF::EM_VE, llvm::ELF::EM_X86_64, llvm::ELF::EM_XTENSA, llvm::support::little, and llvm::report_fatal_error().
|
inlineoverridevirtual |
Returns platform-specific object flags, if any.
Implements llvm::object::ELFObjectFileBase.
Definition at line 455 of file ELFObjectFile.h.
References llvm::object::ELFObjectFile< ELFT >::EF.
const ELFObjectFile< ELFT >::Elf_Rel * llvm::object::ELFObjectFile< ELFT >::getRel | ( | DataRefImpl | Rel | ) | const |
Definition at line 1081 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::a, assert(), llvm::object::DataRefImpl::b, llvm::object::DataRefImpl::d, llvm::errorToErrorCode(), llvm::report_fatal_error(), and llvm::ELF::SHT_REL.
const ELFObjectFile< ELFT >::Elf_Rela * llvm::object::ELFObjectFile< ELFT >::getRela | ( | DataRefImpl | Rela | ) | const |
Definition at line 1091 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::a, assert(), llvm::object::DataRefImpl::b, llvm::object::DataRefImpl::d, llvm::errorToErrorCode(), llvm::report_fatal_error(), and llvm::ELF::SHT_RELA.
|
overrideprotectedvirtual |
Reimplemented from llvm::object::ObjectFile.
Definition at line 1004 of file ELFObjectFile.h.
References llvm::object::getSection(), llvm::ELF::SHT_REL, llvm::ELF::SHT_RELA, and llvm::Expected< T >::takeError().
|
overridevirtual |
Implements llvm::object::ELFObjectFileBase.
Definition at line 1073 of file ELFObjectFile.h.
References llvm::object::createError(), and llvm::ELF::SHT_RELA.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 1042 of file ELFObjectFile.h.
References llvm::ELF::SHT_REL.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 1024 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::a, llvm::object::DataRefImpl::b, llvm::object::DataRefImpl::d, and llvm::ELF::SHT_REL.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 1051 of file ELFObjectFile.h.
References llvm::ELF::SHT_REL.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 1065 of file ELFObjectFile.h.
|
protected |
Definition at line 1060 of file ELFObjectFile.h.
References llvm::object::getELFRelocationTypeName().
|
inline |
Get the relocation section that contains Rel.
Definition at line 425 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::a, llvm::object::DataRefImpl::d, llvm::object::ELFObjectFile< ELFT >::EF, llvm::errorToErrorCode(), and llvm::report_fatal_error().
|
inline |
Definition at line 433 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::p.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 845 of file ELFObjectFile.h.
References llvm::object::getSection().
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 879 of file ELFObjectFile.h.
References llvm::object::getSection().
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 867 of file ELFObjectFile.h.
References E, llvm::object::getSection(), and llvm::ELF::SHT_NOBITS.
|
overrideprotectedvirtual |
Implements llvm::object::ELFObjectFileBase.
Definition at line 542 of file ELFObjectFile.h.
References llvm::object::getSection().
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 850 of file ELFObjectFile.h.
References llvm::object::getSection(), and llvm::handleAllErrors().
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 840 of file ELFObjectFile.h.
References llvm::object::getSection().
|
overrideprotectedvirtual |
Implements llvm::object::ELFObjectFileBase.
Definition at line 552 of file ELFObjectFile.h.
References llvm::object::getSection().
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 861 of file ELFObjectFile.h.
References llvm::object::getSection().
|
overrideprotectedvirtual |
Implements llvm::object::ELFObjectFileBase.
Definition at line 547 of file ELFObjectFile.h.
References llvm::object::getSection().
|
overridevirtual |
Reimplemented from llvm::object::ObjectFile.
Definition at line 1361 of file ELFObjectFile.h.
|
inline |
Definition at line 420 of file ELFObjectFile.h.
References llvm::object::ELFObjectFile< ELFT >::EF, and Sym.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 577 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::a, llvm::object::DataRefImpl::d, llvm::ELF::ET_REL, getSymbolValue(), llvm::ELF::SHN_ABS, llvm::ELF::SHN_COMMON, llvm::ELF::SHN_UNDEF, and llvm::Expected< T >::takeError().
|
overrideprotectedvirtual |
Reimplemented from llvm::object::ObjectFile.
Definition at line 623 of file ELFObjectFile.h.
References llvm::report_fatal_error(), llvm::ELF::SHN_COMMON, and llvm::Expected< T >::takeError().
|
overrideprotectedvirtual |
Implements llvm::object::ELFObjectFileBase.
Definition at line 655 of file ELFObjectFile.h.
References llvm::report_fatal_error(), and llvm::Expected< T >::takeError().
|
overrideprotectedvirtual |
Implements llvm::object::ELFObjectFileBase.
Definition at line 671 of file ELFObjectFile.h.
References llvm::report_fatal_error(), and llvm::Expected< T >::takeError().
|
overrideprotectedvirtual |
Implements llvm::object::SymbolicFile.
Definition at line 704 of file ELFObjectFile.h.
References llvm::consumeError(), llvm::ELF::EM_AARCH64, llvm::ELF::EM_ARM, llvm::ELF::EM_RISCV, getSymbolName(), Name, llvm::object::BasicSymbolRef::SF_Absolute, llvm::object::BasicSymbolRef::SF_Common, llvm::object::BasicSymbolRef::SF_Exported, llvm::object::BasicSymbolRef::SF_FormatSpecific, llvm::object::BasicSymbolRef::SF_Global, llvm::object::BasicSymbolRef::SF_Hidden, llvm::object::BasicSymbolRef::SF_Indirect, llvm::object::BasicSymbolRef::SF_None, llvm::object::BasicSymbolRef::SF_Thumb, llvm::object::BasicSymbolRef::SF_Undefined, llvm::object::BasicSymbolRef::SF_Weak, llvm::ELF::SHN_ABS, llvm::ELF::SHN_COMMON, llvm::ELF::SHN_UNDEF, llvm::ELF::STB_LOCAL, llvm::ELF::STB_WEAK, llvm::ELF::STT_COMMON, llvm::ELF::STT_FILE, llvm::ELF::STT_FUNC, llvm::ELF::STT_GNU_IFUNC, llvm::ELF::STT_SECTION, llvm::ELF::STV_HIDDEN, Sym, and llvm::Expected< T >::takeError().
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 512 of file ELFObjectFile.h.
References llvm::consumeError(), Name, llvm::ELF::STT_SECTION, Sym, and llvm::Expected< T >::takeError().
|
overrideprotectedvirtual |
Implements llvm::object::ELFObjectFileBase.
Definition at line 663 of file ELFObjectFile.h.
References llvm::report_fatal_error(), and llvm::Expected< T >::takeError().
|
protected |
Definition at line 795 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::p, and llvm::Expected< T >::takeError().
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 822 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::a, llvm::object::DataRefImpl::d, and llvm::Expected< T >::takeError().
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 680 of file ELFObjectFile.h.
References llvm::object::SymbolRef::ST_Data, llvm::object::SymbolRef::ST_Debug, llvm::object::SymbolRef::ST_File, llvm::object::SymbolRef::ST_Function, llvm::object::SymbolRef::ST_Other, llvm::object::SymbolRef::ST_Unknown, llvm::ELF::STT_COMMON, llvm::ELF::STT_FILE, llvm::ELF::STT_FUNC, llvm::ELF::STT_NOTYPE, llvm::ELF::STT_OBJECT, llvm::ELF::STT_SECTION, llvm::ELF::STT_TLS, and llvm::Expected< T >::takeError().
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 557 of file ELFObjectFile.h.
References llvm::ELF::EM_ARM, llvm::ELF::EM_MIPS, llvm::report_fatal_error(), llvm::ELF::SHN_ABS, llvm::ELF::STT_FUNC, and llvm::Expected< T >::takeError().
|
overrideprotectedvirtual |
Reimplemented from llvm::object::Binary.
Definition at line 482 of file ELFObjectFile.h.
References llvm::ELF::SHT_DYNSYM, llvm::ELF::SHT_SYMTAB, llvm::ELF::SHT_SYMTAB_SHNDX, and llvm::Error::success().
Referenced by llvm::object::ELFObjectFile< ELFT >::create().
|
inlineoverridevirtual |
Implements llvm::object::SymbolicFile.
Definition at line 440 of file ELFObjectFile.h.
References llvm::object::ELFObjectFile< ELFT >::getBytesInAddress().
|
overrideprotectedvirtual |
Reimplemented from llvm::object::ObjectFile.
Definition at line 950 of file ELFObjectFile.h.
References llvm::object::getSection(), llvm::ELF::SHF_ALLOC, and llvm::ELF::SHT_NOBITS.
|
overrideprotectedvirtual |
Reimplemented from llvm::object::ObjectFile.
Definition at line 943 of file ELFObjectFile.h.
References llvm::object::getSection(), llvm::ELF::SHF_ALLOC, llvm::ELF::SHF_EXECINSTR, and llvm::ELF::SHF_WRITE.
|
inline |
Definition at line 262 of file ELFObjectFile.h.
|
overrideprotectedvirtual |
Reimplemented from llvm::object::ObjectFile.
Definition at line 957 of file ELFObjectFile.h.
References llvm::consumeError(), llvm::Expected< T >::get(), and llvm::Expected< T >::takeError().
|
inline |
Definition at line 459 of file ELFObjectFile.h.
References llvm::object::ELFObjectFile< ELFT >::isDyldELFObject.
|
inlineprotected |
Definition at line 370 of file ELFObjectFile.h.
References llvm::ELF::STB_GLOBAL, llvm::ELF::STB_GNU_UNIQUE, llvm::ELF::STB_WEAK, llvm::ELF::STV_DEFAULT, and llvm::ELF::STV_PROTECTED.
|
overridevirtual |
True if this is a relocatable object (.o/.obj).
Implements llvm::object::ObjectFile.
Definition at line 1371 of file ELFObjectFile.h.
References llvm::ELF::ET_REL.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 902 of file ELFObjectFile.h.
References llvm::object::getSection(), llvm::ELF::SHF_ALLOC, llvm::ELF::SHF_WRITE, and llvm::ELF::SHT_NOBITS.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 884 of file ELFObjectFile.h.
References llvm::object::getSection(), and llvm::ELF::SHF_COMPRESSED.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 894 of file ELFObjectFile.h.
References llvm::object::getSection(), llvm::ELF::SHF_ALLOC, llvm::ELF::SHF_EXECINSTR, and llvm::ELF::SHT_PROGBITS.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 889 of file ELFObjectFile.h.
References llvm::object::getSection(), and llvm::ELF::SHF_EXECINSTR.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 938 of file ELFObjectFile.h.
References llvm::object::getSection(), and llvm::ELF::SHT_NOBITS.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 1018 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::b, and llvm::object::DataRefImpl::d.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 834 of file ELFObjectFile.h.
References llvm::object::getSection().
|
overrideprotectedvirtual |
Implements llvm::object::SymbolicFile.
Definition at line 478 of file ELFObjectFile.h.
References Sym.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 1167 of file ELFObjectFile.h.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 1175 of file ELFObjectFile.h.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 971 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::a, llvm::object::DataRefImpl::b, llvm::object::DataRefImpl::d, and llvm::object::DataRefImpl::p.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 984 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::b, llvm::object::DataRefImpl::d, llvm::errorToErrorCode(), llvm::object::DataRefImpl::p, llvm::report_fatal_error(), llvm::ELF::SHT_REL, and llvm::ELF::SHT_RELA.
|
overridevirtual |
Implements llvm::object::SymbolicFile.
Definition at line 1131 of file ELFObjectFile.h.
References Sym.
|
overridevirtual |
Implements llvm::object::SymbolicFile.
Definition at line 1139 of file ELFObjectFile.h.
References Sym.
|
inlineprotected |
Definition at line 364 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::p.
|
inlineprotected |
Definition at line 358 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::p.
|
inlineprotected |
Definition at line 329 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::a, assert(), llvm::object::DataRefImpl::b, llvm::object::DataRefImpl::d, llvm::object::ELFObjectFile< ELFT >::EF, llvm::ELF::SHT_DYNSYM, and llvm::ELF::SHT_SYMTAB.
Referenced by llvm::object::ELFObjectFile< ELFT >::toSectionRef(), and llvm::object::ELFObjectFile< ELFT >::toSymbolRef().
|
inlineprotected |
Definition at line 354 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::p.
|
inline |
Definition at line 254 of file ELFObjectFile.h.
References llvm::object::ELFObjectFile< ELFT >::toDRI().
|
inline |
Definition at line 258 of file ELFObjectFile.h.
References llvm::object::ELFObjectFileBase::ELFSymbolRef, and llvm::object::ELFObjectFile< ELFT >::toDRI().
|
protected |
Definition at line 274 of file ELFObjectFile.h.
|
protected |
Definition at line 275 of file ELFObjectFile.h.
|
protected |
Definition at line 276 of file ELFObjectFile.h.
|
protected |
Definition at line 272 of file ELFObjectFile.h.
Referenced by llvm::object::ELFObjectFile< ELFT >::createFakeSections(), llvm::object::ELFObjectFile< ELFT >::getBuildAttributes(), llvm::object::ELFObjectFile< ELFT >::getELFFile(), llvm::object::ELFObjectFile< ELFT >::getPlatformFlags(), llvm::object::ELFObjectFile< ELFT >::getRelSection(), llvm::object::ELFObjectFile< ELFT >::getSymbol(), and llvm::object::ELFObjectFile< ELFT >::toDRI().
|
protected |
Definition at line 410 of file ELFObjectFile.h.
Referenced by llvm::object::ELFObjectFile< ELFT >::isDyldType().