From afcf60fe15999ea07193118f447a34f41171e433 Mon Sep 17 00:00:00 2001 From: Sean Silva Date: Tue, 18 Jun 2013 23:14:03 +0000 Subject: [yaml2obj][ELF] Rudimentary symbol table support. Currently, we only output the name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184255 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Object/ELFYAML.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'include') diff --git a/include/llvm/Object/ELFYAML.h b/include/llvm/Object/ELFYAML.h index 04ba0a6622..d6ce525248 100644 --- a/include/llvm/Object/ELFYAML.h +++ b/include/llvm/Object/ELFYAML.h @@ -49,6 +49,9 @@ struct FileHeader { ELF_EM Machine; llvm::yaml::Hex64 Entry; }; +struct Symbol { + StringRef Name; +}; struct Section { StringRef Name; ELF_SHT Type; @@ -57,6 +60,8 @@ struct Section { object::yaml::BinaryRef Content; StringRef Link; llvm::yaml::Hex64 AddressAlign; + // For SHT_SYMTAB; should be empty otherwise. + std::vector Symbols; }; struct Object { FileHeader Header; @@ -67,6 +72,7 @@ struct Object { } // end namespace llvm LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::ELFYAML::Section) +LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::ELFYAML::Symbol) namespace llvm { namespace yaml { @@ -106,6 +112,11 @@ struct MappingTraits { static void mapping(IO &IO, ELFYAML::FileHeader &FileHdr); }; +template <> +struct MappingTraits { + static void mapping(IO &IO, ELFYAML::Symbol &Symbol); +}; + template <> struct MappingTraits { static void mapping(IO &IO, ELFYAML::Section &Section); -- cgit v1.2.3