Optimize __getpagesize a bit.
authorUlrich Drepper <drepper@redhat.com>
Sat, 27 Mar 2010 13:19:50 +0000 (06:19 -0700)
committerUlrich Drepper <drepper@redhat.com>
Sat, 27 Mar 2010 13:19:50 +0000 (06:19 -0700)
ChangeLog
sysdeps/unix/sysv/linux/getpagesize.c

index d06b956..4587248 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2010-03-27  Ulrich Drepper  <drepper@redhat.com>
 
+       * sysdeps/unix/sysv/linux/getpagesize.c (__getpagesize): If
+       __ASSUME_AT_PAGESIZE we can rely on the value being set.
+
        * include/wchar.h: Undefine __need_mbstate_t and __need_wint_t
        unconditionally in the end.
 
index 6d03b3b..0866079 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,1992,1995-1997,2000,2002,2004
+/* Copyright (C) 1991,1992,1995-1997,2000,2002,2004,2010
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include <assert.h>
 #include <unistd.h>
 #include <sys/param.h>
 
 #include <ldsodefs.h>
+#include <kernel-features.h>
 
 /* Return the system page size.  */
 int
 __getpagesize ()
 {
+#ifdef __ASSUME_AT_PAGESIZE
+  assert (GLRO(dl_pagesize) != 0);
+  return GLRO(dl_pagesize);
+#else
   if (GLRO(dl_pagesize) != 0)
     return GLRO(dl_pagesize);
 
-#ifdef EXEC_PAGESIZE
+# ifdef        EXEC_PAGESIZE
   return EXEC_PAGESIZE;
-#else  /* No EXEC_PAGESIZE.  */
-#ifdef NBPG
-#ifndef        CLSIZE
-#define        CLSIZE  1
-#endif /* No CLSIZE.  */
+# else /* No EXEC_PAGESIZE.  */
+#  ifdef NBPG
+#   ifndef CLSIZE
+#    define CLSIZE     1
+#   endif      /* No CLSIZE.  */
   return NBPG * CLSIZE;
-#else  /* No NBPG.  */
+#  else        /* No NBPG.  */
   return NBPC;
-#endif /* NBPG.  */
-#endif /* EXEC_PAGESIZE.  */
+#  endif       /* NBPG.  */
+# endif        /* EXEC_PAGESIZE.  */
+#endif
 }
 libc_hidden_def (__getpagesize)
 weak_alias (__getpagesize, getpagesize)