| // REQUIRES: x86 | |
| // RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t | |
| // | |
| // RUN: ld.lld %t -shared -o %tout.so | |
| // RUN: llvm-readobj --dyn-syms %tout.so | FileCheck -check-prefix=GNU %s | |
| // RUN: ld.lld %t -shared -o %tout.so --gnu-unique | |
| // RUN: llvm-readobj --dyn-syms %tout.so | FileCheck -check-prefix=GNU %s | |
| // | |
| // RUN: ld.lld %t -shared -o %tout.so --no-gnu-unique | |
| // RUN: llvm-readobj --dyn-syms %tout.so | FileCheck -check-prefix=NO %s | |
| // Check that STB_GNU_UNIQUE is treated as a global and ends up in the dynamic | |
| // symbol table as STB_GNU_UNIQUE. | |
| .global _start | |
| .text | |
| _start: | |
| .data | |
| .type symb, @gnu_unique_object | |
| symb: | |
| # GNU: Name: symb | |
| # GNU-NEXT: Value: | |
| # GNU-NEXT: Size: 0 | |
| # GNU-NEXT: Binding: Unique | |
| # GNU-NEXT: Type: Object | |
| # GNU-NEXT: Other: 0 | |
| # GNU-NEXT: Section: .data | |
| # GNU-NEXT: } | |
| # NO: Name: symb | |
| # NO-NEXT: Value: | |
| # NO-NEXT: Size: 0 | |
| # NO-NEXT: Binding: Global | |
| # NO-NEXT: Type: Object | |
| # NO-NEXT: Other: 0 | |
| # NO-NEXT: Section: .data | |
| # NO-NEXT: } |