1 # RUN: llvm-objcopy %p/Inputs/dynsym.so %t 2 # RUN: llvm-readobj -dyn-symbols %t | FileCheck %s 3 # RUN: llvm-readobj -sections %t | FileCheck -check-prefix=LINK %s 4 5 #LINK: Name: .dynsym 6 #LINK-NEXT: Type: SHT_DYNSYM 7 #LINK-NEXT: Flags [ 8 #LINK-NEXT: SHF_ALLOC 9 #LINK-NEXT: ] 10 #LINK-NEXT: Address: 11 #LINK-NEXT: Offset: 12 #LINK-NEXT: Size: 13 #LINK-NEXT: Link: 3 14 15 #LINK: Index: 3 16 #LINK-NEXT: Name: .dynstr 17 18 #CHECK: DynamicSymbols [ 19 #CHECK-NEXT: Symbol { 20 #CHECK-NEXT: Name: @ (0) 21 #CHECK-NEXT: Value: 0x0 22 #CHECK-NEXT: Size: 0 23 #CHECK-NEXT: Binding: Local 24 #CHECK-NEXT: Type: None (0x0) 25 #CHECK-NEXT: Other: 0 26 #CHECK-NEXT: Section: Undefined (0x0) 27 #CHECK-NEXT: } 28 #CHECK-NEXT: Symbol { 29 #CHECK-NEXT: Name: bang@ (1) 30 #CHECK-NEXT: Value: 0x4000 31 #CHECK-NEXT: Size: 8 32 #CHECK-NEXT: Binding: Global (0x1) 33 #CHECK-NEXT: Type: Object (0x1) 34 #CHECK-NEXT: Other: 0 35 #CHECK-NEXT: Section: .bss (0x7) 36 #CHECK-NEXT: } 37 #CHECK-NEXT: Symbol { 38 #CHECK-NEXT: Name: bar@ (6) 39 #CHECK-NEXT: Value: 0x1001 40 #CHECK-NEXT: Size: 0 41 #CHECK-NEXT: Binding: Global (0x1) 42 #CHECK-NEXT: Type: Function (0x2) 43 #CHECK-NEXT: Other: 0 44 #CHECK-NEXT: Section: .text (0x4) 45 #CHECK-NEXT: } 46 #CHECK-NEXT: Symbol { 47 #CHECK-NEXT: Name: baz@ (10) 48 #CHECK-NEXT: Value: 0x2000 49 #CHECK-NEXT: Size: 0 50 #CHECK-NEXT: Binding: Global (0x1) 51 #CHECK-NEXT: Type: Object (0x1) 52 #CHECK-NEXT: Other: 0 53 #CHECK-NEXT: Section: .data (0x5) 54 #CHECK-NEXT: } 55 #CHECK-NEXT: Symbol { 56 #CHECK-NEXT: Name: foo@ (14) 57 #CHECK-NEXT: Value: 0x1000 58 #CHECK-NEXT: Size: 0 59 #CHECK-NEXT: Binding: Global (0x1) 60 #CHECK-NEXT: Type: Function (0x2) 61 #CHECK-NEXT: Other: 0 62 #CHECK-NEXT: Section: .text (0x4) 63 #CHECK-NEXT: } 64 #CHECK-NEXT:] 65