diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2016-02-10 23:29:38 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2016-02-10 23:29:38 +0000 |
| commit | ef762f2639825306f0fe0814e22d7139dfa88859 (patch) | |
| tree | cecf05d5efe662bf7f2d75025e5f16490ba82219 /lld/test/ELF/avoid-empty-program-headers.s | |
| parent | 82f68a88b5b22e0e5861a02fb28d3236122a9f18 (diff) | |
| download | bcm5719-llvm-ef762f2639825306f0fe0814e22d7139dfa88859.tar.gz bcm5719-llvm-ef762f2639825306f0fe0814e22d7139dfa88859.zip | |
Don't include NOBITS TLS in PT_LOAD.
They don't count for the memory or file size, so this is mostly just a
simplification.
The only noticeable difference should be fewer empty program headers.
llvm-svn: 260465
Diffstat (limited to 'lld/test/ELF/avoid-empty-program-headers.s')
| -rw-r--r-- | lld/test/ELF/avoid-empty-program-headers.s | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/lld/test/ELF/avoid-empty-program-headers.s b/lld/test/ELF/avoid-empty-program-headers.s new file mode 100644 index 00000000000..f7315677e1a --- /dev/null +++ b/lld/test/ELF/avoid-empty-program-headers.s @@ -0,0 +1,78 @@ +// REQUIRES: x86 +// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t +// RUN: ld.lld %t -o %tout +// RUN: llvm-readobj -program-headers %tout | FileCheck %s + +.global _start +_start: + retq + +.section .tbss,"awT",@nobits + .zero 4 +// FIXME: Test that we don't create unecessary empty PT_LOAD and PT_GNU_RELRO +// for the .tbss section. + +// CHECK: ProgramHeaders [ +// CHECK-NEXT: ProgramHeader { +// CHECK-NEXT: Type: PT_PHDR (0x6) +// CHECK-NEXT: Offset: 0x40 +// CHECK-NEXT: VirtualAddress: 0x10040 +// CHECK-NEXT: PhysicalAddress: 0x10040 +// CHECK-NEXT: FileSize: 280 +// CHECK-NEXT: MemSize: 280 +// CHECK-NEXT: Flags [ (0x4) +// CHECK-NEXT: PF_R (0x4) +// CHECK-NEXT: ] +// CHECK-NEXT: Alignment: 8 +// CHECK-NEXT: } +// CHECK-NEXT: ProgramHeader { +// CHECK-NEXT: Type: PT_LOAD (0x1) +// CHECK-NEXT: Offset: 0x0 +// CHECK-NEXT: VirtualAddress: 0x10000 +// CHECK-NEXT: PhysicalAddress: 0x10000 +// CHECK-NEXT: FileSize: 344 +// CHECK-NEXT: MemSize: 344 +// CHECK-NEXT: Flags [ (0x4) +// CHECK-NEXT: PF_R (0x4) +// CHECK-NEXT: ] +// CHECK-NEXT: Alignment: 4096 +// CHECK-NEXT: } +// CHECK-NEXT: ProgramHeader { +// CHECK-NEXT: Type: PT_LOAD (0x1) +// CHECK-NEXT: Offset: 0x1000 +// CHECK-NEXT: VirtualAddress: 0x11000 +// CHECK-NEXT: PhysicalAddress: 0x11000 +// CHECK-NEXT: FileSize: 1 +// CHECK-NEXT: MemSize: 1 +// CHECK-NEXT: Flags [ (0x5) +// CHECK-NEXT: PF_R (0x4) +// CHECK-NEXT: PF_X (0x1) +// CHECK-NEXT: ] +// CHECK-NEXT: Alignment: 4096 +// CHECK-NEXT: } +// CHECK-NEXT: ProgramHeader { +// CHECK-NEXT: Type: PT_TLS (0x7) +// CHECK-NEXT: Offset: 0x1001 +// CHECK-NEXT: VirtualAddress: 0x11001 +// CHECK-NEXT: PhysicalAddress: 0x11001 +// CHECK-NEXT: FileSize: 0 +// CHECK-NEXT: MemSize: 4 +// CHECK-NEXT: Flags [ (0x4) +// CHECK-NEXT: PF_R (0x4) +// CHECK-NEXT: ] +// CHECK-NEXT: Alignment: 1 +// CHECK-NEXT: } +// CHECK-NEXT: ProgramHeader { +// CHECK-NEXT: Type: PT_GNU_STACK (0x6474E551) +// CHECK-NEXT: Offset: 0x0 +// CHECK-NEXT: VirtualAddress: 0x0 +// CHECK-NEXT: PhysicalAddress: 0x0 +// CHECK-NEXT: FileSize: 0 +// CHECK-NEXT: MemSize: 0 +// CHECK-NEXT: Flags [ (0x6) +// CHECK-NEXT: PF_R (0x4) +// CHECK-NEXT: PF_W (0x2) +// CHECK-NEXT: ] +// CHECK-NEXT: Alignment: 0 +// CHECK-NEXT: } +// CHECK-NEXT: ] |

