# Check reading GP0 value from .MIPS.options section # # RUN: yaml2obj -format=elf %s > %t.o # RUN: lld -flavor gnu -target mipsel -e G1 -shared -o %t.so %t.o # 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 (1) # SYM-NEXT: Value: 0xCC # SYM-NEXT: Size: 4 # SYM-NEXT: Binding: Local (0x0) # SYM-NEXT: Type: Function (0x2) # SYM-NEXT: Other: 0 # SYM-NEXT: Section: .text (0x4) # SYM: Name: _gp (34) # 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) # 0xffff80dc == 0x0 (addend) + 0x00cc (L1) + 0x1000 (GP0) - 0x8ff0 (_gp) # SEC: Contents of section .rodata: # SEC-NEXT: 00d4 dc80ffff 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: - Name: .text Type: SHT_PROGBITS Flags: [ SHF_ALLOC, SHF_EXECINSTR ] AddressAlign: 0x04 Size: 0x08 - Name: .rodata Type: SHT_PROGBITS Flags: [ SHF_ALLOC ] AddressAlign: 0x04 Size: 16 - Name: .rel.rodata Type: SHT_REL Link: .symtab Info: .rodata AddressAlign: 0x04 Relocations: - Offset: 0 Symbol: L1 Type: R_MIPS_GPREL32 - Name: .MIPS.options Type: SHT_MIPS_OPTIONS Flags: [ SHF_ALLOC ] AddressAlign: 0x01 Content: "0128000000000000000000000000000000000000000000000000000000100000" 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