Index: test/tools/llvm-readobj/Inputs/dynamic-table.c =================================================================== --- test/tools/llvm-readobj/Inputs/dynamic-table.c +++ test/tools/llvm-readobj/Inputs/dynamic-table.c @@ -2,8 +2,13 @@ // -o dynamic-table-so.mips // clang -target mipsel-linux-gnu -lc dynamic-table.c \ // -o dynamic-table-exe.mips +// clang -target aarch64-linux-gnu -fPIC -shared dynamic-table.c \ +// -o dynamic-table-so.aarch64 int puts(const char *); +__thread int foo; + int main(void) { puts("Hello, World"); + foo = 0; } Index: test/tools/llvm-readobj/dynamic.test =================================================================== --- test/tools/llvm-readobj/dynamic.test +++ test/tools/llvm-readobj/dynamic.test @@ -111,3 +111,40 @@ ELF-X86-EXE: 0x6FFFFFFA RELCOUNT 6 ELF-X86-EXE: 0x00000000 NULL 0x0 ELF-X86-EXE: ] + +RUN: llvm-readobj -dynamic-table %p/Inputs/dynamic-table-so.aarch64 \ +RUN: | FileCheck %s -check-prefix ELF-AARCH64-SO + +ELF-AARCH64-SO: Format: ELF64-aarch64-little +ELF-AARCH64-SO: Arch: aarch64 +ELF-AARCH64-SO: AddressSize: 64bit +ELF-AARCH64-SO: LoadName: +ELF-AARCH64-SO: DynamicSection [ (26 entries) +ELF-AARCH64-SO: Tag Type Name/Value +ELF-AARCH64-SO: 0x0000000000000001 NEEDED SharedLibrary (libc.so.6) +ELF-AARCH64-SO: 0x000000000000000C INIT 0x660 +ELF-AARCH64-SO: 0x000000000000000D FINI 0x83C +ELF-AARCH64-SO: 0x0000000000000019 INIT_ARRAY 0x10DB8 +ELF-AARCH64-SO: 0x000000000000001B INIT_ARRAYSZ 8 (bytes) +ELF-AARCH64-SO: 0x000000000000001A FINI_ARRAY 0x10DC0 +ELF-AARCH64-SO: 0x000000000000001C FINI_ARRAYSZ 8 (bytes) +ELF-AARCH64-SO: 0x000000006FFFFEF5 GNU_HASH 0x1F0 +ELF-AARCH64-SO: 0x0000000000000005 STRTAB 0x420 +ELF-AARCH64-SO: 0x0000000000000006 SYMTAB 0x240 +ELF-AARCH64-SO: 0x000000000000000A STRSZ 210 (bytes) +ELF-AARCH64-SO: 0x000000000000000B SYMENT 24 (bytes) +ELF-AARCH64-SO: 0x0000000000000003 PLTGOT 0x10FE8 +ELF-AARCH64-SO: 0x0000000000000002 PLTRELSZ 96 (bytes) +ELF-AARCH64-SO: 0x0000000000000014 PLTREL RELA +ELF-AARCH64-SO: 0x0000000000000017 JMPREL 0x600 +ELF-AARCH64-SO: 0x000000006FFFFEF6 TLSDESC_PLT 0x6D0 +ELF-AARCH64-SO: 0x000000006FFFFEF7 TLSDESC_GOT 0x10FE0 +ELF-AARCH64-SO: 0x0000000000000007 RELA 0x540 +ELF-AARCH64-SO: 0x0000000000000008 RELASZ 192 (bytes) +ELF-AARCH64-SO: 0x0000000000000009 RELAENT 24 (bytes) +ELF-AARCH64-SO: 0x000000006FFFFFFE VERNEED 0x520 +ELF-AARCH64-SO: 0x000000006FFFFFFF VERNEEDNUM 1 +ELF-AARCH64-SO: 0x000000006FFFFFF0 VERSYM 0x4F2 +ELF-AARCH64-SO: 0x000000006FFFFFF9 unknown 0x3 +ELF-AARCH64-SO: 0x0000000000000000 NULL 0x0 +ELF-AARCH64-SO: ] Index: tools/llvm-readobj/ELFDumper.cpp =================================================================== --- tools/llvm-readobj/ELFDumper.cpp +++ tools/llvm-readobj/ELFDumper.cpp @@ -1338,6 +1338,8 @@ LLVM_READOBJ_TYPE_CASE(VERSYM); LLVM_READOBJ_TYPE_CASE(RELCOUNT); LLVM_READOBJ_TYPE_CASE(GNU_HASH); + LLVM_READOBJ_TYPE_CASE(TLSDESC_PLT); + LLVM_READOBJ_TYPE_CASE(TLSDESC_GOT); LLVM_READOBJ_TYPE_CASE(MIPS_RLD_VERSION); LLVM_READOBJ_TYPE_CASE(MIPS_RLD_MAP_REL); LLVM_READOBJ_TYPE_CASE(MIPS_FLAGS);