aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/tools/relocs.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/tools/relocs.c')
-rw-r--r--arch/x86/tools/relocs.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c
index 3a6c8ebc8032..0b08067c45f3 100644
--- a/arch/x86/tools/relocs.c
+++ b/arch/x86/tools/relocs.c
@@ -196,6 +196,7 @@ static const char *rel_type(unsigned type)
196#if ELF_BITS == 64 196#if ELF_BITS == 64
197 REL_TYPE(R_X86_64_NONE), 197 REL_TYPE(R_X86_64_NONE),
198 REL_TYPE(R_X86_64_64), 198 REL_TYPE(R_X86_64_64),
199 REL_TYPE(R_X86_64_PC64),
199 REL_TYPE(R_X86_64_PC32), 200 REL_TYPE(R_X86_64_PC32),
200 REL_TYPE(R_X86_64_GOT32), 201 REL_TYPE(R_X86_64_GOT32),
201 REL_TYPE(R_X86_64_PLT32), 202 REL_TYPE(R_X86_64_PLT32),
@@ -782,6 +783,15 @@ static int do_reloc64(struct section *sec, Elf_Rel *rel, ElfW(Sym) *sym,
782 add_reloc(&relocs32neg, offset); 783 add_reloc(&relocs32neg, offset);
783 break; 784 break;
784 785
786 case R_X86_64_PC64:
787 /*
788 * Only used by jump labels
789 */
790 if (is_percpu_sym(sym, symname))
791 die("Invalid R_X86_64_PC64 relocation against per-CPU symbol %s\n",
792 symname);
793 break;
794
785 case R_X86_64_32: 795 case R_X86_64_32:
786 case R_X86_64_32S: 796 case R_X86_64_32S:
787 case R_X86_64_64: 797 case R_X86_64_64: