diff options
author | Michael J. Spencer <bigcheesegs@gmail.com> | 2013-08-08 22:27:13 +0000 |
---|---|---|
committer | Michael J. Spencer <bigcheesegs@gmail.com> | 2013-08-08 22:27:13 +0000 |
commit | 081a1941b595f6294e4ce678fd61ef56a2ceb51e (patch) | |
tree | 45ac82225774a2894de7e3e4c4a83e5cf2d90dd5 /tools/yaml2obj/yaml2elf.cpp | |
parent | 491d04969d9f29ed891c73238648853954ba4f81 (diff) | |
download | llvm-081a1941b595f6294e4ce678fd61ef56a2ceb51e.tar.gz llvm-081a1941b595f6294e4ce678fd61ef56a2ceb51e.tar.bz2 llvm-081a1941b595f6294e4ce678fd61ef56a2ceb51e.tar.xz |
[Object] Split the ELF interface into 3 parts.
* ELFTypes.h contains template magic for defining types based on endianess, size, and alignment.
* ELFFile.h defines the ELFFile class which provides low level ELF specific access.
* ELFObjectFile.h contains ELFObjectFile which uses ELFFile to implement the ObjectFile interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188022 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/yaml2obj/yaml2elf.cpp')
-rw-r--r-- | tools/yaml2obj/yaml2elf.cpp | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/tools/yaml2obj/yaml2elf.cpp b/tools/yaml2obj/yaml2elf.cpp index 61252a4a28..d3b25ecf09 100644 --- a/tools/yaml2obj/yaml2elf.cpp +++ b/tools/yaml2obj/yaml2elf.cpp @@ -13,7 +13,7 @@ //===----------------------------------------------------------------------===// #include "yaml2obj.h" -#include "llvm/Object/ELF.h" +#include "llvm/Object/ELFObjectFile.h" #include "llvm/Object/ELFYAML.h" #include "llvm/Support/ELF.h" #include "llvm/Support/MemoryBuffer.h" @@ -157,7 +157,7 @@ class ELFState { unsigned DotStrtabSecNo; /// \brief The accumulated contents of all sections so far. ContiguousBlobAccumulator &SectionContentAccum; - typedef typename object::ELFObjectFile<ELFT>::Elf_Ehdr Elf_Ehdr; + typedef typename object::ELFFile<ELFT>::Elf_Ehdr Elf_Ehdr; /// \brief The ELF file header. Elf_Ehdr &Header; @@ -185,9 +185,9 @@ public: template <class ELFT> static void addSymbols(const std::vector<ELFYAML::Symbol> &Symbols, ELFState<ELFT> &State, - std::vector<typename object::ELFObjectFile<ELFT>::Elf_Sym> &Syms, + std::vector<typename object::ELFFile<ELFT>::Elf_Sym> &Syms, unsigned SymbolBinding) { - typedef typename object::ELFObjectFile<ELFT>::Elf_Sym Elf_Sym; + typedef typename object::ELFFile<ELFT>::Elf_Sym Elf_Sym; for (unsigned i = 0, e = Symbols.size(); i != e; ++i) { const ELFYAML::Symbol &Sym = Symbols[i]; Elf_Sym Symbol; @@ -211,11 +211,12 @@ addSymbols(const std::vector<ELFYAML::Symbol> &Symbols, ELFState<ELFT> &State, } template <class ELFT> -static void handleSymtabSectionHeader( - const ELFYAML::LocalGlobalWeakSymbols &Symbols, ELFState<ELFT> &State, - typename object::ELFObjectFile<ELFT>::Elf_Shdr &SHeader) { +static void +handleSymtabSectionHeader(const ELFYAML::LocalGlobalWeakSymbols &Symbols, + ELFState<ELFT> &State, + typename object::ELFFile<ELFT>::Elf_Shdr &SHeader) { - typedef typename object::ELFObjectFile<ELFT>::Elf_Sym Elf_Sym; + typedef typename object::ELFFile<ELFT>::Elf_Sym Elf_Sym; SHeader.sh_type = ELF::SHT_SYMTAB; SHeader.sh_link = State.getDotStrTabSecNo(); // One greater than symbol table index of the last local symbol. @@ -241,8 +242,8 @@ static void handleSymtabSectionHeader( template <class ELFT> static int writeELF(raw_ostream &OS, const ELFYAML::Object &Doc) { using namespace llvm::ELF; - typedef typename object::ELFObjectFile<ELFT>::Elf_Ehdr Elf_Ehdr; - typedef typename object::ELFObjectFile<ELFT>::Elf_Shdr Elf_Shdr; + typedef typename object::ELFFile<ELFT>::Elf_Ehdr Elf_Ehdr; + typedef typename object::ELFFile<ELFT>::Elf_Shdr Elf_Shdr; const ELFYAML::FileHeader &Hdr = Doc.Header; |