svn commit: r293852 - head/usr.sbin/kldxref

Andrew Turner andrew at FreeBSD.org
Wed Jan 13 21:34:17 UTC 2016


Author: andrew
Date: Wed Jan 13 21:34:15 2016
New Revision: 293852
URL: https://svnweb.freebsd.org/changeset/base/293852

Log:
  Add support for relocating AArch64 modules to kldxref. This fixes an error
  message where it fails to read the module as the unrelocated addresses
  are zero.
  
  Sponsored by:	ABT Systems Ltd

Added:
  head/usr.sbin/kldxref/ef_aarch64.c
     - copied, changed from r293737, head/usr.sbin/kldxref/ef_powerpc.c

Copied and modified: head/usr.sbin/kldxref/ef_aarch64.c (from r293737, head/usr.sbin/kldxref/ef_powerpc.c)
==============================================================================
--- head/usr.sbin/kldxref/ef_powerpc.c	Tue Jan 12 09:03:39 2016	(r293737, copy source)
+++ head/usr.sbin/kldxref/ef_aarch64.c	Wed Jan 13 21:34:15 2016	(r293852)
@@ -60,15 +60,18 @@ ef_reloc(struct elf_file *ef, const void
 	rtype = ELF_R_TYPE(rela->r_info);
 	symidx = ELF_R_SYM(rela->r_info);
 
-	 if ((char *)where < (char *)dest || (char *)where >= (char *)dest + len)
+	if ((char *)where < (char *)dest || (char *)where >= (char *)dest + len)
                 return (0);
 
 	switch(rtype) {
-	case R_PPC_RELATIVE: /* word32 B + A */
+	case R_AARCH64_RELATIVE:
 		*where = relbase + addend;
 		break;
+	case R_AARCH64_ABS64:
+		break;
 	default:
-		warnx("unhandled relocation type %d", rtype);
+		warnx("unhandled relocation type %lu", rtype);
+		break;
 	}
 	return (0);
 }


More information about the svn-src-all mailing list