summaryrefslogtreecommitdiff
path: root/libexec
diff options
context:
space:
mode:
authorskrll <skrll@NetBSD.org>2013-04-25 09:01:23 +0000
committerskrll <skrll@NetBSD.org>2013-04-25 09:01:23 +0000
commit6c8ca62f552f4775fa9396c46396be056fb77d85 (patch)
treede462e9430cf0584ce2d0e0008d75f2139d23e27 /libexec
parentc377dab842ce5e3056a1691ce9d22d001ac960ef (diff)
Handle PT_ARM_EXIDX when mapping objects.
Diffstat (limited to 'libexec')
-rw-r--r--libexec/ld.elf_so/map_object.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/libexec/ld.elf_so/map_object.c b/libexec/ld.elf_so/map_object.c
index 4ce8f9636e2..92cb2a09e0f 100644
--- a/libexec/ld.elf_so/map_object.c
+++ b/libexec/ld.elf_so/map_object.c
@@ -1,4 +1,4 @@
-/* $NetBSD: map_object.c,v 1.45 2012/10/13 21:13:07 dholland Exp $ */
+/* $NetBSD: map_object.c,v 1.46 2013/04/25 09:01:23 skrll Exp $ */
/*
* Copyright 1996 John D. Polstra.
@@ -34,7 +34,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: map_object.c,v 1.45 2012/10/13 21:13:07 dholland Exp $");
+__RCSID("$NetBSD: map_object.c,v 1.46 2013/04/25 09:01:23 skrll Exp $");
#endif /* not lint */
#include <errno.h>
@@ -218,6 +218,12 @@ _rtld_map_object(const char *path, int fd, const struct stat *sb)
(void *)(uintptr_t)phdr->p_vaddr, phdr->p_memsz));
break;
#endif
+#ifdef __ARM_EABI__
+ case PT_ARM_EXIDX:
+ obj->exidx_start = (void *)(uintptr_t)phdr->p_vaddr;
+ obj->exidx_sz = phdr->p_memsz;
+ break;
+#endif
}
++phdr;