Author: jhibbits
Date: Thu Dec  6 04:30:24 2018
New Revision: 341616
URL: https://svnweb.freebsd.org/changeset/base/341616

Log:
  powerpc: Fix ELFv2 JMP_SLOT relocation fixup
  
  The jump slot is a function pointer, not a descriptor pointer, in ELFv2.  Just
  write the pointer itself over, not the contents of the pointer, which would be
  the first instruction of the function.

Modified:
  head/sys/powerpc/powerpc/elf64_machdep.c

Modified: head/sys/powerpc/powerpc/elf64_machdep.c
==============================================================================
--- head/sys/powerpc/powerpc/elf64_machdep.c    Thu Dec  6 04:28:39 2018        
(r341615)
+++ head/sys/powerpc/powerpc/elf64_machdep.c    Thu Dec  6 04:30:24 2018        
(r341616)
@@ -332,7 +332,7 @@ elf_reloc_internal(linker_file_t lf, Elf_Addr relocbas
 #if !defined(_CALL_ELF) || _CALL_ELF == 1
                memcpy(where, (Elf_Addr *)addr, 3*sizeof(Elf_Addr));
 #else
-               memcpy(where, (Elf_Addr *)addr, sizeof(Elf_Addr));
+               *where = addr;
 #endif
                __asm __volatile("dcbst 0,%0; sync" :: "r"(where) : "memory");
                break;
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to