Author: gonzo
Date: Fri Jan 13 07:00:47 2012
New Revision: 230046
URL: http://svn.freebsd.org/changeset/base/230046

Log:
  - Fix .rela case of R_MIPS_26 relocation. Addednds save diferently for
      .rel and .rela sections. It's shifted right two bits for former
     but saved as-is for latter.

Modified:
  head/sys/mips/mips/elf_machdep.c

Modified: head/sys/mips/mips/elf_machdep.c
==============================================================================
--- head/sys/mips/mips/elf_machdep.c    Fri Jan 13 06:56:59 2012        
(r230045)
+++ head/sys/mips/mips/elf_machdep.c    Fri Jan 13 07:00:47 2012        
(r230046)
@@ -227,7 +227,11 @@ elf_reloc_internal(linker_file_t lf, Elf
                        return (-1);
 
                addend &= 0x03ffffff;
-               addend <<= 2;
+               /*
+                * Addendum for .rela R_MIPS_26 is not shifted right
+                */
+               if (rela == NULL)
+                       addend <<= 2;
 
                addr += ((Elf_Addr)where & 0xf0000000) | addend;
                addr >>= 2;
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to