Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/sh3/sh3 Support R_SH_REL32 (encountered in .eh_frame).



details:   https://anonhg.NetBSD.org/src/rev/66c0635e9c8b
branches:  trunk
changeset: 450274:66c0635e9c8b
user:      uwe <uwe%NetBSD.org@localhost>
date:      Tue Apr 09 00:16:30 2019 +0000

description:
Support R_SH_REL32 (encountered in .eh_frame).

diffstat:

 sys/arch/sh3/sh3/kobj_machdep.c |  7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diffs (33 lines):

diff -r 9ba62a56b296 -r 66c0635e9c8b sys/arch/sh3/sh3/kobj_machdep.c
--- a/sys/arch/sh3/sh3/kobj_machdep.c   Mon Apr 08 21:18:22 2019 +0000
+++ b/sys/arch/sh3/sh3/kobj_machdep.c   Tue Apr 09 00:16:30 2019 +0000
@@ -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 @@
                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;
 



Home | Main Index | Thread Index | Old Index