summaryrefslogtreecommitdiff
path: root/ELF/Writer.h
diff options
context:
space:
mode:
Diffstat (limited to 'ELF/Writer.h')
-rw-r--r--ELF/Writer.h20
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();