120 lines · yaml
1## Check how llvm-readobj/llvm-readelf tools dump the flags of SHT_GNU_verneed2## section entries.3 4# RUN: yaml2obj %s -o %t5# RUN: llvm-readobj -V %t | FileCheck %s --check-prefix=LLVM-VERDEF6# RUN: llvm-readelf -V %t | FileCheck %s --check-prefix=GNU-VERDEF7 8# LLVM-VERDEF: VersionRequirements [9# LLVM-VERDEF-NEXT: Dependency {10# LLVM-VERDEF-NEXT: Version: 111# LLVM-VERDEF-NEXT: Count: 612# LLVM-VERDEF-NEXT: FileName: dso.so.013# LLVM-VERDEF-NEXT: Entries [14# LLVM-VERDEF-NEXT: Entry {15# LLVM-VERDEF-NEXT: Hash: 016# LLVM-VERDEF-NEXT: Flags [ (0x1)17# LLVM-VERDEF-NEXT: Base (0x1)18# LLVM-VERDEF-NEXT: ]19# LLVM-VERDEF-NEXT: Index: 020# LLVM-VERDEF-NEXT: Name: base21# LLVM-VERDEF-NEXT: }22# LLVM-VERDEF-NEXT: Entry {23# LLVM-VERDEF-NEXT: Hash: 024# LLVM-VERDEF-NEXT: Flags [ (0x2)25# LLVM-VERDEF-NEXT: Weak (0x2)26# LLVM-VERDEF-NEXT: ]27# LLVM-VERDEF-NEXT: Index: 028# LLVM-VERDEF-NEXT: Name: weak29# LLVM-VERDEF-NEXT: }30# LLVM-VERDEF-NEXT: Entry {31# LLVM-VERDEF-NEXT: Hash: 032# LLVM-VERDEF-NEXT: Flags [ (0x4)33# LLVM-VERDEF-NEXT: Info (0x4)34# LLVM-VERDEF-NEXT: ]35# LLVM-VERDEF-NEXT: Index: 036# LLVM-VERDEF-NEXT: Name: info37# LLVM-VERDEF-NEXT: }38# LLVM-VERDEF-NEXT: Entry {39# LLVM-VERDEF-NEXT: Hash: 040# LLVM-VERDEF-NEXT: Flags [ (0x7)41# LLVM-VERDEF-NEXT: Base (0x1)42# LLVM-VERDEF-NEXT: Info (0x4)43# LLVM-VERDEF-NEXT: Weak (0x2)44# LLVM-VERDEF-NEXT: ]45# LLVM-VERDEF-NEXT: Index: 046# LLVM-VERDEF-NEXT: Name: all47# LLVM-VERDEF-NEXT: }48# LLVM-VERDEF-NEXT: Entry {49# LLVM-VERDEF-NEXT: Hash: 050# LLVM-VERDEF-NEXT: Flags [ (0x8)51# LLVM-VERDEF-NEXT: ]52# LLVM-VERDEF-NEXT: Index: 053# LLVM-VERDEF-NEXT: Name: unknown54# LLVM-VERDEF-NEXT: }55# LLVM-VERDEF-NEXT: Entry {56# LLVM-VERDEF-NEXT: Hash: 057# LLVM-VERDEF-NEXT: Flags [ (0xF)58# LLVM-VERDEF-NEXT: Base (0x1)59# LLVM-VERDEF-NEXT: Info (0x4)60# LLVM-VERDEF-NEXT: Weak (0x2)61# LLVM-VERDEF-NEXT: ]62# LLVM-VERDEF-NEXT: Index: 063# LLVM-VERDEF-NEXT: Name: all_and_unknown64# LLVM-VERDEF-NEXT: }65# LLVM-VERDEF-NEXT: ]66# LLVM-VERDEF-NEXT: }67# LLVM-VERDEF-NEXT: ]68 69# GNU-VERDEF: Version needs section '.gnu.version_r' contains 1 entries:70# GNU-VERDEF-NEXT: Addr: 0000000000000000 Offset: 0x000040 Link: 3 (.dynstr)71# GNU-VERDEF-NEXT: 0x0000: Version: 1 File: dso.so.0 Cnt: 672# GNU-VERDEF-NEXT: 0x0010: Name: base Flags: BASE Version: 073# GNU-VERDEF-NEXT: 0x0020: Name: weak Flags: WEAK Version: 074# GNU-VERDEF-NEXT: 0x0030: Name: info Flags: INFO Version: 075# GNU-VERDEF-NEXT: 0x0040: Name: all Flags: BASE | WEAK | INFO Version: 076# GNU-VERDEF-NEXT: 0x0050: Name: unknown Flags: <unknown> Version: 077# GNU-VERDEF-NEXT: 0x0060: Name: all_and_unknown Flags: BASE | WEAK | INFO | <unknown> Version: 078 79--- !ELF80FileHeader:81 Class: ELFCLASS6482 Data: ELFDATA2LSB83 Type: ET_EXEC84 Entry: 0x000000000020100085Sections:86 - Name: .gnu.version_r87 Type: SHT_GNU_verneed88 Dependencies:89 - Version: 190 File: dso.so.091 Entries:92 - Name: base93 Hash: 094 Flags: 0x195 Other: 096 - Name: weak97 Hash: 098 Flags: 0x299 Other: 0100 - Name: info101 Hash: 0102 Flags: 0x4103 Other: 0104 - Name: all105 Hash: 0106 Flags: 0x7107 Other: 0108 - Name: unknown109 Hash: 0110 Flags: 0x8111 Other: 0112 - Name: all_and_unknown113 Hash: 0114 Flags: 0xf115 Other: 0116## Needed to trigger .dynstr creation, which is required by .gnu.version_r117DynamicSymbols:118 - Name: f1119 Binding: STB_GLOBAL120