# REQUIRES: mips # Check that default _gp value is calculated relative # to the GP-relative section with the lowest address. # RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o # RUN: echo "SECTIONS { \ # RUN: .sdata : { *(.sdata) } \ # RUN: .got : { *(.got) } }" > %t.rel.script # RUN: ld.lld %t.o --script %t.rel.script -shared -o %t.so # RUN: llvm-readobj -s -t %t.so | FileCheck %s .text .global foo foo: lui $gp, %call16(foo) .sdata .word 0 # CHECK: Section { # CHECK: Name: .sdata # CHECK-NEXT: Type: SHT_PROGBITS # CHECK-NEXT: Flags [ # CHECK-NEXT: SHF_ALLOC # CHECK-NEXT: SHF_MIPS_GPREL # CHECK-NEXT: SHF_WRITE # CHECK-NEXT: ] # CHECK-NEXT: Address: 0xF0 # CHECK: } # CHECK: Section { # CHECK: Name: .got # CHECK-NEXT: Type: SHT_PROGBITS # CHECK-NEXT: Flags [ # CHECK-NEXT: SHF_ALLOC # CHECK-NEXT: SHF_MIPS_GPREL # CHECK-NEXT: SHF_WRITE # CHECK-NEXT: ] # CHECK-NEXT: Address: 0x100 # CHECK: } # CHECK: Name: _gp (5) # CHECK-NEXT: Value: 0x80E0 # ^-- 0xF0 + 0x7ff0