| Commit message (Expand) | Author | Age | Files | Lines |
| * | 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 |
| * | replace prototype for basename in string.h with non-prototype declaration•••GNU programs may expect the GNU version of basename, which has a
different prototype (argument is const-qualified) and prototype it
themselves too. of course if they're expecting the GNU behavior for
the function, they'll still run into problems, but at least this
eliminates some compile-time failures.
| Rich Felker | 2012-02-24 | 1 | -1/+1 |
| * | add get_current_dir_name function | Rich Felker | 2012-02-17 | 1 | -0/+1 |
| * | add float_t and double_t to math.h | Rich Felker | 2012-02-15 | 1 | -0/+2 |
| * | replace bad cancellation cleanup abi with a sane one•••the old abi was intended to duplicate glibc's abi at the expense of
being ugly and slow, but it turns out glib was not even using that abi
except on non-gcc-compatible compilers (which it doesn't even support)
and was instead using an exceptions-in-c/unwind-based approach whose
abi we could not duplicate anyway without nasty dwarf2/unwind
integration.
the new abi is copied from a very old glibc abi, which seems to still
be supported/present in current glibc. it avoids all unwinding,
whether by sjlj or exceptions, and merely maintains a linked list of
cleanup functions to be called from the context of pthread_exit. i've
made some care to ensure that longjmp out of a cleanup function should
work, even though it is not required to.
this change breaks abi compatibility with programs which were using
pthread cancellation, which is unfortunate, but that's why i'm making
the change now rather than later. considering that most pthread
features have not been usable until recently anyway, i don't see it as
a major issue at this point.
| Rich Felker | 2012-02-09 | 1 | -16/+9 |
| * | fix typo in inotify.h | Rich Felker | 2012-02-07 | 1 | -1/+1 |
| * | declare basename in string.h when _GNU_SOURCE is defined•••note that it still will have the standards-conformant behavior, not
the GNU behavior. but at least this prevents broken code from ending
up with truncated pointers due to implicit declarations...
| Rich Felker | 2012-02-07 | 1 | -0/+1 |
| * | revert hacks for types of stdint.h integer constant macros•••per 7.18.4: Each invocation of one of these macros shall expand to an
integer constant expression suitable for use in #if preprocessing
directives. The type of the expression shall have the same type as
would an expression of the corresponding type converted according to
the integer promotions. The value of the expression shall be that of
the argument.
the key phrase is "converted according to the integer promotions".
thus there is no intent or allowance that the expression have
smaller-than-int types.
| Rich Felker | 2012-02-07 | 1 | -4/+4 |
| * | more locale_t interfaces (string stuff) and header updates•••this should be everything except for some functions where the non-_l
version isn't even implemented yet (mainly some non-ISO-C wcs*
functions).
| Rich Felker | 2012-02-06 | 3 | -0/+15 |
| * | fix some omissions and mistakes in locale_t interface definitions | Rich Felker | 2012-02-06 | 1 | -0/+24 |
| * | add more of the locale_t interfaces, all dummied out to ignore the locale | Rich Felker | 2012-02-06 | 1 | -0/+5 |
| * | add deprecated (removed from posix) [efg]cvt() functions•••these have not been heavily tested, but they should work as described
in the old standards. probably broken for non-finite values...
| Rich Felker | 2012-02-06 | 1 | -0/+3 |
| * | apparently gnu caddr_t is supposed to be char *, not unsigned long•••this type should never be used anyway, but some old junk uses it..
| Rich Felker | 2012-02-01 | 1 | -1/+1 |
| * | fix utmp.h mess, try 2 | Rich Felker | 2012-02-01 | 1 | -1/+1 |
| * | fix previous utmp.h junk commit | Rich Felker | 2012-01-31 | 1 | -1/+1 |
| * | add some missing junk in utmp.h | Rich Felker | 2012-01-31 | 1 | -0/+4 |
| * | add fgetpwent (nonstandard function)•••based on patch by Jeremy Huntwork
| Rich Felker | 2012-01-29 | 1 | -0/+5 |
| * | add linux setfs[ug]id syscall wrappers•••patch by Jeremy Huntwork
| Rich Felker | 2012-01-28 | 1 | -0/+20 |
| * | remove useless "extern" keywords in headers | Rich Felker | 2012-01-26 | 3 | -3/+3 |
| * | fix typo in FPE_FLTUND definition, signal.h | Rich Felker | 2012-01-25 | 1 | -1/+1 |
| * | add MIN/MAX macros to sys/param.h•••this is a nonstandard junk header anyway, so just do what apps expect..
| Rich Felker | 2012-01-24 | 1 | -0/+5 |
| * | add legacy futimes and lutimes functions•••based on patch by sh4rm4. these functions are deprecated; futimens and
utimensat should be used instead in new programs.
| Rich Felker | 2012-01-24 | 1 | -0/+2 |
| * | add prlimit syscall wrapper | Rich Felker | 2012-01-20 | 1 | -0/+8 |
| * | fix __cplusplus extern "C" closing brace in pty.h (typo?) | Rich Felker | 2011-11-10 | 1 | -1/+1 |
| * | fix all missing instances of __cplusplus checks/extern "C" in headers•••patch by Arvid Picciani (aep)
| Rich Felker | 2011-11-10 | 21 | -1/+166 |
| * | add some missing GNU FNM_* extensions to the header•••note that none of these are implemented, and programs depending on
them may break... patch by sh4rm4
| Rich Felker | 2011-10-17 | 1 | -1/+3 |
| * | fix some details in ugly stuff that doesn't belong in libc•••patches by sh4rm4, presumably needed to make gdb or some similar junk
happy...
| Rich Felker | 2011-10-17 | 1 | -0/+2 |
| * | make [U]INTn_C() macros have the right type...•••...and still be valid in #if directives.
| Rich Felker | 2011-10-04 | 1 | -4/+4 |
| * | stupid typo (caused by rather ugly spelling in POSIX..) in aio | Rich Felker | 2011-09-28 | 1 | -1/+1 |
| * | fix ctype macros to cast argument to (unsigned) first•••issue reported by nsz, but it's actually not just pedantic. the
functions can take input of any arithmetic type, including floating
point, and the behavior needs to be as if the conversion implicit in
the function call took place.
| Rich Felker | 2011-09-26 | 2 | -7/+7 |
| * | cleanup various minor issues reported by nsz•••the changes to syscall_ret are mostly no-ops in the generated code,
just cleanup of type issues and removal of some implementation-defined
behavior. the one exception is the change in the comparison value,
which is fixed so that 0xf...f000 (which in principle could be a valid
return value for mmap, although probably never in reality) is not
treated as an error return.
| Rich Felker | 2011-09-26 | 2 | -2/+1 |
| * | FD_ISSET must return an int. this is the easiest way.•••casting to int would not be correct because high bits could be lost.
mapping the high bits down onto low bits would be costlier in the
common case where the result is just used in a conditional. changing
the type of the bit array elements to int would permute the order of
the bit array on 64-bit big endian systems, so that's not an option
either.
| Rich Felker | 2011-09-23 | 1 | -1/+1 |
| * | sys/user.h may need stdint.h | Rich Felker | 2011-09-23 | 1 | -0/+1 |
| * | fix missing SIG_DFL, SIG_IGN, SIG_ERR without posix in signal.h | Rich Felker | 2011-09-21 | 1 | -5/+6 |
| * | gnu search.h has struct qelem... | Rich Felker | 2011-09-21 | 1 | -0/+7 |
| * | fix some header typos | Rich Felker | 2011-09-20 | 2 | -2/+2 |
| * | make stdbool.h conform to c99 | Rich Felker | 2011-09-20 | 1 | -1/+2 |
| * | fix incorrect include guard in mqueue.h | Rich Felker | 2011-09-20 | 1 | -2/+2 |
| * | fix the fsid_t structure to match name of __val•••this is a case of poorly written man pages not matching the actual
implementation, and why i hate implementing nonstandard interfaces
with no actual documentation of how they're intended to work.
| Rich Felker | 2011-09-20 | 1 | -1/+1 |
| * | fix broken siginfo_t with _GNU_SOURCE defined•••this bug was introduced in a recent patch. the problem we're working
around is that broken GNU software wants to use "struct siginfo"
rather than "siginfo_t", but "siginfo" is not in the reserved
namespace and thus not legal for the standard header to use.
| Rich Felker | 2011-09-20 | 1 | -6/+5 |