1// REQUIRES: x86 2// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o 3// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %p/Inputs/protected-shared.s -o %t2.o 4// RUN: ld.lld -shared %t2.o -o %t2.so 5// RUN: ld.lld %t.o %t2.so -o %t 6// RUN: llvm-readobj -t --dyn-symbols %t | FileCheck %s 7 8 .global _start 9_start: 10 11 .global bar 12bar: 13 14 .data 15 .quad foo 16 17// CHECK: Name: bar 18// CHECK-NEXT: Value: 19// CHECK-NEXT: Size: 0 20// CHECK-NEXT: Binding: Global 21// CHECK-NEXT: Type: None 22// CHECK-NEXT: Other: 0 23// CHECK-NEXT: Section: .text 24 25// CHECK: Name: foo 26// CHECK-NEXT: Value: 0x0 27// CHECK-NEXT: Size: 0 28// CHECK-NEXT: Binding: Global 29// CHECK-NEXT: Type: None 30// CHECK-NEXT: Other: 0 31// CHECK-NEXT: Section: Undefined 32 33// CHECK: DynamicSymbols [ 34// CHECK-NEXT: Symbol { 35// CHECK-NEXT: Name: @ 36// CHECK-NEXT: Value: 0x0 37// CHECK-NEXT: Size: 0 38// CHECK-NEXT: Binding: Local (0x0) 39// CHECK-NEXT: Type: None (0x0) 40// CHECK-NEXT: Other: 0 41// CHECK-NEXT: Section: Undefined (0x0) 42// CHECK-NEXT: } 43// CHECK-NEXT: Symbol { 44// CHECK-NEXT: Name: foo@ 45// CHECK-NEXT: Value: 0x0 46// CHECK-NEXT: Size: 0 47// CHECK-NEXT: Binding: Global 48// CHECK-NEXT: Type: None 49// CHECK-NEXT: Other: 0 50// CHECK-NEXT: Section: Undefined 51// CHECK-NEXT: } 52// CHECK-NEXT: ] 53