]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/ELF/linkerscript/merge-sections.s
Vendor import of lld trunk r290819:
[FreeBSD/FreeBSD.git] / test / ELF / linkerscript / merge-sections.s
1 # REQUIRES: x86
2 # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
3
4 # RUN: echo "SECTIONS { \
5 # RUN:   . = SIZEOF_HEADERS; \
6 # RUN:   .foo : { begin = .; *(.foo.*) end = .;} \
7 # RUN: }" > %t.script
8 # RUN: ld.lld -o %t1 --script %t.script %t -shared
9 # RUN: llvm-readobj -s -t %t1 | FileCheck %s
10
11 # CHECK:        Name: .foo
12 # CHECK-NEXT:   Type: SHT_PROGBITS
13 # CHECK-NEXT:   Flags [
14 # CHECK-NEXT:     SHF_ALLOC
15 # CHECK-NEXT:     SHF_MERGE
16 # CHECK-NEXT:     SHF_STRINGS
17 # CHECK-NEXT:   ]
18 # CHECK-NEXT:   Address: 0x[[ADDR1:.*]]
19 # CHECK-NEXT:   Offset: 0x[[ADDR1]]
20 # CHECK-NEXT:   Size: 4
21 # CHECK-NEXT:   Link: 0
22 # CHECK-NEXT:   Info: 0
23 # CHECK-NEXT:   AddressAlignment: 1
24 # CHECK-NEXT:   EntrySize: 1
25 # CHECK-NEXT: }
26 # CHECK-NEXT: Section {
27 # CHECK-NEXT:   Index:
28 # CHECK-NEXT:   Name: .foo
29 # CHECK-NEXT:   Type: SHT_PROGBITS
30 # CHECK-NEXT:   Flags [
31 # CHECK-NEXT:     SHF_ALLOC
32 # CHECK-NEXT:     SHF_MERGE
33 # CHECK-NEXT:   ]
34 # CHECK-NEXT:   Address: 0x
35 # CHECK-NEXT:   Offset: 0x
36 # CHECK-NEXT:   Size: 1
37 # CHECK-NEXT:   Link: 0
38 # CHECK-NEXT:   Info: 0
39 # CHECK-NEXT:   AddressAlignment: 1
40 # CHECK-NEXT:   EntrySize: 1
41 # CHECK-NEXT: }
42 # CHECK-NEXT: Section {
43 # CHECK-NEXT:   Index:
44 # CHECK-NEXT:   Name: .foo
45 # CHECK-NEXT:   Type: SHT_PROGBITS
46 # CHECK-NEXT:   Flags [
47 # CHECK-NEXT:     SHF_ALLOC
48 # CHECK-NEXT:     SHF_MERGE
49 # CHECK-NEXT:   ]
50 # CHECK-NEXT:   Address: 0x
51 # CHECK-NEXT:   Offset: 0x
52 # CHECK-NEXT:   Size: 2
53 # CHECK-NEXT:   Link: 0
54 # CHECK-NEXT:   Info: 0
55 # CHECK-NEXT:   AddressAlignment: 2
56 # CHECK-NEXT:   EntrySize: 2
57 # CHECK-NEXT: }
58 # CHECK-NEXT: Section {
59 # CHECK-NEXT:   Index:
60 # CHECK-NEXT:   Name:
61 # CHECK-NEXT:   Type:
62 # CHECK-NEXT:   Flags [
63 # CHECK-NEXT:     SHF_ALLOC
64 # CHECK-NEXT:     SHF_EXECINSTR
65 # CHECK-NEXT:   ]
66 # CHECK-NEXT:   Address: 0x[[ADDR2:.*]]
67 # CHECK-NEXT:   Offset: 0x[[ADDR2]]
68
69
70 # CHECK:      Name: begin
71 # CHECK-NEXT: Value: 0x[[ADDR1]]
72
73 # CHECK:      Name: end
74 # CHECK-NEXT: Value: 0x[[ADDR2]]
75
76 .section        .foo.1a,"aMS",@progbits,1
77 .asciz "foo"
78
79 .section        .foo.1b,"aMS",@progbits,1
80 .asciz "foo"
81
82 .section        .foo.2a,"aM",@progbits,1
83 .byte 42
84
85 .section        .foo.2b,"aM",@progbits,1
86 .byte 42
87
88 .section        .foo.3a,"aM",@progbits,2
89 .align 2
90 .short 42
91
92 .section        .foo.3b,"aM",@progbits,2
93 .align 2
94 .short 42