]> git.hungrycats.org Git - linux/commitdiff
[SPARC64]: Support OLO10 relocations for modules.
authorDavid S. Miller <davem@nuts.ninka.net>
Thu, 3 Apr 2003 04:55:19 +0000 (20:55 -0800)
committerDavid S. Miller <davem@nuts.ninka.net>
Thu, 3 Apr 2003 04:55:19 +0000 (20:55 -0800)
arch/sparc64/kernel/module.c
include/linux/elf.h

index e29c072ef2326d21aa9891792b62709b6ff4dc4d..57df009b5cde183f0009b3ed541ead2006aca9d4 100644 (file)
@@ -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,
index 5945cb301e02ffbbbad61f2cced014044a3292a3..0a7a35e2722b1f06239bb787b546cbc0cba7bd75 100644 (file)
@@ -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