about summary refs log tree commit diff
path: root/sysdeps/sparc
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/sparc')
-rw-r--r--sysdeps/sparc/sparc32/dl-machine.h7
-rw-r--r--sysdeps/sparc/sparc64/dl-machine.h9
2 files changed, 11 insertions, 5 deletions
diff --git a/sysdeps/sparc/sparc32/dl-machine.h b/sysdeps/sparc/sparc32/dl-machine.h
index a160f7d41f..83deb16594 100644
--- a/sysdeps/sparc/sparc32/dl-machine.h
+++ b/sysdeps/sparc/sparc32/dl-machine.h
@@ -285,8 +285,9 @@ _dl_start_user:
 	.size   _dl_start_user, . - _dl_start_user
 	.previous");
 
-static inline void
-elf_machine_fixup_plt (struct link_map *map, const Elf32_Rela *reloc,
+static inline Elf32_Addr
+elf_machine_fixup_plt (struct link_map *map, lookup_t t,
+		       const Elf32_Rela *reloc,
 		       Elf32_Addr *reloc_addr, Elf32_Addr value)
 {
 #ifndef RTLD_BOOTSTRAP
@@ -315,6 +316,8 @@ elf_machine_fixup_plt (struct link_map *map, const Elf32_Rela *reloc,
   reloc_addr[1] = OPCODE_SETHI_G1 | (value >> 10);
   if (do_flush)
     __asm __volatile ("flush %0+4" : : "r"(reloc_addr));
+
+  return value;
 }
 
 /* Return the final value of a plt relocation.  */
diff --git a/sysdeps/sparc/sparc64/dl-machine.h b/sysdeps/sparc/sparc64/dl-machine.h
index 7b89ebe733..4e8447214a 100644
--- a/sysdeps/sparc/sparc64/dl-machine.h
+++ b/sysdeps/sparc/sparc64/dl-machine.h
@@ -66,9 +66,10 @@ elf_machine_load_address (void)
 
 /* We have 4 cases to handle.  And we code different code sequences
    for each one.  I love V9 code models...  */
-static inline void
-elf_machine_fixup_plt(struct link_map *map, const Elf64_Rela *reloc,
-                      Elf64_Addr *reloc_addr, Elf64_Addr value)
+static inline Elf64_Addr
+elf_machine_fixup_plt (struct link_map *map, lookup_t t,
+		       const Elf64_Rela *reloc,
+		       Elf64_Addr *reloc_addr, Elf64_Addr value)
 {
   unsigned int *insns = (unsigned int *) reloc_addr;
   Elf64_Addr plt_vaddr = (Elf64_Addr) reloc_addr;
@@ -156,6 +157,8 @@ elf_machine_fixup_plt(struct link_map *map, const Elf64_Rela *reloc,
       insns[1] = 0x03000000 | (high32 >> 10);
       __asm __volatile ("flush %0 + 4" : : "r" (insns));
     }
+
+  return value;
 }
 
 /* Return the final value of a plt relocation.  */