One baby step towards i386 ELF, from Roman Divacky.
authorBenjamin Kramer <benny.kra@googlemail.com>
Tue, 17 Aug 2010 17:02:29 +0000 (17:02 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Tue, 17 Aug 2010 17:02:29 +0000 (17:02 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111247 91177308-0d34-0410-b5e6-96231b3b80d8

lib/MC/ELFObjectWriter.cpp

index a5ecfc905a0f9e23b93b3763aff8891f66b86441..610f68560676d2cee1a22d7ffced49a6c1a96e66 100644 (file)
@@ -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