LLVM 19.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 |
Protected Attributes inherited from llvm::object::Binary | |
MemoryBufferRef | Data |
Definition at line 253 of file ELFObjectFile.h.
llvm::object::ELFObjectFile< ELFT >::ELFObjectFile | ( | ELFObjectFile< ELFT > && | Other | ) |
Definition at line 1162 of file ELFObjectFile.h.
|
inlinestatic |
Definition at line 479 of file ELFObjectFile.h.
References llvm::object::Binary::getELFType(), and llvm::little.
|
static |
Definition at line 1136 of file ELFObjectFile.h.
References llvm::object::ELFFile< ELFT >::create(), E, and llvm::object::ELFObjectFile< ELFT >::initContent().
Referenced by createPtr().
|
inline |
Definition at line 489 of file ELFObjectFile.h.
References llvm::object::ELFObjectFile< ELFT >::EF.
|
overrideprotectedvirtual |
Reimplemented from llvm::object::ObjectFile.
Definition at line 945 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 1184 of file ELFObjectFile.h.
elf_symbol_iterator llvm::object::ELFObjectFile< ELFT >::dynamic_symbol_end |
Definition at line 1194 of file ELFObjectFile.h.
References Sym.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 1303 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_CUDA, 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::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::nvptx, llvm::Triple::nvptx64, 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 391 of file ELFObjectFile.h.
References Attributes, E, llvm::object::ELFObjectFile< ELFT >::EF, llvm::ELF::EM_ARM, llvm::ELF::EM_RISCV, 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 1219 of file ELFObjectFile.h.
Referenced by llvm::object::ELFObjectFile< ELFT >::is64Bit().
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 674 of file ELFObjectFile.h.
|
overridevirtual |
Implements llvm::object::ELFObjectFileBase.
Definition at line 1439 of file ELFObjectFile.h.
References llvm::make_range().
|
inline |
Definition at line 476 of file ELFObjectFile.h.
References llvm::object::ELFObjectFile< ELFT >::EF.
Referenced by llvm::ifs::buildStub().
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 1224 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::little, and llvm::report_fatal_error().
|
overridevirtual |
Reimplemented from llvm::object::ObjectFile.
Definition at line 1403 of file ELFObjectFile.h.
References llvm::Triple::AIX, llvm::Triple::AMDHSA, llvm::Triple::AMDPAL, llvm::Triple::CUDA, llvm::ELF::EI_OSABI, llvm::ELF::ELFOSABI_AIX, llvm::ELF::ELFOSABI_AMDGPU_HSA, llvm::ELF::ELFOSABI_AMDGPU_MESA3D, llvm::ELF::ELFOSABI_AMDGPU_PAL, llvm::ELF::ELFOSABI_CUDA, llvm::ELF::ELFOSABI_FREEBSD, llvm::ELF::ELFOSABI_HURD, llvm::ELF::ELFOSABI_LINUX, llvm::ELF::ELFOSABI_NETBSD, llvm::ELF::ELFOSABI_OPENBSD, llvm::ELF::ELFOSABI_SOLARIS, llvm::Triple::FreeBSD, llvm::Triple::Hurd, llvm::Triple::Linux, llvm::Triple::Mesa3D, llvm::Triple::NetBSD, llvm::Triple::OpenBSD, llvm::Triple::Solaris, and llvm::Triple::UnknownOS.
|
inlineoverridevirtual |
Returns platform-specific object flags, if any.
Implements llvm::object::ELFObjectFileBase.
Definition at line 474 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 1116 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 1126 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 1039 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 1108 of file ELFObjectFile.h.
References llvm::object::createError(), and llvm::ELF::SHT_RELA.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 1077 of file ELFObjectFile.h.
References llvm::ELF::SHT_REL.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 1059 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 1086 of file ELFObjectFile.h.
References llvm::ELF::SHT_REL.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 1100 of file ELFObjectFile.h.
|
protected |
Definition at line 1095 of file ELFObjectFile.h.
References llvm::object::getELFRelocationTypeName().
|
inline |
Get the relocation section that contains Rel.
Definition at line 443 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 451 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::p.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 880 of file ELFObjectFile.h.
References llvm::object::getSection().
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 914 of file ELFObjectFile.h.
References llvm::object::getSection().
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 902 of file ELFObjectFile.h.
References E, llvm::object::getSection(), and llvm::ELF::SHT_NOBITS.
|
overrideprotectedvirtual |
Implements llvm::object::ELFObjectFileBase.
Definition at line 562 of file ELFObjectFile.h.
References llvm::object::getSection().
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 885 of file ELFObjectFile.h.
References llvm::First, llvm::object::getSection(), and llvm::handleAllErrors().
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 875 of file ELFObjectFile.h.
References llvm::object::getSection().
|
overrideprotectedvirtual |
Implements llvm::object::ELFObjectFileBase.
Definition at line 572 of file ELFObjectFile.h.
References llvm::object::getSection().
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 896 of file ELFObjectFile.h.
References llvm::object::getSection().
|
overrideprotectedvirtual |
Implements llvm::object::ELFObjectFileBase.
Definition at line 567 of file ELFObjectFile.h.
References llvm::object::getSection().
|
overridevirtual |
Reimplemented from llvm::object::ObjectFile.
Definition at line 1433 of file ELFObjectFile.h.
|
inline |
Definition at line 438 of file ELFObjectFile.h.
References llvm::object::ELFObjectFile< ELFT >::EF, and Sym.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 597 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 643 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 679 of file ELFObjectFile.h.
References llvm::report_fatal_error(), and llvm::Expected< T >::takeError().
|
overrideprotectedvirtual |
Implements llvm::object::ELFObjectFileBase.
Definition at line 695 of file ELFObjectFile.h.
References llvm::report_fatal_error(), and llvm::Expected< T >::takeError().
|
overrideprotectedvirtual |
Implements llvm::object::SymbolicFile.
Definition at line 728 of file ELFObjectFile.h.
References llvm::consumeError(), llvm::ELF::EM_AARCH64, llvm::ELF::EM_ARM, llvm::ELF::EM_CSKY, 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 532 of file ELFObjectFile.h.
References Name, llvm::ELF::STT_SECTION, Sym, and llvm::Expected< T >::takeError().
|
overrideprotectedvirtual |
Implements llvm::object::ELFObjectFileBase.
Definition at line 687 of file ELFObjectFile.h.
References llvm::report_fatal_error(), and llvm::Expected< T >::takeError().
|
protected |
Definition at line 830 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::p, and llvm::Expected< T >::takeError().
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 857 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 704 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 577 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 502 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 458 of file ELFObjectFile.h.
References llvm::object::ELFObjectFile< ELFT >::getBytesInAddress().
|
overrideprotectedvirtual |
Reimplemented from llvm::object::ObjectFile.
Definition at line 985 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 978 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 270 of file ELFObjectFile.h.
|
overrideprotectedvirtual |
Reimplemented from llvm::object::ObjectFile.
Definition at line 992 of file ELFObjectFile.h.
References llvm::consumeError(), llvm::Expected< T >::get(), llvm::dwarf_linker::getSectionName(), and llvm::Expected< T >::takeError().
|
inline |
Definition at line 478 of file ELFObjectFile.h.
References llvm::object::ELFObjectFile< ELFT >::isDyldELFObject.
|
inlineprotected |
Definition at line 378 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 1443 of file ELFObjectFile.h.
References llvm::ELF::ET_REL.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 937 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 919 of file ELFObjectFile.h.
References llvm::object::getSection(), and llvm::ELF::SHF_COMPRESSED.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 929 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 924 of file ELFObjectFile.h.
References llvm::object::getSection(), and llvm::ELF::SHF_EXECINSTR.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 973 of file ELFObjectFile.h.
References llvm::object::getSection(), and llvm::ELF::SHT_NOBITS.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 1053 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::b, and llvm::object::DataRefImpl::d.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 869 of file ELFObjectFile.h.
References llvm::object::getSection().
|
overrideprotectedvirtual |
Implements llvm::object::SymbolicFile.
Definition at line 498 of file ELFObjectFile.h.
References Sym.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 1203 of file ELFObjectFile.h.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 1211 of file ELFObjectFile.h.
|
overrideprotectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 1006 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 1019 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 1167 of file ELFObjectFile.h.
References Sym.
|
overridevirtual |
Implements llvm::object::SymbolicFile.
Definition at line 1175 of file ELFObjectFile.h.
References Sym.
|
inlineprotected |
Definition at line 372 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::p.
|
inlineprotected |
Definition at line 366 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::p.
|
inlineprotected |
Definition at line 337 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 362 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::p.
|
inline |
Definition at line 262 of file ELFObjectFile.h.
References llvm::object::ELFObjectFile< ELFT >::toDRI().
|
inline |
Definition at line 266 of file ELFObjectFile.h.
References llvm::object::ELFObjectFileBase::ELFSymbolRef, and llvm::object::ELFObjectFile< ELFT >::toDRI().
|
protected |
Definition at line 282 of file ELFObjectFile.h.
|
protected |
Definition at line 283 of file ELFObjectFile.h.
|
protected |
Definition at line 284 of file ELFObjectFile.h.
|
protected |
Definition at line 280 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 428 of file ELFObjectFile.h.
Referenced by llvm::object::ELFObjectFile< ELFT >::isDyldType().