From 7ab9f7be0ccba68baa0cb8eb834da86054b172d3 Mon Sep 17 00:00:00 2001 From: Petr Hosek Date: Fri, 1 Sep 2017 21:48:20 +0000 Subject: [PATCH] [ELF] Set p_memsz to p_filesz when aligning the last segment to page boundary Having p_filesz different from p_memsz is confusing some tools. Differential Revision: https://reviews.llvm.org/D37369 llvm-svn: 312384 --- lld/ELF/Writer.cpp | 3 ++- lld/test/ELF/avoid-empty-program-headers.s | 2 +- lld/test/ELF/basic-aarch64.s | 2 +- lld/test/ELF/basic-sparcv9.s | 2 +- lld/test/ELF/basic.s | 2 +- lld/test/ELF/basic32.s | 2 +- lld/test/ELF/build-id.s | 6 +++--- lld/test/ELF/image-base.s | 2 +- 8 files changed, 11 insertions(+), 10 deletions(-) diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp index 68e14ce539d4..68e5ac7ca0be 100644 --- a/lld/ELF/Writer.cpp +++ b/lld/ELF/Writer.cpp @@ -1931,7 +1931,8 @@ template void Writer::writeTrapInstr() { LastRX = nullptr; } if (LastRX) - LastRX->p_filesz = alignTo(LastRX->p_filesz, Target->PageSize); + LastRX->p_memsz = LastRX->p_filesz = + alignTo(LastRX->p_filesz, Target->PageSize); } // Write section contents to a mmap'ed file. diff --git a/lld/test/ELF/avoid-empty-program-headers.s b/lld/test/ELF/avoid-empty-program-headers.s index e990a0ebfa77..731ecce67cbc 100644 --- a/lld/test/ELF/avoid-empty-program-headers.s +++ b/lld/test/ELF/avoid-empty-program-headers.s @@ -43,7 +43,7 @@ _start: // CHECK-NEXT: VirtualAddress: 0x201000 // CHECK-NEXT: PhysicalAddress: 0x201000 // CHECK-NEXT: FileSize: 4096 -// CHECK-NEXT: MemSize: 1 +// CHECK-NEXT: MemSize: 4096 // CHECK-NEXT: Flags [ (0x5) // CHECK-NEXT: PF_R (0x4) // CHECK-NEXT: PF_X (0x1) diff --git a/lld/test/ELF/basic-aarch64.s b/lld/test/ELF/basic-aarch64.s index 408d106f54eb..2b128689f881 100644 --- a/lld/test/ELF/basic-aarch64.s +++ b/lld/test/ELF/basic-aarch64.s @@ -186,7 +186,7 @@ _start: # CHECK-NEXT: VirtualAddress: 0x20000 # CHECK-NEXT: PhysicalAddress: 0x20000 # CHECK-NEXT: FileSize: 4096 -# CHECK-NEXT: MemSize: 12 +# CHECK-NEXT: MemSize: 4096 # CHECK-NEXT: Flags [ (0x5) # CHECK-NEXT: PF_R (0x4) # CHECK-NEXT: PF_X (0x1) diff --git a/lld/test/ELF/basic-sparcv9.s b/lld/test/ELF/basic-sparcv9.s index 48ba8f4bf193..d06fcd59d550 100644 --- a/lld/test/ELF/basic-sparcv9.s +++ b/lld/test/ELF/basic-sparcv9.s @@ -177,7 +177,7 @@ _start: # CHECK-NEXT: VirtualAddress: 0x200000 # CHECK-NEXT: PhysicalAddress: 0x200000 # CHECK-NEXT: FileSize: 8192 -# CHECK-NEXT: MemSize: 12 +# CHECK-NEXT: MemSize: 8192 # CHECK-NEXT: Flags [ (0x5) # CHECK-NEXT: PF_R (0x4) # CHECK-NEXT: PF_X (0x1) diff --git a/lld/test/ELF/basic.s b/lld/test/ELF/basic.s index 166c3b2f14fa..e9b14e7a0ca4 100644 --- a/lld/test/ELF/basic.s +++ b/lld/test/ELF/basic.s @@ -179,7 +179,7 @@ _start: # CHECK-NEXT: VirtualAddress: 0x201000 # CHECK-NEXT: PhysicalAddress: 0x201000 # CHECK-NEXT: FileSize: 4096 -# CHECK-NEXT: MemSize: 16 +# CHECK-NEXT: MemSize: 4096 # CHECK-NEXT: Flags [ (0x5) # CHECK-NEXT: PF_R (0x4) # CHECK-NEXT: PF_X (0x1) diff --git a/lld/test/ELF/basic32.s b/lld/test/ELF/basic32.s index ef87258d19cd..f4abf13a54a6 100644 --- a/lld/test/ELF/basic32.s +++ b/lld/test/ELF/basic32.s @@ -156,7 +156,7 @@ _start: # CHECK-NEXT: VirtualAddress: 0x11000 # CHECK-NEXT: PhysicalAddress: 0x11000 # CHECK-NEXT: FileSize: 4096 -# CHECK-NEXT: MemSize: 12 +# CHECK-NEXT: MemSize: 4096 # CHECK-NEXT: Flags [ (0x5) # CHECK-NEXT: PF_R (0x4) # CHECK-NEXT: PF_X (0x1) diff --git a/lld/test/ELF/build-id.s b/lld/test/ELF/build-id.s index bbca98405d58..1c3cd2a05f1a 100644 --- a/lld/test/ELF/build-id.s +++ b/lld/test/ELF/build-id.s @@ -48,15 +48,15 @@ _start: # DEFAULT: Contents of section .note.test: # DEFAULT: Contents of section .note.gnu.build-id: # DEFAULT-NEXT: 04000000 08000000 03000000 474e5500 ............GNU. -# DEFAULT-NEXT: b0148597 ba5eb7e9 +# DEFAULT-NEXT: bc208f98 7f8e4770 # MD5: Contents of section .note.gnu.build-id: # MD5-NEXT: 04000000 10000000 03000000 474e5500 ............GNU. -# MD5-NEXT: dce3bcaf 5219454c e89a1fc7 86ab17bd +# MD5-NEXT: 8e13f077 f9c94068 9d63c715 6c952cd3 # SHA1: Contents of section .note.gnu.build-id: # SHA1-NEXT: 04000000 14000000 03000000 474e5500 ............GNU. -# SHA1-NEXT: 2f716666 fe3668fe 370a02a1 579c3eb2 +# SHA1-NEXT: 754ac1ea 0a2e5144 0f4642b9 3f096bbb # UUID: Contents of section .note.gnu.build-id: # UUID-NEXT: 04000000 10000000 03000000 474e5500 ............GNU. diff --git a/lld/test/ELF/image-base.s b/lld/test/ELF/image-base.s index 05b2608723f6..eb79acdced81 100644 --- a/lld/test/ELF/image-base.s +++ b/lld/test/ELF/image-base.s @@ -45,7 +45,7 @@ _start: # CHECK-NEXT: VirtualAddress: 0x1001000 # CHECK-NEXT: PhysicalAddress: 0x1001000 # CHECK-NEXT: FileSize: 4096 -# CHECK-NEXT: MemSize: 1 +# CHECK-NEXT: MemSize: 4096 # CHECK-NEXT: Flags [ (0x5) # CHECK-NEXT: PF_R (0x4) # CHECK-NEXT: PF_X (0x1)