diff options
-rwxr-xr-x | llvm/test/tools/llvm-readobj/Inputs/mips-options.elf-mips64el | bin | 0 -> 9288 bytes | |||
-rw-r--r-- | llvm/test/tools/llvm-readobj/mips-options.test | 22 | ||||
-rw-r--r-- | llvm/tools/llvm-readobj/ELFDumper.cpp | 2 |
3 files changed, 24 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-readobj/Inputs/mips-options.elf-mips64el b/llvm/test/tools/llvm-readobj/Inputs/mips-options.elf-mips64el Binary files differnew file mode 100755 index 00000000000..4b6525731dd --- /dev/null +++ b/llvm/test/tools/llvm-readobj/Inputs/mips-options.elf-mips64el diff --git a/llvm/test/tools/llvm-readobj/mips-options.test b/llvm/test/tools/llvm-readobj/mips-options.test new file mode 100644 index 00000000000..7a2959dd032 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/mips-options.test @@ -0,0 +1,22 @@ +# Check DT_MIPS_OPTIONS .dynamic section tag reading + +RUN: llvm-readobj -dynamic-table %p/Inputs/mips-options.elf-mips64el | \ +RUN: FileCheck %s + +CHECK: DynamicSection [ (14 entries) +CHECK-NEXT: Tag Type Name/Value +CHECK-NEXT: 0x0000000000000004 HASH 0x158 +CHECK-NEXT: 0x0000000000000005 STRTAB 0x1C0 +CHECK-NEXT: 0x0000000000000006 SYMTAB 0x178 +CHECK-NEXT: 0x000000000000000A STRSZ 7 (bytes) +CHECK-NEXT: 0x000000000000000B SYMENT 24 (bytes) +CHECK-NEXT: 0x0000000070000001 MIPS_RLD_VERSION 1 +CHECK-NEXT: 0x0000000070000005 MIPS_FLAGS NOTPOT +CHECK-NEXT: 0x0000000070000006 MIPS_BASE_ADDRESS 0x0 +CHECK-NEXT: 0x000000007000000A MIPS_LOCAL_GOTNO 2 +CHECK-NEXT: 0x0000000070000011 MIPS_SYMTABNO 3 +CHECK-NEXT: 0x0000000070000013 MIPS_GOTSYM 0x3 +CHECK-NEXT: 0x0000000000000003 PLTGOT 0x2000 +CHECK-NEXT: 0x0000000070000029 MIPS_OPTIONS 0x1000 +CHECK-NEXT: 0x0000000000000000 NULL 0x0 +CHECK-NEXT: ] diff --git a/llvm/tools/llvm-readobj/ELFDumper.cpp b/llvm/tools/llvm-readobj/ELFDumper.cpp index 39fb065810f..7f85fa46534 100644 --- a/llvm/tools/llvm-readobj/ELFDumper.cpp +++ b/llvm/tools/llvm-readobj/ELFDumper.cpp @@ -782,6 +782,7 @@ static const char *getTypeString(uint64_t Type) { LLVM_READOBJ_TYPE_CASE(MIPS_GOTSYM); LLVM_READOBJ_TYPE_CASE(MIPS_RLD_MAP); LLVM_READOBJ_TYPE_CASE(MIPS_PLTGOT); + LLVM_READOBJ_TYPE_CASE(MIPS_OPTIONS); default: return "unknown"; } } @@ -873,6 +874,7 @@ static void printValue(const ELFFile<ELFT> *O, uint64_t Type, uint64_t Value, case DT_MIPS_GOTSYM: case DT_MIPS_RLD_MAP: case DT_MIPS_PLTGOT: + case DT_MIPS_OPTIONS: OS << format("0x%" PRIX64, Value); break; case DT_RELCOUNT: |