From: Simon Atanasyan Date: Mon, 20 Apr 2015 05:34:48 +0000 (+0000) Subject: [Mips] Support DT_MIPS_OPTIONS dynamic section tag in the llvm-readobj X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=23d47d346dc6ce6bfab99f9a64cd3835f27f7829;p=oota-llvm.git [Mips] Support DT_MIPS_OPTIONS dynamic section tag in the llvm-readobj git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235285 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/tools/llvm-readobj/Inputs/mips-options.elf-mips64el b/test/tools/llvm-readobj/Inputs/mips-options.elf-mips64el new file mode 100755 index 00000000000..4b6525731dd Binary files /dev/null and b/test/tools/llvm-readobj/Inputs/mips-options.elf-mips64el differ diff --git a/test/tools/llvm-readobj/mips-options.test b/test/tools/llvm-readobj/mips-options.test new file mode 100644 index 00000000000..7a2959dd032 --- /dev/null +++ b/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/tools/llvm-readobj/ELFDumper.cpp b/tools/llvm-readobj/ELFDumper.cpp index 39fb065810f..7f85fa46534 100644 --- a/tools/llvm-readobj/ELFDumper.cpp +++ b/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 *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: