| Commit message (Expand) | Author | Age | Files | Lines |
| * | move vsyslog out of SYSLOG_NAMES conditional | Rich Felker | 2012-05-10 | 1 | -2/+4 |
| * | fix missing parens in bit op macros (param.h) | Rich Felker | 2012-05-10 | 1 | -1/+1 |
| * | and another bug in setbit, etc. macros.. | Rich Felker | 2012-05-10 | 1 | -1/+1 |
| * | fix typo in sys/param.h that broke setbit, etc. macros•••this is all junk, but some programs use it.
| Rich Felker | 2012-05-10 | 1 | -1/+1 |
| * | omit declaration of basename wrongly interpreted as prototype in C++•••the non-prototype declaration of basename in string.h is an ugly
compromise to avoid breaking 2 types of broken software:
1. programs which assume basename is declared in string.h and thus
would suffer from dangerous pointer-truncation if an implicit
declaration were used.
2. programs which include string.h with _GNU_SOURCE defined but then
declare their own prototype for basename using the incorrect GNU
signature for the function (which would clash with a correct
prototype).
however, since C++ does not have non-prototype declarations and
interprets them as prototypes for a function with no arguments, we
must omit it when compiling C++ code. thankfully, all known broken
apps that suffer from the above issues are written in C, not C++.
| Rich Felker | 2012-05-09 | 1 | -0/+2 |
| * | some extra legacy header stuff | Rich Felker | 2012-05-06 | 3 | -0/+32 |
| * | take byte order from gcc if gcc has defined it•••this only works with gcc 4.6 and later, but it allows us to support
non-default endianness on archs like arm, mips, ppc, etc. that can do
both without having separate header sets for both variants, and it
saves one #include even on fixed-endianness archs like x86.
| Rich Felker | 2012-05-06 | 1 | -0/+4 |
| * | add isastream (obsolete STREAMS junk)•••apparently some packages see stropts.h and want to be able to use
this. the implementation checks that the file descriptor is valid by
using fcntl/F_GETFD so it can report an error if not (as specified).
| Rich Felker | 2012-05-06 | 1 | -1/+2 |
| * | fix definitions of FP_ILOGB constants•••two issues: (1) the type was wrong (unsigned instead of signed int),
and (2) the value of FP_ILOGBNAN should be INT_MIN rather than INT_MAX
to match the ABI. this is also much more useful since INT_MAX
corresponds to a valid input (infinity). the standard would allow us
to set FP_ILOGB0 to -INT_MAX instead of INT_MIN, which would give us
distinct values for ilogb(0) and ilogb(NAN), but the benefit seems way
too small to justify ignoring the ABI.
note that the macro is just a "portable" (to any twos complement
system where signed and unsigned int have the same width) way to write
INT_MIN without needing limits.h. it's valid to use this method since
these macros are not required to work in #if directives.
| Rich Felker | 2012-05-05 | 1 | -2/+2 |
| * | add *64 junk for sys/*.h headers | Rich Felker | 2012-05-04 | 7 | -0/+50 |
| * | add support for ugly *64 functions with _LARGEFILE64_SOURCE•••musl does not support legacy 32-bit-off_t whatsoever. off_t is always
64 bit, and correct programs that use off_t and the standard functions
will just work out of the box. (on glibc, they would require
-D_FILE_OFFSET_BITS=64 to work.) however, some programs instead define
_LARGEFILE64_SOURCE and use alternate versions of all the standard
types and functions with "64" appended to their names.
we do not want code to actually get linked against these functions
(it's ugly and inconsistent), so macros are used instead of prototypes
with weak aliases in the library itself. eventually the weak aliases
may be added at the library level for the sake of using code that was
originally built against glibc, but the macros will still be the
desired solution in the headers.
| Rich Felker | 2012-05-04 | 8 | -0/+68 |
| * | uglify headers for the sake of junk that compiles with gcc -std=c89/-ansi | Rich Felker | 2012-05-03 | 2 | -6/+24 |
| * | add additional compatibility union member for ipv6 addresses•••in6_* is in the reserved namespace, so this is valid
| Rich Felker | 2012-05-03 | 1 | -0/+2 |
| * | remove minimal linux kernel headers•••these were at best of limited usefulness (for bootstrapping new
systems, mainly) and at worst caused real kernel headers to get
overwritten when upgrading libc.
in case they're needed by anyone, the exact same files are now
available in a new git repository:
git://git.etalabs.net/mini-lkh
| Rich Felker | 2012-05-01 | 5 | -621/+0 |
| * | support alternate glibc name pow10 for exp10 | Rich Felker | 2012-05-01 | 1 | -0/+3 |
| * | first try at writing an efficient and "correct" exp10•••this is a nonstandard function so it's not clear what conditions it
should satisfy. my intent is that it be fast and exact for positive
integral exponents when the result fits in the destination type, and
fast and correctly rounded for small negative integral exponents.
otherwise we aim for at most 1ulp error; it seems to differ from pow
by at most 1ulp and it's often 2-5 times faster than pow.
| Rich Felker | 2012-04-30 | 1 | -0/+4 |
| * | add linux-specific unshare syscall wrapper | Rich Felker | 2012-04-29 | 1 | -0/+1 |
| * | implement getusershell, etc. legacy functions•••I actually wrote these a month ago but forgot to integrate them. ugly,
probably-harmful-to-use functions, but some legacy apps want them...
| Rich Felker | 2012-04-22 | 1 | -0/+3 |
| * | getdtablesize is not standard; move it to its correct spot in unistd.h | Rich Felker | 2012-04-22 | 1 | -1/+1 |
| * | fix breakage in endian.h | Rich Felker | 2012-04-22 | 1 | -1/+1 |
| * | add some ugly byte swapping cruft in endian.h | Rich Felker | 2012-04-22 | 1 | -0/+59 |
| * | add getresuid and getresgid syscall wrappers | Rich Felker | 2012-04-22 | 1 | -0/+2 |
| * | fix header typo | Rich Felker | 2012-04-18 | 1 | -1/+1 |
| * | legacy junk compatibility grab-bag•••- add the rest of the junk traditionally in sys/param.h
- add prototypes for some nonstandard functions
- add _GNU_SOURCE to their source files so the compiler can check proto
| Rich Felker | 2012-04-18 | 4 | -7/+34 |
| * | fix incorrect macro name for MATH_ERREXCEPT in math.h | Rich Felker | 2012-04-18 | 1 | -1/+1 |
| * | move F_DUPFD_CLOEXEC out of bits•••fcntl values 1024 and up are universal, arch-independent. later I'll
add some of the other linux-specific ones for notify, leases, pipe
size, etc. here too.
| Rich Felker | 2012-04-15 | 1 | -0/+2 |
| * | rename __sa_restorer to sa_restorer in struct sigaction•••this is legal since sa_* is in the reserved namespace for signal.h,
per posix. note that the sa_restorer field is not used anywhere, so
programs that are trying to use it may still break, but at least
they'll compile. if it turns out such programs actually need to be
able to set their own sa_restorer to function properly, i'll add the
necessary code to sigaction.c later.
| Rich Felker | 2012-04-13 | 1 | -1/+1 |
| * | fix alloca issue in stdlib.h too•••I forgot _GNU_SOURCE also has it declared here...
| Rich Felker | 2012-04-09 | 1 | -1/+1 |
| * | alloca cannot be a function. #define it to the gcc builtin if possible•••gcc makes this mapping by default anyway, but it will be disabled by
-fno-builtin (and presumably by -std=c99 or similar). for the main
program the error will be reported by the linker, and the issue can
easily be fixed, but for dynamic-loaded so files, the error cannot be
detected until dlopen time, at which point it has become very obscure.
| Rich Felker | 2012-04-09 | 1 | -0/+4 |
| * | remove useless (at best, harmful) feature test checks in aio.h | Rich Felker | 2012-04-03 | 1 | -5/+0 |
| * | optimize signbit macro | Rich Felker | 2012-03-30 | 1 | -2/+2 |
| * | make math.h more c++-friendly | Rich Felker | 2012-03-30 | 1 | -2/+5 |
| * | simplify creal and cimag macros | Rich Felker | 2012-03-22 | 1 | -8/+8 |
| * | add creal/cimag macros in complex.h (and use them in the functions defs) | Rich Felker | 2012-03-22 | 1 | -0/+11 |
| * | tgmath.h: suppress any existing macro definitions before defining macros•••this is necessary so that we can freely add macro versions of some of
the math/complex functions without worrying about breaking tgmath.
| Rich Felker | 2012-03-22 | 1 | -0/+63 |
| * | fix DECIMAL_DIG definitions•••DECIMAL_DIG is not the same as LDBL_DIG
type_DIG is the maximimum number of decimal digits that can survive a
round trip from decimal to type and back to decimal.
DECIMAL_DIG is the minimum number of decimal digits required in order
for any floating point type to survive the round trip to decimal and
back, and it is generally larger than LDBL_DIG. since the exact
formula is non-trivial, and defining it larger than necessary may be
legal but wasteful, just define the right value in bits/float.h.
| Rich Felker | 2012-03-21 | 1 | -2/+0 |
| * | initial, very primitive strfmon | Rich Felker | 2012-03-21 | 1 | -0/+21 |
| * | limits.h: support gcc's -funsigned-char•••some software apparently uses this and breaks with musl due to
mismatching definitions...
| Rich Felker | 2012-03-20 | 1 | -2/+10 |
| * | move nonstandard gamma() etc. to _GNU_SOURCE only•••it's not even provided in the library at the moment, but could easily
be provided with weak aliases if desired.
| Rich Felker | 2012-03-17 | 1 | -4/+4 |
| * | c++ seems to want some casts in the float representation-access macros | Rich Felker | 2012-03-17 | 1 | -2/+2 |
| * | in math.h make lgamma_r and non-double bessel _GNU_SOURCE only•••long double and float bessel functions are no longer xsi extensions
| nsz | 2012-03-15 | 1 | -20/+18 |
| * | efficient sincos based on sin and cos | nsz | 2012-03-15 | 1 | -0/+4 |
| * | first commit of the new libm!•••thanks to the hard work of Szabolcs Nagy (nsz), identifying the best
(from correctness and license standpoint) implementations from freebsd
and openbsd and cleaning them up! musl should now fully support c99
float and long double math functions, and has near-complete complex
math support. tgmath should also work (fully on gcc-compatible
compilers, and mostly on any c99 compiler).
based largely on commit 0376d44a890fea261506f1fc63833e7a686dca19 from
nsz's libm git repo, with some additions (dummy versions of a few
missing long double complex functions, etc.) by me.
various cleanups still need to be made, including re-adding (if
they're correct) some asm functions that were dropped.
| Rich Felker | 2012-03-13 | 3 | -9/+354 |
| * | fix nan/infinity macros in math.h, etc.•••the previous version not only failed to work in c++, but also failed
to produce constant expressions, making the macros useless as
initializers for objects of static storage duration.
gcc 3.3 and later have builtins for these, which sadly seem to be the
most "portable" solution. the alternative definitions produce
exceptions (for NAN) and compiler warnings (for INFINITY) on newer
versions of gcc.
| Rich Felker | 2012-03-02 | 1 | -6/+8 |
| * | typo in math.h c version check | Rich Felker | 2012-03-02 | 1 | -1/+1 |
| * | make math.h compatibe with c89 | Rich Felker | 2012-03-02 | 1 | -1/+5 |
| * | add all missing wchar functions except floating point parsers•••these are mostly untested and adapted directly from corresponding byte
string functions and similar.
| Rich Felker | 2012-03-01 | 1 | -0/+15 |
| * | add memory.h, bogus legacy alias for string.h | Rich Felker | 2012-03-01 | 1 | -0/+1 |
| * | use c++-friendly initializers for pthread initializer definitions•••these will also avoid obnoxious warnings with gcc -Wbraces.
| Rich Felker | 2012-02-29 | 1 | -3/+3 |
| * | add <syscall.h> as an alias for <sys/syscall.h>•••apparently some broken stuff (libstdc++) needs this.
| Rich Felker | 2012-02-29 | 1 | -0/+1 |