1# REQUIRES: x86 2# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t 3# RUN: echo "SECTIONS { \ 4# RUN: . = 0x1000; \ 5# RUN: .aaa : AT(0x2000) { *(.aaa) } \ 6# RUN: .bbb : { *(.bbb) } \ 7# RUN: .ccc : AT(0x3000) { *(.ccc) } \ 8# RUN: .ddd : AT(0x4000) { *(.ddd) } \ 9# RUN: .eee 0x5000 : AT(0x5000) { *(.eee) } \ 10# RUN: }" > %t.script 11# RUN: ld.lld %t --script %t.script -o %t2 12# RUN: llvm-readobj -l %t2 | FileCheck %s 13 14# CHECK: ProgramHeaders [ 15# CHECK-NEXT: ProgramHeader { 16# CHECK-NEXT: Type: PT_LOAD 17# CHECK-NEXT: Offset: 0x1000 18# CHECK-NEXT: VirtualAddress: 0x1000 19# CHECK-NEXT: PhysicalAddress: 0x2000 20# CHECK-NEXT: FileSize: 16 21# CHECK-NEXT: MemSize: 16 22# CHECK-NEXT: Flags [ 23# CHECK-NEXT: PF_R 24# CHECK-NEXT: PF_X 25# CHECK-NEXT: ] 26# CHECK-NEXT: Alignment: 27# CHECK-NEXT: } 28# CHECK-NEXT: ProgramHeader { 29# CHECK-NEXT: Type: PT_LOAD 30# CHECK-NEXT: Offset: 0x1010 31# CHECK-NEXT: VirtualAddress: 0x1010 32# CHECK-NEXT: PhysicalAddress: 0x3000 33# CHECK-NEXT: FileSize: 8 34# CHECK-NEXT: MemSize: 8 35# CHECK-NEXT: Flags [ 36# CHECK-NEXT: PF_R 37# CHECK-NEXT: PF_X 38# CHECK-NEXT: ] 39# CHECK-NEXT: Alignment: 4096 40# CHECK-NEXT: } 41# CHECK-NEXT: ProgramHeader { 42# CHECK-NEXT: Type: PT_LOAD 43# CHECK-NEXT: Offset: 0x1018 44# CHECK-NEXT: VirtualAddress: 0x1018 45# CHECK-NEXT: PhysicalAddress: 0x4000 46# CHECK-NEXT: FileSize: 8 47# CHECK-NEXT: MemSize: 8 48# CHECK-NEXT: Flags [ 49# CHECK-NEXT: PF_R 50# CHECK-NEXT: PF_X 51# CHECK-NEXT: ] 52# CHECK-NEXT: Alignment: 4096 53# CHECK-NEXT: } 54# CHECK-NEXT: ProgramHeader { 55# CHECK-NEXT: Type: PT_LOAD 56# CHECK-NEXT: Offset: 0x2000 57# CHECK-NEXT: VirtualAddress: 0x5000 58# CHECK-NEXT: PhysicalAddress: 0x5000 59# CHECK-NEXT: FileSize: 9 60# CHECK-NEXT: MemSize: 9 61# CHECK-NEXT: Flags [ 62# CHECK-NEXT: PF_R 63# CHECK-NEXT: PF_X 64# CHECK-NEXT: ] 65# CHECK-NEXT: Alignment: 4096 66# CHECK-NEXT: } 67# CHECK-NEXT: ProgramHeader { 68# CHECK-NEXT: Type: PT_GNU_STACK 69# CHECK-NEXT: Offset: 70# CHECK-NEXT: VirtualAddress: 0x0 71# CHECK-NEXT: PhysicalAddress: 0x0 72# CHECK-NEXT: FileSize: 73# CHECK-NEXT: MemSize: 74# CHECK-NEXT: Flags [ 75# CHECK-NEXT: PF_R 76# CHECK-NEXT: PF_W 77# CHECK-NEXT: ] 78# CHECK-NEXT: Alignment: 0 79# CHECK-NEXT: } 80# CHECK-NEXT: ] 81 82.global _start 83_start: 84 nop 85 86.section .aaa, "a" 87.quad 0 88 89.section .bbb, "a" 90.quad 0 91 92.section .ccc, "a" 93.quad 0 94 95.section .ddd, "a" 96.quad 0 97 98.section .eee, "a" 99.quad 0 100