# Check R_MIPS_GPREL32 relocation handling. # # RUN: yaml2obj -format=elf %s > %t-obj # RUN: lld -flavor old-gnu -target mipsel -o %t-exe %t-obj # RUN: llvm-readobj -symbols %t-exe | FileCheck -check-prefix=SYM %s # RUN: llvm-objdump -s %t-exe | FileCheck -check-prefix=SEC %s # SYM: Name: $L1 # SYM-NEXT: Value: 0x400160 # SYM-NEXT: Size: 4 # SYM-NEXT: Binding: Local (0x0) # SYM-NEXT: Type: Function (0x2) # SYM-NEXT: Other: 0 # SYM-NEXT: Section: .text (0x6) # # SYM: Name: _gp # SYM-NEXT: Value: 0x408FF0 # SYM-NEXT: Size: 0 # SYM-NEXT: Binding: Global (0x1) # SYM-NEXT: Type: Object (0x1) # SYM-NEXT: Other: 0 # SYM-NEXT: Section: Absolute (0xFFF1) # 0x08ff7153 == 0x8000001 (addend) + 0x400140 ($L1) + # 0x1000002 (GP0) - 0x408FF0 (_gp) # SEC: Contents of section .rodata: # SEC-NEXT: 400170 7371ff08 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 Content: 00000000000000000000000000000000 - Type: SHT_PROGBITS Name: .rodata Type: SHT_PROGBITS Flags: [ SHF_ALLOC ] AddressAlign: 0x04 Content: 01000008000000000000000000000000 - Type: SHT_REL Name: .rel.rodata Type: SHT_REL Link: .symtab Info: .rodata AddressAlign: 0x04 Relocations: - Offset: 0 Symbol: $L1 Type: R_MIPS_GPREL32 - Type: SHT_MIPS_REGINFO Name: .reginfo Type: SHT_MIPS_REGINFO Flags: [ SHF_ALLOC ] AddressAlign: 0x01 Content: 000000000000000000000000000000000000000002000001 Symbols: Local: - Name: $L1 Section: .text Value: 0x00 - Name: .rodata Type: STT_SECTION Section: .rodata Global: - Name: __start Section: .text Type: STT_FUNC Value: 0x04 Size: 12 - Name: _gp_disp