diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2010-08-17 17:56:13 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2010-08-17 17:56:13 +0000 |
commit | fd0541566b42a022c86fad161c653fe81c8005c1 (patch) | |
tree | 0324d8fe052ad4469a4f846bcff3073d48aa757b /llvm/lib/MC/ELFObjectWriter.cpp | |
parent | 52ce9bb2fbc73a23cc7da27c94e5a898cf258c09 (diff) | |
download | bcm5719-llvm-fd0541566b42a022c86fad161c653fe81c8005c1.tar.gz bcm5719-llvm-fd0541566b42a022c86fad161c653fe81c8005c1.zip |
Use the correct entry size for relocation entries, from Roman Divacky.
llvm-svn: 111259
Diffstat (limited to 'llvm/lib/MC/ELFObjectWriter.cpp')
-rw-r--r-- | llvm/lib/MC/ELFObjectWriter.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/llvm/lib/MC/ELFObjectWriter.cpp b/llvm/lib/MC/ELFObjectWriter.cpp index 9b399eb29eb..23c2dd5c207 100644 --- a/llvm/lib/MC/ELFObjectWriter.cpp +++ b/llvm/lib/MC/ELFObjectWriter.cpp @@ -748,9 +748,13 @@ void ELFObjectWriterImpl::WriteRelocation(MCAssembler &Asm, MCAsmLayout &Layout, const StringRef SectionName = Section.getSectionName(); std::string RelaSectionName = HasRelocationAddend ? ".rela" : ".rel"; - RelaSectionName += SectionName; - unsigned EntrySize = Is64Bit ? ELF::SYMENTRY_SIZE64 : ELF::SYMENTRY_SIZE32; + + unsigned EntrySize; + if (HasRelocationAddend) + EntrySize = Is64Bit ? sizeof(ELF::Elf64_Rela) : sizeof(ELF::Elf32_Rela); + else + EntrySize = Is64Bit ? sizeof(ELF::Elf64_Rel) : sizeof(ELF::Elf32_Rel); RelaSection = Ctx.getELFSection(RelaSectionName, HasRelocationAddend ? ELF::SHT_RELA : ELF::SHT_REL, 0, |