xref: /llvm-project/lld/test/ELF/linkerscript/header-addr.test (revision b159906a9a45ba9d8655a29014d585203faf0629)
1# REQUIRES: x86
2# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux /dev/null -o %t.o
3# RUN: ld.lld --hash-style=sysv -o %t.so --script %s %t.o -shared
4# RUN: llvm-readobj -l %t.so | FileCheck %s
5
6PHDRS { all PT_LOAD PHDRS; }
7
8SECTIONS {
9  . = 0x2000 + SIZEOF_HEADERS;
10  .text : {*(.text)} :all
11}
12
13# CHECK:      ProgramHeaders [
14# CHECK-NEXT:   ProgramHeader {
15# CHECK-NEXT:     Type: PT_LOAD
16# CHECK-NEXT:     Offset: 0x40
17# CHECK-NEXT:     VirtualAddress: 0x2040
18# CHECK-NEXT:     PhysicalAddress: 0x2040
19# CHECK-NEXT:     FileSize: 200
20# CHECK-NEXT:     MemSize: 200
21# CHECK-NEXT:     Flags [
22# CHECK-NEXT:       PF_R (0x4)
23# CHECK-NEXT:       PF_W (0x2)
24# CHECK-NEXT:       PF_X (0x1)
25# CHECK-NEXT:     ]
26# CHECK-NEXT:     Alignment: 4096
27# CHECK-NEXT:   }
28# CHECK-NEXT: ]
29
30# RUN: ld.lld --hash-style=sysv -o %t2.so --script %s %t.o -shared -z max-page-size=0x2000
31# RUN: llvm-readobj -l %t2.so \
32# RUN:   | FileCheck --check-prefix=MAXPAGE %s
33
34# MAXPAGE:      ProgramHeaders [
35# MAXPAGE-NEXT:   ProgramHeader {
36# MAXPAGE-NEXT:     Type: PT_LOAD
37# MAXPAGE-NEXT:     Offset: 0x40
38# MAXPAGE-NEXT:     VirtualAddress: 0x2040
39# MAXPAGE-NEXT:     PhysicalAddress: 0x2040
40# MAXPAGE-NEXT:     FileSize: 200
41# MAXPAGE-NEXT:     MemSize: 200
42# MAXPAGE-NEXT:     Flags [
43# MAXPAGE-NEXT:       PF_R
44# MAXPAGE-NEXT:       PF_W
45# MAXPAGE-NEXT:       PF_X
46# MAXPAGE-NEXT:     ]
47# MAXPAGE-NEXT:     Alignment: 8192
48# MAXPAGE-NEXT:   }
49# MAXPAGE-NEXT: ]
50