1// REQUIRES: x86 2// Check that local symbols are not inserted into dynamic table. 3// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t 4// RUN: ld.lld %t -shared -o %t1.so 5// RUN: llvm-readobj --symbols --dyn-syms %t1.so | FileCheck %s 6 7// CHECK: Symbols [ 8// CHECK-NEXT: Symbol { 9// CHECK-NEXT: Name: 10// CHECK-NEXT: Value: 0x0 11// CHECK-NEXT: Size: 0 12// CHECK-NEXT: Binding: Local 13// CHECK-NEXT: Type: None 14// CHECK-NEXT: Other: 0 15// CHECK-NEXT: Section: Undefined 16// CHECK-NEXT: } 17// CHECK-NEXT: Symbol { 18// CHECK-NEXT: Name: blah 19// CHECK-NEXT: Value: 20// CHECK-NEXT: Size: 0 21// CHECK-NEXT: Binding: Local 22// CHECK-NEXT: Type: None 23// CHECK-NEXT: Other: 0 24// CHECK-NEXT: Section: .text 25// CHECK-NEXT: } 26// CHECK-NEXT: Symbol { 27// CHECK-NEXT: Name: foo 28// CHECK-NEXT: Value: 29// CHECK-NEXT: Size: 0 30// CHECK-NEXT: Binding: Local 31// CHECK-NEXT: Type: None 32// CHECK-NEXT: Other: 0 33// CHECK-NEXT: Section: .text 34// CHECK-NEXT: } 35// CHECK-NEXT: Symbol { 36// CHECK-NEXT: Name: goo 37// CHECK-NEXT: Value: 38// CHECK-NEXT: Size: 0 39// CHECK-NEXT: Binding: Local 40// CHECK-NEXT: Type: None 41// CHECK-NEXT: Other: 0 42// CHECK-NEXT: Section: .text 43// CHECK-NEXT: } 44// CHECK-NEXT: Symbol { 45// CHECK-NEXT: Name: _DYNAMIC 46// CHECK-NEXT: Value: 47// CHECK-NEXT: Size: 0 48// CHECK-NEXT: Binding: Local 49// CHECK-NEXT: Type: None 50// CHECK-NEXT: Other [ (0x2) 51// CHECK-NEXT: STV_HIDDEN 52// CHECK-NEXT: ] 53// CHECK-NEXT: Section: .dynamic 54// CHECK-NEXT: } 55// CHECK-NEXT: Symbol { 56// CHECK-NEXT: Name: _start 57// CHECK-NEXT: Value: 58// CHECK-NEXT: Size: 0 59// CHECK-NEXT: Binding: Global 60// CHECK-NEXT: Type: None 61// CHECK-NEXT: Other: 0 62// CHECK-NEXT: Section: .text 63// CHECK-NEXT: } 64// CHECK-NEXT: ] 65 66// CHECK: DynamicSymbols [ 67// CHECK-NEXT: Symbol { 68// CHECK-NEXT: Name: 69// CHECK-NEXT: Value: 0x0 70// CHECK-NEXT: Size: 0 71// CHECK-NEXT: Binding: Local 72// CHECK-NEXT: Type: None 73// CHECK-NEXT: Other: 0 74// CHECK-NEXT: Section: Undefined 75// CHECK-NEXT: } 76// CHECK-NEXT: Symbol { 77// CHECK-NEXT: Name: _start 78// CHECK-NEXT: Value: 79// CHECK-NEXT: Size: 0 80// CHECK-NEXT: Binding: Global 81// CHECK-NEXT: Type: None 82// CHECK-NEXT: Other: 0 83// CHECK-NEXT: Section: .text 84// CHECK-NEXT: } 85// CHECK-NEXT: ] 86 87.global _start 88_start: 89 90blah: 91foo: 92goo: 93 94 95