1 # This tests verifies functionality of NMAGIC that we create only two segments,
3 # The data segment should be aligned to a page boundary
4 RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/nmagic.o \
5 RUN: --noinhibit-exec -o %t --nmagic -static
6 RUN: llvm-readobj -sections %t | FileCheck -check-prefix=NMAGICSECTIONS %s
7 RUN: llvm-readobj -program-headers %t | FileCheck -check-prefix=NMAGICPROGRAMHEADERS %s
9 NMAGICSECTIONS: Section {
10 NMAGICSECTIONS: Index: 0
11 NMAGICSECTIONS: Name: (0)
12 NMAGICSECTIONS: Type: SHT_NULL (0x0)
14 NMAGICSECTIONS: Section {
15 NMAGICSECTIONS: Name: .text
16 NMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
18 NMAGICSECTIONS: Section {
19 NMAGICSECTIONS: Name: .eh_frame
20 NMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
22 NMAGICSECTIONS: Section {
23 NMAGICSECTIONS: Name: .tdata
24 NMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
26 NMAGICSECTIONS: Section {
27 NMAGICSECTIONS: Name: .tbss
28 NMAGICSECTIONS: Type: SHT_NOBITS (0x8)
30 NMAGICSECTIONS: Section {
31 NMAGICSECTIONS: Name: .got.plt
32 NMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
34 NMAGICSECTIONS: Section {
35 NMAGICSECTIONS: Name: .data
36 NMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
38 NMAGICSECTIONS: Section {
39 NMAGICSECTIONS: Name: .bss
40 NMAGICSECTIONS: Type: SHT_NOBITS (0x8)
42 NMAGICSECTIONS: Section {
43 NMAGICSECTIONS: Name: .comment
44 NMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
46 NMAGICSECTIONS: Section {
47 NMAGICSECTIONS: Name: .note.GNU-stack
48 NMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
50 NMAGICSECTIONS: Section {
51 NMAGICSECTIONS: Name: .shstrtab
52 NMAGICSECTIONS: Type: SHT_STRTAB (0x3)
54 NMAGICSECTIONS: Section {
55 NMAGICSECTIONS: Name: .symtab
56 NMAGICSECTIONS: Type: SHT_SYMTAB (0x2)
58 NMAGICSECTIONS: Section {
59 NMAGICSECTIONS: Name: .strtab
60 NMAGICSECTIONS: Type: SHT_STRTAB (0x3)
63 NMAGICPROGRAMHEADERS: ProgramHeaders [
64 NMAGICPROGRAMHEADERS: ProgramHeader {
65 NMAGICPROGRAMHEADERS: Type: PT_LOAD (0x1)
66 NMAGICPROGRAMHEADERS: Offset: 0x0
67 NMAGICPROGRAMHEADERS: VirtualAddress: 0x400000
68 NMAGICPROGRAMHEADERS: PhysicalAddress: 0x400000
69 NMAGICPROGRAMHEADERS: FileSize: 4108
70 NMAGICPROGRAMHEADERS: MemSize: 4108
71 NMAGICPROGRAMHEADERS: Flags [ (0x7)
72 NMAGICPROGRAMHEADERS: PF_R (0x4)
73 NMAGICPROGRAMHEADERS: PF_W (0x2)
74 NMAGICPROGRAMHEADERS: PF_X (0x1)
75 NMAGICPROGRAMHEADERS: ]
76 NMAGICPROGRAMHEADERS: Alignment: 8
77 NMAGICPROGRAMHEADERS: }
78 NMAGICPROGRAMHEADERS: ProgramHeader {
79 NMAGICPROGRAMHEADERS: Type: PT_TLS (0x7)
80 NMAGICPROGRAMHEADERS: Offset: 0x1000
81 NMAGICPROGRAMHEADERS: VirtualAddress: 0x401000
82 NMAGICPROGRAMHEADERS: PhysicalAddress: 0x401000
83 NMAGICPROGRAMHEADERS: FileSize: 4
84 NMAGICPROGRAMHEADERS: MemSize: 12
85 NMAGICPROGRAMHEADERS: Flags [ (0x6)
86 NMAGICPROGRAMHEADERS: PF_R (0x4)
87 NMAGICPROGRAMHEADERS: PF_W (0x2)
88 NMAGICPROGRAMHEADERS: ]
89 NMAGICPROGRAMHEADERS: Alignment: 4
90 NMAGICPROGRAMHEADERS: }
91 NMAGICPROGRAMHEADERS: ]