aboutsummaryrefslogtreecommitdiff
path: root/src/legacy (follow)
Commit message (Expand)AuthorAgeFilesLines
* remove spurious inclusion of libc.h for LFS64 ABI aliases•••the LFS64 macro was not self-documenting and barely saved any characters. simply use weak_alias directly so that it's clear what's being done, and doesn't depend on a header to provide a strange macro. Rich Felker2018-09-121-2/+1
* reduce spurious inclusion of libc.h•••libc.h was intended to be a header for access to global libc state and related interfaces, but ended up included all over the place because it was the way to get the weak_alias macro. most of the inclusions removed here are places where weak_alias was needed. a few were recently introduced for hidden. some go all the way back to when libc.h defined CANCELPT_BEGIN and _END, and all (wrongly implemented) cancellation points had to include it. remaining spurious users are mostly callers of the LOCK/UNLOCK macros and files that use the LFS64 macro to define the awful *64 aliases. in a few places, new inclusion of libc.h is added because several internal headers no longer implicitly include libc.h. declarations for __lockfile and __unlockfile are moved from libc.h to stdio_impl.h so that the latter does not need libc.h. putting them in libc.h made no sense at all, since the macros in stdio_impl.h are needed to use them correctly anyway. Rich Felker2018-09-122-2/+0
* remove or make static various unused __-prefixed symbolsRich Felker2018-09-121-1/+1
* fix issues from public functions defined without declaration visible•••policy is that all public functions which have a public declaration should be defined in a context where that public declaration is visible, to avoid preventable type mismatches. an audit performed using GCC's -Wmissing-declarations turned up the violations corrected here. in some cases the public header had not been included; in others, a feature test macro needed to make the declaration visible had been omitted. in the case of gethostent and getnetent, the omission seems to have been intentional, as a hack to admit a single stub definition for both functions. this kind of hack is no longer acceptable; it's UB and would not fly with LTO or advanced toolchains. the hack is undone to make exposure of the declarations possible. Rich Felker2018-09-121-0/+1
* fix one-byte overflow in legacy getpass function•••if the length of the input was equal to the buffer size (128), a fixed value of zero was written one byte past the end of the static buffer. Rich Felker2017-03-141-1/+1
* getdtablesize: fix returning hard instead of soft rlimit•••This makes the result consistent with sysconf(_SC_OPEN_MAX). Olivier Brunel2016-08-301-1/+1
* add errno setting to stub utmpxname functionRich Felker2016-01-281-0/+2
* legacy/utmpx: Add utmp{,x}name stubsKylie McClain2016-01-281-0/+7
* fix futimes legacy function with null tv pointer•••a null pointer is valid here and indicates that the current time should be used. based on patch by Felix Janda, simplified. Rich Felker2015-05-061-0/+1
* getloadavg: use sysinfo() instead of /proc/loadavg•••Based on a patch by Szabolcs Nagy. Alexander Monakov2015-02-251-11/+7
* fix multiple issues in legacy function getpass•••1. failure to output a newline after the password is read 2. fd leaks via missing FD_CLOEXEC 3. fd leaks via failure-to-close when any of the standard streams are closed at the time of the call 4. wrongful fallback to use of stdin when opening /dev/tty fails 5. wrongful use of stderr rather than /dev/tty for prompt 6. failure to report error reading password Rich Felker2014-07-061-5/+6
* include cleanups: remove unused headers and add feature test macrosSzabolcs Nagy2013-12-127-4/+8
* add legacy getloadavg apiSzabolcs Nagy2013-11-211-0/+18
* 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. Szabolcs Nagy2013-09-152-2/+2
* unbreak vwarn: print ": " before errno message•••patch by Strake. this seems to be a regression caused by fixing the behavior of perror("") to match perror(0) at some point in the past. Rich Felker2013-08-211-2/+5
* collapse euidaccess to a call to faccessat•••it turns out Linux is buggy for faccessat, just like fchmodat: the kernel does not actually take a flags argument. so we're going to have to emulate it there. Rich Felker2013-08-031-9/+1
* add legacy euidaccess function and eaccess alias for it•••this is mainly for ABI compat purposes. Rich Felker2013-08-031-0/+18
* add legacy function valloc•••it was already declared in stdlib.h, but not defined anywhere. Rich Felker2013-08-021-0/+8
* make err.h functions print __progname•••patch by Strake. previously is was not feasible to duplicate this functionality of the functions these were modeled on, since argv[0] was not saved at program startup, but now that it's available it's easy to use. Rich Felker2013-05-181-0/+4
* more close-on-exec fixes, mostly using new "e" flag to fopenRich Felker2012-09-291-1/+1
* cleanup src/linux and src/misc trees, etc.•••previously, it was pretty much random which one of these trees a given function appeared in. they have now been organized into: src/linux: non-POSIX linux syscalls (possibly shard with other nixen) src/legacy: various obsolete/legacy functions, mostly wrappers src/misc: still mostly uncategorized; some misc POSIX, some nonstd src/crypt: crypt hash functions further cleanup will be done later. Rich Felker2012-09-0713-0/+302