summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/ELFObjectWriter.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2010-08-17 17:02:29 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2010-08-17 17:02:29 +0000
commit896bd7e932e550d0eb8d11a56176e260027ec7f1 (patch)
treeade69eedfd2a95fd800b333dc3817c82124e8cd9 /llvm/lib/MC/ELFObjectWriter.cpp
parent72a364c1075023057868c584d1b8f751674ca860 (diff)
downloadbcm5719-llvm-896bd7e932e550d0eb8d11a56176e260027ec7f1.tar.gz
bcm5719-llvm-896bd7e932e550d0eb8d11a56176e260027ec7f1.zip
One baby step towards i386 ELF, from Roman Divacky.
llvm-svn: 111247
Diffstat (limited to 'llvm/lib/MC/ELFObjectWriter.cpp')
-rw-r--r--llvm/lib/MC/ELFObjectWriter.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/MC/ELFObjectWriter.cpp b/llvm/lib/MC/ELFObjectWriter.cpp
index a5ecfc905a0..610f6856067 100644
--- a/llvm/lib/MC/ELFObjectWriter.cpp
+++ b/llvm/lib/MC/ELFObjectWriter.cpp
@@ -316,12 +316,13 @@ void ELFObjectWriterImpl::WriteHeader(uint64_t SectionDataSize,
Write16(ELF::ET_REL); // e_type
// FIXME: Make this configurable
- Write16(ELF::EM_X86_64); // e_machine = target
+ Write16(Is64Bit ? ELF::EM_X86_64 : ELF::EM_386); // e_machine = target
Write32(ELF::EV_CURRENT); // e_version
WriteWord(0); // e_entry, no entry point in .o file
WriteWord(0); // e_phoff, no program header for .o
- WriteWord(SectionDataSize + 64); // e_shoff = sec hdr table off in bytes
+ WriteWord(SectionDataSize + (Is64Bit ? sizeof(ELF::Elf64_Ehdr) :
+ sizeof(ELF::Elf32_Ehdr))); // e_shoff = sec hdr table off in bytes
// FIXME: Make this configurable.
Write32(0); // e_flags = whatever the target wants
OpenPOWER on IntegriCloud