diff options
Diffstat (limited to 'ELF/Writer.h')
-rw-r--r-- | ELF/Writer.h | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/ELF/Writer.h b/ELF/Writer.h index 718e3139a809c..a669e42ef2055 100644 --- a/ELF/Writer.h +++ b/ELF/Writer.h @@ -18,41 +18,39 @@ namespace lld { namespace elf { class InputFile; -class OutputSectionBase; -template <class ELFT> class InputSectionBase; +class OutputSection; +class InputSectionBase; template <class ELFT> class ObjectFile; template <class ELFT> class SymbolTable; template <class ELFT> void writeResult(); template <class ELFT> void markLive(); -template <class ELFT> bool isRelroSection(const OutputSectionBase *Sec); +template <class ELFT> bool isRelroSection(const OutputSection *Sec); // This describes a program header entry. // Each contains type, access flags and range of output sections that will be // placed in it. struct PhdrEntry { PhdrEntry(unsigned Type, unsigned Flags); - void add(OutputSectionBase *Sec); + void add(OutputSection *Sec); uint64_t p_paddr = 0; uint64_t p_vaddr = 0; - uint64_t p_align = 0; uint64_t p_memsz = 0; uint64_t p_filesz = 0; uint64_t p_offset = 0; + uint32_t p_align = 0; uint32_t p_type = 0; uint32_t p_flags = 0; - OutputSectionBase *First = nullptr; - OutputSectionBase *Last = nullptr; + OutputSection *First = nullptr; + OutputSection *Last = nullptr; bool HasLMA = false; }; llvm::StringRef getOutputSectionName(llvm::StringRef Name); -template <class ELFT> -void allocateHeaders(llvm::MutableArrayRef<PhdrEntry>, - llvm::ArrayRef<OutputSectionBase *>); -template <class ELFT> void reportDiscarded(InputSectionBase<ELFT> *IS); +bool allocateHeaders(std::vector<PhdrEntry> &, llvm::ArrayRef<OutputSection *>, + uint64_t Min); template <class ELFT> uint32_t getMipsEFlags(); |