| # Check the order of dynamic symbols for the MIPS target. |
| |
| # RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t-be.o |
| # RUN: ld.lld -shared %t-be.o -o %t-be.so |
| # RUN: llvm-readobj -symbols -dyn-symbols %t-be.so | FileCheck %s |
| |
| # RUN: llvm-mc -filetype=obj -triple=mipsel-unknown-linux %s -o %t-el.o |
| # RUN: ld.lld -shared %t-el.o -o %t-el.so |
| # RUN: llvm-readobj -symbols -dyn-symbols %t-el.so | FileCheck %s |
| |
| # REQUIRES: mips |
| |
| .data |
| .globl v1,v2,v3 |
| v1: |
| .space 4 |
| v2: |
| .space 4 |
| v3: |
| .space 4 |
| |
| .text |
| .globl __start |
| __start: |
| lui $2, %got(v3) # v3 will precede v1 in the GOT |
| lui $2, %got(v1) |
| |
| # Since all these symbols have global binding, |
| # the Symbols section contains them in the original order. |
| # CHECK: Symbols [ |
| # CHECK: Name: v1 |
| # CHECK: Name: v2 |
| # CHECK: Name: v3 |
| # CHECK: ] |
| |
| # The symbols in the DynamicSymbols section are sorted in compliance with |
| # the MIPS rules. v2 comes first as it is not in the GOT. |
| # v1 and v3 are sorted according to their order in the GOT. |
| # CHECK: DynamicSymbols [ |
| # CHECK: Name: v2@ |
| # CHECK: Name: v3@ |
| # CHECK: Name: v1@ |
| # CHECK: ] |