Home | History | Annotate | Download | only in llvm-readobj
      1 // Test that llvm-readobj dumps version info tags correctly.
      2 
      3 RUN: llvm-readobj -dynamic-table -V %p/Inputs/verdef.elf-x86-64 | FileCheck %s
      4 
      5 CHECK: 0x000000006FFFFFF0 VERSYM               0x24C
      6 CHECK: 0x000000006FFFFFFC VERDEF               0x25C
      7 CHECK: 0x000000006FFFFFFD VERDEFNUM            3
      8 
      9 CHECK: Version symbols {
     10 CHECK-NEXT:   Section Name: .gnu.version (20)
     11 CHECK-NEXT:   Address: 0x24C
     12 CHECK-NEXT:   Offset: 0x24C
     13 CHECK-NEXT:   Link: 1
     14 CHECK-NEXT:   Symbols [
     15 CHECK-NEXT:     Symbol {
     16 CHECK-NEXT:       Version: 0
     17 CHECK-NEXT:       Name: @
     18 CHECK-NEXT:     }
     19 CHECK-NEXT:     Symbol {
     20 CHECK-NEXT:       Version: 1
     21 CHECK-NEXT:       Name: _end@
     22 CHECK-NEXT:     }
     23 CHECK-NEXT:     Symbol {
     24 CHECK-NEXT:       Version: 1
     25 CHECK-NEXT:       Name: _edata@
     26 CHECK-NEXT:     }
     27 CHECK-NEXT:     Symbol {
     28 CHECK-NEXT:       Version: 3
     29 CHECK-NEXT:       Name: goo@@VERSION2
     30 CHECK-NEXT:     }
     31 CHECK-NEXT:     Symbol {
     32 CHECK-NEXT:       Version: 1
     33 CHECK-NEXT:       Name: __bss_start@
     34 CHECK-NEXT:     }
     35 CHECK-NEXT:     Symbol {
     36 CHECK-NEXT:       Version: 2
     37 CHECK-NEXT:       Name: foo@@VERSION1
     38 CHECK-NEXT:     }
     39 CHECK-NEXT:     Symbol {
     40 CHECK-NEXT:       Version: 2
     41 CHECK-NEXT:       Name: VERSION1@@VERSION1
     42 CHECK-NEXT:     }
     43 CHECK-NEXT:     Symbol {
     44 CHECK-NEXT:       Version: 3
     45 CHECK-NEXT:       Name: VERSION2@@VERSION2
     46 CHECK-NEXT:     }
     47 CHECK-NEXT:   ]
     48 CHECK-NEXT: }
     49 
     50 CHECK:      SHT_GNU_verdef {
     51 CHECK-NEXT:   Definition {
     52 CHECK-NEXT:     Version: 1
     53 CHECK-NEXT:     Flags: Base (0x1)
     54 CHECK-NEXT:     Index: 1
     55 CHECK-NEXT:     Hash: 430712
     56 CHECK-NEXT:     Name: blah
     57 CHECK-NEXT:   }
     58 CHECK-NEXT:   Definition {
     59 CHECK-NEXT:     Version: 1
     60 CHECK-NEXT:     Flags: 0x0
     61 CHECK-NEXT:     Index: 2
     62 CHECK-NEXT:     Hash: 175630257
     63 CHECK-NEXT:     Name: VERSION1
     64 CHECK-NEXT:   }
     65 CHECK-NEXT:   Definition {
     66 CHECK-NEXT:     Version: 1
     67 CHECK-NEXT:     Flags: 0x0
     68 CHECK-NEXT:     Index: 3
     69 CHECK-NEXT:     Hash: 175630258
     70 CHECK-NEXT:     Name: VERSION2
     71 CHECK-NEXT:     Predecessor: VERSION1
     72 CHECK-NEXT:   }
     73 CHECK-NEXT: }
     74 
     75 RUN: llvm-readobj -V %p/Inputs/verneed.elf-x86-64 | FileCheck %s --check-prefix=VERNEED
     76 
     77 VERNEED:       SHT_GNU_verneed {
     78 VERNEED-NEXT:   Dependency {
     79 VERNEED-NEXT:     Version: 1
     80 VERNEED-NEXT:     Count: 2
     81 VERNEED-NEXT:     FileName: verneed1.so.0
     82 VERNEED-NEXT:     Entry {
     83 VERNEED-NEXT:       Hash: 1938
     84 VERNEED-NEXT:       Flags: 0x0
     85 VERNEED-NEXT:       Index: 3
     86 VERNEED-NEXT:       Name: v2
     87 VERNEED-NEXT:     }
     88 VERNEED-NEXT:     Entry {
     89 VERNEED-NEXT:       Hash: 1939
     90 VERNEED-NEXT:       Flags: 0x0
     91 VERNEED-NEXT:       Index: 2
     92 VERNEED-NEXT:       Name: v3
     93 VERNEED-NEXT:     }
     94 VERNEED-NEXT:   }
     95 VERNEED-NEXT:   Dependency {
     96 VERNEED-NEXT:     Version: 1
     97 VERNEED-NEXT:     Count: 1
     98 VERNEED-NEXT:     FileName: verneed2.so.0
     99 VERNEED-NEXT:     Entry {
    100 VERNEED-NEXT:       Hash: 1937
    101 VERNEED-NEXT:       Flags: 0x0
    102 VERNEED-NEXT:       Index: 4
    103 VERNEED-NEXT:       Name: v1
    104 VERNEED-NEXT:     }
    105 VERNEED-NEXT:   }
    106 VERNEED-NEXT: }
    107