| // 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-symbols %tout.so | FileCheck -check-prefix=GNU %s |
| // RUN: ld.lld %t -shared -o %tout.so --gnu-unique |
| // RUN: llvm-readobj -dyn-symbols %tout.so | FileCheck -check-prefix=GNU %s |
| // |
| // RUN: ld.lld %t -shared -o %tout.so --no-gnu-unique |
| // RUN: llvm-readobj -dyn-symbols %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: } |