blob: 20215871ef0b571bb69d15a1eb006c53d5f1e5a8 [file] [log] [blame]
RUN: llvm-readobj -mips-plt-got %p/Inputs/relocs.obj.elf-mips | \
RUN: FileCheck %s -check-prefix GOT-OBJ
RUN: llvm-readobj -mips-plt-got %p/Inputs/dynamic-table-exe.mips | \
RUN: FileCheck %s -check-prefix GOT-EXE
RUN: llvm-readobj -mips-plt-got %p/Inputs/dynamic-table-so.mips | \
RUN: FileCheck %s -check-prefix GOT-SO
RUN: llvm-readobj -mips-plt-got %p/Inputs/got-tls.so.elf-mips64el | \
RUN: FileCheck %s -check-prefix GOT-TLS
RUN: llvm-readobj -mips-plt-got %p/Inputs/got-empty.exe.mipsel | \
RUN: FileCheck %s -check-prefix GOT-EMPTY
GOT-OBJ: Cannot find PLTGOT dynamic table tag.
GOT-EXE: Primary GOT {
GOT-EXE-NEXT: Canonical gp value: 0x418880
GOT-EXE-NEXT: Reserved entries [
GOT-EXE-NEXT: Entry {
GOT-EXE-NEXT: Address: 0x410890
GOT-EXE-NEXT: Access: -32752
GOT-EXE-NEXT: Initial: 0x0
GOT-EXE-NEXT: Purpose: Lazy resolver
GOT-EXE-NEXT: }
GOT-EXE-NEXT: Entry {
GOT-EXE-NEXT: Address: 0x410894
GOT-EXE-NEXT: Access: -32748
GOT-EXE-NEXT: Initial: 0x80000000
GOT-EXE-NEXT: Purpose: Module pointer (GNU extension)
GOT-EXE-NEXT: }
GOT-EXE-NEXT: ]
GOT-EXE-NEXT: Local entries [
GOT-EXE-NEXT: Entry {
GOT-EXE-NEXT: Address: 0x410898
GOT-EXE-NEXT: Access: -32744
GOT-EXE-NEXT: Initial: 0x400418
GOT-EXE-NEXT: }
GOT-EXE-NEXT: Entry {
GOT-EXE-NEXT: Address: 0x41089C
GOT-EXE-NEXT: Access: -32740
GOT-EXE-NEXT: Initial: 0x410840
GOT-EXE-NEXT: }
GOT-EXE-NEXT: Entry {
GOT-EXE-NEXT: Address: 0x4108A0
GOT-EXE-NEXT: Access: -32736
GOT-EXE-NEXT: Initial: 0x0
GOT-EXE-NEXT: }
GOT-EXE-NEXT: ]
GOT-EXE-NEXT: Global entries [
GOT-EXE-NEXT: Entry {
GOT-EXE-NEXT: Address: 0x4108A4
GOT-EXE-NEXT: Access: -32732
GOT-EXE-NEXT: Initial: 0x0
GOT-EXE-NEXT: Value: 0x0
GOT-EXE-NEXT: Type: Function (0x2)
GOT-EXE-NEXT: Section: Undefined (0x0)
GOT-EXE-NEXT: Name: __gmon_start__@ (1)
GOT-EXE-NEXT: }
GOT-EXE-NEXT: ]
GOT-EXE-NEXT: Number of TLS and multi-GOT entries: 0
GOT-EXE-NEXT: }
GOT-SO: Primary GOT {
GOT-SO-NEXT: Canonical gp value: 0x188D0
GOT-SO-NEXT: Reserved entries [
GOT-SO-NEXT: Entry {
GOT-SO-NEXT: Address: 0x108E0
GOT-SO-NEXT: Access: -32752
GOT-SO-NEXT: Initial: 0x0
GOT-SO-NEXT: Purpose: Lazy resolver
GOT-SO-NEXT: }
GOT-SO-NEXT: Entry {
GOT-SO-NEXT: Address: 0x108E4
GOT-SO-NEXT: Access: -32748
GOT-SO-NEXT: Initial: 0x80000000
GOT-SO-NEXT: Purpose: Module pointer (GNU extension)
GOT-SO-NEXT: }
GOT-SO-NEXT: ]
GOT-SO-NEXT: Local entries [
GOT-SO-NEXT: Entry {
GOT-SO-NEXT: Address: 0x108E8
GOT-SO-NEXT: Access: -32744
GOT-SO-NEXT: Initial: 0x108E0
GOT-SO-NEXT: }
GOT-SO-NEXT: Entry {
GOT-SO-NEXT: Address: 0x108EC
GOT-SO-NEXT: Access: -32740
GOT-SO-NEXT: Initial: 0x10000
GOT-SO-NEXT: }
GOT-SO-NEXT: Entry {
GOT-SO-NEXT: Address: 0x108F0
GOT-SO-NEXT: Access: -32736
GOT-SO-NEXT: Initial: 0x10920
GOT-SO-NEXT: }
GOT-SO-NEXT: Entry {
GOT-SO-NEXT: Address: 0x108F4
GOT-SO-NEXT: Access: -32732
GOT-SO-NEXT: Initial: 0x108CC
GOT-SO-NEXT: }
GOT-SO-NEXT: Entry {
GOT-SO-NEXT: Address: 0x108F8
GOT-SO-NEXT: Access: -32728
GOT-SO-NEXT: Initial: 0x0
GOT-SO-NEXT: }
GOT-SO-NEXT: Entry {
GOT-SO-NEXT: Address: 0x108FC
GOT-SO-NEXT: Access: -32724
GOT-SO-NEXT: Initial: 0x0
GOT-SO-NEXT: }
GOT-SO-NEXT: Entry {
GOT-SO-NEXT: Address: 0x10900
GOT-SO-NEXT: Access: -32720
GOT-SO-NEXT: Initial: 0x0
GOT-SO-NEXT: }
GOT-SO-NEXT: Entry {
GOT-SO-NEXT: Address: 0x10904
GOT-SO-NEXT: Access: -32716
GOT-SO-NEXT: Initial: 0x0
GOT-SO-NEXT: }
GOT-SO-NEXT: ]
GOT-SO-NEXT: Global entries [
GOT-SO-NEXT: Entry {
GOT-SO-NEXT: Address: 0x10908
GOT-SO-NEXT: Access: -32712
GOT-SO-NEXT: Initial: 0x0
GOT-SO-NEXT: Value: 0x0
GOT-SO-NEXT: Type: None (0x0)
GOT-SO-NEXT: Section: Undefined (0x0)
GOT-SO-NEXT: Name: _ITM_registerTMCloneTable@ (87)
GOT-SO-NEXT: }
GOT-SO-NEXT: Entry {
GOT-SO-NEXT: Address: 0x1090C
GOT-SO-NEXT: Access: -32708
GOT-SO-NEXT: Initial: 0x0
GOT-SO-NEXT: Value: 0x0
GOT-SO-NEXT: Type: None (0x0)
GOT-SO-NEXT: Section: Undefined (0x0)
GOT-SO-NEXT: Name: _Jv_RegisterClasses@ (128)
GOT-SO-NEXT: }
GOT-SO-NEXT: Entry {
GOT-SO-NEXT: Address: 0x10910
GOT-SO-NEXT: Access: -32704
GOT-SO-NEXT: Initial: 0x0
GOT-SO-NEXT: Value: 0x0
GOT-SO-NEXT: Type: Function (0x2)
GOT-SO-NEXT: Section: Undefined (0x0)
GOT-SO-NEXT: Name: __gmon_start__@ (23)
GOT-SO-NEXT: }
GOT-SO-NEXT: Entry {
GOT-SO-NEXT: Address: 0x10914
GOT-SO-NEXT: Access: -32700
GOT-SO-NEXT: Initial: 0x840
GOT-SO-NEXT: Value: 0x840
GOT-SO-NEXT: Type: Function (0x2)
GOT-SO-NEXT: Section: Undefined (0x0)
GOT-SO-NEXT: Name: puts@GLIBC_2.0 (162)
GOT-SO-NEXT: }
GOT-SO-NEXT: Entry {
GOT-SO-NEXT: Address: 0x10918
GOT-SO-NEXT: Access: -32696
GOT-SO-NEXT: Initial: 0x0
GOT-SO-NEXT: Value: 0x0
GOT-SO-NEXT: Type: None (0x0)
GOT-SO-NEXT: Section: Undefined (0x0)
GOT-SO-NEXT: Name: _ITM_deregisterTMCloneTable@ (59)
GOT-SO-NEXT: }
GOT-SO-NEXT: Entry {
GOT-SO-NEXT: Address: 0x1091C
GOT-SO-NEXT: Access: -32692
GOT-SO-NEXT: Initial: 0x0
GOT-SO-NEXT: Value: 0x0
GOT-SO-NEXT: Type: Function (0x2)
GOT-SO-NEXT: Section: Undefined (0x0)
GOT-SO-NEXT: Name: __cxa_finalize@GLIBC_2.2 (113)
GOT-SO-NEXT: }
GOT-SO-NEXT: ]
GOT-SO-NEXT: Number of TLS and multi-GOT entries: 0
GOT-SO-NEXT: }
GOT-TLS: Primary GOT {
GOT-TLS-NEXT: Canonical gp value: 0x18BF0
GOT-TLS-NEXT: Reserved entries [
GOT-TLS-NEXT: Entry {
GOT-TLS-NEXT: Address: 0x10C00
GOT-TLS-NEXT: Access: -32752
GOT-TLS-NEXT: Initial: 0x0
GOT-TLS-NEXT: Purpose: Lazy resolver
GOT-TLS-NEXT: }
GOT-TLS-NEXT: Entry {
GOT-TLS-NEXT: Address: 0x10C08
GOT-TLS-NEXT: Access: -32744
GOT-TLS-NEXT: Initial: 0x8000000000000000
GOT-TLS-NEXT: Purpose: Module pointer (GNU extension)
GOT-TLS-NEXT: }
GOT-TLS-NEXT: ]
GOT-TLS-NEXT: Local entries [
GOT-TLS-NEXT: Entry {
GOT-TLS-NEXT: Address: 0x10C10
GOT-TLS-NEXT: Access: -32736
GOT-TLS-NEXT: Initial: 0x10000
GOT-TLS-NEXT: }
GOT-TLS-NEXT: Entry {
GOT-TLS-NEXT: Address: 0x10C18
GOT-TLS-NEXT: Access: -32728
GOT-TLS-NEXT: Initial: 0x10C00
GOT-TLS-NEXT: }
GOT-TLS-NEXT: Entry {
GOT-TLS-NEXT: Address: 0x10C20
GOT-TLS-NEXT: Access: -32720
GOT-TLS-NEXT: Initial: 0x10CB8
GOT-TLS-NEXT: }
GOT-TLS-NEXT: Entry {
GOT-TLS-NEXT: Address: 0x10C28
GOT-TLS-NEXT: Access: -32712
GOT-TLS-NEXT: Initial: 0x10BF0
GOT-TLS-NEXT: }
GOT-TLS-NEXT: Entry {
GOT-TLS-NEXT: Address: 0x10C30
GOT-TLS-NEXT: Access: -32704
GOT-TLS-NEXT: Initial: 0x0
GOT-TLS-NEXT: }
GOT-TLS-NEXT: Entry {
GOT-TLS-NEXT: Address: 0x10C38
GOT-TLS-NEXT: Access: -32696
GOT-TLS-NEXT: Initial: 0x948
GOT-TLS-NEXT: }
GOT-TLS-NEXT: Entry {
GOT-TLS-NEXT: Address: 0x10C40
GOT-TLS-NEXT: Access: -32688
GOT-TLS-NEXT: Initial: 0xA20
GOT-TLS-NEXT: }
GOT-TLS-NEXT: Entry {
GOT-TLS-NEXT: Address: 0x10C48
GOT-TLS-NEXT: Access: -32680
GOT-TLS-NEXT: Initial: 0xAF0
GOT-TLS-NEXT: }
GOT-TLS-NEXT: Entry {
GOT-TLS-NEXT: Address: 0x10C50
GOT-TLS-NEXT: Access: -32672
GOT-TLS-NEXT: Initial: 0x0
GOT-TLS-NEXT: }
GOT-TLS-NEXT: Entry {
GOT-TLS-NEXT: Address: 0x10C58
GOT-TLS-NEXT: Access: -32664
GOT-TLS-NEXT: Initial: 0x0
GOT-TLS-NEXT: }
GOT-TLS-NEXT: Entry {
GOT-TLS-NEXT: Address: 0x10C60
GOT-TLS-NEXT: Access: -32656
GOT-TLS-NEXT: Initial: 0x0
GOT-TLS-NEXT: }
GOT-TLS-NEXT: ]
GOT-TLS-NEXT: Global entries [
GOT-TLS-NEXT: Entry {
GOT-TLS-NEXT: Address: 0x10C68
GOT-TLS-NEXT: Access: -32648
GOT-TLS-NEXT: Initial: 0x0
GOT-TLS-NEXT: Value: 0x0
GOT-TLS-NEXT: Type: None (0x0)
GOT-TLS-NEXT: Section: Undefined (0x0)
GOT-TLS-NEXT: Name: _ITM_registerTMCloneTable@ (78)
GOT-TLS-NEXT: }
GOT-TLS-NEXT: Entry {
GOT-TLS-NEXT: Address: 0x10C70
GOT-TLS-NEXT: Access: -32640
GOT-TLS-NEXT: Initial: 0x0
GOT-TLS-NEXT: Value: 0x0
GOT-TLS-NEXT: Type: None (0x0)
GOT-TLS-NEXT: Section: Undefined (0x0)
GOT-TLS-NEXT: Name: _Jv_RegisterClasses@ (119)
GOT-TLS-NEXT: }
GOT-TLS-NEXT: Entry {
GOT-TLS-NEXT: Address: 0x10C78
GOT-TLS-NEXT: Access: -32632
GOT-TLS-NEXT: Initial: 0x0
GOT-TLS-NEXT: Value: 0x0
GOT-TLS-NEXT: Type: Function (0x2)
GOT-TLS-NEXT: Section: Undefined (0x0)
GOT-TLS-NEXT: Name: __gmon_start__@ (23)
GOT-TLS-NEXT: }
GOT-TLS-NEXT: Entry {
GOT-TLS-NEXT: Address: 0x10C80
GOT-TLS-NEXT: Access: -32624
GOT-TLS-NEXT: Initial: 0xB60
GOT-TLS-NEXT: Value: 0xB60
GOT-TLS-NEXT: Type: Function (0x2)
GOT-TLS-NEXT: Section: Undefined (0x0)
GOT-TLS-NEXT: Name: __tls_get_addr@GLIBC_2.3 (150)
GOT-TLS-NEXT: }
GOT-TLS-NEXT: Entry {
GOT-TLS-NEXT: Address: 0x10C88
GOT-TLS-NEXT: Access: -32616
GOT-TLS-NEXT: Initial: 0x0
GOT-TLS-NEXT: Value: 0x0
GOT-TLS-NEXT: Type: None (0x0)
GOT-TLS-NEXT: Section: Undefined (0x0)
GOT-TLS-NEXT: Name: _ITM_deregisterTMCloneTable@ (50)
GOT-TLS-NEXT: }
GOT-TLS-NEXT: Entry {
GOT-TLS-NEXT: Address: 0x10C90
GOT-TLS-NEXT: Access: -32608
GOT-TLS-NEXT: Initial: 0x0
GOT-TLS-NEXT: Value: 0x0
GOT-TLS-NEXT: Type: Function (0x2)
GOT-TLS-NEXT: Section: Undefined (0x0)
GOT-TLS-NEXT: Name: __cxa_finalize@GLIBC_2.2 (104)
GOT-TLS-NEXT: }
GOT-TLS-NEXT: ]
GOT-TLS-NEXT: Number of TLS and multi-GOT entries: 4
GOT-TLS-NEXT: }
GOT-EMPTY: Primary GOT {
GOT-EMPTY-NEXT: Canonical gp value: 0x409FF0
GOT-EMPTY-NEXT: Reserved entries [
GOT-EMPTY-NEXT: Entry {
GOT-EMPTY-NEXT: Address: 0x402000
GOT-EMPTY-NEXT: Access: -32752
GOT-EMPTY-NEXT: Initial: 0x0
GOT-EMPTY-NEXT: Purpose: Lazy resolver
GOT-EMPTY-NEXT: }
GOT-EMPTY-NEXT: Entry {
GOT-EMPTY-NEXT: Address: 0x402004
GOT-EMPTY-NEXT: Access: -32748
GOT-EMPTY-NEXT: Initial: 0x80000000
GOT-EMPTY-NEXT: Purpose: Module pointer (GNU extension)
GOT-EMPTY-NEXT: }
GOT-EMPTY-NEXT: ]
GOT-EMPTY-NEXT: Local entries [
GOT-EMPTY-NEXT: ]
GOT-EMPTY-NEXT: Global entries [
GOT-EMPTY-NEXT: ]
GOT-EMPTY-NEXT: Number of TLS and multi-GOT entries: 2
GOT-EMPTY-NEXT: }