| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
not heavily tested, but it seems to be correct, including the odd
behavior that seeking is in terms of wide character count. this
precludes any simple buffering, so we just make the stream unbuffered.
|
|
|
|
|
| |
this is the first attempt, and may have bugs. only minimal testing has
been performed.
|
| |
|
|
|
|
|
| |
1 is too small if int is 32-bit but unsigned long is 64-bit. be
explicit and use 1UL.
|
|
|
|
| |
no sense bloating apps with a function call for an equality comparison...
|
|
|
|
|
|
|
|
|
|
|
|
| |
this is a "nonstandard" function that was "rejected" by POSIX, but
nonetheless had its behavior documented in the POSIX rationale for
fork. it's present on solaris and possibly some other systems, and
duplicates the whole calling process, not just a single thread. glibc
does not have this function. it should not be used in programs
intending to be portable, but may be useful for testing,
checkpointing, etc. and it's an interesting (and quite small) example
of the usefulness of the __synccall framework originally written to
work around deficiencies in linux's setuid syscall.
|
|
|
|
|
| |
this is necessary to avoid build errors if feature test macros are not
properly defined when including ucontext.h
|
| |
|
|
|
|
|
|
| |
STREAMS are utterly useless as far as I can tell, but some software
was apparently broken by the presence of stropts.h but lack of macros
it's supposed to define...
|
|
|
|
|
| |
hopefully this resolves the rest of the issues with hideously
nonportable hacks in programs that use gnulib.
|
|
|
|
|
|
| |
this is a really ugly and backwards function, but its presence will
prevent lots of broken gnulib software from trying to define its own
version of fpurge and thereby failing to build or worse.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
looks like busybox is going to want it, and apparently some other
low-level network software does too...
|
| |
|
| |
|
| |
|
|
|
|
|
| |
this is not too ugly and should result in significant code size and
performance improvements for many programs.
|
|
|
|
|
|
|
|
|
|
|
|
| |
basically there are 3 choices for how to implement this variable-size
string member:
1. C99 flexible array member: breaks using dirent.h with pre-C99 compiler.
2. old way: length-1 string: generates array bounds warnings in caller.
3. new way: length-NAME_MAX string. no problems, simplifies all code.
of course the usable part in the pointer returned by readdir might be
shorter than NAME_MAX+1 bytes, but that is allowed by the standard and
doesn't hurt anything.
|
| |
|
|
|
|
|
|
| |
there is a resource limit of 0 bits to store the concurrency level
requested. thus any positive level exceeds a resource limit, resulting
in EAGAIN. :-)
|
|
|
|
|
| |
file actions are not yet implemented, but everything else should be
mostly complete and roughly correct.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
this slightly cuts down on the degree musl "fights with" gcc, but more
importantly, it fixes a critical bug when gcc inlines a variadic
function and optimizes out the variadic arguments due to noticing that
they were "not used" (by __builtin_va_arg).
we leave the old code in place if __GNUC__ >= 3 is false; it seems
like it might be necessary at least for tinycc support and perhaps if
anyone ever gets around to fixing gcc 2.95.3 enough to make it work..
|
|
|
|
|
| |
the old versions worked, but conflicted with programs which declared
their own prototypes and generated warnings with some versions of gcc.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
this is explicitly allowed by POSIX
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
some of these definitions were just plain wrong, others based on
outdated ancient "non-64" versions of the kernel interface.
as much as possible has now been moved out of bits/*
these changes break abi (the old abi for these functions was wrong),
but since they were not working anyway it can hardly matter.
|
| |
|
| |
|
|
|
|
| |
RLIM_* is in the reserved namespace for this header
|
|
|
|
|
| |
trash in the upper 32 bits was making the kernel sleep forever in
select on 64-bit systems.
|
| |
|
| |
|
| |
|
|
|
|
| |
this eliminates the ugly static buffer in programs that use ptsname_r.
|