about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRoland McGrath <roland@hack.frob.com>2013-03-15 14:35:17 -0700
committerRoland McGrath <roland@hack.frob.com>2013-03-15 14:35:17 -0700
commitaefc9b8c7c62ec25568ae9241db333436ae6860b (patch)
treec11e4b301a60b88059a2ed4a5a6fb9f51578e812
parentbc16e260d0e74b36e48d30edc6ea4f1152700c09 (diff)
downloadglibc-aefc9b8c7c62ec25568ae9241db333436ae6860b.tar.gz
glibc-aefc9b8c7c62ec25568ae9241db333436ae6860b.tar.xz
glibc-aefc9b8c7c62ec25568ae9241db333436ae6860b.zip
Clean up _dl_pagesize initialization.
-rw-r--r--ChangeLog4
-rw-r--r--elf/dl-support.c6
2 files changed, 6 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index f3eea73857..4afd5f2022 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2013-03-15  Roland McGrath  <roland@hack.frob.com>
 
+	* elf/dl-support.c (_dl_aux_init): Ignore zero value for AT_PAGESZ.
+	(_dl_non_dynamic_init): Don't set _dl_pagesize; it will never be
+	zero since it's initialized to EXEC_PAGESIZE.
+
 	* sysdeps/unix/sysv/linux/ldsodefs.h
 	(_dl_non_dynamic_init, _dl_aux_init): Move declarations to ...
 	* sysdeps/generic/ldsodefs.h: ... here.
diff --git a/elf/dl-support.c b/elf/dl-support.c
index b2bf31264e..ad9b4c40b0 100644
--- a/elf/dl-support.c
+++ b/elf/dl-support.c
@@ -198,7 +198,8 @@ _dl_aux_init (ElfW(auxv_t) *av)
     switch (av->a_type)
       {
       case AT_PAGESZ:
-	GLRO(dl_pagesize) = av->a_un.a_val;
+	if (av->a_un.a_val != 0)
+	  GLRO(dl_pagesize) = av->a_un.a_val;
 	break;
       case AT_CLKTCK:
 	GLRO(dl_clktck) = av->a_un.a_val;
@@ -266,9 +267,6 @@ _dl_non_dynamic_init (void)
   if (HP_TIMING_AVAIL)
     HP_TIMING_NOW (_dl_cpuclock_offset);
 
-  if (!_dl_pagesize)
-    _dl_pagesize = __getpagesize ();
-
   _dl_verbose = *(getenv ("LD_WARN") ?: "") == '\0' ? 0 : 1;
 
   /* Set up the data structures for the system-supplied DSO early,