Recommit "rL366894: [yaml2obj] - Allow custom fields for the SHT_UNDEF sections."
[llvm-complete.git] / test / tools / llvm-readobj / elf-verneed-flags.yaml
blobe121e38ec75e46f258987d8212e7fc0dfdee4682
1 ## Check how llvm-readobj/llvm-readelf tools dump the flags of SHT_GNU_verneed
2 ## section entries.
4 # RUN: yaml2obj %s -o %t
5 # RUN: llvm-readobj -V %t | FileCheck %s --check-prefix=LLVM-VERDEF
6 # RUN: llvm-readelf -V %t | FileCheck %s --check-prefix=GNU-VERDEF
8 # LLVM-VERDEF:      SHT_GNU_verneed {
9 # LLVM-VERDEF-NEXT:   Dependency {
10 # LLVM-VERDEF-NEXT:     Version: 1
11 # LLVM-VERDEF-NEXT:     Count: 6
12 # LLVM-VERDEF-NEXT:     FileName: dso.so.0
13 # LLVM-VERDEF-NEXT:     Entries [
14 # LLVM-VERDEF-NEXT:       Entry {
15 # LLVM-VERDEF-NEXT:         Hash: 0
16 # LLVM-VERDEF-NEXT:         Flags: Base (0x1)
17 # LLVM-VERDEF-NEXT:         Index: 0
18 # LLVM-VERDEF-NEXT:         Name: base
19 # LLVM-VERDEF-NEXT:       }
20 # LLVM-VERDEF-NEXT:       Entry {
21 # LLVM-VERDEF-NEXT:         Hash: 0
22 # LLVM-VERDEF-NEXT:         Flags: Weak (0x2)
23 # LLVM-VERDEF-NEXT:         Index: 0
24 # LLVM-VERDEF-NEXT:         Name: weak
25 # LLVM-VERDEF-NEXT:       }
26 # LLVM-VERDEF-NEXT:       Entry {
27 # LLVM-VERDEF-NEXT:         Hash: 0
28 # LLVM-VERDEF-NEXT:         Flags: Info (0x4)
29 # LLVM-VERDEF-NEXT:         Index: 0
30 # LLVM-VERDEF-NEXT:         Name: info
31 # LLVM-VERDEF-NEXT:       }
32 # LLVM-VERDEF-NEXT:       Entry {
33 # LLVM-VERDEF-NEXT:         Hash: 0
34 # LLVM-VERDEF-NEXT:         Flags: 0x7
35 # LLVM-VERDEF-NEXT:         Index: 0
36 # LLVM-VERDEF-NEXT:         Name: all
37 # LLVM-VERDEF-NEXT:       }
38 # LLVM-VERDEF-NEXT:       Entry {
39 # LLVM-VERDEF-NEXT:         Hash: 0
40 # LLVM-VERDEF-NEXT:         Flags: 0x8
41 # LLVM-VERDEF-NEXT:         Index: 0
42 # LLVM-VERDEF-NEXT:         Name: unknown
43 # LLVM-VERDEF-NEXT:       }
44 # LLVM-VERDEF-NEXT:       Entry {
45 # LLVM-VERDEF-NEXT:         Hash: 0
46 # LLVM-VERDEF-NEXT:         Flags: 0xF
47 # LLVM-VERDEF-NEXT:         Index: 0
48 # LLVM-VERDEF-NEXT:         Name: all_and_unknown
49 # LLVM-VERDEF-NEXT:       }
50 # LLVM-VERDEF-NEXT:     ]
51 # LLVM-VERDEF-NEXT:   }
52 # LLVM-VERDEF-NEXT: }
54 # GNU-VERDEF:      Version needs section '.gnu.version_r' contains 1 entries:
55 # GNU-VERDEF-NEXT:  Addr: 0000000000000000  Offset: 0x000200  Link: 6 (.dynstr)
56 # GNU-VERDEF-NEXT:   0x0000: Version: 1  File: dso.so.0  Cnt: 6
57 # GNU-VERDEF-NEXT:   0x0010:   Name: base  Flags: BASE  Version: 0
58 # GNU-VERDEF-NEXT:   0x0020:   Name: weak  Flags: WEAK  Version: 0
59 # GNU-VERDEF-NEXT:   0x0030:   Name: info  Flags: INFO  Version: 0
60 # GNU-VERDEF-NEXT:   0x0040:   Name: all  Flags: BASE | WEAK | INFO  Version: 0
61 # GNU-VERDEF-NEXT:   0x0050:   Name: unknown  Flags: <unknown>  Version: 0
62 # GNU-VERDEF-NEXT:   0x0060:   Name: all_and_unknown  Flags: BASE | WEAK | INFO | <unknown>  Version: 0
64 --- !ELF
65 FileHeader:
66   Class:           ELFCLASS64
67   Data:            ELFDATA2LSB
68   Type:            ET_EXEC
69   Machine:         EM_X86_64
70   Entry:           0x0000000000201000
71 Sections:
72   - Name:            .gnu.version_r
73     Type:            SHT_GNU_verneed
74     Link:            .dynstr
75     Info:            0x0000000000000001
76     Dependencies:
77       - Version:         1
78         File:            dso.so.0
79         Entries:
80           - Name:            base
81             Hash:            0
82             Flags:           0x1
83             Other:           0
84           - Name:            weak
85             Hash:            0
86             Flags:           0x2
87             Other:           0
88           - Name:            info
89             Hash:            0
90             Flags:           0x4
91             Other:           0
92           - Name:            all
93             Hash:            0
94             Flags:           0x7
95             Other:           0
96           - Name:            unknown
97             Hash:            0
98             Flags:           0x8
99             Other:           0
100           - Name:            all_and_unknown
101             Hash:            0
102             Flags:           0xf
103             Other:           0
104 ## Needed to trigger .dynstr creation, which is required by .gnu.version_r
105 DynamicSymbols:
106   - Name:    f1
107     Binding: STB_GLOBAL