annotate lld/test/ELF/partition-synthetic-sections.s @ 266:00f31e85ec16 default tip

Added tag current for changeset 31d058e83c98
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 14 Oct 2023 10:13:55 +0900
parents c4bab56944e8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // Test that synthetic sections are created correctly for each partition.
anatofuz
parents:
diff changeset
2
anatofuz
parents:
diff changeset
3 // REQUIRES: x86
anatofuz
parents:
diff changeset
4
anatofuz
parents:
diff changeset
5 // RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %S/Inputs/verneed1.s -o %t1.o
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
6 // RUN: echo "v1 {}; v2 {}; v3 { global: f1; local: *; };" > %t1.script
150
anatofuz
parents:
diff changeset
7 // RUN: ld.lld -shared %t1.o --version-script %t1.script -o %t1.so -soname verneed1.so.0 -z separate-code
anatofuz
parents:
diff changeset
8
anatofuz
parents:
diff changeset
9 // RUN: llvm-mc %s -o %t.o -filetype=obj --triple=x86_64-unknown-linux
anatofuz
parents:
diff changeset
10 // RUN: echo "x1 { global: p0; }; x2 { global: p1; p1alias; };" > %t.script
anatofuz
parents:
diff changeset
11 // RUN: ld.lld %t.o %t1.so --version-script %t.script -o %t --shared --gc-sections --eh-frame-hdr -soname main.so -z separate-code
anatofuz
parents:
diff changeset
12
anatofuz
parents:
diff changeset
13 // RUN: llvm-objcopy --extract-main-partition %t %t0
anatofuz
parents:
diff changeset
14 // RUN: llvm-objcopy --extract-partition=part1 %t %t1
anatofuz
parents:
diff changeset
15
anatofuz
parents:
diff changeset
16 // RUN: llvm-readelf --all --unwind %t0 | FileCheck --check-prefixes=CHECK,PART0 %s
anatofuz
parents:
diff changeset
17 // RUN: llvm-readelf --all --unwind %t1 | FileCheck --check-prefixes=CHECK,PART1 %s
anatofuz
parents:
diff changeset
18
anatofuz
parents:
diff changeset
19 // FIXME: llvm-objcopy does not preserve padding (see pr42145) so for now we
anatofuz
parents:
diff changeset
20 // check the combined output file.
anatofuz
parents:
diff changeset
21 // RUN: od -Ax -x %t | FileCheck %s -check-prefix=FILL
anatofuz
parents:
diff changeset
22
anatofuz
parents:
diff changeset
23 // RUN: llvm-objdump -s -j .rodata -j .dynstr %t0 | FileCheck --check-prefix=PART-INDEX %s
anatofuz
parents:
diff changeset
24
anatofuz
parents:
diff changeset
25 // CHECK: Section Headers:
anatofuz
parents:
diff changeset
26 // CHECK-NEXT: Name
anatofuz
parents:
diff changeset
27 // CHECK-NEXT: NULL
anatofuz
parents:
diff changeset
28 // CHECK-NEXT: .dynsym DYNSYM {{0*}}[[DYNSYM_ADDR:[^ ]*]]
anatofuz
parents:
diff changeset
29 // CHECK-NEXT: .gnu.version VERSYM {{0*}}[[VERSYM_ADDR:[^ ]*]]
anatofuz
parents:
diff changeset
30 // CHECK-NEXT: .gnu.version_d VERDEF {{0*}}[[VERDEF_ADDR:[^ ]*]]
anatofuz
parents:
diff changeset
31 // CHECK-NEXT: .gnu.version_r VERNEED {{0*}}[[VERNEED_ADDR:[^ ]*]]
anatofuz
parents:
diff changeset
32 // CHECK-NEXT: .gnu.hash GNU_HASH {{0*}}[[GNU_HASH_ADDR:[^ ]*]]
anatofuz
parents:
diff changeset
33 // CHECK-NEXT: .hash HASH {{0*}}[[HASH_ADDR:[^ ]*]]
anatofuz
parents:
diff changeset
34 // CHECK-NEXT: .dynstr STRTAB {{0*}}[[DYNSTR_ADDR:[^ ]*]]
anatofuz
parents:
diff changeset
35 // CHECK-NEXT: .rela.dyn RELA {{0*}}[[RELA_DYN_ADDR:[^ ]*]]
anatofuz
parents:
diff changeset
36 // PART0-NEXT: .rela.plt RELA {{0*}}[[RELA_PLT_ADDR:[^ ]*]]
anatofuz
parents:
diff changeset
37 // CHECK-NEXT: .eh_frame_hdr PROGBITS {{0*}}[[EH_FRAME_HDR_ADDR:[^ ]*]]
anatofuz
parents:
diff changeset
38 // CHECK-NEXT: .eh_frame PROGBITS {{0*}}[[EH_FRAME_ADDR:[^ ]*]]
anatofuz
parents:
diff changeset
39 // PART0-NEXT: .rodata PROGBITS
anatofuz
parents:
diff changeset
40 // CHECK-NEXT: .text PROGBITS {{0*}}[[TEXT_ADDR:[^ ]*]]
anatofuz
parents:
diff changeset
41 // PART0-NEXT: .plt PROGBITS
anatofuz
parents:
diff changeset
42 // PART0-NEXT: .init_array INIT_ARRAY {{0*}}[[INIT_ARRAY_ADDR:[^ ]*]]
anatofuz
parents:
diff changeset
43 // CHECK-NEXT: .dynamic DYNAMIC {{0*}}[[DYNAMIC_ADDR:[^ ]*]]
anatofuz
parents:
diff changeset
44 // PART0-NEXT: .data PROGBITS 000000000000[[DATA_SEGMENT:.]]178
anatofuz
parents:
diff changeset
45 // PART1-NEXT: .data PROGBITS 000000000000[[DATA_SEGMENT:.]]130
anatofuz
parents:
diff changeset
46 // PART0-NEXT: .got.plt PROGBITS {{0*}}[[GOT_PLT_ADDR:[^ ]*]]
anatofuz
parents:
diff changeset
47 // PART0-NEXT: .part.end NOBITS {{0*}}[[PART_END_ADDR:[^ ]*]]
anatofuz
parents:
diff changeset
48 // CHECK-NEXT: .comment PROGBITS
anatofuz
parents:
diff changeset
49 // CHECK-NEXT: .symtab SYMTAB
anatofuz
parents:
diff changeset
50 // CHECK-NEXT: .shstrtab STRTAB
anatofuz
parents:
diff changeset
51 // CHECK-NEXT: .strtab STRTAB
anatofuz
parents:
diff changeset
52 // CHECK-NEXT: Key to Flags
anatofuz
parents:
diff changeset
53
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
54 // CHECK: Program Headers:
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
55 // CHECK-NEXT: Type
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
56 // PART0-NEXT: PHDR {{.*}} 0x000230 0x000230 R
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
57 // PART1-NEXT: PHDR {{.*}} 0x0001f8 0x0001f8 R
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
58 // PART0-NEXT: LOAD 0x000000 0x0000000000000000 0x0000000000000000 {{.*}} R 0x1000
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
59 // PART0-NEXT: LOAD 0x001000 0x0000000000001000 0x0000000000001000 {{.*}} R E 0x1000
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
60 // PART0-NEXT: LOAD 0x002000 0x0000000000002000 0x0000000000002000 {{.*}} RW 0x1000
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
61 // PART0-NEXT: LOAD 0x002178 0x0000000000003178 0x0000000000003178 {{.*}} RW 0x1000
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
62 // PART0-NEXT: LOAD 0x003150 0x0000000000008150 0x0000000000008150 0x000000 0x001000 RW 0x1000
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
63 // PART1-NEXT: LOAD 0x000000 0x0000000000004000 0x0000000000004000 {{.*}} R 0x1000
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
64 // PART1-NEXT: LOAD 0x001000 0x0000000000005000 0x0000000000005000 {{.*}} R E 0x1000
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
65 // PART1-NEXT: LOAD 0x002000 0x0000000000006000 0x0000000000006000 {{.*}} RW 0x1000
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
66 // PART1-NEXT: LOAD 0x002130 0x0000000000007130 0x0000000000007130 {{.*}} RW 0x1000
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
67 // CHECK-NEXT: DYNAMIC {{.*}} 0x{{0*}}[[DYNAMIC_ADDR]] 0x{{0*}}[[DYNAMIC_ADDR]] {{.*}} RW 0x8
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
68 // PART0-NEXT: GNU_RELRO 0x002000 0x0000000000002000 0x0000000000002000 {{.*}} R 0x1
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
69 // PART1-NEXT: GNU_RELRO 0x002000 0x0000000000006000 0x0000000000006000 {{.*}} R 0x1
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
70 // CHECK-NEXT: GNU_EH_FRAME {{.*}} 0x{{0*}}[[EH_FRAME_HDR_ADDR]] 0x{{0*}}[[EH_FRAME_HDR_ADDR]] {{.*}} R 0x4
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
71 // CHECK-NEXT: GNU_STACK 0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW 0x0
150
anatofuz
parents:
diff changeset
72 // CHECK-EMPTY:
anatofuz
parents:
diff changeset
73
anatofuz
parents:
diff changeset
74 // CHECK: Dynamic section
anatofuz
parents:
diff changeset
75 // CHECK-NEXT: Tag
anatofuz
parents:
diff changeset
76 // CHECK-NEXT: 0x0000000000000001 (NEEDED) Shared library: [verneed1.so.0]
anatofuz
parents:
diff changeset
77 // PART0-NEXT: 0x000000000000000e (SONAME) Library soname: [main.so]
anatofuz
parents:
diff changeset
78 // PART1-NEXT: 0x0000000000000001 (NEEDED) Shared library: [main.so]
anatofuz
parents:
diff changeset
79 // PART1-NEXT: 0x000000000000000e (SONAME) Library soname: [part1]
anatofuz
parents:
diff changeset
80 // CHECK-NEXT: 0x0000000000000007 (RELA) 0x[[RELA_DYN_ADDR]]
anatofuz
parents:
diff changeset
81 // CHECK-NEXT: 0x0000000000000008 (RELASZ)
anatofuz
parents:
diff changeset
82 // CHECK-NEXT: 0x0000000000000009 (RELAENT) 24 (bytes)
anatofuz
parents:
diff changeset
83 // PART1-NEXT: 0x000000006ffffff9 (RELACOUNT) 1
anatofuz
parents:
diff changeset
84 // PART0-NEXT: 0x0000000000000017 (JMPREL) 0x[[RELA_PLT_ADDR]]
anatofuz
parents:
diff changeset
85 // PART0-NEXT: 0x0000000000000002 (PLTRELSZ) 48 (bytes)
anatofuz
parents:
diff changeset
86 // PART0-NEXT: 0x0000000000000003 (PLTGOT) 0x[[GOT_PLT_ADDR]]
anatofuz
parents:
diff changeset
87 // PART0-NEXT: 0x0000000000000014 (PLTREL) RELA
anatofuz
parents:
diff changeset
88 // CHECK-NEXT: 0x0000000000000006 (SYMTAB) 0x[[DYNSYM_ADDR]]
anatofuz
parents:
diff changeset
89 // CHECK-NEXT: 0x000000000000000b (SYMENT) 24 (bytes)
anatofuz
parents:
diff changeset
90 // CHECK-NEXT: 0x0000000000000005 (STRTAB) 0x[[DYNSTR_ADDR]]
anatofuz
parents:
diff changeset
91 // CHECK-NEXT: 0x000000000000000a (STRSZ)
anatofuz
parents:
diff changeset
92 // CHECK-NEXT: 0x000000006ffffef5 (GNU_HASH) 0x[[GNU_HASH_ADDR]]
anatofuz
parents:
diff changeset
93 // CHECK-NEXT: 0x0000000000000004 (HASH) 0x[[HASH_ADDR]]
anatofuz
parents:
diff changeset
94 // PART0-NEXT: 0x0000000000000019 (INIT_ARRAY) 0x[[INIT_ARRAY_ADDR]]
anatofuz
parents:
diff changeset
95 // PART0-NEXT: 0x000000000000001b (INIT_ARRAYSZ) 8 (bytes)
anatofuz
parents:
diff changeset
96 // CHECK-NEXT: 0x000000006ffffff0 (VERSYM) 0x[[VERSYM_ADDR]]
anatofuz
parents:
diff changeset
97 // CHECK-NEXT: 0x000000006ffffffc (VERDEF) 0x[[VERDEF_ADDR]]
anatofuz
parents:
diff changeset
98 // CHECK-NEXT: 0x000000006ffffffd (VERDEFNUM) 3
anatofuz
parents:
diff changeset
99 // CHECK-NEXT: 0x000000006ffffffe (VERNEED) 0x[[VERNEED_ADDR]]
anatofuz
parents:
diff changeset
100 // CHECK-NEXT: 0x000000006fffffff (VERNEEDNUM) 1
anatofuz
parents:
diff changeset
101 // PART0-NEXT: 0x0000000000000000 (NULL) 0x0
anatofuz
parents:
diff changeset
102
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
103 // CHECK: Relocation section '.rela.dyn'
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
104 // CHECK-NEXT: Offset
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
105 // PART0-NEXT: 000000000000[[DATA_SEGMENT]]178 {{.*}} R_X86_64_64 {{.*}} f1@v3 + 0
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
106 // PART0-NEXT: {{0*}}[[INIT_ARRAY_ADDR]] {{.*}} R_X86_64_64 {{.*}} p0@@x1 + 0
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
107 // PART1-NEXT: 000000000000[[DATA_SEGMENT]]148 {{.*}} R_X86_64_RELATIVE 3178
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
108 // PART1-NEXT: 000000000000[[DATA_SEGMENT]]130 {{.*}} R_X86_64_64 {{.*}} f2@v2 + 0
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
109 // PART1-NEXT: 000000000000[[DATA_SEGMENT]]138 {{.*}} R_X86_64_64 {{.*}} p0@x1 + 0
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
110 // PART1-NEXT: 000000000000[[DATA_SEGMENT]]140 {{.*}} R_X86_64_64 {{.*}} p0@x1 + 0
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
111
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
112 // PART0: Relocation section '.rela.plt'
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
113 // PART0-NEXT: Offset
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
114 // PART0-NEXT: 000000000000[[DATA_SEGMENT]]198 {{.*}} R_X86_64_JUMP_SLOT {{.*}} f1@v3 + 0
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
115 // PART0-NEXT: 000000000000[[DATA_SEGMENT]]1a0 {{.*}} R_X86_64_JUMP_SLOT {{.*}} f2@v2 + 0
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
116
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
117 // CHECK-NEXT: EHFrameHeader
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
118 // CHECK: Address: 0x[[EH_FRAME_HDR_ADDR]]
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
119 // CHECK: eh_frame_ptr: 0x[[EH_FRAME_ADDR]]
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
120 // CHECK: initial_location: 0x[[TEXT_ADDR]]
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
121 // CHECK: address: 0x[[FDE_ADDR:.*]]
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
122
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
123 // CHECK: .eh_frame section
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
124 // CHECK: 0x[[EH_FRAME_ADDR]]] CIE length=20
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
125 // CHECK-NOT: FDE
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
126 // CHECK: 0x[[FDE_ADDR]]] FDE length=16 cie={{.}}0x[[EH_FRAME_ADDR]]
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
127 // CHECK-NEXT: initial_location: 0x[[TEXT_ADDR]]
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
128 // CHECK-NOT: FDE
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
129 // CHECK: CIE length=0
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
130
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
131 // CHECK: Symbol table '.dynsym'
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
132 // PART0: 1: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f1@v3
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
133 // PART0: 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f2@v2
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
134 // PART0: 3: {{0*}}[[TEXT_ADDR]] 0 NOTYPE GLOBAL DEFAULT {{.*}} p0@@x1
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
135 // PART1: 1: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f2@v2
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
136 // PART1: 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND p0@x1
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
137 // PART1: 3: {{0*}}[[TEXT_ADDR]] 0 NOTYPE GLOBAL DEFAULT {{.*}} p1@@x2
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
138 // PART1: 4: {{0*}}[[TEXT_ADDR]] 0 NOTYPE GLOBAL DEFAULT {{.*}} p1alias@@x2
150
anatofuz
parents:
diff changeset
139 // CHECK-EMPTY:
anatofuz
parents:
diff changeset
140
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
141 // PART0: Symbol table '.symtab'
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
142 // PART0: 0000000000000488 0 NOTYPE LOCAL HIDDEN {{.*}} __part_index_begin
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
143 // PART0: 0000000000000494 0 NOTYPE LOCAL HIDDEN {{.*}} __part_index_end
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
144
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
145 // PART-INDEX: Contents of section .dynstr:
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
146 // PART-INDEX-NEXT: 03a8 00703000 66310066 32007061 72743100 .p0.f1.f2.part1.
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
147 // PART-INDEX: Contents of section .rodata:
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
148 // 0x48c + 0xffffff26 = 0x3b2
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
149 // 0x490 + 0x3b70 = 0x4000
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
150 // PART-INDEX-NEXT: 0488 2affffff 743b0000 50410000
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
151
150
anatofuz
parents:
diff changeset
152 // CHECK: Version symbols section '.gnu.version'
anatofuz
parents:
diff changeset
153 // CHECK-NEXT: Addr:
anatofuz
parents:
diff changeset
154 // PART0-NEXT: 000: 0 (*local*) 4 (v3) 5 (v2) 2 (x1)
anatofuz
parents:
diff changeset
155 // PART1-NEXT: 000: 0 (*local*) 5 (v2) 2 (x1) 3 (x2)
anatofuz
parents:
diff changeset
156
anatofuz
parents:
diff changeset
157 // CHECK: Version definition section '.gnu.version_d'
anatofuz
parents:
diff changeset
158 // CHECK-NEXT: Addr:
anatofuz
parents:
diff changeset
159 // PART0-NEXT: 0x0000: Rev: 1 Flags: BASE Index: 1 Cnt: 1 Name: main.so
anatofuz
parents:
diff changeset
160 // PART1-NEXT: 0x0000: Rev: 1 Flags: BASE Index: 1 Cnt: 1 Name: part1
anatofuz
parents:
diff changeset
161 // CHECK-NEXT: 0x001c: Rev: 1 Flags: none Index: 2 Cnt: 1 Name: x1
anatofuz
parents:
diff changeset
162 // CHECK-NEXT: 0x0038: Rev: 1 Flags: none Index: 3 Cnt: 1 Name: x2
anatofuz
parents:
diff changeset
163
anatofuz
parents:
diff changeset
164 // CHECK: Version needs section '.gnu.version_r'
anatofuz
parents:
diff changeset
165 // CHECK-NEXT: Addr:
anatofuz
parents:
diff changeset
166 // CHECK-NEXT: 0x0000: Version: 1 File: verneed1.so.0 Cnt: 2
anatofuz
parents:
diff changeset
167 // CHECK-NEXT: 0x0010: Name: v2 Flags: none Version: 5
anatofuz
parents:
diff changeset
168 // CHECK-NEXT: 0x0020: Name: v3 Flags: none Version: 4
anatofuz
parents:
diff changeset
169
anatofuz
parents:
diff changeset
170 // PART0: Histogram for bucket list length (total of 4 buckets)
anatofuz
parents:
diff changeset
171 // PART0-NEXT: Length Number % of total Coverage
anatofuz
parents:
diff changeset
172 // PART0-NEXT: 0 1 ( 25.0%) 0.0%
anatofuz
parents:
diff changeset
173 // PART0-NEXT: 1 3 ( 75.0%) 100.0%
anatofuz
parents:
diff changeset
174 // PART0-NEXT: Histogram for `.gnu.hash' bucket list length (total of 1 buckets)
anatofuz
parents:
diff changeset
175 // PART0-NEXT: Length Number % of total Coverage
anatofuz
parents:
diff changeset
176 // PART0-NEXT: 0 0 ( 0.0%) 0.0%
anatofuz
parents:
diff changeset
177 // PART0-NEXT: 1 1 (100.0%) 100.0%
anatofuz
parents:
diff changeset
178
anatofuz
parents:
diff changeset
179 // PART1: Histogram for bucket list length (total of 5 buckets)
anatofuz
parents:
diff changeset
180 // PART1-NEXT: Length Number % of total Coverage
anatofuz
parents:
diff changeset
181 // PART1-NEXT: 0 3 ( 60.0%) 0.0%
anatofuz
parents:
diff changeset
182 // PART1-NEXT: 1 2 ( 40.0%) 100.0%
anatofuz
parents:
diff changeset
183 // PART1-NEXT: Histogram for `.gnu.hash' bucket list length (total of 1 buckets)
anatofuz
parents:
diff changeset
184 // PART1-NEXT: Length Number % of total Coverage
anatofuz
parents:
diff changeset
185 // PART1-NEXT: 0 0 ( 0.0%) 0.0%
anatofuz
parents:
diff changeset
186 // PART1-NEXT: 1 0 ( 0.0%) 0.0%
anatofuz
parents:
diff changeset
187 // PART1-NEXT: 2 1 (100.0%) 100.0%
anatofuz
parents:
diff changeset
188
anatofuz
parents:
diff changeset
189 // FILL: 001040 cccc cccc cccc cccc cccc cccc cccc cccc
anatofuz
parents:
diff changeset
190 // FILL-NEXT: *
anatofuz
parents:
diff changeset
191 // FILL-NEXT: 002000
anatofuz
parents:
diff changeset
192
anatofuz
parents:
diff changeset
193 // FILL: 004010 cccc cccc cccc cccc cccc cccc cccc cccc
anatofuz
parents:
diff changeset
194 // FILL-NEXT: *
anatofuz
parents:
diff changeset
195 // FILL-NEXT: 005000
anatofuz
parents:
diff changeset
196
anatofuz
parents:
diff changeset
197 .section .llvm_sympart,"",@llvm_sympart
anatofuz
parents:
diff changeset
198 .asciz "part1"
anatofuz
parents:
diff changeset
199 .quad p1
anatofuz
parents:
diff changeset
200
anatofuz
parents:
diff changeset
201 .section .llvm_sympart2,"",@llvm_sympart
anatofuz
parents:
diff changeset
202 .asciz "part1"
anatofuz
parents:
diff changeset
203 .quad p1alias
anatofuz
parents:
diff changeset
204
anatofuz
parents:
diff changeset
205 .section .text.p0,"ax",@progbits
anatofuz
parents:
diff changeset
206 .globl p0
anatofuz
parents:
diff changeset
207 p0:
anatofuz
parents:
diff changeset
208 .cfi_startproc
anatofuz
parents:
diff changeset
209 lea d0(%rip), %rax
anatofuz
parents:
diff changeset
210 call f1
anatofuz
parents:
diff changeset
211 ret
anatofuz
parents:
diff changeset
212 .cfi_endproc
anatofuz
parents:
diff changeset
213
anatofuz
parents:
diff changeset
214 .section .data.d0,"aw",@progbits
anatofuz
parents:
diff changeset
215 d0:
anatofuz
parents:
diff changeset
216 .quad f1
anatofuz
parents:
diff changeset
217
anatofuz
parents:
diff changeset
218 .section .text.p1,"ax",@progbits
anatofuz
parents:
diff changeset
219 .globl p1
anatofuz
parents:
diff changeset
220 p1:
anatofuz
parents:
diff changeset
221 .globl p1alias
anatofuz
parents:
diff changeset
222 p1alias:
anatofuz
parents:
diff changeset
223 .cfi_startproc
anatofuz
parents:
diff changeset
224 lea d1(%rip), %rax
anatofuz
parents:
diff changeset
225 call f2
anatofuz
parents:
diff changeset
226 ret
anatofuz
parents:
diff changeset
227 .cfi_endproc
anatofuz
parents:
diff changeset
228
anatofuz
parents:
diff changeset
229 .section .data.d1,"aw",@progbits
anatofuz
parents:
diff changeset
230 d1:
anatofuz
parents:
diff changeset
231 .quad f2
anatofuz
parents:
diff changeset
232 .quad p0
anatofuz
parents:
diff changeset
233 .quad p0
anatofuz
parents:
diff changeset
234 .quad d0
anatofuz
parents:
diff changeset
235
anatofuz
parents:
diff changeset
236 .section .init_array,"aw",@init_array
anatofuz
parents:
diff changeset
237 .quad p0
anatofuz
parents:
diff changeset
238
anatofuz
parents:
diff changeset
239 .globl __part_index_begin
anatofuz
parents:
diff changeset
240 .globl __part_index_end