Source-Changes-HG archive

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

[src/trunk]: src/libexec/ld.elf_so Adjust exidx_start by relocbase



details:   https://anonhg.NetBSD.org/src/rev/cc4b82975dd4
branches:  trunk
changeset: 786288:cc4b82975dd4
user:      skrll <skrll%NetBSD.org@localhost>
date:      Thu Apr 25 12:28:59 2013 +0000

description:
Adjust exidx_start by relocbase

diffstat:

 libexec/ld.elf_so/map_object.c |  8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diffs (29 lines):

diff -r 1b7ed06403c3 -r cc4b82975dd4 libexec/ld.elf_so/map_object.c
--- a/libexec/ld.elf_so/map_object.c    Thu Apr 25 12:05:54 2013 +0000
+++ b/libexec/ld.elf_so/map_object.c    Thu Apr 25 12:28:59 2013 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: map_object.c,v 1.46 2013/04/25 09:01:23 skrll Exp $     */
+/*     $NetBSD: map_object.c,v 1.47 2013/04/25 12:28:59 skrll Exp $     */
 
 /*
  * Copyright 1996 John D. Polstra.
@@ -34,7 +34,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: map_object.c,v 1.46 2013/04/25 09:01:23 skrll Exp $");
+__RCSID("$NetBSD: map_object.c,v 1.47 2013/04/25 12:28:59 skrll Exp $");
 #endif /* not lint */
 
 #include <errno.h>
@@ -401,6 +401,10 @@
                obj->interp = (void *)(obj->relocbase + (Elf_Addr)(uintptr_t)obj->interp);
        if (obj->phdr_loaded)
                obj->phdr =  (void *)(obj->relocbase + (Elf_Addr)(uintptr_t)obj->phdr);
+#ifdef __ARM_EABI__
+       if (obj->exidx_start)
+               obj->exidx_start = (void *)(obj->relocbase + (Elf_Addr)(uintptr_t)obj->exidx_start);
+#endif
 
        return obj;
 



Home | Main Index | Thread Index | Old Index