[Midnightbsd-cvs] src [8128] trunk/sys/boot/common/reloc_elf.c: sync with freebsd to minimize diffs here
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Fri Sep 16 17:46:04 EDT 2016
Revision: 8128
http://svnweb.midnightbsd.org/src/?rev=8128
Author: laffer1
Date: 2016-09-16 17:46:04 -0400 (Fri, 16 Sep 2016)
Log Message:
-----------
sync with freebsd to minimize diffs here
Modified Paths:
--------------
trunk/sys/boot/common/reloc_elf.c
Modified: trunk/sys/boot/common/reloc_elf.c
===================================================================
--- trunk/sys/boot/common/reloc_elf.c 2016-09-16 21:44:19 UTC (rev 8127)
+++ trunk/sys/boot/common/reloc_elf.c 2016-09-16 21:46:04 UTC (rev 8128)
@@ -193,6 +193,31 @@
}
return (0);
+#elif defined(__powerpc__)
+ Elf_Size w;
+ const Elf_Rela *rela;
+
+ switch (reltype) {
+ case ELF_RELOC_RELA:
+ rela = reldata;
+ if (relbase + rela->r_offset >= dataaddr &&
+ relbase + rela->r_offset < dataaddr + len) {
+ switch (ELF_R_TYPE(rela->r_info)) {
+ case R_PPC_RELATIVE:
+ w = relbase + rela->r_addend;
+ bcopy(&w, (u_char *)data + (relbase +
+ rela->r_offset - dataaddr), sizeof(w));
+ break;
+ default:
+ printf("\nunhandled relocation type %u\n",
+ (u_int)ELF_R_TYPE(rela->r_info));
+ return (EFTYPE);
+ }
+ }
+ break;
+ }
+
+ return (0);
#else
return (EOPNOTSUPP);
#endif
More information about the Midnightbsd-cvs
mailing list