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