# Check R_MIPS_GPREL16 relocation handling. # # RUN: yaml2obj -format=elf %s > %t-obj # RUN: lld -flavor gnu -target mipsel -e G1 -shared -o %t.so %t-obj # RUN: llvm-readobj -symbols %t.so | FileCheck -check-prefix=SYM %s # RUN: llvm-objdump -s %t.so | FileCheck -check-prefix=SEC %s # SYM: Name: L1 # SYM-NEXT: Value: 0x104 # SYM-NEXT: Size: 4 # SYM-NEXT: Binding: Local (0x0) # SYM-NEXT: Type: Function (0x2) # SYM-NEXT: Other: 0 # SYM-NEXT: Section: .text (0x5) # SYM: Name: G1 # SYM-NEXT: Value: 0x108 # SYM-NEXT: Size: 4 # SYM-NEXT: Binding: Global (0x1) # SYM-NEXT: Type: Function (0x2) # SYM-NEXT: Other: 0 # SYM-NEXT: Section: .text (0x5) # SYM: Name: _gp # SYM-NEXT: Value: 0x8FF0 # SYM-NEXT: Size: 0 # SYM-NEXT: Binding: Global (0x1) # SYM-NEXT: Type: Object (0x1) # SYM-NEXT: Other: 0 # SYM-NEXT: Section: Absolute (0xFFF1) # 0x6110 == 0xfffc (addend) + 0x0104 (L1) + 0xf000 (GP0) - 0x8ff0 (_gp) # SEC: Contents of section .rodata: # SEC-NEXT: 010c 10610008 00000000 00000000 00000000 !ELF FileHeader: Class: ELFCLASS32 Data: ELFDATA2LSB Type: ET_REL Machine: EM_MIPS Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R2 ] Sections: - Type: SHT_PROGBITS Name: .text Type: SHT_PROGBITS Flags: [ SHF_ALLOC, SHF_EXECINSTR ] AddressAlign: 0x04 Size: 0x08 - Type: SHT_REL Name: .rel.text Type: SHT_REL Link: .symtab Info: .text AddressAlign: 0x04 Relocations: - Offset: 0 Symbol: .rodata Type: R_MIPS_GOT16 - Offset: 4 Symbol: .rodata Type: R_MIPS_LO16 - Type: SHT_PROGBITS Name: .rodata Type: SHT_PROGBITS Flags: [ SHF_ALLOC ] AddressAlign: 0x04 Content: fcff0008000000000000000000000000 - Type: SHT_REL Name: .rel.rodata Type: SHT_REL Link: .symtab Info: .rodata AddressAlign: 0x04 Relocations: - Offset: 0 Symbol: L1 Type: R_MIPS_GPREL16 - Type: SHT_MIPS_REGINFO Name: .reginfo Type: SHT_MIPS_REGINFO Flags: [ SHF_ALLOC ] AddressAlign: 0x01 Content: 000000000000000000000000000000000000000000f00000 Symbols: Local: - Name: L1 Section: .text Value: 0x00 Size: 0x04 - Name: .rodata Type: STT_SECTION Section: .rodata Global: - Name: G1 Section: .text Value: 0x04 Size: 0x04