|
@@ -116,6 +116,10 @@ int apply_relocate_add(Elf_Shdr *sechdrs,
|
|
|
v = sym->st_value + rel[i].r_addend;
|
|
|
|
|
|
switch (ELF_R_TYPE(rel[i].r_info) & 0xff) {
|
|
|
+ case R_SPARC_DISP32:
|
|
|
+ v -= (Elf_Addr) location;
|
|
|
+ *loc32 = v;
|
|
|
+ break;
|
|
|
#ifdef CONFIG_SPARC64
|
|
|
case R_SPARC_64:
|
|
|
location[0] = v >> 56;
|
|
@@ -128,11 +132,6 @@ int apply_relocate_add(Elf_Shdr *sechdrs,
|
|
|
location[7] = v >> 0;
|
|
|
break;
|
|
|
|
|
|
- case R_SPARC_DISP32:
|
|
|
- v -= (Elf_Addr) location;
|
|
|
- *loc32 = v;
|
|
|
- break;
|
|
|
-
|
|
|
case R_SPARC_WDISP19:
|
|
|
v -= (Elf_Addr) location;
|
|
|
*loc32 = (*loc32 & ~0x7ffff) |
|