class Object

Declaration

class Object { /* full declaration omitted */ };

Declared at: llvm/lib/ObjCopy/ELF/ELFObject.h:1017

Member Variables

private std::vector<SecPtr> Sections
private std::vector<SegPtr> Segments
private std::vector<SecPtr> RemovedSections
private DenseMap<llvm::objcopy::elf::SectionBase*, std::vector<uint8_t>> UpdatedSections
public llvm::objcopy::elf::Segment ElfHdrSegment
public llvm::objcopy::elf::Segment ProgramHdrSegment
public uint8_t OSABI
public uint8_t ABIVersion
public uint64_t Entry
public uint64_t SHOff
public uint32_t Type
public uint32_t Machine
public uint32_t Version
public uint32_t Flags
public bool HadShdrs = true
public bool MustBeRelocatable = false
public llvm::objcopy::elf::StringTableSection* SectionNames = nullptr
public llvm::objcopy::elf::SymbolTableSection* SymbolTable = nullptr
public llvm::objcopy::elf::SectionIndexSection* SectionIndexTable = nullptr
public bool IsMips64EL = false

Method Overview

  • public llvm::Error addNewSymbolTable()
  • public template <class T, class... Ts>T & addSection(Ts &&... Args)
  • public llvm::objcopy::elf::Segment & addSegment(ArrayRef<uint8_t> Data)
  • public iterator_range<filter_iterator<pointee_iterator<std::vector<SecPtr>::const_iterator>, decltype(&sectionIsAlloc)>> allocSections() const
  • public llvm::objcopy::elf::SectionBase * findSection(llvm::StringRef Name)
  • public const DenseMap<llvm::objcopy::elf::SectionBase *, std::vector<uint8_t>> & getUpdatedSections() const
  • public bool isRelocatable() const
  • public llvm::Error removeSections(bool AllowBrokenLinks, std::function<bool (const SectionBase &)> ToRemove)
  • public llvm::Error removeSymbols(function_ref<bool (const llvm::objcopy::elf::Symbol &)> ToRemove)
  • public llvm::objcopy::elf::SectionTableRef removedSections()
  • public llvm::Error replaceSections(const DenseMap<llvm::objcopy::elf::SectionBase *, llvm::objcopy::elf::SectionBase *> & FromTo)
  • private static bool sectionIsAlloc(const llvm::objcopy::elf::SectionBase & Sec)
  • public llvm::objcopy::elf::SectionTableRef sections() const
  • public ConstRange<llvm::objcopy::elf::Segment> segments() const
  • public llvm::Error updateSection(llvm::StringRef Name, ArrayRef<uint8_t> Data)

Methods

llvm::Error addNewSymbolTable()

Declared at: llvm/lib/ObjCopy/ELF/ELFObject.h:1094

template <class T, class... Ts>
T& addSection(Ts&&... Args)

Declared at: llvm/lib/ObjCopy/ELF/ELFObject.h:1086

Templates

T
Ts

Parameters

Ts&&... Args

llvm::objcopy::elf::Segment& addSegment(
    ArrayRef<uint8_t> Data)

Declared at: llvm/lib/ObjCopy/ELF/ELFObject.h:1095

Parameters

ArrayRef<uint8_t> Data

iterator_range<
    filter_iterator<pointee_iterator<std::vector<
                        SecPtr>::const_iterator>,
                    decltype(&sectionIsAlloc)>>
allocSections() const

Declared at: llvm/lib/ObjCopy/ELF/ELFObject.h:1066

llvm::objcopy::elf::SectionBase* findSection(
    llvm::StringRef Name)

Declared at: llvm/lib/ObjCopy/ELF/ELFObject.h:1073

Parameters

llvm::StringRef Name

const DenseMap<llvm::objcopy::elf::SectionBase*,
               std::vector<uint8_t>>&
getUpdatedSections() const

Declared at: llvm/lib/ObjCopy/ELF/ELFObject.h:1070

bool isRelocatable() const

Declared at: llvm/lib/ObjCopy/ELF/ELFObject.h:1099

llvm::Error removeSections(
    bool AllowBrokenLinks,
    std::function<bool(const SectionBase&)>
        ToRemove)

Declared at: llvm/lib/ObjCopy/ELF/ELFObject.h:1082

Parameters

bool AllowBrokenLinks
std::function<bool(const SectionBase&)> ToRemove

llvm::Error removeSymbols(
    function_ref<
        bool(const llvm::objcopy::elf::Symbol&)>
        ToRemove)

Declared at: llvm/lib/ObjCopy/ELF/ELFObject.h:1085

Parameters

function_ref<bool( const llvm::objcopy::elf::Symbol&)> ToRemove

llvm::objcopy::elf::SectionTableRef
removedSections()

Declared at: llvm/lib/ObjCopy/ELF/ELFObject.h:1078

llvm::Error replaceSections(
    const DenseMap<
        llvm::objcopy::elf::SectionBase*,
        llvm::objcopy::elf::SectionBase*>& FromTo)

Declared at: llvm/lib/ObjCopy/ELF/ELFObject.h:1084

Parameters

const DenseMap<llvm::objcopy::elf::SectionBase*, llvm::objcopy::elf::SectionBase*>& FromTo

static bool sectionIsAlloc(
    const llvm::objcopy::elf::SectionBase& Sec)

Declared at: llvm/lib/ObjCopy/ELF/ELFObject.h:1027

Parameters

const llvm::objcopy::elf::SectionBase& Sec

llvm::objcopy::elf::SectionTableRef sections()
    const

Declared at: llvm/lib/ObjCopy/ELF/ELFObject.h:1062

ConstRange<llvm::objcopy::elf::Segment> segments()
    const

Declared at: llvm/lib/ObjCopy/ELF/ELFObject.h:1080

llvm::Error updateSection(llvm::StringRef Name,
                          ArrayRef<uint8_t> Data)

Declared at: llvm/lib/ObjCopy/ELF/ELFObject.h:1071

Parameters

llvm::StringRef Name
ArrayRef<uint8_t> Data