aboutsummaryrefslogtreecommitdiff
path: root/test/tools
diff options
context:
space:
mode:
Diffstat (limited to 'test/tools')
-rw-r--r--test/tools/llvm-cvtres/machine.test56
-rw-r--r--test/tools/llvm-cvtres/symbols.test12
-rw-r--r--test/tools/llvm-dwarfdump/X86/lookup.s7
-rw-r--r--test/tools/llvm-objcopy/add-section-remove.test36
-rw-r--r--test/tools/llvm-objcopy/add-section.test37
-rw-r--r--test/tools/llvm-readobj/mips-got.test136
-rw-r--r--test/tools/llvm-readobj/mips-plt.test32
7 files changed, 279 insertions, 37 deletions
diff --git a/test/tools/llvm-cvtres/machine.test b/test/tools/llvm-cvtres/machine.test
index cac36062f301..5ce6cbaf697d 100644
--- a/test/tools/llvm-cvtres/machine.test
+++ b/test/tools/llvm-cvtres/machine.test
@@ -29,46 +29,46 @@ X86: Machine: IMAGE_FILE_MACHINE_I386 (0x14C)
X86-DAG: Relocations [
X86-DAG: .rsrc$01 {
X86-NEXT: 0x1E8 IMAGE_REL_I386_DIR32NB $R000000
-X86-NEXT: 0x198 IMAGE_REL_I386_DIR32NB $R000018
-X86-NEXT: 0x1A8 IMAGE_REL_I386_DIR32NB $R000340
-X86-NEXT: 0x1C8 IMAGE_REL_I386_DIR32NB $R000668
-X86-NEXT: 0x1D8 IMAGE_REL_I386_DIR32NB $R000698
-X86-NEXT: 0x1F8 IMAGE_REL_I386_DIR32NB $R000708
-X86-NEXT: 0x1B8 IMAGE_REL_I386_DIR32NB $R000720
-X86-NEXT: 0x188 IMAGE_REL_I386_DIR32NB $R000750
+X86-NEXT: 0x198 IMAGE_REL_I386_DIR32NB $R000001
+X86-NEXT: 0x1A8 IMAGE_REL_I386_DIR32NB $R000002
+X86-NEXT: 0x1C8 IMAGE_REL_I386_DIR32NB $R000003
+X86-NEXT: 0x1D8 IMAGE_REL_I386_DIR32NB $R000004
+X86-NEXT: 0x1F8 IMAGE_REL_I386_DIR32NB $R000005
+X86-NEXT: 0x1B8 IMAGE_REL_I386_DIR32NB $R000006
+X86-NEXT: 0x188 IMAGE_REL_I386_DIR32NB $R000007
X64: Machine: IMAGE_FILE_MACHINE_AMD64 (0x8664)
X64-DAG: Relocations [
X64-DAG: .rsrc$01 {
X64-NEXT: 0x1E8 IMAGE_REL_AMD64_ADDR32NB $R000000
-X64-NEXT: 0x198 IMAGE_REL_AMD64_ADDR32NB $R000018
-X64-NEXT: 0x1A8 IMAGE_REL_AMD64_ADDR32NB $R000340
-X64-NEXT: 0x1C8 IMAGE_REL_AMD64_ADDR32NB $R000668
-X64-NEXT: 0x1D8 IMAGE_REL_AMD64_ADDR32NB $R000698
-X64-NEXT: 0x1F8 IMAGE_REL_AMD64_ADDR32NB $R000708
-X64-NEXT: 0x1B8 IMAGE_REL_AMD64_ADDR32NB $R000720
-X64-NEXT: 0x188 IMAGE_REL_AMD64_ADDR32NB $R000750
+X64-NEXT: 0x198 IMAGE_REL_AMD64_ADDR32NB $R000001
+X64-NEXT: 0x1A8 IMAGE_REL_AMD64_ADDR32NB $R000002
+X64-NEXT: 0x1C8 IMAGE_REL_AMD64_ADDR32NB $R000003
+X64-NEXT: 0x1D8 IMAGE_REL_AMD64_ADDR32NB $R000004
+X64-NEXT: 0x1F8 IMAGE_REL_AMD64_ADDR32NB $R000005
+X64-NEXT: 0x1B8 IMAGE_REL_AMD64_ADDR32NB $R000006
+X64-NEXT: 0x188 IMAGE_REL_AMD64_ADDR32NB $R000007
ARM: Machine: IMAGE_FILE_MACHINE_ARMNT (0x1C4)
ARM-DAG: Relocations [
ARM-DAG: .rsrc$01 {
ARM-NEXT: 0x1E8 IMAGE_REL_ARM_ADDR32NB $R000000
-ARM-NEXT: 0x198 IMAGE_REL_ARM_ADDR32NB $R000018
-ARM-NEXT: 0x1A8 IMAGE_REL_ARM_ADDR32NB $R000340
-ARM-NEXT: 0x1C8 IMAGE_REL_ARM_ADDR32NB $R000668
-ARM-NEXT: 0x1D8 IMAGE_REL_ARM_ADDR32NB $R000698
-ARM-NEXT: 0x1F8 IMAGE_REL_ARM_ADDR32NB $R000708
-ARM-NEXT: 0x1B8 IMAGE_REL_ARM_ADDR32NB $R000720
-ARM-NEXT: 0x188 IMAGE_REL_ARM_ADDR32NB $R000750
+ARM-NEXT: 0x198 IMAGE_REL_ARM_ADDR32NB $R000001
+ARM-NEXT: 0x1A8 IMAGE_REL_ARM_ADDR32NB $R000002
+ARM-NEXT: 0x1C8 IMAGE_REL_ARM_ADDR32NB $R000003
+ARM-NEXT: 0x1D8 IMAGE_REL_ARM_ADDR32NB $R000004
+ARM-NEXT: 0x1F8 IMAGE_REL_ARM_ADDR32NB $R000005
+ARM-NEXT: 0x1B8 IMAGE_REL_ARM_ADDR32NB $R000006
+ARM-NEXT: 0x188 IMAGE_REL_ARM_ADDR32NB $R000007
ARM64: Machine: IMAGE_FILE_MACHINE_ARM64 (0xAA64)
ARM64-DAG: Relocations [
ARM64-DAG: .rsrc$01 {
ARM64-NEXT: 0x1E8 IMAGE_REL_ARM64_ADDR32NB $R000000
-ARM64-NEXT: 0x198 IMAGE_REL_ARM64_ADDR32NB $R000018
-ARM64-NEXT: 0x1A8 IMAGE_REL_ARM64_ADDR32NB $R000340
-ARM64-NEXT: 0x1C8 IMAGE_REL_ARM64_ADDR32NB $R000668
-ARM64-NEXT: 0x1D8 IMAGE_REL_ARM64_ADDR32NB $R000698
-ARM64-NEXT: 0x1F8 IMAGE_REL_ARM64_ADDR32NB $R000708
-ARM64-NEXT: 0x1B8 IMAGE_REL_ARM64_ADDR32NB $R000720
-ARM64-NEXT: 0x188 IMAGE_REL_ARM64_ADDR32NB $R000750
+ARM64-NEXT: 0x198 IMAGE_REL_ARM64_ADDR32NB $R000001
+ARM64-NEXT: 0x1A8 IMAGE_REL_ARM64_ADDR32NB $R000002
+ARM64-NEXT: 0x1C8 IMAGE_REL_ARM64_ADDR32NB $R000003
+ARM64-NEXT: 0x1D8 IMAGE_REL_ARM64_ADDR32NB $R000004
+ARM64-NEXT: 0x1F8 IMAGE_REL_ARM64_ADDR32NB $R000005
+ARM64-NEXT: 0x1B8 IMAGE_REL_ARM64_ADDR32NB $R000006
+ARM64-NEXT: 0x188 IMAGE_REL_ARM64_ADDR32NB $R000007
diff --git a/test/tools/llvm-cvtres/symbols.test b/test/tools/llvm-cvtres/symbols.test
index 2ca3a193ac40..14f5c360d454 100644
--- a/test/tools/llvm-cvtres/symbols.test
+++ b/test/tools/llvm-cvtres/symbols.test
@@ -13,21 +13,21 @@ RUN: llvm-readobj -symbols %t | FileCheck %s
CHECK: Name: $R000000
CHECK-NEXT: Value: 0
CHECK-NEXT: Section: .rsrc$02
-CHECK: Name: $R000018
+CHECK: Name: $R000001
CHECK-NEXT: Value: 24
CHECK-NEXT: Section: .rsrc$02
-CHECK: Name: $R000340
+CHECK: Name: $R000002
CHECK-NEXT: Value: 832
CHECK-NEXT: Section: .rsrc$02
-CHECK: Name: $R000668
+CHECK: Name: $R000003
CHECK-NEXT: Value: 1640
CHECK-NEXT: Section: .rsrc$02
-CHECK: Name: $R000698
+CHECK: Name: $R000004
CHECK-NEXT: Value: 1688
CHECK-NEXT: Section: .rsrc$02
-CHECK: Name: $R000720
+CHECK: Name: $R000006
CHECK-NEXT: Value: 1824
CHECK-NEXT: Section: .rsrc$02
-CHECK: Name: $R000750
+CHECK: Name: $R000007
CHECK-NEXT: Value: 1872
CHECK-NEXT: Section: .rsrc$02
diff --git a/test/tools/llvm-dwarfdump/X86/lookup.s b/test/tools/llvm-dwarfdump/X86/lookup.s
index 652844447c11..d09528d667fa 100644
--- a/test/tools/llvm-dwarfdump/X86/lookup.s
+++ b/test/tools/llvm-dwarfdump/X86/lookup.s
@@ -1,5 +1,10 @@
# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \
-# RUN: | llvm-dwarfdump -lookup=0x7fffffff - | \
+# RUN: | llvm-dwarfdump -lookup=0xffffffff - | \
+# RUN: FileCheck %s --check-prefix=EMPTY --allow-empty
+# EMPTY: {{^$}}
+
+# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \
+# RUN: | llvm-dwarfdump -lookup=0xffffffffffffffff - | \
# RUN: FileCheck %s --check-prefix=EMPTY --allow-empty
# EMPTY: {{^$}}
diff --git a/test/tools/llvm-objcopy/add-section-remove.test b/test/tools/llvm-objcopy/add-section-remove.test
new file mode 100644
index 000000000000..0dee1182a28d
--- /dev/null
+++ b/test/tools/llvm-objcopy/add-section-remove.test
@@ -0,0 +1,36 @@
+# RUN: yaml2obj %s > %t
+# RUN: echo 0000 > %t.sec
+# RUN: llvm-objcopy -R=.test2 -add-section=.test2=%t.sec %t %t2
+# RUN: llvm-readobj -file-headers -sections -section-data %t2 | FileCheck %s
+
+!ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_X86_64
+Sections:
+ - Name: .test1
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC ]
+ Content: "c3c3c3c3"
+ - Name: .test2
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC ]
+ Content: "DEADBEEF"
+ - Name: .test3
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC ]
+ Content: "32323232"
+
+# CHECK: SectionHeaderCount: 7
+
+# CHECK: Name: .test1
+# CHECK: Name: .test3
+# CHECK: Name: .symtab
+# CHECK: Name: .strtab
+# CHECK: Name: .shstrtab
+# CHECK: Name: .test2
+# CHECK: SectionData (
+# CHECK-NEXT: 0000: 30303030
+# CHECK-NEXT: )
diff --git a/test/tools/llvm-objcopy/add-section.test b/test/tools/llvm-objcopy/add-section.test
new file mode 100644
index 000000000000..048edcba227f
--- /dev/null
+++ b/test/tools/llvm-objcopy/add-section.test
@@ -0,0 +1,37 @@
+# RUN: yaml2obj %s > %t
+# RUN: llvm-objcopy -O binary -j .test2 %t %t.sec
+# RUN: llvm-objcopy -R=.test2 %t %t2
+# RUN: llvm-objcopy -add-section=.test2=%t.sec %t2 %t3
+# RUN: llvm-readobj -file-headers -sections -section-data %t3 | FileCheck %s
+
+!ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_X86_64
+Sections:
+ - Name: .test1
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC ]
+ Content: "c3c3c3c3"
+ - Name: .test2
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC ]
+ Content: "DEADBEEF"
+ - Name: .test3
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC ]
+ Content: "32323232"
+
+# CHECK: SectionHeaderCount: 7
+
+# CHECK: Name: .test1
+# CHECK: Name: .test3
+# CHECK: Name: .symtab
+# CHECK: Name: .strtab
+# CHECK: Name: .shstrtab
+# CHECK: Name: .test2
+# CHECK: SectionData (
+# CHECK-NEXT: 0000: DEADBEEF
+# CHECK-NEXT: )
diff --git a/test/tools/llvm-readobj/mips-got.test b/test/tools/llvm-readobj/mips-got.test
index 65ccf13f2b4c..a5c15fdfe230 100644
--- a/test/tools/llvm-readobj/mips-got.test
+++ b/test/tools/llvm-readobj/mips-got.test
@@ -1,4 +1,4 @@
-RUN: llvm-readobj -mips-plt-got %p/Inputs/relocs.obj.elf-mips | \
+RUN: not llvm-readobj -mips-plt-got %p/Inputs/relocs.obj.elf-mips 2>&1 | \
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
@@ -11,7 +11,26 @@ RUN: FileCheck %s -check-prefix GOT-EMPTY
RUN: llvm-readobj -mips-plt-got %p/Inputs/got-static.exe.mips | \
RUN: FileCheck %s -check-prefix GOT-STATIC
-GOT-OBJ: Cannot find .got section
+RUN: not llvm-readobj -mips-plt-got %p/Inputs/relocs.obj.elf-mips \
+RUN: --elf-output-style=GNU 2>&1 | \
+RUN: FileCheck %s -check-prefix GNU-GOT-OBJ
+RUN: llvm-readobj -mips-plt-got %p/Inputs/dynamic-table-exe.mips \
+RUN: --elf-output-style=GNU | \
+RUN: FileCheck %s -check-prefix GNU-GOT-EXE
+RUN: llvm-readobj -mips-plt-got %p/Inputs/dynamic-table-so.mips \
+RUN: --elf-output-style=GNU | \
+RUN: FileCheck %s -check-prefix GNU-GOT-SO
+RUN: llvm-readobj -mips-plt-got %p/Inputs/got-tls.so.elf-mips64el \
+RUN: --elf-output-style=GNU | \
+RUN: FileCheck %s -check-prefix GNU-GOT-TLS
+RUN: llvm-readobj -mips-plt-got %p/Inputs/got-empty.exe.mipsel \
+RUN: --elf-output-style=GNU | \
+RUN: FileCheck %s -check-prefix GNU-GOT-EMPTY
+RUN: llvm-readobj -mips-plt-got %p/Inputs/got-static.exe.mips \
+RUN: --elf-output-style=GNU | \
+RUN: FileCheck %s -check-prefix GNU-GOT-STATIC
+
+GOT-OBJ: Error reading file: Cannot find .got section.
GOT-EXE: Primary GOT {
GOT-EXE-NEXT: Canonical gp value: 0x418880
@@ -366,3 +385,116 @@ GOT-STATIC-NEXT: Initial: 0x400104
GOT-STATIC-NEXT: }
GOT-STATIC-NEXT: ]
GOT-STATIC-NEXT: }
+
+GNU-GOT-OBJ: Error reading file: Cannot find .got section.
+
+GNU-GOT-EXE: Primary GOT:
+GNU-GOT-EXE-NEXT: Canonical gp value: 00418880
+
+GNU-GOT-EXE: Reserved entries:
+GNU-GOT-EXE-NEXT: Address Access Initial Purpose
+GNU-GOT-EXE-NEXT: 00410890 -32752(gp) 00000000 Lazy resolver
+GNU-GOT-EXE-NEXT: 00410894 -32748(gp) 80000000 Module pointer (GNU extension)
+
+GNU-GOT-EXE: Local entries:
+GNU-GOT-EXE-NEXT: Address Access Initial
+GNU-GOT-EXE-NEXT: 00410898 -32744(gp) 00400418
+GNU-GOT-EXE-NEXT: 0041089c -32740(gp) 00410840
+GNU-GOT-EXE-NEXT: 004108a0 -32736(gp) 00000000
+
+GNU-GOT-EXE: Global entries:
+GNU-GOT-EXE-NEXT: Address Access Initial Sym.Val. Type Ndx Name
+GNU-GOT-EXE-NEXT: 004108a4 -32732(gp) 00000000 00000000 FUNC UND __gmon_start__
+
+GNU-GOT-EXE: PLT GOT:
+
+GNU-GOT-EXE: Reserved entries:
+GNU-GOT-EXE-NEXT: Address Initial Purpose
+GNU-GOT-EXE-NEXT: 00410854 00000000 PLT lazy resolver
+GNU-GOT-EXE-NEXT: 00410894 80000000 Module pointer
+
+GNU-GOT-EXE: Entries:
+GNU-GOT-EXE-NEXT: Address Initial Sym.Val. Type Ndx Name
+GNU-GOT-EXE-NEXT: 0041085c 00400800 00000000 FUNC UND puts
+GNU-GOT-EXE-NEXT: 00410860 00400800 00000000 FUNC UND __libc_start_main
+
+GNU-GOT-SO: Primary GOT:
+GNU-GOT-SO-NEXT: Canonical gp value: 000188d0
+
+GNU-GOT-SO: Reserved entries:
+GNU-GOT-SO-NEXT: Address Access Initial Purpose
+GNU-GOT-SO-NEXT: 000108e0 -32752(gp) 00000000 Lazy resolver
+GNU-GOT-SO-NEXT: 000108e4 -32748(gp) 80000000 Module pointer (GNU extension)
+
+GNU-GOT-SO: Local entries:
+GNU-GOT-SO-NEXT: Address Access Initial
+GNU-GOT-SO-NEXT: 000108e8 -32744(gp) 000108e0
+GNU-GOT-SO-NEXT: 000108ec -32740(gp) 00010000
+GNU-GOT-SO-NEXT: 000108f0 -32736(gp) 00010920
+GNU-GOT-SO-NEXT: 000108f4 -32732(gp) 000108cc
+GNU-GOT-SO-NEXT: 000108f8 -32728(gp) 00000000
+GNU-GOT-SO-NEXT: 000108fc -32724(gp) 00000000
+GNU-GOT-SO-NEXT: 00010900 -32720(gp) 00000000
+GNU-GOT-SO-NEXT: 00010904 -32716(gp) 00000000
+
+GNU-GOT-SO: Global entries:
+GNU-GOT-SO-NEXT: Address Access Initial Sym.Val. Type Ndx Name
+GNU-GOT-SO-NEXT: 00010908 -32712(gp) 00000000 00000000 NOTYPE UND _ITM_registerTMCloneTable
+GNU-GOT-SO-NEXT: 0001090c -32708(gp) 00000000 00000000 NOTYPE UND _Jv_RegisterClasses
+GNU-GOT-SO-NEXT: 00010910 -32704(gp) 00000000 00000000 FUNC UND __gmon_start__
+GNU-GOT-SO-NEXT: 00010914 -32700(gp) 00000840 00000840 FUNC UND puts
+GNU-GOT-SO-NEXT: 00010918 -32696(gp) 00000000 00000000 NOTYPE UND _ITM_deregisterTMCloneTable
+GNU-GOT-SO-NEXT: 0001091c -32692(gp) 00000000 00000000 FUNC UND __cxa_finalize
+
+GNU-GOT-TLS: Primary GOT:
+GNU-GOT-TLS-NEXT: Canonical gp value: 0000000000018bf0
+
+GNU-GOT-TLS: Reserved entries:
+GNU-GOT-TLS-NEXT: Address Access Initial Purpose
+GNU-GOT-TLS-NEXT: 0000000000010c00 -32752(gp) 0000000000000000 Lazy resolver
+GNU-GOT-TLS-NEXT: 0000000000010c08 -32744(gp) 8000000000000000 Module pointer (GNU extension)
+
+GNU-GOT-TLS: Local entries:
+GNU-GOT-TLS-NEXT: Address Access Initial
+GNU-GOT-TLS-NEXT: 0000000000010c10 -32736(gp) 0000000000010000
+GNU-GOT-TLS-NEXT: 0000000000010c18 -32728(gp) 0000000000010c00
+GNU-GOT-TLS-NEXT: 0000000000010c20 -32720(gp) 0000000000010cb8
+GNU-GOT-TLS-NEXT: 0000000000010c28 -32712(gp) 0000000000010bf0
+GNU-GOT-TLS-NEXT: 0000000000010c30 -32704(gp) 0000000000000000
+GNU-GOT-TLS-NEXT: 0000000000010c38 -32696(gp) 0000000000000948
+GNU-GOT-TLS-NEXT: 0000000000010c40 -32688(gp) 0000000000000a20
+GNU-GOT-TLS-NEXT: 0000000000010c48 -32680(gp) 0000000000000af0
+GNU-GOT-TLS-NEXT: 0000000000010c50 -32672(gp) 0000000000000000
+GNU-GOT-TLS-NEXT: 0000000000010c58 -32664(gp) 0000000000000000
+GNU-GOT-TLS-NEXT: 0000000000010c60 -32656(gp) 0000000000000000
+
+GNU-GOT-TLS: Global entries:
+GNU-GOT-TLS-NEXT: Address Access Initial Sym.Val. Type Ndx Name
+GNU-GOT-TLS-NEXT: 0000000000010c68 -32648(gp) 0000000000000000 0000000000000000 NOTYPE UND _ITM_registerTMCloneTable
+GNU-GOT-TLS-NEXT: 0000000000010c70 -32640(gp) 0000000000000000 0000000000000000 NOTYPE UND _Jv_RegisterClasses
+GNU-GOT-TLS-NEXT: 0000000000010c78 -32632(gp) 0000000000000000 0000000000000000 FUNC UND __gmon_start__
+GNU-GOT-TLS-NEXT: 0000000000010c80 -32624(gp) 0000000000000b60 0000000000000b60 FUNC UND __tls_get_addr
+GNU-GOT-TLS-NEXT: 0000000000010c88 -32616(gp) 0000000000000000 0000000000000000 NOTYPE UND _ITM_deregisterTMCloneTable
+GNU-GOT-TLS-NEXT: 0000000000010c90 -32608(gp) 0000000000000000 0000000000000000 FUNC UND __cxa_finalize
+
+GNU-GOTY : Primary GOT:
+GNU-GOT-EMPTY: Canonical gp value: 00409ff0
+
+GNU-GOTY : Reserved entries:
+GNU-GOT-EMPTY: Address Access Initial Purpose
+GNU-GOT-EMPTY: 00402000 -32752(gp) 00000000 Lazy resolver
+GNU-GOT-EMPTY: 00402004 -32748(gp) 80000000 Module pointer (GNU extension)
+
+GNU-GOT-STATIC: Static GOT:
+GNU-GOT-STATIC-NEXT: Canonical gp value: 00418100
+
+GNU-GOT-STATIC: Reserved entries:
+GNU-GOT-STATIC-NEXT: Address Access Initial Purpose
+GNU-GOT-STATIC-NEXT: 00410110 -32752(gp) 00000000 Lazy resolver
+GNU-GOT-STATIC-NEXT: 00410114 -32748(gp) 80000000 Module pointer (GNU extension)
+
+GNU-GOT-STATIC: Local entries:
+GNU-GOT-STATIC-NEXT: Address Access Initial
+GNU-GOT-STATIC-NEXT: 00410118 -32744(gp) 00400000
+GNU-GOT-STATIC-NEXT: 0041011c -32740(gp) 00400100
+GNU-GOT-STATIC-NEXT: 00410120 -32736(gp) 00400104
diff --git a/test/tools/llvm-readobj/mips-plt.test b/test/tools/llvm-readobj/mips-plt.test
index ab0824b0be68..f41940c9cf34 100644
--- a/test/tools/llvm-readobj/mips-plt.test
+++ b/test/tools/llvm-readobj/mips-plt.test
@@ -1,4 +1,7 @@
RUN: llvm-readobj -mips-plt-got %p/Inputs/got-plt.exe.elf-mipsel | FileCheck %s
+RUN: llvm-readobj -mips-plt-got --elf-output-style=GNU \
+RUN: %p/Inputs/got-plt.exe.elf-mipsel \
+RUN: | FileCheck --check-prefix=GNU %s
CHECK: PLT GOT {
CHECK-NEXT: Reserved entries [
@@ -32,3 +35,32 @@ CHECK-NEXT: Name: __libc_start_main@GLIBC_2.0 (53)
CHECK-NEXT: }
CHECK-NEXT: ]
CHECK-NEXT: }
+
+GNU: Primary GOT:
+GNU-NEXT: Canonical gp value: 00418840
+
+GNU: Reserved entries:
+GNU-NEXT: Address Access Initial Purpose
+GNU-NEXT: 00410850 -32752(gp) 00000000 Lazy resolver
+GNU-NEXT: 00410854 -32748(gp) 80000000 Module pointer (GNU extension)
+
+GNU: Local entries:
+GNU-NEXT: Address Access Initial
+GNU-NEXT: 00410858 -32744(gp) 004003d4
+GNU-NEXT: 0041085c -32740(gp) 00410800
+GNU-NEXT: 00410860 -32736(gp) 00000000
+
+GNU: Global entries:
+GNU-NEXT: Address Access Initial Sym.Val. Type Ndx Name
+GNU-NEXT: 00410864 -32732(gp) 00000000 00000000 FUNC UND __gmon_start__
+GNU-NEXT: PLT GOT:
+
+GNU: Reserved entries:
+GNU-NEXT: Address Initial Purpose
+GNU-NEXT: 00410814 00000000 PLT lazy resolver
+GNU-NEXT: 00410854 80000000 Module pointer
+
+GNU: Entries:
+GNU-NEXT: Address Initial Sym.Val. Type Ndx Name
+GNU-NEXT: 0041081c 004007c0 00000000 FUNC UND puts
+GNU-NEXT: 00410820 004007c0 00000000 FUNC UND __libc_start_main