diff options
author | Michael J. Spencer <bigcheesegs@gmail.com> | 2013-01-06 03:57:11 +0000 |
---|---|---|
committer | Michael J. Spencer <bigcheesegs@gmail.com> | 2013-01-06 03:57:11 +0000 |
commit | 95abfbe8e9567e08188ada7d29f589f08e539bd6 (patch) | |
tree | 1b01c9d602f2d8dc31b447166c47cb05f4b6e7db | |
parent | b2c064c6954c9bfa49b7a7e3223df5e7849464c0 (diff) | |
download | llvm-95abfbe8e9567e08188ada7d29f589f08e539bd6.tar.gz llvm-95abfbe8e9567e08188ada7d29f589f08e539bd6.tar.bz2 llvm-95abfbe8e9567e08188ada7d29f589f08e539bd6.tar.xz |
[Object][ELF] Fix incorrect size of members for the 64 version of Elf_Phdr_Impl.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171650 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Object/ELF.h | 6 | ||||
-rw-r--r-- | test/Object/Inputs/program-headers.elf-x86-64 | bin | 0 -> 1108 bytes | |||
-rw-r--r-- | test/Object/objdump-private-headers.test | 10 |
3 files changed, 13 insertions, 3 deletions
diff --git a/include/llvm/Object/ELF.h b/include/llvm/Object/ELF.h index 37cefd8478..46b62de19e 100644 --- a/include/llvm/Object/ELF.h +++ b/include/llvm/Object/ELF.h @@ -464,9 +464,9 @@ struct Elf_Phdr_Impl<target_endianness, max_alignment, true> { Elf_Off p_offset; // FileOffset where segment is located, in bytes Elf_Addr p_vaddr; // Virtual Address of beginning of segment Elf_Addr p_paddr; // Physical address of beginning of segment (OS-specific) - Elf_Word p_filesz; // Num. of bytes in file image of segment (may be zero) - Elf_Word p_memsz; // Num. of bytes in mem image of segment (may be zero) - Elf_Word p_align; // Segment alignment constraint + Elf_Xword p_filesz; // Num. of bytes in file image of segment (may be zero) + Elf_Xword p_memsz; // Num. of bytes in mem image of segment (may be zero) + Elf_Xword p_align; // Segment alignment constraint }; template<endianness target_endianness, std::size_t max_alignment, bool is64Bits> diff --git a/test/Object/Inputs/program-headers.elf-x86-64 b/test/Object/Inputs/program-headers.elf-x86-64 Binary files differnew file mode 100644 index 0000000000..037bf14866 --- /dev/null +++ b/test/Object/Inputs/program-headers.elf-x86-64 diff --git a/test/Object/objdump-private-headers.test b/test/Object/objdump-private-headers.test index e54d3eba5d..c562044b3c 100644 --- a/test/Object/objdump-private-headers.test +++ b/test/Object/objdump-private-headers.test @@ -1,8 +1,18 @@ RUN: llvm-objdump -p %p/Inputs/program-headers.elf-i386 \ RUN: | FileCheck %s -check-prefix ELF-i386 +RUN: llvm-objdump -p %p/Inputs/program-headers.elf-x86-64 \ +RUN: | FileCheck %s -check-prefix ELF-x86-64 ELF-i386: Program Header: ELF-i386: LOAD off 0x00000000 vaddr 0x08048000 paddr 0x08048000 align 2**12 ELF-i386: filesz 0x00000134 memsz 0x00000134 flags r-x ELF-i386: STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**2 ELF-i386: filesz 0x00000000 memsz 0x00000000 flags rw- + +ELF-x86-64: Program Header: +ELF-x86-64: LOAD off 0x0000000000000000 vaddr 0x0000000000400000 paddr 0x0000000000400000 align 2**21 +ELF-x86-64: filesz 0x0000000000000138 memsz 0x0000000000000138 flags r-x +ELF-x86-64: EH_FRAME off 0x00000000000000f4 vaddr 0x00000000004000f4 paddr 0x00000000004000f4 align 2**2 +ELF-x86-64: filesz 0x0000000000000014 memsz 0x0000000000000014 flags r-- +ELF-x86-64: STACK off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**3 +ELF-x86-64: filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw- |