]> granicus.if.org Git - llvm/commitdiff
[llvm-objcopy] Fix buildbots on older compilers
authorJordan Rupprecht <rupprecht@google.com>
Thu, 3 Jan 2019 19:09:00 +0000 (19:09 +0000)
committerJordan Rupprecht <rupprecht@google.com>
Thu, 3 Jan 2019 19:09:00 +0000 (19:09 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350343 91177308-0d34-0410-b5e6-96231b3b80d8

tools/llvm-objcopy/ELF/Object.cpp
tools/llvm-objcopy/ELF/Object.h

index 6a85b95a43fca98e5c8903f8e846d1a8a6c0cc08..3d3e029c09ebc9c8c2249414771df7d41f288510 100644 (file)
@@ -87,7 +87,7 @@ void ELFSectionSizer<ELFT>::visit(SymbolTableSection &Sec) {
   Sec.EntrySize = sizeof(Elf_Sym);
   Sec.Size = Sec.Symbols.size() * Sec.EntrySize;
   // Align to the largest field in Elf_Sym.
-  Sec.Align = sizeof(Elf_Sym::st_size);
+  Sec.Align = ELFT::Is64Bits ? sizeof(Elf_Xword) : sizeof(Elf_Word);
 }
 
 template <class ELFT>
@@ -95,8 +95,7 @@ void ELFSectionSizer<ELFT>::visit(RelocationSection &Sec) {
   Sec.EntrySize = Sec.Type == SHT_REL ? sizeof(Elf_Rel) : sizeof(Elf_Rela);
   Sec.Size = Sec.Relocations.size() * Sec.EntrySize;
   // Align to the largest field in Elf_Rel(a).
-  Sec.Align =
-      Sec.Type == SHT_REL ? sizeof(Elf_Rel::r_info) : sizeof(Elf_Rela::r_info);
+  Sec.Align = ELFT::Is64Bits ? sizeof(Elf_Xword) : sizeof(Elf_Word);
 }
 
 template <class ELFT>
index b0e83d2f56c34ca6831b76d7991bd64ad7f159ed..e5730cd543ee6f2baa3a09c9ed50cb7aa0cbf5de 100644 (file)
@@ -150,6 +150,8 @@ private:
   using Elf_Rel = typename ELFT::Rel;
   using Elf_Rela = typename ELFT::Rela;
   using Elf_Sym = typename ELFT::Sym;
+  using Elf_Word = typename ELFT::Word;
+  using Elf_Xword = typename ELFT::Xword;
 
 public:
   void visit(Section &Sec) override;