From 1115a199aaec146972419749db7b10cfe832801a Mon Sep 17 00:00:00 2001 From: George Rimar Date: Mon, 3 Jun 2019 09:52:32 +0000 Subject: [PATCH] [llvm-readobj/llvm-readelf] - Remove gnu-relocations.test completely. rL362089 introduced a set of yaml based reloc-types-*.test test cases (instead of huge reloc-types.test that used a lot of precompiled binaries) These test cases checks LLVM-styled dumping of the relocations. gnu-relocations.test was a test case to check GNU styled relocations dumping. It did that only for elf-x86 and elf-x86_64 targets. It did not test all of the relocations though. Now, after rL362089, it does not make sence to keep it. This patch updates reloc-types-elf-i386.test and reloc-types-elf-x64.test tests with llvm-readelf calls to check GNU styled output in one place. It removes gnu-relocations.test completely. One of intentions of doing this is also to get rid of relocs.obj.elf-i386 and relocs.obj.elf-x86_64 precompiled objects completely (they are used in other tests still). Differential revision: https://reviews.llvm.org/D62655 llvm-svn: 362374 --- llvm/test/tools/llvm-readobj/gnu-relocations.test | 28 ---- .../tools/llvm-readobj/reloc-types-elf-i386.test | 173 ++++++++++++++++----- .../tools/llvm-readobj/reloc-types-elf-x64.test | 169 +++++++++++++++----- 3 files changed, 259 insertions(+), 111 deletions(-) delete mode 100644 llvm/test/tools/llvm-readobj/gnu-relocations.test diff --git a/llvm/test/tools/llvm-readobj/gnu-relocations.test b/llvm/test/tools/llvm-readobj/gnu-relocations.test deleted file mode 100644 index 1bba0ff..0000000 --- a/llvm/test/tools/llvm-readobj/gnu-relocations.test +++ /dev/null @@ -1,28 +0,0 @@ -RUN: llvm-readelf -r %p/Inputs/relocs.obj.elf-i386 \ -RUN: | FileCheck %s -check-prefix ELF32 -RUN: llvm-readelf -r %p/Inputs/relocs.obj.elf-x86_64 \ -RUN: | FileCheck %s -check-prefix ELF64 - -ELF32: Relocation section '.rel.text' at offset 0x318 contains 41 entries: -ELF32-NEXT: Offset Info Type Sym. Value Symbol's Name -ELF32-NEXT: 00000002 00000500 R_386_NONE 00000000 sym -ELF32-NEXT: 00000008 00000501 R_386_32 00000000 sym -ELF32-NEXT: 0000000e 00000502 R_386_PC32 00000000 sym -ELF32-NEXT: 00000014 00000503 R_386_GOT32 00000000 sym -ELF32-NEXT: 0000001a 00000504 R_386_PLT32 00000000 sym -ELF32-NEXT: 00000020 00000505 R_386_COPY 00000000 sym -ELF32-NEXT: 00000026 00000506 R_386_GLOB_DAT 00000000 sym -ELF32-NEXT: 0000002c 00000507 R_386_JUMP_SLOT 00000000 sym -ELF32-NEXT: 00000032 00000508 R_386_RELATIVE 00000000 sym -ELF32-NEXT: 00000038 00000509 R_386_GOTOFF 00000000 sym - -ELF64: Relocation section '.rela.text' at offset 0x430 contains 38 entries: -ELF64-NEXT: Offset Info Type Symbol's Value Symbol's Name + Addend -ELF64-NEXT: 0000000000000003 0000000500000000 R_X86_64_NONE 0000000000000000 sym - 4 -ELF64-NEXT: 000000000000000a 0000000500000001 R_X86_64_64 0000000000000000 sym - 4 -ELF64-NEXT: 0000000000000011 0000000500000002 R_X86_64_PC32 0000000000000000 sym - 4 -ELF64-NEXT: 0000000000000018 0000000500000003 R_X86_64_GOT32 0000000000000000 sym - 4 -ELF64-NEXT: 000000000000001f 0000000500000004 R_X86_64_PLT32 0000000000000000 sym - 4 -ELF64-NEXT: 0000000000000026 0000000500000005 R_X86_64_COPY 0000000000000000 sym - 4 -ELF64-NEXT: 000000000000002d 0000000500000006 R_X86_64_GLOB_DAT 0000000000000000 sym - 4 -ELF64-NEXT: 0000000000000034 0000000500000007 R_X86_64_JUMP_SLOT 0000000000000000 sym - 4 diff --git a/llvm/test/tools/llvm-readobj/reloc-types-elf-i386.test b/llvm/test/tools/llvm-readobj/reloc-types-elf-i386.test index b968757..1f661e4 100644 --- a/llvm/test/tools/llvm-readobj/reloc-types-elf-i386.test +++ b/llvm/test/tools/llvm-readobj/reloc-types-elf-i386.test @@ -2,49 +2,94 @@ ## names and values for i386 target. # RUN: yaml2obj %s -o %t-i386.o -# RUN: llvm-readobj -r --expand-relocs %t-i386.o | FileCheck %s +# RUN: llvm-readobj -r --expand-relocs %t-i386.o | FileCheck %s --check-prefix=LLVM +# RUN: llvm-readelf -r --expand-relocs %t-i386.o | FileCheck %s --check-prefix=GNU -# CHECK: Type: R_386_NONE (0) -# CHECK: Type: R_386_32 (1) -# CHECK: Type: R_386_PC32 (2) -# CHECK: Type: R_386_GOT32 (3) -# CHECK: Type: R_386_PLT32 (4) -# CHECK: Type: R_386_COPY (5) -# CHECK: Type: R_386_GLOB_DAT (6) -# CHECK: Type: R_386_JUMP_SLOT (7) -# CHECK: Type: R_386_RELATIVE (8) -# CHECK: Type: R_386_GOTOFF (9) -# CHECK: Type: R_386_GOTPC (10) -# CHECK: Type: R_386_32PLT (11) -# CHECK: Type: R_386_TLS_TPOFF (14) -# CHECK: Type: R_386_TLS_IE (15) -# CHECK: Type: R_386_TLS_GOTIE (16) -# CHECK: Type: R_386_TLS_LE (17) -# CHECK: Type: R_386_TLS_GD (18) -# CHECK: Type: R_386_TLS_LDM (19) -# CHECK: Type: R_386_16 (20) -# CHECK: Type: R_386_PC16 (21) -# CHECK: Type: R_386_8 (22) -# CHECK: Type: R_386_PC8 (23) -# CHECK: Type: R_386_TLS_GD_32 (24) -# CHECK: Type: R_386_TLS_GD_PUSH (25) -# CHECK: Type: R_386_TLS_GD_CALL (26) -# CHECK: Type: R_386_TLS_GD_POP (27) -# CHECK: Type: R_386_TLS_LDM_32 (28) -# CHECK: Type: R_386_TLS_LDM_PUSH (29) -# CHECK: Type: R_386_TLS_LDM_CALL (30) -# CHECK: Type: R_386_TLS_LDM_POP (31) -# CHECK: Type: R_386_TLS_LDO_32 (32) -# CHECK: Type: R_386_TLS_IE_32 (33) -# CHECK: Type: R_386_TLS_LE_32 (34) -# CHECK: Type: R_386_TLS_DTPMOD32 (35) -# CHECK: Type: R_386_TLS_DTPOFF32 (36) -# CHECK: Type: R_386_TLS_TPOFF32 (37) -# CHECK: Type: R_386_TLS_GOTDESC (39) -# CHECK: Type: R_386_TLS_DESC_CALL (40) -# CHECK: Type: R_386_TLS_DESC (41) -# CHECK: Type: R_386_IRELATIVE (42) -# CHECK: Type: R_386_GOT32X (43) +# LLVM: Type: R_386_NONE (0) +# LLVM: Type: R_386_32 (1) +# LLVM: Type: R_386_PC32 (2) +# LLVM: Type: R_386_GOT32 (3) +# LLVM: Type: R_386_PLT32 (4) +# LLVM: Type: R_386_COPY (5) +# LLVM: Type: R_386_GLOB_DAT (6) +# LLVM: Type: R_386_JUMP_SLOT (7) +# LLVM: Type: R_386_RELATIVE (8) +# LLVM: Type: R_386_GOTOFF (9) +# LLVM: Type: R_386_GOTPC (10) +# LLVM: Type: R_386_32PLT (11) +# LLVM: Type: R_386_TLS_TPOFF (14) +# LLVM: Type: R_386_TLS_IE (15) +# LLVM: Type: R_386_TLS_GOTIE (16) +# LLVM: Type: R_386_TLS_LE (17) +# LLVM: Type: R_386_TLS_GD (18) +# LLVM: Type: R_386_TLS_LDM (19) +# LLVM: Type: R_386_16 (20) +# LLVM: Type: R_386_PC16 (21) +# LLVM: Type: R_386_8 (22) +# LLVM: Type: R_386_PC8 (23) +# LLVM: Type: R_386_TLS_GD_32 (24) +# LLVM: Type: R_386_TLS_GD_PUSH (25) +# LLVM: Type: R_386_TLS_GD_CALL (26) +# LLVM: Type: R_386_TLS_GD_POP (27) +# LLVM: Type: R_386_TLS_LDM_32 (28) +# LLVM: Type: R_386_TLS_LDM_PUSH (29) +# LLVM: Type: R_386_TLS_LDM_CALL (30) +# LLVM: Type: R_386_TLS_LDM_POP (31) +# LLVM: Type: R_386_TLS_LDO_32 (32) +# LLVM: Type: R_386_TLS_IE_32 (33) +# LLVM: Type: R_386_TLS_LE_32 (34) +# LLVM: Type: R_386_TLS_DTPMOD32 (35) +# LLVM: Type: R_386_TLS_DTPOFF32 (36) +# LLVM: Type: R_386_TLS_TPOFF32 (37) +# LLVM: Type: R_386_TLS_GOTDESC (39) +# LLVM: Type: R_386_TLS_DESC_CALL (40) +# LLVM: Type: R_386_TLS_DESC (41) +# LLVM: Type: R_386_IRELATIVE (42) +# LLVM: Type: R_386_GOT32X (43) + +# GNU: Relocation section '.rel.text' at offset 0x128 contains 41 entries: +# GNU-NEXT: Offset Info Type Sym. Value Symbol's Name +# GNU-NEXT: 00000002 00000100 R_386_NONE 00000000 foo +# GNU-NEXT: 00000008 00000101 R_386_32 00000000 foo +# GNU-NEXT: 0000000e 00000102 R_386_PC32 00000000 foo +# GNU-NEXT: 00000014 00000103 R_386_GOT32 00000000 foo +# GNU-NEXT: 0000001a 00000104 R_386_PLT32 00000000 foo +# GNU-NEXT: 00000020 00000105 R_386_COPY 00000000 foo +# GNU-NEXT: 00000026 00000106 R_386_GLOB_DAT 00000000 foo +# GNU-NEXT: 0000002c 00000107 R_386_JUMP_SLOT 00000000 foo +# GNU-NEXT: 00000032 00000108 R_386_RELATIVE 00000000 foo +# GNU-NEXT: 00000038 00000109 R_386_GOTOFF 00000000 foo +# GNU-NEXT: 0000003e 0000010a R_386_GOTPC 00000000 foo +# GNU-NEXT: 00000044 0000010b R_386_32PLT 00000000 foo +# GNU-NEXT: 0000004a 0000010e R_386_TLS_TPOFF 00000000 foo +# GNU-NEXT: 00000050 0000010f R_386_TLS_IE 00000000 foo +# GNU-NEXT: 00000056 00000110 R_386_TLS_GOTIE 00000000 foo +# GNU-NEXT: 0000005c 00000111 R_386_TLS_LE 00000000 foo +# GNU-NEXT: 00000062 00000112 R_386_TLS_GD 00000000 foo +# GNU-NEXT: 00000068 00000113 R_386_TLS_LDM 00000000 foo +# GNU-NEXT: 0000006e 00000114 R_386_16 00000000 foo +# GNU-NEXT: 00000074 00000115 R_386_PC16 00000000 foo +# GNU-NEXT: 0000007a 00000116 R_386_8 00000000 foo +# GNU-NEXT: 00000080 00000117 R_386_PC8 00000000 foo +# GNU-NEXT: 00000086 00000118 R_386_TLS_GD_32 00000000 foo +# GNU-NEXT: 0000008c 00000119 R_386_TLS_GD_PUSH 00000000 foo +# GNU-NEXT: 00000092 0000011a R_386_TLS_GD_CALL 00000000 foo +# GNU-NEXT: 00000098 0000011b R_386_TLS_GD_POP 00000000 foo +# GNU-NEXT: 0000009e 0000011c R_386_TLS_LDM_32 00000000 foo +# GNU-NEXT: 000000a4 0000011d R_386_TLS_LDM_PUSH 00000000 foo +# GNU-NEXT: 000000aa 0000011e R_386_TLS_LDM_CALL 00000000 foo +# GNU-NEXT: 000000b0 0000011f R_386_TLS_LDM_POP 00000000 foo +# GNU-NEXT: 000000b6 00000120 R_386_TLS_LDO_32 00000000 foo +# GNU-NEXT: 000000bc 00000121 R_386_TLS_IE_32 00000000 foo +# GNU-NEXT: 000000c2 00000122 R_386_TLS_LE_32 00000000 foo +# GNU-NEXT: 000000c8 00000123 R_386_TLS_DTPMOD32 00000000 foo +# GNU-NEXT: 000000ce 00000124 R_386_TLS_DTPOFF32 00000000 foo +# GNU-NEXT: 000000d4 00000125 R_386_TLS_TPOFF32 00000000 foo +# GNU-NEXT: 000000da 00000127 R_386_TLS_GOTDESC 00000000 foo +# GNU-NEXT: 000000e0 00000128 R_386_TLS_DESC_CALL 00000000 foo +# GNU-NEXT: 000000e6 00000129 R_386_TLS_DESC 00000000 foo +# GNU-NEXT: 000000ec 0000012a R_386_IRELATIVE 00000000 foo +# GNU-NEXT: 000000f2 0000012b R_386_GOT32X 00000000 foo --- !ELF FileHeader: @@ -66,83 +111,127 @@ Sections: Relocations: - Offset: 0x0000000000000002 Type: R_386_NONE + Symbol: foo - Offset: 0x0000000000000008 Type: R_386_32 + Symbol: foo - Offset: 0x000000000000000E Type: R_386_PC32 + Symbol: foo - Offset: 0x0000000000000014 Type: R_386_GOT32 + Symbol: foo - Offset: 0x000000000000001A Type: R_386_PLT32 + Symbol: foo - Offset: 0x0000000000000020 Type: R_386_COPY + Symbol: foo - Offset: 0x0000000000000026 Type: R_386_GLOB_DAT + Symbol: foo - Offset: 0x000000000000002C Type: R_386_JUMP_SLOT + Symbol: foo - Offset: 0x0000000000000032 Type: R_386_RELATIVE + Symbol: foo - Offset: 0x0000000000000038 Type: R_386_GOTOFF + Symbol: foo - Offset: 0x000000000000003E Type: R_386_GOTPC + Symbol: foo - Offset: 0x0000000000000044 Type: R_386_32PLT + Symbol: foo - Offset: 0x000000000000004A Type: R_386_TLS_TPOFF + Symbol: foo - Offset: 0x0000000000000050 Type: R_386_TLS_IE + Symbol: foo - Offset: 0x0000000000000056 Type: R_386_TLS_GOTIE + Symbol: foo - Offset: 0x000000000000005C Type: R_386_TLS_LE + Symbol: foo - Offset: 0x0000000000000062 Type: R_386_TLS_GD + Symbol: foo - Offset: 0x0000000000000068 Type: R_386_TLS_LDM + Symbol: foo - Offset: 0x000000000000006E Type: R_386_16 + Symbol: foo - Offset: 0x0000000000000074 Type: R_386_PC16 + Symbol: foo - Offset: 0x000000000000007A Type: R_386_8 + Symbol: foo - Offset: 0x0000000000000080 Type: R_386_PC8 + Symbol: foo - Offset: 0x0000000000000086 Type: R_386_TLS_GD_32 + Symbol: foo - Offset: 0x000000000000008C Type: R_386_TLS_GD_PUSH + Symbol: foo - Offset: 0x0000000000000092 Type: R_386_TLS_GD_CALL + Symbol: foo - Offset: 0x0000000000000098 Type: R_386_TLS_GD_POP + Symbol: foo - Offset: 0x000000000000009E Type: R_386_TLS_LDM_32 + Symbol: foo - Offset: 0x00000000000000A4 Type: R_386_TLS_LDM_PUSH + Symbol: foo - Offset: 0x00000000000000AA Type: R_386_TLS_LDM_CALL + Symbol: foo - Offset: 0x00000000000000B0 Type: R_386_TLS_LDM_POP + Symbol: foo - Offset: 0x00000000000000B6 Type: R_386_TLS_LDO_32 + Symbol: foo - Offset: 0x00000000000000BC Type: R_386_TLS_IE_32 + Symbol: foo - Offset: 0x00000000000000C2 Type: R_386_TLS_LE_32 + Symbol: foo - Offset: 0x00000000000000C8 Type: R_386_TLS_DTPMOD32 + Symbol: foo - Offset: 0x00000000000000CE Type: R_386_TLS_DTPOFF32 + Symbol: foo - Offset: 0x00000000000000D4 Type: R_386_TLS_TPOFF32 + Symbol: foo - Offset: 0x00000000000000DA Type: R_386_TLS_GOTDESC + Symbol: foo - Offset: 0x00000000000000E0 Type: R_386_TLS_DESC_CALL + Symbol: foo - Offset: 0x00000000000000E6 Type: R_386_TLS_DESC + Symbol: foo - Offset: 0x00000000000000EC Type: R_386_IRELATIVE + Symbol: foo - Offset: 0x00000000000000F2 Type: R_386_GOT32X + Symbol: foo +Symbols: + - Name: foo + Binding: STB_GLOBAL diff --git a/llvm/test/tools/llvm-readobj/reloc-types-elf-x64.test b/llvm/test/tools/llvm-readobj/reloc-types-elf-x64.test index 7b3fa1c..021fbb5 100644 --- a/llvm/test/tools/llvm-readobj/reloc-types-elf-x64.test +++ b/llvm/test/tools/llvm-readobj/reloc-types-elf-x64.test @@ -2,48 +2,92 @@ ## names and values for x86_64 target. # RUN: yaml2obj %s -o %t-x86_64.o -# RUN: llvm-readobj -r --expand-relocs %t-x86_64.o | FileCheck %s +# RUN: llvm-readobj -r --expand-relocs %t-x86_64.o | FileCheck %s --check-prefix=LLVM +# RUN: llvm-readelf -r --expand-relocs %t-x86_64.o | FileCheck %s --check-prefix=GNU -# CHECK: Type: R_X86_64_NONE (0) -# CHECK: Type: R_X86_64_64 (1) -# CHECK: Type: R_X86_64_PC32 (2) -# CHECK: Type: R_X86_64_GOT32 (3) -# CHECK: Type: R_X86_64_PLT32 (4) -# CHECK: Type: R_X86_64_COPY (5) -# CHECK: Type: R_X86_64_GLOB_DAT (6) -# CHECK: Type: R_X86_64_JUMP_SLOT (7) -# CHECK: Type: R_X86_64_RELATIVE (8) -# CHECK: Type: R_X86_64_GOTPCREL (9) -# CHECK: Type: R_X86_64_32 (10) -# CHECK: Type: R_X86_64_32S (11) -# CHECK: Type: R_X86_64_16 (12) -# CHECK: Type: R_X86_64_PC16 (13) -# CHECK: Type: R_X86_64_8 (14) -# CHECK: Type: R_X86_64_PC8 (15) -# CHECK: Type: R_X86_64_DTPMOD64 (16) -# CHECK: Type: R_X86_64_DTPOFF64 (17) -# CHECK: Type: R_X86_64_TPOFF64 (18) -# CHECK: Type: R_X86_64_TLSGD (19) -# CHECK: Type: R_X86_64_TLSLD (20) -# CHECK: Type: R_X86_64_DTPOFF32 (21) -# CHECK: Type: R_X86_64_GOTTPOFF (22) -# CHECK: Type: R_X86_64_TPOFF32 (23) -# CHECK: Type: R_X86_64_PC64 (24) -# CHECK: Type: R_X86_64_GOTOFF64 (25) -# CHECK: Type: R_X86_64_GOTPC32 (26) -# CHECK: Type: R_X86_64_GOT64 (27) -# CHECK: Type: R_X86_64_GOTPCREL64 (28) -# CHECK: Type: R_X86_64_GOTPC64 (29) -# CHECK: Type: R_X86_64_GOTPLT64 (30) -# CHECK: Type: R_X86_64_PLTOFF64 (31) -# CHECK: Type: R_X86_64_SIZE32 (32) -# CHECK: Type: R_X86_64_SIZE64 (33) -# CHECK: Type: R_X86_64_GOTPC32_TLSDESC (34) -# CHECK: Type: R_X86_64_TLSDESC_CALL (35) -# CHECK: Type: R_X86_64_TLSDESC (36) -# CHECK: Type: R_X86_64_IRELATIVE (37) -# CHECK: Type: R_X86_64_GOTPCRELX (41) -# CHECK: Type: R_X86_64_REX_GOTPCRELX (42) +# LLVM: Type: R_X86_64_NONE (0) +# LLVM: Type: R_X86_64_64 (1) +# LLVM: Type: R_X86_64_PC32 (2) +# LLVM: Type: R_X86_64_GOT32 (3) +# LLVM: Type: R_X86_64_PLT32 (4) +# LLVM: Type: R_X86_64_COPY (5) +# LLVM: Type: R_X86_64_GLOB_DAT (6) +# LLVM: Type: R_X86_64_JUMP_SLOT (7) +# LLVM: Type: R_X86_64_RELATIVE (8) +# LLVM: Type: R_X86_64_GOTPCREL (9) +# LLVM: Type: R_X86_64_32 (10) +# LLVM: Type: R_X86_64_32S (11) +# LLVM: Type: R_X86_64_16 (12) +# LLVM: Type: R_X86_64_PC16 (13) +# LLVM: Type: R_X86_64_8 (14) +# LLVM: Type: R_X86_64_PC8 (15) +# LLVM: Type: R_X86_64_DTPMOD64 (16) +# LLVM: Type: R_X86_64_DTPOFF64 (17) +# LLVM: Type: R_X86_64_TPOFF64 (18) +# LLVM: Type: R_X86_64_TLSGD (19) +# LLVM: Type: R_X86_64_TLSLD (20) +# LLVM: Type: R_X86_64_DTPOFF32 (21) +# LLVM: Type: R_X86_64_GOTTPOFF (22) +# LLVM: Type: R_X86_64_TPOFF32 (23) +# LLVM: Type: R_X86_64_PC64 (24) +# LLVM: Type: R_X86_64_GOTOFF64 (25) +# LLVM: Type: R_X86_64_GOTPC32 (26) +# LLVM: Type: R_X86_64_GOT64 (27) +# LLVM: Type: R_X86_64_GOTPCREL64 (28) +# LLVM: Type: R_X86_64_GOTPC64 (29) +# LLVM: Type: R_X86_64_GOTPLT64 (30) +# LLVM: Type: R_X86_64_PLTOFF64 (31) +# LLVM: Type: R_X86_64_SIZE32 (32) +# LLVM: Type: R_X86_64_SIZE64 (33) +# LLVM: Type: R_X86_64_GOTPC32_TLSDESC (34) +# LLVM: Type: R_X86_64_TLSDESC_CALL (35) +# LLVM: Type: R_X86_64_TLSDESC (36) +# LLVM: Type: R_X86_64_IRELATIVE (37) +# LLVM: Type: R_X86_64_GOTPCRELX (41) +# LLVM: Type: R_X86_64_REX_GOTPCRELX (42) + +# GNU: Relocation section '.rela.text' at offset 0x1c8 contains 40 entries: +# GNU-NEXT: Offset Info Type Symbol's Value Symbol's Name + Addend +# GNU-NEXT: 0000000000000003 0000000100000000 R_X86_64_NONE 0000000000000000 foo + 0 +# GNU-NEXT: 000000000000000a 0000000100000001 R_X86_64_64 0000000000000000 foo + 0 +# GNU-NEXT: 0000000000000011 0000000100000002 R_X86_64_PC32 0000000000000000 foo + 0 +# GNU-NEXT: 0000000000000018 0000000100000003 R_X86_64_GOT32 0000000000000000 foo + 0 +# GNU-NEXT: 000000000000001f 0000000100000004 R_X86_64_PLT32 0000000000000000 foo + 0 +# GNU-NEXT: 0000000000000026 0000000100000005 R_X86_64_COPY 0000000000000000 foo + 0 +# GNU-NEXT: 000000000000002d 0000000100000006 R_X86_64_GLOB_DAT 0000000000000000 foo + 0 +# GNU-NEXT: 0000000000000034 0000000100000007 R_X86_64_JUMP_SLOT 0000000000000000 foo + 0 +# GNU-NEXT: 000000000000003b 0000000100000008 R_X86_64_RELATIVE 0000000000000000 foo + 0 +# GNU-NEXT: 0000000000000042 0000000100000009 R_X86_64_GOTPCREL 0000000000000000 foo + 0 +# GNU-NEXT: 0000000000000049 000000010000000a R_X86_64_32 0000000000000000 foo + 0 +# GNU-NEXT: 0000000000000050 000000010000000b R_X86_64_32S 0000000000000000 foo + 0 +# GNU-NEXT: 0000000000000057 000000010000000c R_X86_64_16 0000000000000000 foo + 0 +# GNU-NEXT: 000000000000005e 000000010000000d R_X86_64_PC16 0000000000000000 foo + 0 +# GNU-NEXT: 0000000000000065 000000010000000e R_X86_64_8 0000000000000000 foo + 0 +# GNU-NEXT: 000000000000006c 000000010000000f R_X86_64_PC8 0000000000000000 foo + 0 +# GNU-NEXT: 0000000000000073 0000000100000010 R_X86_64_DTPMOD64 0000000000000000 foo + 0 +# GNU-NEXT: 000000000000007a 0000000100000011 R_X86_64_DTPOFF64 0000000000000000 foo + 0 +# GNU-NEXT: 0000000000000081 0000000100000012 R_X86_64_TPOFF64 0000000000000000 foo + 0 +# GNU-NEXT: 0000000000000088 0000000100000013 R_X86_64_TLSGD 0000000000000000 foo + 0 +# GNU-NEXT: 000000000000008f 0000000100000014 R_X86_64_TLSLD 0000000000000000 foo + 0 +# GNU-NEXT: 0000000000000096 0000000100000015 R_X86_64_DTPOFF32 0000000000000000 foo + 0 +# GNU-NEXT: 000000000000009d 0000000100000016 R_X86_64_GOTTPOFF 0000000000000000 foo + 0 +# GNU-NEXT: 00000000000000a4 0000000100000017 R_X86_64_TPOFF32 0000000000000000 foo + 0 +# GNU-NEXT: 00000000000000ab 0000000100000018 R_X86_64_PC64 0000000000000000 foo + 0 +# GNU-NEXT: 00000000000000b2 0000000100000019 R_X86_64_GOTOFF64 0000000000000000 foo + 0 +# GNU-NEXT: 00000000000000b9 000000010000001a R_X86_64_GOTPC32 0000000000000000 foo + 0 +# GNU-NEXT: 00000000000000c0 000000010000001b R_X86_64_GOT64 0000000000000000 foo + 0 +# GNU-NEXT: 00000000000000c7 000000010000001c R_X86_64_GOTPCREL64 0000000000000000 foo + 0 +# GNU-NEXT: 00000000000000ce 000000010000001d R_X86_64_GOTPC64 0000000000000000 foo + 0 +# GNU-NEXT: 00000000000000d5 000000010000001e R_X86_64_GOTPLT64 0000000000000000 foo + 0 +# GNU-NEXT: 00000000000000dc 000000010000001f R_X86_64_PLTOFF64 0000000000000000 foo + 0 +# GNU-NEXT: 00000000000000e3 0000000100000020 R_X86_64_SIZE32 0000000000000000 foo + 0 +# GNU-NEXT: 00000000000000ea 0000000100000021 R_X86_64_SIZE64 0000000000000000 foo + 0 +# GNU-NEXT: 00000000000000f1 0000000100000022 R_X86_64_GOTPC32_TLSDESC 0000000000000000 foo + 0 +# GNU-NEXT: 00000000000000f8 0000000100000023 R_X86_64_TLSDESC_CALL 0000000000000000 foo + 0 +# GNU-NEXT: 00000000000000ff 0000000100000024 R_X86_64_TLSDESC 0000000000000000 foo + 0 +# GNU-NEXT: 0000000000000106 0000000100000025 R_X86_64_IRELATIVE 0000000000000000 foo + 0 +# GNU-NEXT: 000000000000010a 0000000100000029 R_X86_64_GOTPCRELX 0000000000000000 foo + 0 +# GNU-NEXT: 000000000000010e 000000010000002a R_X86_64_REX_GOTPCRELX 0000000000000000 foo + 0 --- !ELF FileHeader: @@ -65,81 +109,124 @@ Sections: Relocations: - Offset: 0x0000000000000003 Type: R_X86_64_NONE + Symbol: foo - Offset: 0x000000000000000A Type: R_X86_64_64 + Symbol: foo - Offset: 0x0000000000000011 Type: R_X86_64_PC32 + Symbol: foo - Offset: 0x0000000000000018 Type: R_X86_64_GOT32 + Symbol: foo - Offset: 0x000000000000001F Type: R_X86_64_PLT32 + Symbol: foo - Offset: 0x0000000000000026 Type: R_X86_64_COPY + Symbol: foo - Offset: 0x000000000000002D Type: R_X86_64_GLOB_DAT + Symbol: foo - Offset: 0x0000000000000034 Type: R_X86_64_JUMP_SLOT + Symbol: foo - Offset: 0x000000000000003B Type: R_X86_64_RELATIVE + Symbol: foo - Offset: 0x0000000000000042 Type: R_X86_64_GOTPCREL + Symbol: foo - Offset: 0x0000000000000049 Type: R_X86_64_32 + Symbol: foo - Offset: 0x0000000000000050 Type: R_X86_64_32S + Symbol: foo - Offset: 0x0000000000000057 Type: R_X86_64_16 + Symbol: foo - Offset: 0x000000000000005E Type: R_X86_64_PC16 + Symbol: foo - Offset: 0x0000000000000065 Type: R_X86_64_8 + Symbol: foo - Offset: 0x000000000000006C Type: R_X86_64_PC8 + Symbol: foo - Offset: 0x0000000000000073 Type: R_X86_64_DTPMOD64 + Symbol: foo - Offset: 0x000000000000007A Type: R_X86_64_DTPOFF64 + Symbol: foo - Offset: 0x0000000000000081 Type: R_X86_64_TPOFF64 + Symbol: foo - Offset: 0x0000000000000088 Type: R_X86_64_TLSGD + Symbol: foo - Offset: 0x000000000000008F Type: R_X86_64_TLSLD + Symbol: foo - Offset: 0x0000000000000096 Type: R_X86_64_DTPOFF32 + Symbol: foo - Offset: 0x000000000000009D Type: R_X86_64_GOTTPOFF + Symbol: foo - Offset: 0x00000000000000A4 Type: R_X86_64_TPOFF32 + Symbol: foo - Offset: 0x00000000000000AB Type: R_X86_64_PC64 + Symbol: foo - Offset: 0x00000000000000B2 Type: R_X86_64_GOTOFF64 + Symbol: foo - Offset: 0x00000000000000B9 Type: R_X86_64_GOTPC32 + Symbol: foo - Offset: 0x00000000000000C0 Type: R_X86_64_GOT64 + Symbol: foo - Offset: 0x00000000000000C7 Type: R_X86_64_GOTPCREL64 + Symbol: foo - Offset: 0x00000000000000CE Type: R_X86_64_GOTPC64 + Symbol: foo - Offset: 0x00000000000000D5 Type: R_X86_64_GOTPLT64 + Symbol: foo - Offset: 0x00000000000000DC Type: R_X86_64_PLTOFF64 + Symbol: foo - Offset: 0x00000000000000E3 Type: R_X86_64_SIZE32 + Symbol: foo - Offset: 0x00000000000000EA Type: R_X86_64_SIZE64 + Symbol: foo - Offset: 0x00000000000000F1 Type: R_X86_64_GOTPC32_TLSDESC + Symbol: foo - Offset: 0x00000000000000F8 Type: R_X86_64_TLSDESC_CALL + Symbol: foo - Offset: 0x00000000000000FF Type: R_X86_64_TLSDESC + Symbol: foo - Offset: 0x0000000000000106 Type: R_X86_64_IRELATIVE + Symbol: foo - Offset: 0x000000000000010A Type: R_X86_64_GOTPCRELX + Symbol: foo - Offset: 0x000000000000010E Type: R_X86_64_REX_GOTPCRELX + Symbol: foo +Symbols: + - Name: foo + Binding: STB_GLOBAL -- 2.7.4