From b20760c02318fa6da228587c401a8b2bb22a1aab Mon Sep 17 00:00:00 2001 From: Szabolcs Nagy Date: Sun, 15 Sep 2013 02:00:32 +0000 Subject: 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. --- include/limits.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/limits.h') diff --git a/include/limits.h b/include/limits.h index 54d1940b..a8460cc8 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 -- cgit v1.2.1