1# REQUIRES: x86 2# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o 3 4# RUN: echo "VERSION_1.0 { local: foo1; };" > %t.script 5# RUN: ld.lld --version-script %t.script -shared %t.o -o %t.so 6# RUN: llvm-readobj --dyn-syms %t.so | FileCheck --check-prefix=EXACT %s 7# EXACT: DynamicSymbols [ 8# EXACT: _start 9# EXACT-NOT: foo1 10# EXACT: foo2 11# EXACT: foo3 12 13# RUN: echo "VERSION_1.0 { local: foo*; };" > %t.script 14# RUN: ld.lld --version-script %t.script -shared %t.o -o %t.so 15# RUN: llvm-readobj --dyn-syms %t.so | FileCheck --check-prefix=WC %s 16# WC: DynamicSymbols [ 17# WC: _start 18# WC-NOT: foo1 19# WC-NOT: foo2 20# WC-NOT: foo3 21 22# RUN: echo "VERSION_1.0 { global: *; local: foo*; };" > %t.script 23# RUN: ld.lld --version-script %t.script -shared %t.o -o %t.so 24# RUN: llvm-readobj --dyn-syms %t.so | FileCheck --check-prefix=MIX %s 25# MIX: DynamicSymbols [ 26# MIX: _start@@VERSION_1.0 27# MIX-NOT: foo1 28# MIX-NOT: foo2 29# MIX-NOT: foo3 30 31.globl foo1 32foo1: 33 ret 34 35.globl foo2 36foo2: 37 ret 38 39.globl foo3 40foo3: 41 ret 42 43.globl _start 44_start: 45 ret 46