svn commit: r230046 - head/sys/mips/mips

Oleksandr Tymoshenko gonzo at FreeBSD.org
Fri Jan 13 07:00:48 UTC 2012


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;


More information about the svn-src-all mailing list