64 lines
1.6 KiB
Diff
64 lines
1.6 KiB
Diff
![]() |
This is the important part of 8f4a5048eea6536ee85c0f2670adbb97d71e427d.
|
||
|
Unfortunately the assertion fails in statically linked binaries.
|
||
|
|
||
|
diff --git a/sysdeps/unix/sysv/linux/getpagesize.c b/sysdeps/unix/sysv/linux/getpagesize.c
|
||
|
index 6d03b3b..0866079 100644
|
||
|
--- a/sysdeps/unix/sysv/linux/getpagesize.c
|
||
|
+++ b/sysdeps/unix/sysv/linux/getpagesize.c
|
||
|
@@ -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.
|
||
|
|
||
|
@@ -17,30 +17,37 @@
|
||
|
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)
|
||
|
--
|
||
|
1.7.2.1
|
||
|
|