Skip to content

Commit 161e168

Browse files
authored
[llvm-readobj][ELF] Test multivalued rpath entries and alter the output for readobj to emphasize the single valued nature of NEEDED, SONAME, USED etc. (#96562)
In the context of #95976 it became clear that the output for readobj implied multi valued entries in several cases in the elf headers that the documentation only allowed for a single value. DT_NEEDED is the example here where the value is an offset into the string table without any sort of separator that could give you multiple entries. This patch alters the LLVM output so that the single valued nature is emphasized. For example the output was: ``` DynamicSection [ (35 entries) Tag Type Name/Value 0x000000000000001D RUNPATH Library runpath: [$ORIGIN/../lib:] 0x0000000000000001 NEEDED Shared library: [libm.so.6] 0x0000000000000001 NEEDED Shared library: [libz.so.1] 0x0000000000000001 NEEDED Shared library: [libzstd.so.1] ``` and is now ``` Tag Type Name/Value 0x000000000000001D RUNPATH Library runpath: [$ORIGIN/../lib:] 0x0000000000000001 NEEDED Shared library: libm.so.6 0x0000000000000001 NEEDED Shared library: libz.so.1 0x0000000000000001 NEEDED Shared library: libzstd.so.1 ``` This pr also tests that multi-valued rpaths are handled correctly in the JSON case (i.e. they become proper lists) like: ``` { "Tag": 15, "Type": "RPATH", "Value": 9, "Path": [ "x", "w", "U" ] }, ``` when separated by :
1 parent e5e0d87 commit 161e168

19 files changed

+106
-105
lines changed

lld/test/ELF/as-needed-no-reloc.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
# There must be a NEEDED entry for each undefined
1010

11-
# CHECK: (NEEDED) Shared library: [{{.*}}as-needed-no-reloc{{.*}}2.so]
11+
# CHECK: (NEEDED) Shared library: {{.*}}as-needed-no-reloc{{.*}}2.so
1212
# CHECK: UND bar
1313

1414
.globl _start

lld/test/ELF/as-needed.s

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,13 @@
3232
// RUN: ld.lld %t.o %t.script -o %t2
3333
// RUN: llvm-readobj --dynamic-table %t2 | FileCheck -check-prefix=CHECK2 %s
3434

35-
// CHECK: NEEDED Shared library: [shared1]
36-
// CHECK: NEEDED Shared library: [shared2]
37-
// CHECK: NEEDED Shared library: [shared3]
35+
// CHECK: NEEDED Shared library: shared1
36+
// CHECK: NEEDED Shared library: shared2
37+
// CHECK: NEEDED Shared library: shared3
3838

39-
// CHECK2: NEEDED Shared library: [shared1]
40-
// CHECK2-NOT: NEEDED Shared library: [shared2]
41-
// CHECK2-NOT: NEEDED Shared library: [shared3]
39+
// CHECK2: NEEDED Shared library: shared1
40+
// CHECK2-NOT: NEEDED Shared library: shared2
41+
// CHECK2-NOT: NEEDED Shared library: shared3
4242

4343
.global _start
4444
_start:

lld/test/ELF/auxiliary.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
# CHECK: DynamicSection [
99
# CHECK-NEXT: Tag Type Name/Value
10-
# CHECK-NEXT: 0x000000007FFFFFFD AUXILIARY Auxiliary library: [aaa]
11-
# CHECK-NEXT: 0x000000007FFFFFFD AUXILIARY Auxiliary library: [bbb]
10+
# CHECK-NEXT: 0x000000007FFFFFFD AUXILIARY Auxiliary library: aaa
11+
# CHECK-NEXT: 0x000000007FFFFFFD AUXILIARY Auxiliary library: bbb
1212

1313
# RUN: not ld.lld %t.o -f aaa --auxiliary bbb -o /dev/null 2>&1 \
1414
# RUN: | FileCheck -check-prefix=ERR %s

lld/test/ELF/dynamic-reloc.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232

3333
// CHECK: DynamicSection [
3434
// CHECK-NEXT: Tag Type Name/Value
35-
// CHECK-NEXT: 0x0000000000000001 NEEDED Shared library: [so]
35+
// CHECK-NEXT: 0x0000000000000001 NEEDED Shared library: so
3636
// CHECK-NEXT: 0x0000000000000015 DEBUG 0x0
3737
// CHECK-NEXT: 0x0000000000000017 JMPREL
3838
// CHECK-NEXT: 0x0000000000000002 PLTRELSZ 24 (bytes)

lld/test/ELF/filter.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313

1414
# CHECK: DynamicSection [
1515
# CHECK-NEXT: Tag Type Name/Value
16-
# CHECK-NEXT: 0x000000007FFFFFFF FILTER Filter library: [foo.so]
17-
# CHECK-NEXT: 0x000000007FFFFFFF FILTER Filter library: [boo.so]
16+
# CHECK-NEXT: 0x000000007FFFFFFF FILTER Filter library: foo.so
17+
# CHECK-NEXT: 0x000000007FFFFFFF FILTER Filter library: boo.so
1818

1919
# RUN: not ld.lld %t.o -F x -o /dev/null 2>&1 | FileCheck -check-prefix=ERR %s
2020
# ERR: -F may not be used without -shared

lld/test/ELF/gc-sections-shared.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
# this case is checked with symbol qux and %t4.so.
1616

1717
# CHECK-NOT: NEEDED
18-
# CHECK: (NEEDED) Shared library: [{{.*}}3.so]
18+
# CHECK: (NEEDED) Shared library: {{.*}}3.so
1919
# CHECK-NOT: NEEDED
2020

2121
# CHECK-DAG: FUNC WEAK DEFAULT UND qux

lld/test/ELF/no-soname.s

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,26 @@
66
// RUN: ld.lld %t.o %t.dir/no-soname/libfoo.so -o %t
77
// RUN: llvm-readobj --dynamic-table %t | FileCheck %s
88

9-
// CHECK: 0x0000000000000001 NEEDED Shared library: [{{.*}}/no-soname/libfoo.so]
9+
// CHECK: 0x0000000000000001 NEEDED Shared library: {{.*}}/no-soname/libfoo.so
1010
// CHECK-NOT: NEEDED
1111

1212
// RUN: ld.lld %t.o %t.dir/no-soname/../no-soname/libfoo.so -o %t
1313
// RUN: llvm-readobj --dynamic-table %t | FileCheck %s --check-prefix=CHECK2
1414

15-
// CHECK2: 0x0000000000000001 NEEDED Shared library: [{{.*}}/no-soname/../no-soname/libfoo.so]
15+
// CHECK2: 0x0000000000000001 NEEDED Shared library: {{.*}}/no-soname/../no-soname/libfoo.so
1616
// CHECK2-NOT: NEEDED
1717

1818
// RUN: ld.lld %t.o -L%t.dir/no-soname/../no-soname -lfoo -o %t
1919
// RUN: llvm-readobj --dynamic-table %t | FileCheck %s --check-prefix=CHECK3
2020

21-
// CHECK3: 0x0000000000000001 NEEDED Shared library: [libfoo.so]
21+
// CHECK3: 0x0000000000000001 NEEDED Shared library: libfoo.so
2222
// CHECK3-NOT: NEEDED
2323

2424
// RUN: ld.lld %t.o -shared -soname libbar.so -o %t.dir/no-soname/libbar.so
2525
// RUN: ld.lld %t.o %t.dir/no-soname/libbar.so -o %t
2626
// RUN: llvm-readobj --dynamic-table %t | FileCheck %s --check-prefix=CHECK4
2727

28-
// CHECK4: 0x0000000000000001 NEEDED Shared library: [libbar.so]
28+
// CHECK4: 0x0000000000000001 NEEDED Shared library: libbar.so
2929
// CHECK4-NOT: NEEDED
3030

3131
.global _start

lld/test/ELF/partition-synthetic-sections.s

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,10 @@
7474

7575
// CHECK: Dynamic section
7676
// CHECK-NEXT: Tag
77-
// CHECK-NEXT: 0x0000000000000001 (NEEDED) Shared library: [verneed1.so.0]
78-
// PART0-NEXT: 0x000000000000000e (SONAME) Library soname: [main.so]
79-
// PART1-NEXT: 0x0000000000000001 (NEEDED) Shared library: [main.so]
80-
// PART1-NEXT: 0x000000000000000e (SONAME) Library soname: [part1]
77+
// CHECK-NEXT: 0x0000000000000001 (NEEDED) Shared library: verneed1.so.0
78+
// PART0-NEXT: 0x000000000000000e (SONAME) Library soname: main.so
79+
// PART1-NEXT: 0x0000000000000001 (NEEDED) Shared library: main.so
80+
// PART1-NEXT: 0x000000000000000e (SONAME) Library soname: part1
8181
// CHECK-NEXT: 0x0000000000000007 (RELA) 0x[[RELA_DYN_ADDR]]
8282
// CHECK-NEXT: 0x0000000000000008 (RELASZ)
8383
// CHECK-NEXT: 0x0000000000000009 (RELAENT) 24 (bytes)

lld/test/ELF/push-state.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
// RUN: ld.lld -o %t.exe -push-state -as-needed -pop-state %t.so %t1.o
2626
// RUN: llvm-readobj --dynamic-table %t.exe | FileCheck -check-prefix=NO-AS-NEEDED %s
27-
// NO-AS-NEEDED: NEEDED Shared library: [libfoo]
27+
// NO-AS-NEEDED: NEEDED Shared library: libfoo
2828

2929

3030
// RUN: mkdir -p %t.dir

lld/test/ELF/shared-ppc64.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
// CHECK: DynamicSection [
2929
// CHECK-NEXT: Tag Type Name/Value
3030
// CHECK-NEXT: 0x000000000000001D RUNPATH Library runpath: [foo:bar]
31-
// CHECK-NEXT: 0x0000000000000001 NEEDED Shared library: [{{.*}}2.so]
31+
// CHECK-NEXT: 0x0000000000000001 NEEDED Shared library: {{.*}}2.so
3232
// CHECK-NEXT: 0x0000000000000015 DEBUG 0x0
3333
// CHECK-NEXT: 0x0000000000000007 RELA [[RELADDR]]
3434
// CHECK-NEXT: 0x0000000000000008 RELASZ [[RELSIZE]] (bytes)

lld/test/ELF/shared.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@
157157
// CHECK: DynamicSection [
158158
// CHECK-NEXT: Tag Type Name/Value
159159
// CHECK-NEXT: 0x0000001D RUNPATH Library runpath: [foo:bar]
160-
// CHECK-NEXT: 0x00000001 NEEDED Shared library: [{{.*}}2.so]
160+
// CHECK-NEXT: 0x00000001 NEEDED Shared library: {{.*}}2.so
161161
// CHECK-NEXT: 0x00000015 DEBUG 0x0
162162
// CHECK-NEXT: 0x00000011 REL [[RELADDR]]
163163
// CHECK-NEXT: 0x00000012 RELSZ [[RELSIZE]] (bytes)

lld/test/ELF/soname.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
// RUN: ld.lld %t.o %t.so %t2.so -o %t
66
// RUN: llvm-readobj --dynamic-table %t | FileCheck %s
77

8-
// CHECK: 0x0000000000000001 NEEDED Shared library: [bar]
8+
// CHECK: 0x0000000000000001 NEEDED Shared library: bar
99
// CHECK-NOT: NEEDED
1010

1111
.global _start

lld/test/ELF/soname2.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
// RUN: ld.lld %t.o -shared -soname=foo.so -o %t
44
// RUN: llvm-readobj --dynamic-table %t | FileCheck %s
55

6-
// CHECK: 0x000000000000000E SONAME Library soname: [foo.so]
6+
// CHECK: 0x000000000000000E SONAME Library soname: foo.so
77

88
.global _start
99
_start:

lld/test/ELF/wrap-drop-shared-original.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@
2020
# RUN: llvm-readelf --dynamic --dyn-syms %t/libref-with-original-and-wrapped.so | \
2121
# RUN: FileCheck --check-prefix=ORIGINAL-AND-WRAPPED %s
2222

23-
# ORIGINAL-NOT: (NEEDED) Shared library: [liboriginal.so]
23+
# ORIGINAL-NOT: (NEEDED) Shared library: liboriginal.so
2424
# ORIGINAL: Symbol table '.dynsym' contains 3 entries:
2525
# ORIGINAL: NOTYPE LOCAL DEFAULT UND
2626
# ORIGINAL-NEXT: NOTYPE GLOBAL DEFAULT UND __wrap_foo
2727
# ORIGINAL-NEXT: NOTYPE GLOBAL DEFAULT 6 ref
2828

29-
# ORIGINAL-AND-WRAPPED: (NEEDED) Shared library: [liboriginal-and-wrapped.so]
29+
# ORIGINAL-AND-WRAPPED: (NEEDED) Shared library: liboriginal-and-wrapped.so
3030
# ORIGINAL-AND-WRAPPED: Symbol table '.dynsym' contains 3 entries:
3131
# ORIGINAL-AND-WRAPPED: NOTYPE LOCAL DEFAULT UND
3232
# ORIGINAL-AND-WRAPPED-NEXT: NOTYPE GLOBAL DEFAULT UND __wrap_foo

llvm/test/tools/llvm-ifs/write-stub.test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ Symbols:
151151
# CHECK-NEXT: 0x[[DYNTABZ]]0000006 SYMTAB
152152
# CHECK-NEXT: 0x[[DYNTABZ]]0000005 STRTAB
153153
# CHECK-NEXT: 0x[[DYNTABZ]]000000A STRSZ
154-
# CHECK-NEXT: 0x[[DYNTABZ]]0000001 NEEDED Shared library: [libc.so.6]
154+
# CHECK-NEXT: 0x[[DYNTABZ]]0000001 NEEDED Shared library: libc.so.6
155155
# CHECK-NEXT: 0x[[DYNTABZ]]0000000 NULL
156156
# CHECK-NEXT: ]
157157

llvm/test/tools/llvm-readobj/ELF/dynamic-malformed.test

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -100,15 +100,15 @@ ProgramHeaders:
100100
# BAD-STRING-LLVM-NEXT: 0x0000000000000005 STRTAB 0x1000
101101
# BAD-STRING-LLVM-NEXT: 0x000000000000000A STRSZ 1 (bytes)
102102
# BAD-STRING-LLVM-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb2: it goes past the end of the table (0xb1)
103-
# BAD-STRING-LLVM-NEXT: 0x0000000000000001 NEEDED Shared library: [<?>]
103+
# BAD-STRING-LLVM-NEXT: 0x0000000000000001 NEEDED Shared library: <?>
104104
# BAD-STRING-LLVM-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb3: it goes past the end of the table (0xb1)
105-
# BAD-STRING-LLVM-NEXT: 0x000000007FFFFFFF FILTER Filter library: [<?>]
105+
# BAD-STRING-LLVM-NEXT: 0x000000007FFFFFFF FILTER Filter library: <?>
106106
# BAD-STRING-LLVM-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb4: it goes past the end of the table (0xb1)
107-
# BAD-STRING-LLVM-NEXT: 0x000000007FFFFFFD AUXILIARY Auxiliary library: [<?>]
107+
# BAD-STRING-LLVM-NEXT: 0x000000007FFFFFFD AUXILIARY Auxiliary library: <?>
108108
# BAD-STRING-LLVM-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb5: it goes past the end of the table (0xb1)
109-
# BAD-STRING-LLVM-NEXT: 0x000000007FFFFFFE USED Not needed object: [<?>]
109+
# BAD-STRING-LLVM-NEXT: 0x000000007FFFFFFE USED Not needed object: <?>
110110
## Note: there is no "string table at offset 0xb0..." warning here, because it was printed earlier.
111-
# BAD-STRING-LLVM-NEXT: 0x000000000000000E SONAME Library soname: [<?>]
111+
# BAD-STRING-LLVM-NEXT: 0x000000000000000E SONAME Library soname: <?>
112112
# BAD-STRING-LLVM-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb7: it goes past the end of the table (0xb1)
113113
# BAD-STRING-LLVM-NEXT: 0x000000000000000F RPATH Library rpath: [<?>]
114114
# BAD-STRING-LLVM-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb8: it goes past the end of the table (0xb1)
@@ -121,15 +121,15 @@ ProgramHeaders:
121121
# BAD-STRING-GNU-NEXT: 0x0000000000000005 (STRTAB) 0x1000
122122
# BAD-STRING-GNU-NEXT: 0x000000000000000a (STRSZ) 1 (bytes)
123123
# BAD-STRING-GNU-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb2: it goes past the end of the table (0xb1)
124-
# BAD-STRING-GNU-NEXT: 0x0000000000000001 (NEEDED) Shared library: [<?>]
124+
# BAD-STRING-GNU-NEXT: 0x0000000000000001 (NEEDED) Shared library: <?>
125125
# BAD-STRING-GNU-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb3: it goes past the end of the table (0xb1)
126-
# BAD-STRING-GNU-NEXT: 0x000000007fffffff (FILTER) Filter library: [<?>]
126+
# BAD-STRING-GNU-NEXT: 0x000000007fffffff (FILTER) Filter library: <?>
127127
# BAD-STRING-GNU-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb4: it goes past the end of the table (0xb1)
128-
# BAD-STRING-GNU-NEXT: 0x000000007ffffffd (AUXILIARY) Auxiliary library: [<?>]
128+
# BAD-STRING-GNU-NEXT: 0x000000007ffffffd (AUXILIARY) Auxiliary library: <?>
129129
# BAD-STRING-GNU-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb5: it goes past the end of the table (0xb1)
130-
# BAD-STRING-GNU-NEXT: 0x000000007ffffffe (USED) Not needed object: [<?>]
130+
# BAD-STRING-GNU-NEXT: 0x000000007ffffffe (USED) Not needed object: <?>
131131
# BAD-STRING-GNU-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb6: it goes past the end of the table (0xb1)
132-
# BAD-STRING-GNU-NEXT: 0x000000000000000e (SONAME) Library soname: [<?>]
132+
# BAD-STRING-GNU-NEXT: 0x000000000000000e (SONAME) Library soname: <?>
133133
# BAD-STRING-GNU-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb7: it goes past the end of the table (0xb1)
134134
# BAD-STRING-GNU-NEXT: 0x000000000000000f (RPATH) Library rpath: [<?>]
135135
# BAD-STRING-GNU-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb8: it goes past the end of the table (0xb1)
@@ -199,8 +199,8 @@ ProgramHeaders:
199199
# BAD-STRTAB-ERR2: warning: '[[FILE]]': unable to parse DT_STRTAB: virtual address is not in any segment: 0x2000000
200200
# BAD-STRTAB-LLVM: LoadName: <Not found>
201201
# BAD-STRTAB: warning: '[[FILE]]': string table was not found
202-
# BAD-STRTAB-LLVM-NEXT: 0x0000000000000001 NEEDED Shared library: [<?>]
203-
# BAD-STRTAB-GNU-NEXT: 0x0000000000000001 (NEEDED) Shared library: [<?>]
202+
# BAD-STRTAB-LLVM-NEXT: 0x0000000000000001 NEEDED Shared library: <?>
203+
# BAD-STRTAB-GNU-NEXT: 0x0000000000000001 (NEEDED) Shared library: <?>
204204
# BAD-STRTAB: NeededLibraries [
205205
# BAD-STRTAB: <?>
206206
# BAD-STRTAB: ]
@@ -313,15 +313,15 @@ ProgramHeaders:
313313

314314
# NOT-TERMINATED-LLVM: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb4: the string table is not null-terminated
315315
# NOT-TERMINATED: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb0: the string table is not null-terminated
316-
# NOT-TERMINATED-NEXT: {{[(]?}}NEEDED{{[)]?}} Shared library: [<?>]
316+
# NOT-TERMINATED-NEXT: {{[(]?}}NEEDED{{[)]?}} Shared library: <?>
317317
# NOT-TERMINATED-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb1: the string table is not null-terminated
318-
# NOT-TERMINATED-NEXT: {{[(]?}}FILTER{{[)]?}} Filter library: [<?>]
318+
# NOT-TERMINATED-NEXT: {{[(]?}}FILTER{{[)]?}} Filter library: <?>
319319
# NOT-TERMINATED-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb2: the string table is not null-terminated
320-
# NOT-TERMINATED-NEXT: {{[(]?}}AUXILIARY{{[)]?}} Auxiliary library: [<?>]
320+
# NOT-TERMINATED-NEXT: {{[(]?}}AUXILIARY{{[)]?}} Auxiliary library: <?>
321321
# NOT-TERMINATED-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb3: the string table is not null-terminated
322-
# NOT-TERMINATED-NEXT: {{[(]?}}USED{{[)]?}} Not needed object: [<?>]
322+
# NOT-TERMINATED-NEXT: {{[(]?}}USED{{[)]?}} Not needed object: <?>
323323
# NOT-TERMINATED-GNU-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb4: the string table is not null-terminated
324-
# NOT-TERMINATED-NEXT: {{[(]?}}SONAME{{[)]?}} Library soname: [<?>]
324+
# NOT-TERMINATED-NEXT: {{[(]?}}SONAME{{[)]?}} Library soname: <?>
325325
# NOT-TERMINATED-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb5: the string table is not null-terminated
326326
# NOT-TERMINATED-NEXT: {{[(]?}}RPATH{{[)]?}} Library rpath: [<?>]
327327
# NOT-TERMINATED-GREQ-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb6: the string table is not null-terminated
@@ -390,11 +390,11 @@ ProgramHeaders:
390390
## as normal. Since the file ends with a zero byte, strings are dumped, but if it didn't,
391391
## we'd get <?> printed instead. The important bit is that we don't get the past the end warning.
392392

393-
# BEFORE-THE-EOF: {{[(]?}}NEEDED{{[)]?}} Shared library: [test.soabc]
394-
# BEFORE-THE-EOF-NEXT: {{[(]?}}FILTER{{[)]?}} Filter library: [est.soabc]
395-
# BEFORE-THE-EOF-NEXT: {{[(]?}}AUXILIARY{{[)]?}} Auxiliary library: [st.soabc]
396-
# BEFORE-THE-EOF-NEXT: {{[(]?}}USED{{[)]?}} Not needed object: [t.soabc]
397-
# BEFORE-THE-EOF-NEXT: {{[(]?}}SONAME{{[)]?}} Library soname: [.soabc]
393+
# BEFORE-THE-EOF: {{[(]?}}NEEDED{{[)]?}} Shared library: test.soabc
394+
# BEFORE-THE-EOF-NEXT: {{[(]?}}FILTER{{[)]?}} Filter library: est.soabc
395+
# BEFORE-THE-EOF-NEXT: {{[(]?}}AUXILIARY{{[)]?}} Auxiliary library: st.soabc
396+
# BEFORE-THE-EOF-NEXT: {{[(]?}}USED{{[)]?}} Not needed object: t.soabc
397+
# BEFORE-THE-EOF-NEXT: {{[(]?}}SONAME{{[)]?}} Library soname: .soabc
398398
# BEFORE-THE-EOF-NEXT: {{[(]?}}RPATH{{[)]?}} Library rpath: [soabc]
399399
# BEFORE-THE-EOF-NEXT: {{[(]?}}RUNPATH{{[)]?}} Library runpath: [oabc]
400400
# BEFORE-THE-EOF-NEXT: {{[(]?}}NULL{{[)]?}} 0x0
@@ -406,11 +406,11 @@ ProgramHeaders:
406406

407407
# PAST-THE-EOF: warning: '[[FILE]]': the dynamic string table at 0xb0 goes past the end of the file (0x2c0) with DT_STRSZ = 0x211
408408
# PAST-THE-EOF: warning: '[[FILE]]': string table was not found
409-
# PAST-THE-EOF: {{[(]?}}NEEDED{{[)]?}} Shared library: [<?>]
410-
# PAST-THE-EOF-NEXT: {{[(]?}}FILTER{{[)]?}} Filter library: [<?>]
411-
# PAST-THE-EOF-NEXT: {{[(]?}}AUXILIARY{{[)]?}} Auxiliary library: [<?>]
412-
# PAST-THE-EOF-NEXT: {{[(]?}}USED{{[)]?}} Not needed object: [<?>]
413-
# PAST-THE-EOF-NEXT: {{[(]?}}SONAME{{[)]?}} Library soname: [<?>]
409+
# PAST-THE-EOF: {{[(]?}}NEEDED{{[)]?}} Shared library: <?>
410+
# PAST-THE-EOF-NEXT: {{[(]?}}FILTER{{[)]?}} Filter library: <?>
411+
# PAST-THE-EOF-NEXT: {{[(]?}}AUXILIARY{{[)]?}} Auxiliary library: <?>
412+
# PAST-THE-EOF-NEXT: {{[(]?}}USED{{[)]?}} Not needed object: <?>
413+
# PAST-THE-EOF-NEXT: {{[(]?}}SONAME{{[)]?}} Library soname: <?>
414414
# PAST-THE-EOF-NEXT: {{[(]?}}RPATH{{[)]?}} Library rpath: [<?>]
415415
# PAST-THE-EOF-NEXT: {{[(]?}}RUNPATH{{[)]?}} Library runpath: [<?>]
416416
# PAST-THE-EOF-NEXT: {{[(]?}}NULL{{[)]?}} 0x0

0 commit comments

Comments
 (0)