Date: Wed, 13 Jan 2016 21:34:15 +0000 (UTC) From: Andrew Turner <andrew@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293852 - head/usr.sbin/kldxref Message-ID: <201601132134.u0DLYFRv014524@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201601132134.u0DLYFRv014524>