summaryrefslogtreecommitdiff
path: root/src/legacy
AgeCommit message (Collapse)AuthorLines
2018-09-12remove spurious inclusion of libc.h for LFS64 ABI aliasesRich Felker-2/+1
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.
2018-09-12reduce spurious inclusion of libc.hRich Felker-2/+0
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.
2018-09-12remove or make static various unused __-prefixed symbolsRich Felker-1/+1
2018-09-12fix issues from public functions defined without declaration visibleRich Felker-0/+1
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.
2017-03-14fix one-byte overflow in legacy getpass functionRich Felker-1/+1
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.
2016-08-30getdtablesize: fix returning hard instead of soft rlimitOlivier Brunel-1/+1
This makes the result consistent with sysconf(_SC_OPEN_MAX).
2016-01-28add errno setting to stub utmpxname functionRich Felker-0/+2
2016-01-28legacy/utmpx: Add utmp{,x}name stubsKylie McClain-0/+7
2015-05-06fix futimes legacy function with null tv pointerRich Felker-0/+1
a null pointer is valid here and indicates that the current time should be used. based on patch by Felix Janda, simplified.
2015-02-25getloadavg: use sysinfo() instead of /proc/loadavgAlexander Monakov-11/+7
Based on a patch by Szabolcs Nagy.
2014-07-06fix multiple issues in legacy function getpassRich Felker-5/+6
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
2013-12-12include cleanups: remove unused headers and add feature test macrosSzabolcs Nagy-4/+8
2013-11-21add legacy getloadavg apiSzabolcs Nagy-0/+18
2013-09-15support configurable page size on mips, powerpc and microblazeSzabolcs Nagy-2/+2
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-08-21unbreak vwarn: print ": " before errno messageRich Felker-2/+5
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.
2013-08-03collapse euidaccess to a call to faccessatRich Felker-9/+1
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.
2013-08-03add legacy euidaccess function and eaccess alias for itRich Felker-0/+18
this is mainly for ABI compat purposes.
2013-08-02add legacy function vallocRich Felker-0/+8
it was already declared in stdlib.h, but not defined anywhere.
2013-05-18make err.h functions print __prognameRich Felker-0/+4
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.
2012-09-29more close-on-exec fixes, mostly using new "e" flag to fopenRich Felker-1/+1
2012-09-07cleanup src/linux and src/misc trees, etc.Rich Felker-0/+302
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.