summaryrefslogtreecommitdiffstats
path: root/llvm/test/Object
diff options
context:
space:
mode:
authorSimon Atanasyan <simon@atanasyan.com>2015-02-17 18:54:22 +0000
committerSimon Atanasyan <simon@atanasyan.com>2015-02-17 18:54:22 +0000
commit1d902b7cc7cfc2f08cd6ba52acd1cd44ac291b93 (patch)
treeea1f3197cbdde0da4496e0d3a8ab1795f827260f /llvm/test/Object
parent79df18703451f0445a1c5a2ccbc47597666e9d0c (diff)
downloadbcm5719-llvm-1d902b7cc7cfc2f08cd6ba52acd1cd44ac291b93.tar.gz
bcm5719-llvm-1d902b7cc7cfc2f08cd6ba52acd1cd44ac291b93.zip
[Object] Support reading 64-bit MIPS ELF archives
The 64-bit MIPS ELF archive file format is used by MIPS64 targets. The main difference from a regular archive file is the symbol table format: 1. ar_name is equal to "/SYM64/" 2. number of symbols and offsets are 64-bit integers http://techpubs.sgi.com/library/manuals/4000/007-4658-001/pdf/007-4658-001.pdf Page 96 The patch allows reading of such archive files by llvm-nm, llvm-objdump and other tools. But it does not support archive files with number of symbols and/or offsets exceed 2^32. I think it is a rather rare case requires more significant modification of `Archive` class code. http://reviews.llvm.org/D7546 llvm-svn: 229520
Diffstat (limited to 'llvm/test/Object')
-rw-r--r--llvm/test/Object/Inputs/archive-test.a-irix6-mips64elbin0 -> 6608 bytes
-rw-r--r--llvm/test/Object/nm-irix6.test27
2 files changed, 27 insertions, 0 deletions
diff --git a/llvm/test/Object/Inputs/archive-test.a-irix6-mips64el b/llvm/test/Object/Inputs/archive-test.a-irix6-mips64el
new file mode 100644
index 00000000000..ccc2634be7a
--- /dev/null
+++ b/llvm/test/Object/Inputs/archive-test.a-irix6-mips64el
Binary files differ
diff --git a/llvm/test/Object/nm-irix6.test b/llvm/test/Object/nm-irix6.test
new file mode 100644
index 00000000000..047665cbf32
--- /dev/null
+++ b/llvm/test/Object/nm-irix6.test
@@ -0,0 +1,27 @@
+# Check reading IRIX 6.0 64-bit archive file.
+RUN: llvm-nm %p/Inputs/archive-test.a-irix6-mips64el | FileCheck %s
+
+CHECK: f1.o:
+CHECK-NEXT: 00000028 T f1
+CHECK-NEXT: 00000000 d s_d
+CHECK-NEXT: 00000000 t s_foo
+
+CHECK: f2.o:
+CHECK-NEXT: 00000028 T f2
+CHECK-NEXT: 00000000 d s_d
+CHECK-NEXT: 00000000 t s_foo
+
+CHECK: f3.o:
+CHECK-NEXT: 00000028 T f3
+CHECK-NEXT: 00000000 d s_d
+CHECK-NEXT: 00000000 t s_foo
+
+CHECK: f4.o:
+CHECK-NEXT: 00000028 T f4
+CHECK-NEXT: 00000000 d s_d
+CHECK-NEXT: 00000000 t s_foo
+
+CHECK: f5.o:
+CHECK-NEXT: 00000028 T f5
+CHECK-NEXT: 00000000 d s_d
+CHECK-NEXT: 00000000 t s_foo
OpenPOWER on IntegriCloud