summaryrefslogtreecommitdiffstats
path: root/libexec
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2015-04-13 08:35:03 +0000
committerpeter <peter@FreeBSD.org>2015-04-13 08:35:03 +0000
commitc8a0a7a3f7b297e74fd9bb994fae89357f971c62 (patch)
tree8b531a1f9d15bcb2a4c08adf271e5ca36030b760 /libexec
parentb4c145b73c8254b7a509a5fcaee8cb84ebd67930 (diff)
downloadFreeBSD-src-c8a0a7a3f7b297e74fd9bb994fae89357f971c62.zip
FreeBSD-src-c8a0a7a3f7b297e74fd9bb994fae89357f971c62.tar.gz
MFC r268182: Initialize page sizes early for ia64.
Diffstat (limited to 'libexec')
-rw-r--r--libexec/rtld-elf/ia64/rtld_machdep.h2
-rw-r--r--libexec/rtld-elf/rtld.c7
2 files changed, 9 insertions, 0 deletions
diff --git a/libexec/rtld-elf/ia64/rtld_machdep.h b/libexec/rtld-elf/ia64/rtld_machdep.h
index 4a68ff7..b00a90fc 100644
--- a/libexec/rtld-elf/ia64/rtld_machdep.h
+++ b/libexec/rtld-elf/ia64/rtld_machdep.h
@@ -69,4 +69,6 @@ extern void *__tls_get_addr(unsigned long module, unsigned long offset);
#define RTLD_DEFAULT_STACK_PF_EXEC 0
#define RTLD_DEFAULT_STACK_EXEC 0
+#define RTLD_INIT_PAGESIZES_EARLY 1
+
#endif
diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c
index 94ae21f..84d1c80 100644
--- a/libexec/rtld-elf/rtld.c
+++ b/libexec/rtld-elf/rtld.c
@@ -1807,6 +1807,11 @@ init_rtld(caddr_t mapbase, Elf_Auxinfo **aux_info)
const Elf_Dyn *dyn_soname;
const Elf_Dyn *dyn_runpath;
+#ifdef RTLD_INIT_PAGESIZES_EARLY
+ /* The page size is required by the dynamic memory allocator. */
+ init_pagesizes(aux_info);
+#endif
+
/*
* Conjure up an Obj_Entry structure for the dynamic linker.
*
@@ -1843,8 +1848,10 @@ init_rtld(caddr_t mapbase, Elf_Auxinfo **aux_info)
/* Now that non-local variables can be accesses, copy out obj_rtld. */
memcpy(&obj_rtld, &objtmp, sizeof(obj_rtld));
+#ifndef RTLD_INIT_PAGESIZES_EARLY
/* The page size is required by the dynamic memory allocator. */
init_pagesizes(aux_info);
+#endif
if (aux_info[AT_OSRELDATE] != NULL)
osreldate = aux_info[AT_OSRELDATE]->a_un.a_val;
OpenPOWER on IntegriCloud