diff options
Diffstat (limited to 'subx/021translate.cc')
-rw-r--r-- | subx/021translate.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/subx/021translate.cc b/subx/021translate.cc index e43ea894..40d75a8a 100644 --- a/subx/021translate.cc +++ b/subx/021translate.cc @@ -68,7 +68,7 @@ void dump_elf_header(ostream& out) { // e_version O(0x01); O(0x00); O(0x00); O(0x00); // e_entry - int e_entry = START; + int e_entry = START + /*size of ehdr*/52 + /*size of phdr*/32; emit(e_entry); // e_phoff -- immediately after ELF header int e_phoff = 52; @@ -100,14 +100,14 @@ void dump_elf_header(ostream& out) { uint32_t p_type = 0x1; emit(p_type); // p_offset - uint32_t p_offset = /*size of ehdr*/52 + /*size of phdr*/32; + uint32_t p_offset = 0; emit(p_offset); // p_vaddr emit(START); // p_paddr emit(START); // p_filesz - uint32_t size = End_of_program - /*we're not using location 0*/1; + uint32_t size = (End_of_program-/*we're not using location 0*/1) + /*size of ehdr*/52 + /*size of phdr*/32; emit(size); // p_memsz emit(size); |