support configurable page size on mips, powerpc and microblaze
PAGE_SIZE was hardcoded to 4096, which is historically what most
systems use, but on several archs it is a kernel config parameter,
user space can only know it at execution time from the aux vector.
PAGE_SIZE and PAGESIZE are not defined on archs where page size is
a runtime parameter, applications should use sysconf(_SC_PAGE_SIZE)
to query it. Internally libc code defines PAGE_SIZE to libc.page_size,
which is set to aux[AT_PAGESZ] in __init_libc and early in __dynlink
as well. (Note that libc.page_size can be accessed without GOT, ie.
before relocations are done)
Some fpathconf settings are hardcoded to 4096, these should be actually
queried from the filesystem using statfs.
diff --git a/include/limits.h b/include/limits.h
index 54d1940..a8460cc 100644
--- a/include/limits.h
+++ b/include/limits.h
@@ -40,7 +40,9 @@
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
#define PIPE_BUF 4096
+#ifdef PAGE_SIZE
#define PAGESIZE PAGE_SIZE
+#endif
#define FILESIZEBITS 64
#define NAME_MAX 255
#define SYMLINK_MAX 255