66 lines · plain
1# REQUIRES: mips2# Check assigning STO_MIPS_PLT flag to symbol needs a pointer equality.3 4# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \5# RUN: %S/Inputs/mips-dynamic.s -o %t.so.o6# RUN: ld.lld %t.so.o -shared -o %t.so7# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o8# RUN: ld.lld %t.o %t.so -o %t.exe9# RUN: llvm-readobj --dyn-syms -A %t.exe | FileCheck %s10 11# CHECK: Symbol {12# CHECK: Name: foo013# CHECK-NEXT: Value: 0x014# CHECK-NEXT: Size: 015# CHECK-NEXT: Binding: Global16# CHECK-NEXT: Type: Function17# CHECK-NEXT: Other: 018# CHECK-NEXT: Section: Undefined19# CHECK-NEXT: }20# CHECK-NEXT: Symbol {21# CHECK-NEXT: Name: foo122# CHECK-NEXT: Value: 0x[[FOO1:[0-9A-F]+]]23# CHECK-NEXT: Size: 024# CHECK-NEXT: Binding: Global25# CHECK-NEXT: Type: Function26# CHECK-NEXT: Other [ (0x8)27# CHECK-NEXT: STO_MIPS_PLT28# CHECK-NEXT: ]29# CHECK-NEXT: Section: Undefined30# CHECK-NEXT: }31 32# CHECK: Primary GOT {33# CHECK: Local entries [34# CHECK-NEXT: ]35# CHECK-NEXT: Global entries [36# CHECK-NEXT: ]37# CHECK: PLT GOT {38# CHECK: Entries [39# CHECK-NEXT: Entry {40# CHECK-NEXT: Address:41# CHECK-NEXT: Initial:42# CHECK-NEXT: Value: 0x043# CHECK-NEXT: Type: Function44# CHECK-NEXT: Section: Undefined45# CHECK-NEXT: Name: foo046# CHECK-NEXT: }47# CHECK-NEXT: Entry {48# CHECK-NEXT: Address:49# CHECK-NEXT: Initial:50# CHECK-NEXT: Value: 0x[[FOO1]]51# CHECK-NEXT: Type: Function52# CHECK-NEXT: Section: Undefined53# CHECK-NEXT: Name: foo154# CHECK-NEXT: }55# CHECK-NEXT: ]56 57 .text58 .globl __start59__start:60 jal foo0 # R_MIPS_26 against 'foo0' from DSO61 lui $t0,%hi(foo1) # R_MIPS_HI16/LO16 against 'foo1' from DSO62 addi $t0,$t0,%lo(foo1)63 64loc:65 nop66