From: Jordan Rupprecht Date: Thu, 3 Jan 2019 19:09:00 +0000 (+0000) Subject: [llvm-objcopy] Fix buildbots on older compilers X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=aff9f2f0b9b51930400243a809fef25b52dbf35e;p=llvm [llvm-objcopy] Fix buildbots on older compilers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350343 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/tools/llvm-objcopy/ELF/Object.cpp b/tools/llvm-objcopy/ELF/Object.cpp index 6a85b95a43f..3d3e029c09e 100644 --- a/tools/llvm-objcopy/ELF/Object.cpp +++ b/tools/llvm-objcopy/ELF/Object.cpp @@ -87,7 +87,7 @@ void ELFSectionSizer::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 @@ -95,8 +95,7 @@ void ELFSectionSizer::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 diff --git a/tools/llvm-objcopy/ELF/Object.h b/tools/llvm-objcopy/ELF/Object.h index b0e83d2f56c..e5730cd543e 100644 --- a/tools/llvm-objcopy/ELF/Object.h +++ b/tools/llvm-objcopy/ELF/Object.h @@ -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;