diff options
author | Petr Hosek <phosek@chromium.org> | 2017-08-02 00:03:33 +0000 |
---|---|---|
committer | Petr Hosek <phosek@chromium.org> | 2017-08-02 00:03:33 +0000 |
commit | 37c052f503877fce8596c8fdc3207c6f81033957 (patch) | |
tree | a8c0b73caaad47e340073b77f7d16e16c43e6298 /llvm/tools/llvm-objcopy/Object.h | |
parent | 31d92c0acc7aae88724e1ec6401ff6bbae27c9be (diff) | |
download | bcm5719-llvm-37c052f503877fce8596c8fdc3207c6f81033957.tar.gz bcm5719-llvm-37c052f503877fce8596c8fdc3207c6f81033957.zip |
Revert "Reland "[llvm][llvm-objcopy] Added support for outputting to binary in llvm-objcopy""
This is failing to compile on 32-bit ARM bots.
This reverts commit r309768.
llvm-svn: 309771
Diffstat (limited to 'llvm/tools/llvm-objcopy/Object.h')
-rw-r--r-- | llvm/tools/llvm-objcopy/Object.h | 55 |
1 files changed, 9 insertions, 46 deletions
diff --git a/llvm/tools/llvm-objcopy/Object.h b/llvm/tools/llvm-objcopy/Object.h index b505e60b382..d743efbde65 100644 --- a/llvm/tools/llvm-objcopy/Object.h +++ b/llvm/tools/llvm-objcopy/Object.h @@ -58,7 +58,6 @@ private: }; std::set<const SectionBase *, SectionCompare> Sections; - llvm::ArrayRef<uint8_t> Contents; public: uint64_t Align; @@ -71,7 +70,6 @@ public: uint64_t Type; uint64_t VAddr; - Segment(llvm::ArrayRef<uint8_t> Data) : Contents(Data) {} void finalize(); const SectionBase *firstSection() const { if (!Sections.empty()) @@ -80,7 +78,6 @@ public: } void addSection(const SectionBase *sec) { Sections.insert(sec); } template <class ELFT> void writeHeader(llvm::FileOutputBuffer &Out) const; - void writeSegment(llvm::FileOutputBuffer &Out) const; }; class Section : public SectionBase { @@ -120,16 +117,16 @@ private: typedef typename ELFT::Ehdr Elf_Ehdr; typedef typename ELFT::Phdr Elf_Phdr; - SecPtr makeSection(const llvm::object::ELFFile<ELFT> &ElfFile, - const Elf_Shdr &Shdr); - void readProgramHeaders(const llvm::object::ELFFile<ELFT> &ElfFile); - void readSectionHeaders(const llvm::object::ELFFile<ELFT> &ElfFile); - -protected: StringTableSection *SectionNames; std::vector<SecPtr> Sections; std::vector<SegPtr> Segments; + void sortSections(); + void assignOffsets(); + SecPtr makeSection(const llvm::object::ELFFile<ELFT> &ElfFile, + const Elf_Shdr &Shdr); + void readProgramHeaders(const llvm::object::ELFFile<ELFT> &ElfFile); + void readSectionHeaders(const llvm::object::ELFFile<ELFT> &ElfFile); void writeHeader(llvm::FileOutputBuffer &Out) const; void writeProgramHeaders(llvm::FileOutputBuffer &Out) const; void writeSectionData(llvm::FileOutputBuffer &Out) const; @@ -145,43 +142,9 @@ public: uint32_t Flags; Object(const llvm::object::ELFObjectFile<ELFT> &Obj); - virtual size_t totalSize() const = 0; - virtual void finalize() = 0; - virtual void write(llvm::FileOutputBuffer &Out) const = 0; - virtual ~Object() = default; -}; - -template <class ELFT> class ELFObject : public Object<ELFT> { -private: - typedef std::unique_ptr<SectionBase> SecPtr; - typedef std::unique_ptr<Segment> SegPtr; - - typedef typename ELFT::Shdr Elf_Shdr; - typedef typename ELFT::Ehdr Elf_Ehdr; - typedef typename ELFT::Phdr Elf_Phdr; - - void sortSections(); - void assignOffsets(); - -public: - ELFObject(const llvm::object::ELFObjectFile<ELFT> &Obj) : Object<ELFT>(Obj) {} - void finalize() override; - size_t totalSize() const override; - void write(llvm::FileOutputBuffer &Out) const override; + size_t totalSize() const; + void finalize(); + void write(llvm::FileOutputBuffer &Out); }; -template <class ELFT> class BinaryObject : public Object<ELFT> { -private: - typedef std::unique_ptr<SectionBase> SecPtr; - typedef std::unique_ptr<Segment> SegPtr; - - uint64_t TotalSize; - -public: - BinaryObject(const llvm::object::ELFObjectFile<ELFT> &Obj) - : Object<ELFT>(Obj) {} - void finalize() override; - size_t totalSize() const override; - void write(llvm::FileOutputBuffer &Out) const override; -}; #endif |