From 54f05dc4870232881e8eb69663e680bbf601e02f Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Wed, 2 Apr 2003 20:55:19 -0800 Subject: [PATCH] [SPARC64]: Support OLO10 relocations for modules. --- arch/sparc64/kernel/module.c | 6 ++++++ include/linux/elf.h | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/arch/sparc64/kernel/module.c b/arch/sparc64/kernel/module.c index e29c072ef2326..57df009b5cde1 100644 --- a/arch/sparc64/kernel/module.c +++ b/arch/sparc64/kernel/module.c @@ -231,6 +231,12 @@ int apply_relocate_add(Elf64_Shdr *sechdrs, ((v >> 10) & 0x3fffff); break; + case R_SPARC_OLO10: + *loc32 = (*loc32 & ~0x1fff) | + (((v & 0x3ff) + + (ELF64_R_TYPE(rel[i].r_info) >> 8)) + & 0x1fff); + default: printk(KERN_ERR "module %s: Unknown relocation: %x\n", me->name, diff --git a/include/linux/elf.h b/include/linux/elf.h index 5945cb301e02f..0a7a35e2722b1 100644 --- a/include/linux/elf.h +++ b/include/linux/elf.h @@ -274,6 +274,10 @@ typedef struct { #define R_MIPS_LOVENDOR 100 #define R_MIPS_HIVENDOR 127 +/* + * Sparc section types + */ +#define STT_REGISTER 13 /* * Sparc ELF relocation types @@ -311,6 +315,7 @@ typedef struct { #define R_SPARC_10 30 #define R_SPARC_11 31 #define R_SPARC_64 32 +#define R_SPARC_OLO10 33 #define R_SPARC_WDISP16 40 #define R_SPARC_WDISP19 41 #define R_SPARC_7 43 -- 2.53.0