Skip to content

Commit

Permalink
[llvm-readobj/llvm-readelf] - Improve dumping of versioning sections.
Browse files Browse the repository at this point in the history
Our elf-versioninfo.test is not perfect. It does not properly test how
flags are dumped and also we have a bug: they are dumped as enums in
LLVM style now, i.e not dumped properly.

GNU style uses a `versionFlagToString` method to build a string from flags
which seems is consistent with GNU readelf.

In this patch I fixed the issues mentioned.

Differential revision: https://reviews.llvm.org/D70399
  • Loading branch information
Georgii Rymar committed Nov 20, 2019
1 parent c54959c commit 1cc78fd
Show file tree
Hide file tree
Showing 10 changed files with 204 additions and 62 deletions.
16 changes: 11 additions & 5 deletions lld/test/ELF/verdef-defaultver.s
Original file line number Diff line number Diff line change
Expand Up @@ -78,21 +78,25 @@
# DSO-NEXT: VersionDefinitions [
# DSO-NEXT: Definition {
# DSO-NEXT: Version: 1
# DSO-NEXT: Flags: Base
# DSO-NEXT: Flags [ (0x1)
# DSO-NEXT: Base (0x1)
# DSO-NEXT: ]
# DSO-NEXT: Index: 1
# DSO-NEXT: Hash: 127830196
# DSO-NEXT: Name: shared
# DSO-NEXT: }
# DSO-NEXT: Definition {
# DSO-NEXT: Version: 1
# DSO-NEXT: Flags: 0x0
# DSO-NEXT: Flags [ (0x0)
# DSO-NEXT: ]
# DSO-NEXT: Index: 2
# DSO-NEXT: Hash: 1425
# DSO-NEXT: Name: V1
# DSO-NEXT: }
# DSO-NEXT: Definition {
# DSO-NEXT: Version: 1
# DSO-NEXT: Flags: 0x0
# DSO-NEXT: Flags [ (0x0)
# DSO-NEXT: ]
# DSO-NEXT: Index: 3
# DSO-NEXT: Hash: 1426
# DSO-NEXT: Name: V2
Expand Down Expand Up @@ -170,13 +174,15 @@
# EXE-NEXT: Entries [
# EXE-NEXT: Entry {
# EXE-NEXT: Hash: 1425
# EXE-NEXT: Flags: 0x0
# EXE-NEXT: Flags [ (0x0)
# EXE-NEXT: ]
# EXE-NEXT: Index: 2
# EXE-NEXT: Name: V1
# EXE-NEXT: }
# EXE-NEXT: Entry {
# EXE-NEXT: Hash: 1426
# EXE-NEXT: Flags: 0x0
# EXE-NEXT: Flags [ (0x0)
# EXE-NEXT: ]
# EXE-NEXT: Index: 3
# EXE-NEXT: Name: V2
# EXE-NEXT: }
Expand Down
13 changes: 9 additions & 4 deletions lld/test/ELF/verdef-dependency.s
Original file line number Diff line number Diff line change
Expand Up @@ -9,28 +9,33 @@
# DSO: VersionDefinitions [
# DSO-NEXT: Definition {
# DSO-NEXT: Version: 1
# DSO-NEXT: Flags: Base
# DSO-NEXT: Flags [ (0x1)
# DSO-NEXT: Base (0x1)
# DSO-NEXT: ]
# DSO-NEXT: Index: 1
# DSO-NEXT: Hash: 127830196
# DSO-NEXT: Name: shared
# DSO-NEXT: }
# DSO-NEXT: Definition {
# DSO-NEXT: Version: 1
# DSO-NEXT: Flags: 0x0
# DSO-NEXT: Flags [ (0x0)
# DSO-NEXT: ]
# DSO-NEXT: Index: 2
# DSO-NEXT: Hash: 98457184
# DSO-NEXT: Name: LIBSAMPLE_1.0
# DSO-NEXT: }
# DSO-NEXT: Definition {
# DSO-NEXT: Version: 1
# DSO-NEXT: Flags: 0x0
# DSO-NEXT: Flags [ (0x0)
# DSO-NEXT: ]
# DSO-NEXT: Index: 3
# DSO-NEXT: Hash: 98456416
# DSO-NEXT: Name: LIBSAMPLE_2.0
# DSO-NEXT: }
# DSO-NEXT: Definition {
# DSO-NEXT: Version: 1
# DSO-NEXT: Flags: 0x0
# DSO-NEXT: Flags [ (0x0)
# DSO-NEXT: ]
# DSO-NEXT: Index: 4
# DSO-NEXT: Hash: 98456672
# DSO-NEXT: Name: LIBSAMPLE_3.0
Expand Down
13 changes: 9 additions & 4 deletions lld/test/ELF/verdef.s
Original file line number Diff line number Diff line change
Expand Up @@ -27,28 +27,33 @@
# DSO-NEXT: VersionDefinitions [
# DSO-NEXT: Definition {
# DSO-NEXT: Version: 1
# DSO-NEXT: Flags: Base
# DSO-NEXT: Flags [ (0x1)
# DSO-NEXT: Base (0x1)
# DSO-NEXT: ]
# DSO-NEXT: Index: 1
# DSO-NEXT: Hash: 127830196
# DSO-NEXT: Name: shared
# DSO-NEXT: }
# DSO-NEXT: Definition {
# DSO-NEXT: Version: 1
# DSO-NEXT: Flags: 0x0
# DSO-NEXT: Flags [ (0x0)
# DSO-NEXT: ]
# DSO-NEXT: Index: 2
# DSO-NEXT: Hash: 98457184
# DSO-NEXT: Name: LIBSAMPLE_1.0
# DSO-NEXT: }
# DSO-NEXT: Definition {
# DSO-NEXT: Version: 1
# DSO-NEXT: Flags: 0x0
# DSO-NEXT: Flags [ (0x0)
# DSO-NEXT: ]
# DSO-NEXT: Index: 3
# DSO-NEXT: Hash: 98456416
# DSO-NEXT: Name: LIBSAMPLE_2.0
# DSO-NEXT: }
# DSO-NEXT: Definition {
# DSO-NEXT: Version: 1
# DSO-NEXT: Flags: 0x0
# DSO-NEXT: Flags [ (0x0)
# DSO-NEXT: ]
# DSO-NEXT: Index: 4
# DSO-NEXT: Hash: 98456672
# DSO-NEXT: Name: LIBSAMPLE_3.0
Expand Down
9 changes: 6 additions & 3 deletions lld/test/ELF/verneed.s
Original file line number Diff line number Diff line change
Expand Up @@ -145,13 +145,15 @@
# CHECK-NEXT: Entries [
# CHECK-NEXT: Entry {
# CHECK-NEXT: Hash: 1938
# CHECK-NEXT: Flags: 0x0
# CHECK-NEXT: Flags [ (0x0)
# CHECK-NEXT: ]
# CHECK-NEXT: Index: 3
# CHECK-NEXT: Name: v2
# CHECK-NEXT: }
# CHECK-NEXT: Entry {
# CHECK-NEXT: Hash: 1939
# CHECK-NEXT: Flags: 0x0
# CHECK-NEXT: Flags [ (0x0)
# CHECK-NEXT: ]
# CHECK-NEXT: Index: 2
# CHECK-NEXT: Name: v3
# CHECK-NEXT: }
Expand All @@ -164,7 +166,8 @@
# CHECK-NEXT: Entries [
# CHECK-NEXT: Entry {
# CHECK-NEXT: Hash: 1937
# CHECK-NEXT: Flags: 0x0
# CHECK-NEXT: Flags [ (0x0)
# CHECK-NEXT: ]
# CHECK-NEXT: Index: 4
# CHECK-NEXT: Name: v1
# CHECK-NEXT: }
Expand Down
12 changes: 8 additions & 4 deletions llvm/test/tools/llvm-readobj/elf-invalid-versioning.test
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@
# LLVM-VERNEED-NAME-NEXT: Entries [
# LLVM-VERNEED-NAME-NEXT: Entry {
# LLVM-VERNEED-NAME-NEXT: Hash: 0
# LLVM-VERNEED-NAME-NEXT: Flags: 0x0
# LLVM-VERNEED-NAME-NEXT: Flags [ (0x0)
# LLVM-VERNEED-NAME-NEXT: ]
# LLVM-VERNEED-NAME-NEXT: Index: 2
# LLVM-VERNEED-NAME-NEXT: Name: {{$}}
# LLVM-VERNEED-NAME-NEXT: }
Expand Down Expand Up @@ -111,7 +112,8 @@ DynamicSymbols:
# LLVM-NOLINK-NEXT: Entries [
# LLVM-NOLINK-NEXT: Entry {
# LLVM-NOLINK-NEXT: Hash: 0
# LLVM-NOLINK-NEXT: Flags: 0
# LLVM-NOLINK-NEXT: Flags [ (0x0)
# LLVM-NOLINK-NEXT: ]
# LLVM-NOLINK-NEXT: Index: 2
# LLVM-NOLINK-NEXT: Name: <invalid>
# LLVM-NOLINK-NEXT: }
Expand Down Expand Up @@ -215,7 +217,8 @@ DynamicSymbols:
# LLVM-OFFSET-EQ-NEXT: Entries [
# LLVM-OFFSET-EQ-NEXT: Entry {
# LLVM-OFFSET-EQ-NEXT: Hash: 0
# LLVM-OFFSET-EQ-NEXT: Flags: 0x0
# LLVM-OFFSET-EQ-NEXT: Flags [ (0x0)
# LLVM-OFFSET-EQ-NEXT: ]
# LLVM-OFFSET-EQ-NEXT: Index: 0
# LLVM-OFFSET-EQ-NEXT: Name: <invalid>
# LLVM-OFFSET-EQ-NEXT: }
Expand Down Expand Up @@ -270,7 +273,8 @@ DynamicSymbols:
# LLVM-OFFSET-GR-NEXT: Entries [
# LLVM-OFFSET-GR-NEXT: Entry {
# LLVM-OFFSET-GR-NEXT: Hash: 0
# LLVM-OFFSET-GR-NEXT: Flags: 0x0
# LLVM-OFFSET-GR-NEXT: Flags [ (0x0)
# LLVM-OFFSET-GR-NEXT: ]
# LLVM-OFFSET-GR-NEXT: Index: 0
# LLVM-OFFSET-GR-NEXT: Name: <invalid>
# LLVM-OFFSET-GR-NEXT: }
Expand Down
Loading

0 comments on commit 1cc78fd

Please sign in to comment.