mirror of
https://github.com/RPCS3/llvm.git
synced 2024-11-24 12:20:00 +00:00
Reland: [llvm-objcopy] Add support for dynamic relocations
This change adds support for dynamic relocations (allocated SHT_REL/SHT_RELA sections with a dynamic symbol table as their link). I had to reland this because of a I wasn't initilizing some pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314263 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d984b2cfda
commit
efd0065556
@ -148,7 +148,7 @@ enum SymbolShndxType {
|
||||
|
||||
struct Symbol {
|
||||
uint8_t Binding;
|
||||
SectionBase *DefinedIn;
|
||||
SectionBase *DefinedIn = nullptr;
|
||||
SymbolShndxType ShndxType;
|
||||
uint32_t Index;
|
||||
llvm::StringRef Name;
|
||||
@ -163,7 +163,7 @@ struct Symbol {
|
||||
class SymbolTableSection : public SectionBase {
|
||||
protected:
|
||||
std::vector<std::unique_ptr<Symbol>> Symbols;
|
||||
StringTableSection *SymbolNames;
|
||||
StringTableSection *SymbolNames = nullptr;
|
||||
|
||||
public:
|
||||
void setStrTab(StringTableSection *StrTab) { SymbolNames = StrTab; }
|
||||
@ -185,7 +185,7 @@ template <class ELFT> class SymbolTableSectionImpl : public SymbolTableSection {
|
||||
};
|
||||
|
||||
struct Relocation {
|
||||
const Symbol *RelocSymbol;
|
||||
const Symbol *RelocSymbol = nullptr;
|
||||
uint64_t Offset;
|
||||
uint64_t Addend;
|
||||
uint32_t Type;
|
||||
@ -193,8 +193,8 @@ struct Relocation {
|
||||
|
||||
template <class SymTabType> class RelocationSectionBase : public SectionBase {
|
||||
private:
|
||||
SymTabType *Symbols;
|
||||
SectionBase *SecToApplyRel;
|
||||
SymTabType *Symbols = nullptr;
|
||||
SectionBase *SecToApplyRel = nullptr;
|
||||
|
||||
public:
|
||||
void setSymTab(SymTabType *StrTab) { Symbols = StrTab; }
|
||||
@ -226,7 +226,7 @@ public:
|
||||
|
||||
class SectionWithStrTab : public Section {
|
||||
private:
|
||||
StringTableSection *StrTab;
|
||||
StringTableSection *StrTab = nullptr;
|
||||
|
||||
public:
|
||||
SectionWithStrTab(llvm::ArrayRef<uint8_t> Data) : Section(Data) {}
|
||||
@ -285,8 +285,8 @@ private:
|
||||
SectionTableRef readSectionHeaders(const llvm::object::ELFFile<ELFT> &ElfFile);
|
||||
|
||||
protected:
|
||||
StringTableSection *SectionNames;
|
||||
SymbolTableSection *SymbolTable;
|
||||
StringTableSection *SectionNames = nullptr;
|
||||
SymbolTableSection *SymbolTable = nullptr;
|
||||
std::vector<SecPtr> Sections;
|
||||
std::vector<SegPtr> Segments;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user