# REQUIRES: mips # 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 .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: ]