diff options
| -rw-r--r-- | lld/ELF/Writer.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp index 3187799f3e3..30e4079c957 100644 --- a/lld/ELF/Writer.cpp +++ b/lld/ELF/Writer.cpp @@ -704,11 +704,9 @@ template <class ELFT> int Writer<ELFT>::getPhdrsNum() const { template <class ELFT> void Writer<ELFT>::writeHeader() { uint8_t *Buf = Buffer->getBufferStart(); + memcpy(Buf, "\177ELF", 4); + auto *EHdr = reinterpret_cast<Elf_Ehdr *>(Buf); - EHdr->e_ident[EI_MAG0] = 0x7F; - EHdr->e_ident[EI_MAG1] = 'E'; - EHdr->e_ident[EI_MAG2] = 'L'; - EHdr->e_ident[EI_MAG3] = 'F'; EHdr->e_ident[EI_CLASS] = ELFT::Is64Bits ? ELFCLASS64 : ELFCLASS32; EHdr->e_ident[EI_DATA] = ELFT::TargetEndianness == llvm::support::little ? ELFDATA2LSB |

