| Commit message (Expand) | Author | Age | Files | Lines |
| * | math: remove long double version of bessel functions from math.h•••j0l,j1l,jnl,y0l,j1l,jnl are gnu extensions, bsd and posix do not
have them.
noone seems to use them and there is no plan to implement them any
time soon so we shouldn't declare them in math.h.
| Szabolcs Nagy | 2012-12-11 | 1 | -8/+0 |
| * | make CMPLX macros available in complex.h in non-c11 mode as well | Szabolcs Nagy | 2012-12-11 | 1 | -2/+0 |
| * | fix regressions in app compatibility from previous sys/ipc.h changes•••despite glibc using __key and __seq rather than key and seq, some
applications, notably busybox, assume the names are key and seq unless
glibc is being used. and the names key and seq are really the ones
that _should_ be exposed when not attempting to present a
standards-conforming namespace; apps should not be using names that
begin with double-underscore. thus, the optimal fix is to use key and
seq as the actual names of the members when in bsd/gnu source profile,
and define macros for __key and __seq that redirect to plain key and
seq.
| Rich Felker | 2012-12-10 | 1 | -0/+5 |
| * | syscall() declaration belongs in unistd.h, not sys/syscall.h•••traditionally, both BSD and GNU systems have it this way.
sys/syscall.h is purely syscall number macros. presently glibc exposes
the syscall declaration in unistd.h only with _GNU_SOURCE, but that
does not reflect historical practice.
| Rich Felker | 2012-12-10 | 2 | -10/+1 |
| * | fix names of ipc_perm __key/__seq elements•••previously the names were exposed as key/seq with _GNU_SOURCE and
__ipc_perm_key/__ipc_perm/seq otherwise, whereas glibc always uses
__key and __seq for the names. thus, the old behavior never matched
glibc, and the new behavior always does, regardless of feature test
macros.
for now, i'm leaving the renaming here in sys/ipc.h where it's easy to
change globally for all archs, in case something turns out to be
wrong, but eventually the names could just be incorporated directly
into the bits headers for each arch and the renaming removed.
| Rich Felker | 2012-12-06 | 1 | -6/+2 |
| * | fix F_DUPFD_CLOEXEC being defined twice | rofl0r | 2012-12-06 | 1 | -1/+0 |
| * | fixup for fcntl.h changes | rofl0r | 2012-12-06 | 1 | -15/+14 |
| * | add personality syscall | rofl0r | 2012-12-06 | 1 | -0/+6 |
| * | add sigandset and sigorset (needed for qemu) | rofl0r | 2012-12-06 | 1 | -0/+3 |
| * | add struct msgbuf to sys/msg.h | rofl0r | 2012-12-06 | 1 | -0/+7 |
| * | unistd.h: fix wrong type for gid_t argument•••the prototype is defined with const gid_t* rather than const gid_t[].
it was already correctly defined in grp.h.
| rofl0r | 2012-12-06 | 1 | -1/+1 |
| * | ipc.h: fix gnu aliases for key and seq in struct ipc_perm•••the macro was the wrong way round, additionally GNU defines
__ prefixed versions, which are used by qemu.
| rofl0r | 2012-12-06 | 1 | -2/+4 |
| * | add obsolete futimesat()•••this function is obsolete, however it's available as a syscall
and as such qemu userspace emulation tries to forward it to the
host kernel.
| rofl0r | 2012-12-06 | 1 | -0/+1 |
| * | fcntl.h: add some linux-specific F_ macros•••thankfully these are all generic across archs.
the DN_ macros are for usage with F_NOTIFY.
| rofl0r | 2012-12-06 | 1 | -0/+17 |
| * | tcp.h: add SOL_TCP, analoguous to udp.h | rofl0r | 2012-12-06 | 1 | -0/+2 |
| * | fix inefficiency of math.h isless, etc. macros•••previously, everything was going through an intermediate conversion to
long double, which caused the extern __fpclassifyl function to get
invoked, preventing virtually all optimizations of these operations.
with the new code, tests on constant float or double arguments compile
to a constant 0 or 1, and tests on non-constant expressions are
efficient. I may later add support for __builtin versions on compilers
that support them.
| Rich Felker | 2012-12-05 | 1 | -14/+29 |
| * | add scsi headers scsi.h and sg.h•••due to some historical oddity, these are considered libc headers
rather than kernel headers. the kernel used to provide them too, but
it seems modern kernels do not install them, so let's just do the
easiest thing and provide them. stripped-down versions provided by
John Spencer.
| Rich Felker | 2012-12-05 | 2 | -0/+279 |
| * | use __builtin_offsetof to implement offsetof when possible•••apparently recent gcc versions have intentionally broken the
traditional definition by treating it as a non-constant expression.
the traditional definition may also be problematic for c++ programs.
| Rich Felker | 2012-12-05 | 1 | -0/+4 |
| * | add _ALL_SOURCE as an alias for _GNU_SOURCE/enable-everything•••reportedly this is a semi-common practice among some BSDs and a few
other systems, and will improve application compatibility.
| Rich Felker | 2012-12-03 | 1 | -0/+4 |
| * | feature test macros: make _GNU_SOURCE enable everything•••previously, a few BSD features were enabled only by _BSD_SOURCE, not
by _GNU_SOURCE. since _BSD_SOURCE is default in the absence of other
feature test macros, this made adding _GNU_SOURCE to a project not a
purely additive feature test macro; it actually caused some features
to be suppressed.
most of the changes made by this patch actually bring musl in closer
alignment with the glibc behavior for _GNU_SOURCE. the only exceptions
are the added visibility of functions like strlcpy which were BSD-only
due to being disliked/rejected by glibc maintainers. here, I feel the
consistency of having _GNU_SOURCE mean "everything", and especially
the property of it being purely additive, are more valuable than
hiding functions which glibc does not have.
| Rich Felker | 2012-12-03 | 5 | -18/+4 |
| * | fix a couple issues in the inttypes.h PRI/SCN macros•••most importantly, the format/scan macros for the [u]int_fast16_t and
[u]int_fast32_t types were defined incorrectly assuming these types
would match the native word/pointer size. this is incorrect on any
64-bit system; the "fast" types for 16- and 32-bit integers are simply
int.
another issue which was "only a warning" (despite being UB) is that
the choice of "l" versus "ll" was incorrect for 64-bit types on 64-bit
machines. while it would "work" to always use "long long" for 64-bit
types, we use "long" on 64-bit machines to match what glibc does and
what the ABI documents recommend. the macro definitions were probably
right in very old versions of musl, but became wrong when we aligned
most closely with the 'standard' ABI. checking UINTPTR_MAX is an easy
way to get the system wordsize without pulling in new headers.
finally, the useless __PRIPTR macro to allow the underlying type of
[u]intptr_t to vary has been removed. we are using "long" on all
targets, and thankfully this matches what glibc does, so I do not
envision ever needing to change it. thus, the "l" has just been
incorporated directly in the strings.
| Rich Felker | 2012-12-02 | 1 | -22/+25 |
| * | provide NSIG under _BSD_SOURCE (default) as well as _GNU_SOURCE•••this fixes a regression related to the changes made to bits/signal.h
between 0.9.7 and 0.9.8 that broke some (non-portable) software.
| Rich Felker | 2012-11-30 | 1 | -1/+4 |
| * | fix some restrict-qualifier mismatches in newly added interfaces•••these should have little/no practical impact but they're needed for
strict conformance.
| Rich Felker | 2012-11-27 | 1 | -2/+2 |
| * | fix eventfd and inotify nonblock/cloexec flags to match arch values | Rich Felker | 2012-11-26 | 2 | -4/+6 |
| * | fix missing limits when only _BSD_SOURCE is defined•••the missing check did not affect the default profile, since it has
both _XOPEN_SOURCE and _BSD_SOURCE defined, but it did break programs
which explicitly define _BSD_SOURCE, causing it to be the only feature
test macro present.
| Rich Felker | 2012-11-26 | 1 | -1/+1 |
| * | fixup mcontext stuff to expost gregset_t/fpregset_t as appropriate | Rich Felker | 2012-11-25 | 2 | -2/+3 |
| * | make sys/procfs.h mostly work on most archs•••these structures are purely for use by trace/debug tools and tools
working with core files. the definition of fpregset_t, which was
previously here, has been removed because it was wrong; fpregset_t
should be the type used in mcontext_t, not the type used in
ptrace/core stuff.
| Rich Felker | 2012-11-25 | 1 | -18/+0 |
| * | add back NSIG, removed from powerpc in last commit, but for all archs•••unlike the previous definition, NSIG/_NSIG is supposed to be one more
than the highest signal number. adding this will allow simplifying
libc-internal code that makes signal-related syscalls, which can be
done as a later step. some apps might use it too; while this usage is
questionable, it's at least not insane.
| Rich Felker | 2012-11-21 | 1 | -0/+1 |
| * | fix breakage from introducing bits header for sys/io.h•••apparently some other archs have sys/io.h and should not break just
because they don't have the x86 port io functions. provide a blank
bits/io.h everywhere for now.
| Rich Felker | 2012-11-18 | 1 | -0/+3 |
| * | add port io functions to sys/io.h•••based on proposal by Isaac Dunham. nonexistance of bits/io.h will
cause inclusion of sys/io.h to produce an error on archs that are not
supposed to have it. this is probably the desired behavior, but the
error message may be a bit unusual.
| Rich Felker | 2012-11-18 | 1 | -2/+3 |
| * | fcntl.h: O_SEARCH was missing for powerpc•••put some macros that do not differ between architectures in the
main header and remove from bits.
restructure mips header so it has the same structure as the others.
| rofl0r | 2012-11-18 | 1 | -0/+4 |
| * | add cleaned-up sys/mtio.h•••this is mostly junk, but a few programs with tape-drive support
unconditionally include it, and it might be useful.
| Rich Felker | 2012-11-17 | 1 | -0/+188 |
| * | add stub versions of some missing optional pthread interfaces•••priority inheritance is not yet supported, and priority protection
probably will not be supported ever unless there's serious demand for
it (it's a fairly heavy-weight feature).
per-thread cpu clocks would be nice to have, but to my knowledge linux
is still not capable of supporting them. glibc fakes them by using the
_process_ cpu-time clock and subtracting the thread creation time,
which gives seriously incorrect semantics (worse than not supporting
the feature at all), so until there's a way to do it right, it will
remain as a stub that always fails.
| Rich Felker | 2012-11-17 | 1 | -0/+5 |
| * | disable SO_REUSEPORT in sys/socket.h•••although a number is reserved for it, this option is not implemented
on Linux and does not work. defining it causes some applications to
use it, and subsequently break due to its failure.
| Rich Felker | 2012-11-15 | 1 | -1/+1 |
| * | complex: add C11 CMPLX macros and replace cpack with them | Szabolcs Nagy | 2012-11-13 | 1 | -0/+9 |
| * | report support of TPS option in unistd.h and sysconf•••also update another newish feature in sysconf, stackaddr
| Rich Felker | 2012-11-11 | 1 | -0/+1 |
| * | add support for thread scheduling (POSIX TPS option)•••linux's sched_* syscalls actually implement the TPS (thread
scheduling) functionality, not the PS (process scheduling)
functionality which the sched_* functions are supposed to have.
omitting support for the PS option (and having the sched_* interfaces
fail with ENOSYS rather than omitting them, since some broken software
assumes they exist) seems to be the only conforming way to do this on
linux.
| Rich Felker | 2012-11-11 | 3 | -0/+12 |
| * | fix numerous mips abi constant definition mismatches | Rich Felker | 2012-11-05 | 1 | -0/+7 |
| * | mips cache flush/ctl syscall support and header | Rich Felker | 2012-11-04 | 1 | -0/+22 |
| * | avoid breakage if somebody wrongly defines empty feature test macros | Rich Felker | 2012-11-01 | 2 | -3/+3 |
| * | add dl_iterate_phdr interface•••patches by Alex Caudill (npx). the dynamic-linked version is almost
identical to the final submitted patch; I just added a couple missing
lines for saving the phdr address when the dynamic linker is invoked
directly to run a program, and removed a couple to avoid introducing
another unnecessary type. the static-linked version is based on npx's
draft. it could use some improvements which are contingent on the
startup code saving some additional information for later use.
| Rich Felker | 2012-10-31 | 1 | -0/+27 |
| * | fix issues with wait constants in stdlib.h•••the W* namespace is not reserved, so the nonstandard ones must be
moved under extension features. also WNOHANG and WUNTRACED were
missing.
| Rich Felker | 2012-10-21 | 2 | -6/+5 |
| * | complex: make _Complex_I work with gcc -std=c99 -pedantic-errors | nsz | 2012-10-21 | 1 | -0/+4 |
| * | assert() is supposed to have type void | Rich Felker | 2012-10-17 | 1 | -1/+1 |
| * | add memmem function (gnu extension)•••based on strstr. passes gnulib tests and a few quick checks of my own.
| Rich Felker | 2012-10-15 | 1 | -0/+1 |
| * | microblaze TLS relocation support, completely untested | Rich Felker | 2012-10-15 | 1 | -1/+8 |
| * | add getopt reset support•••based on proposed patches by Daniel Cegiełka, with minor changes:
- use a weak symbol for optreset so it doesn't clash with namespace
- also reset optpos (position in multi-option arg like -lR)
- also make getopt_long support reset
| Rich Felker | 2012-09-30 | 1 | -1/+1 |
| * | define some _POSIX_* macros that were omitted; required for XSI conformance | Rich Felker | 2012-09-30 | 1 | -0/+3 |
| * | always expose accept4•••it will be in the next version of POSIX
| Rich Felker | 2012-09-29 | 1 | -4/+1 |
| * | always expose dup3 and pipe2•••they will be in the next version of POSIX
| Rich Felker | 2012-09-29 | 1 | -2/+2 |