Module Name: src Committed By: uwe Date: Tue Apr 9 00:16:30 UTC 2019
Modified Files: src/sys/arch/sh3/sh3: kobj_machdep.c Log Message: Support R_SH_REL32 (encountered in .eh_frame). To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/arch/sh3/sh3/kobj_machdep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/sh3/sh3/kobj_machdep.c diff -u src/sys/arch/sh3/sh3/kobj_machdep.c:1.5 src/sys/arch/sh3/sh3/kobj_machdep.c:1.6 --- src/sys/arch/sh3/sh3/kobj_machdep.c:1.5 Fri Nov 3 09:59:08 2017 +++ src/sys/arch/sh3/sh3/kobj_machdep.c Tue Apr 9 00:16:30 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: kobj_machdep.c,v 1.5 2017/11/03 09:59:08 maxv Exp $ */ +/* $NetBSD: kobj_machdep.c,v 1.6 2019/04/09 00:16:30 uwe Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kobj_machdep.c,v 1.5 2017/11/03 09:59:08 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kobj_machdep.c,v 1.6 2019/04/09 00:16:30 uwe Exp $"); #define ELFSIZE ARCH_ELFSIZE @@ -64,11 +64,14 @@ kobj_reloc(kobj_t ko, uintptr_t relocbas break; case R_TYPE(DIR32): + case R_TYPE(REL32): error = kobj_sym_lookup(ko, symidx, &addr); if (error) return -1; tmp = (Elf_Addr)(addr + *where + rela->r_addend); + if (rtype == R_TYPE(REL32)) + tmp -= rela->r_offset; *where = tmp; break;