Commit Graph

469 Commits

Author SHA1 Message Date
cbf35978a9 use __attribute__((const)) for errno and pthread_self if __GNUC__ is defined
this is not too ugly and should result in significant code size and
performance improvements for many programs.
2011-06-06 20:12:42 -04:00
da88b16a22 fix handling of d_name in struct dirent
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.
2011-06-06 18:04:28 -04:00
c74d306f47 missing prototypes for mbsnrtowcs and wcsnrtombs 2011-05-30 13:32:40 -04:00
ddd87b2f10 implement pthread_[sg]etconcurrency.
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. :-)
2011-05-30 11:31:07 -04:00
c97f0d998c initial implementation of posix_spawn
file actions are not yet implemented, but everything else should be
mostly complete and roughly correct.
2011-05-28 18:36:30 -04:00
15b77d52c9 eventfd syscall wrapper and read/write wrappers 2011-05-08 00:03:00 -04:00
202911435b add SA_NOMASK alias for SA_NODEFER with _GNU_SOURCE 2011-05-05 17:44:06 -04:00
def0af1898 use compiler builtins for variadic macros when available
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..
2011-04-27 23:41:48 -04:00
e6bac87d0e correct variadic prototypes for execl* family
the old versions worked, but conflicted with programs which declared
their own prototypes and generated warnings with some versions of gcc.
2011-04-27 16:06:33 -04:00
b5b41212a6 function signature fix: add const qualifier to mempcpy src arg 2011-04-26 12:28:41 -04:00
32e2c468ba typo in prototype for mempcpy 2011-04-26 08:42:55 -04:00
d179807f6b prototype for mempcpy 2011-04-26 08:41:54 -04:00
4b5f054098 move wait.h macros out of bits. they do not vary. 2011-04-21 14:27:28 -04:00
f492c95401 include signal.h to avoid thorny __sigcontext/sigcontext issues
this is explicitly allowed by POSIX
2011-04-21 14:21:57 -04:00
4921ce0867 implement (nonstandard) forkpty 2011-04-20 20:55:13 -04:00
a3aa89d826 fix O_SYNC definition, cleanup fcntl.h 2011-04-14 22:06:30 -04:00
c2b18f3531 fcntl.h: move macros that do not vary between archs out of bits 2011-04-14 21:49:22 -04:00
33a3f202d1 add useless type fd_mask. it's in the reserved namespace. 2011-04-14 16:23:31 -04:00
07e865cc5a numerous fixes to sysv ipc
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.
2011-04-13 16:45:43 -04:00
b5b43b6d62 add syslog.h cruft for syslogd to use... 2011-04-13 16:13:49 -04:00
b778a2ba69 add profile for getmntent_r 2011-04-13 15:24:26 -04:00
45a3219944 fix typos on RLIM_NLIMITS, remove _GNU_SOURCE test for it
RLIM_* is in the reserved namespace for this header
2011-04-13 13:22:19 -04:00
cac7d837cc fix and cleanup suseconds_t/timeval stuff (broken on 64-bit)
trash in the upper 32 bits was making the kernel sleep forever in
select on 64-bit systems.
2011-04-13 13:16:49 -04:00
3f44f298e4 fix prototypes/signature for setgroups, etc. 2011-04-13 09:03:22 -04:00
0f5b43550c fix incorrect GNU sighandler_t typedef 2011-04-13 08:45:28 -04:00
6597f9ac13 implement memrchr (nonstandard) and optimize strrchr in terms of it 2011-04-13 08:36:29 -04:00
750b738e53 add ptsname_r (nonstandard) and split ptsname (standard) to separate file
this eliminates the ugly static buffer in programs that use ptsname_r.
2011-04-13 08:35:32 -04:00
c546be175c move bswap functions to static inline in byteswap.h 2011-04-12 13:04:17 -04:00
0729fd9fd9 utmpx.h is no longer under standards, so expose ut_exit structure 2011-04-12 12:03:33 -04:00
7ecab79f58 add some traditional aliases to stat.h 2011-04-12 12:01:20 -04:00
209f2bbd95 add missing rlimit macros 2011-04-12 11:50:14 -04:00
43b2e9bf26 more types cleanup
the basic idea is that the only things in alltypes.h should be types
that either vary from system to system (in practice, not just in
theoretical la-la land - this is the implementation so we choose what
constraints we want to impose on ports) or which are needed by
multiple system headers.
2011-04-11 10:48:52 -04:00
28bde3b787 cleanup types stuff in headers, fix missing u_int*_t in sys/types.h 2011-04-11 10:38:00 -04:00
2555fe1b6d add some ugly legacy type names in sys/types.h (u_char etc.) 2011-04-10 22:47:43 -04:00
691b20bec0 add legacy BSD-style timer*() macros in sys/time.h 2011-04-10 22:46:46 -04:00
4a19634f07 add missing UTIME_* macros in sys/stat.h 2011-04-10 18:32:59 -04:00
095ad15673 fix typo in sys/msg.h 2011-04-06 17:50:38 -04:00
2b55a619e4 add IN_LOOPBACKNET constant (nonstandard but in reserved namespace) 2011-04-06 15:44:39 -04:00
1fee6186fe fix prototype for strsep 2011-04-06 14:28:29 -04:00
104d013441 fix incorrect (and conflicting on LP64 archs) types for sysv ipc msgq functions 2011-04-06 00:02:20 -04:00
0438e9fd63 getopt.h is a GNU-getopt-specific header. always expose GNU functions. 2011-04-05 15:45:24 -04:00
5788d97221 add sysexits.h legacy header 2011-04-05 15:40:36 -04:00
e72180083e add more legacy functions: setlinebuf and setbuffer 2011-04-05 12:25:31 -04:00
8b61c81693 alternate name for syslog.h 2011-04-05 12:13:54 -04:00
39e48531ef support the nonstandard err.h interfaces
note that unlike the originals, these do not print the program
name/argv[0] because we have not saved it anywhere. this could be
changed in __libc_start_main if desired.
2011-04-05 11:16:49 -04:00
2155afd73e prototype getdtablesize (nonstandard function) 2011-04-03 18:15:36 -04:00
1db283bf19 add setresuid/setresgid functions (nonstandard) 2011-04-03 16:20:57 -04:00
06baa2b56c d_fileno alias for d_ino in dirent
this is nonstandard but since POSIX reserved d_ prefix in dirent.h we
might as well define it unconditionally. some programs depend on it.
2011-04-03 10:24:59 -04:00
5243e5f160 remove obsolete and useless useconds_t type 2011-04-01 21:10:01 -04:00
3df3d4f512 fix misspelled PTHREAD_CANCELED constant 2011-04-01 20:48:02 -04:00