- 18 11月, 2012 1 次提交
-
-
由 Szabolcs Nagy 提交于
overflow and underflow was incorrect when the result was not stored. an optimization for the 0.5*ln2 < |x| < 1.5*ln2 domain was removed. did various cleanups around static constants and made the comments consistent with the code.
-
- 17 11月, 2012 1 次提交
-
-
由 Rich Felker 提交于
incomplete but at least partly working. requires all files to be compiled in the new "secure" plt model, not the old one that put plt code in the data segment. TLS is untested but may work. invoking the dynamic linker explicitly to load a program does not yet handle argv correctly.
-
- 16 11月, 2012 4 次提交
-
-
由 Rich Felker 提交于
-
由 rofl0r 提交于
-
由 Rich Felker 提交于
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 提交于
-
- 15 11月, 2012 7 次提交
-
-
由 Rich Felker 提交于
-
由 Rich Felker 提交于
-
由 Rich Felker 提交于
-
由 Rich Felker 提交于
previous version did not compare at all; it was just a fancy atomic write. untested. further atomic fixes may be needed.
-
由 Rich Felker 提交于
-
由 Rich Felker 提交于
-
由 Rich Felker 提交于
-
- 14 11月, 2012 6 次提交
-
-
由 Szabolcs Nagy 提交于
-
由 Szabolcs Nagy 提交于
keeping only commonly used data in invtrigl
-
由 Szabolcs Nagy 提交于
this also fixes overflow/underflow raising and excess precision issues (as those are handled well in scalbn)
-
由 Szabolcs Nagy 提交于
the volatile hack in STRICT_ASSIGN is only needed if assignment is not respected and excess precision is kept. gcc -fexcess-precision=standard and -ffloat-store both respect assignment and musl use these flags by default. i kept the macro for now so the workaround may be used for bad compilers in the future.
-
由 rofl0r 提交于
-
由 Richard Pennington 提交于
-
- 13 11月, 2012 12 次提交
-
-
由 Szabolcs Nagy 提交于
-
由 Szabolcs Nagy 提交于
old code was correct only if the result was stored (without the excess precision) or musl was compiled with -ffloat-store. now we use STRICT_ASSIGN to work around the issue. (see note 160 in c11 section 6.8.6.4)
-
由 Szabolcs Nagy 提交于
old code was correct only if the result was stored (without the excess precision) or musl was compiled with -ffloat-store. (see note 160 in n1570.pdf section 6.8.6.4)
-
由 Szabolcs Nagy 提交于
old code (return x+x;) returns correct value and raises correct flags only if the result is stored as double (or float)
-
由 Szabolcs Nagy 提交于
-
由 Szabolcs Nagy 提交于
-
由 Szabolcs Nagy 提交于
-
由 Szabolcs Nagy 提交于
-
由 Szabolcs Nagy 提交于
-
由 Szabolcs Nagy 提交于
-
由 Szabolcs Nagy 提交于
-
由 Szabolcs Nagy 提交于
-
- 12 11月, 2012 4 次提交
-
-
由 Rich Felker 提交于
POSIX includes mostly-useless attribute-get functions for each attribute-set function, presumably out of some object-oriented dogmatism. the get functions are not useful with the simple idiomatic usage of attributes. there are of course possible valid uses of them (like writing wrappers for pthread init functions that perform special actions on the presence of certain attributes), but considering how tiny these functions are anyway, little is lost by putting them all in one file, and some build-time cost and archive-file-size benefits are achieved.
-
由 Rich Felker 提交于
also update another newish feature in sysconf, stackaddr
-
由 Rich Felker 提交于
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 提交于
this function does not obey the normal calling convention; like a syscall instruction, it's expected not to clobber any registers except the return value. clobbering edx could break callers that were reusing the value cached in edx after the syscall returns.
-
- 10 11月, 2012 2 次提交
-
-
由 Rich Felker 提交于
per interpretation for austin group issue #626, fflush(0) and exit() must block waiting for a lock if another thread has locked a memory stream with flockfile. this adds some otherwise-unnecessary synchronization cost to use of memory streams, but there was already a synchronization cost calling malloc anyway. previously the stream was only added to the open file list in single-threaded programs, so that upon subsequent call to pthread_create, locking could be turned on for the stream.
-
由 Rich Felker 提交于
-
- 09 11月, 2012 3 次提交
-
-
由 Rich Felker 提交于
this change was originally intended just to avoid repeated attempts to open a nonexistant /etc/ls-musl-$(ARCH).path file, but I realized it also prevents the default paths from being searched when such a path file exists. despite the potential to break existing usage, I believe the new behavior is the right behavior, and it's better to fix it sooner rather than later. with the old behavior, it was impossible to inhibit search of default paths which might contain musl-incompatible libs (or even libs from a different cpu arch, on multi-arch machines).
-
由 Rich Felker 提交于
previously, empty string was treated as "use default". this is apparently not compatible with standard configure semantics where an empty prefix puts everything under /. the new logic should be a lot cleaner and not suffer from such issues.
-
由 Rich Felker 提交于
this mirrors the stdio_impl.h cleanup. one header which is not strictly needed, errno.h, is left in pthread_impl.h, because since pthread functions return their error codes rather than using errno, nearly every single pthread function needs the errno constants. in a few places, rather than bringing in string.h to use memset, the memset was replaced by direct assignment. this seems to generate much better code anyway, and makes many functions which were previously non-leaf functions into leaf functions (possibly eliminating a great deal of bloat on some platforms where non-leaf functions require ugly prologue and/or epilogue).
-