summaryrefslogtreecommitdiff
path: root/src/conf
AgeCommit message (Collapse)AuthorFilesLines
2014-09-05fix off-by-one in bounds check in fpathconfRich Felker1-1/+1
this error resulted in an out-of-bounds read, as opposed to a reported error, when calling the function with an argument one greater than the max valid index.
2014-05-19remove unsupported nonstandard sysconf macros and their table entriesRich Felker1-60/+0
some of these may have been from ancient (pre-SUSv2) POSIX versions; more likely, they were from POSIX drafts or glibc interpretations of what ancient versions of POSIX should have added (instead they made they described functionality mandatory and/or dropped it completely). others are purely glibc-isms, many of them ill-thought-out, like providing ways to lookup the min/max values of types at runtime (despite the impossibility of them changing at runtime and the impossibility of representing ULONG_MAX in a return value of type long). since our sysconf implementation does not support or return meaningful values for any of these, it's harmful to have the macros around; applications' build scripts may detect and attempt to use them, only to get -1/EINVAL as a result. if removing them does break some applications, and it's determined that the usage was reasonable, some of these could be added back on an as-needed basis, but they should return actual meaningful values, not junk like they were returning before.
2014-05-19rework sysconf table to treat zero entries as invalidRich Felker1-10/+13
based on patch by Timo Teräs. previously, the value zero was used as a literal zero, meaning that all invalid sysconf "names", which should result in sysconf returning -1, had to be explicitly listed. (in addition, it was not possible for sysconf to set errno to EINVAL, as there was no distinction between -1 as an error and -1 as a valid result.) now, the value 0 is used for invalid/undefined slots in the table and a new switch table entry is used for returning literal zeros. in addition, an off-by-one error in checking against the table size is fixed.
2014-04-15add _SC_PHYS_PAGES and _SC_AVPHYS_PAGES extentions to sysconfRich Felker1-2/+17
2014-04-15in sysconf, use getrlimit function rather than raw syscall for rlimitsRich Felker1-3/+3
the syscall is deprecated (replaced by prlimit64) and does not work correctly on x32. this change mildly increases size, but is likely needed anyway for newer archs that might omit deprecated syscalls.
2014-04-15avoid linear-time if/else special cases in sysconfRich Felker1-20/+35
the previous handling of cases that could not fit in the 16-bit table or which required non-constant results was extremely ugly and could not scale. the new code remaps these keys into a contiguous range that's efficient for a switch statement.
2014-03-24fix confstr return valueTimo Teräs1-1/+1
per the specification, the terminating null byte is counted.
2013-09-20correct the sysconf value for RTSIG_MAXRich Felker1-1/+2
this is the number of realtime signals available, not the maximum signal number or total number of signals.
2013-09-15support configurable page size on mips, powerpc and microblazeSzabolcs Nagy2-6/+9
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.
2013-09-14fix overflow in sysconf for _SC_MQ_PRIO_MAXRich Felker1-1/+2
the value of MQ_PRIO_MAX does not fit, so it needs to use OFLOW.
2013-07-27a few more fixes for unistd/sysconf feature reportingRich Felker1-7/+7
2013-07-26report presence of ADV and MSG options in unistd.h and sysconfRich Felker1-2/+2
2013-07-26report that posix_spawn is supported in unistd.h and sysconfRich Felker1-1/+1
2013-06-26document in sysconf and unistd.h that per-thread cpu clocks existRich Felker1-1/+1
2012-11-11report support of TPS option in unistd.h and sysconfRich Felker1-2/+2
also update another newish feature in sysconf, stackaddr
2012-05-13let sysconf accurately report # of cpus availableRich Felker1-2/+10
i've been trying out openmp and it seems like it won't be much use without this...
2012-04-21fix broken sysconf when correct value is -1Rich Felker1-1/+1
this caused glib to try to allocate >2gb for getpwnam_r, and probably numerous other problems.
2012-03-22sysconf support for dynamic limits (open files and processes)Rich Felker1-2/+9
2011-10-03sysconf for PTHREAD_KEYS_MAXRich Felker1-1/+1
2011-08-16in pathconf, -1, not 0, means unsupported.. syncio presumably works, too.Rich Felker1-3/+3
2011-08-16fix bogus pathconf result for file size bitsRich Felker1-1/+1
2011-06-07define MQ_PRIO_MAXRich Felker1-1/+1
2011-04-08better fix sysconf pthread stack minRich Felker1-1/+1
2011-04-08consistency with pthread stack min in limits.hRich Felker1-1/+1
2011-03-10fix sem_open and sem_close to obey posix semanticsRich Felker1-5/+5
multiple opens of the same named semaphore must return the same pointer, and only the last close can unmap it. thus the ugly global state keeping track of mappings. the maximum number of distinct named semaphores that can be opened is limited sufficiently small that the linear searches take trivial time, especially compared to the syscall overhead of these functions.
2011-02-14put confstr.c with the other conf functionsRich Felker1-0/+17
2011-02-12initial check-in, version 0.5.0v0.5.0Rich Felker3-0/+263