musl - an implementation of the standard library for Linux-based systems
Go to file
Rich Felker a5ba2d7507 improve clock_gettime and adapt it to support slightly-broken vdso
these changes are motivated by a functionally similar patch by Hauke
Mehrtens to address the needs of the new mips vdso clock_gettime,
which wrongly fails with ENOSYS rather than falling back to making a
syscall for clock ids it cannot handle from userspace. in the process
of preparing to handle that case, it was noticed that the old
clock_gettime use of the vdso was actually wrong with respect to error
handling -- the tail call to the vdso function failed to set errno and
instead returned an error code.

since tail calls to vdso are no longer possible and since the plain
syscall code is now needed as a fallback path anyway, it does not make
sense to use a function pointer to call the plain syscall code path.
instead, it's inlined at the end of the main clock_gettime function.

the new code also avoids the need to test for initialization of the
vdso function pointer by statically initializing it to a self-init
function, and eliminates redundant loads from the volatile pointer
object.

finally, the use of a_cas_p on an object of type other than void *,
which is not permitted aliasing, is replaced by using an object with
the correct type and casting the value.
2016-01-27 12:23:47 -05:00
arch fix siginfo_t for mips 2016-01-26 22:31:21 -05:00
crt move dynamic linker to its own top-level directory, ldso 2016-01-25 19:29:55 -05:00
dist add another example option to dist/config.mak 2012-04-24 16:49:11 -04:00
include fix siginfo_t for mips 2016-01-26 22:31:21 -05:00
ldso move dynamic linker to its own top-level directory, ldso 2016-01-25 19:29:55 -05:00
src improve clock_gettime and adapt it to support slightly-broken vdso 2016-01-27 12:23:47 -05:00
tools add CFI generation script for x86_64 2015-10-13 18:09:46 -04:00
.gitignore support out-of-tree build 2016-01-17 16:34:43 -05:00
COPYRIGHT update authors/contributors list 2015-03-16 18:43:54 -04:00
INSTALL update notice on broken gcc versions in INSTALL file 2014-07-31 19:02:54 -04:00
Makefile add ssp suppression to some arch-override files that may need it 2016-01-25 20:06:31 -05:00
README update version reference in the README file 2014-06-25 14:16:53 -04:00
VERSION release 1.1.12 2015-10-19 19:12:57 -04:00
WHATSNEW release 1.1.12 2015-10-19 19:12:57 -04:00
configure use same object files for libc.a and libc.so if compiler produces PIC 2016-01-25 19:57:38 -05:00

README

    musl libc

musl, pronounced like the word "mussel", is an MIT-licensed
implementation of the standard C library targetting the Linux syscall
API, suitable for use in a wide range of deployment environments. musl
offers efficient static and dynamic linking support, lightweight code
and low runtime overhead, strong fail-safe guarantees under correct
usage, and correctness in the sense of standards conformance and
safety. musl is built on the principle that these goals are best
achieved through simple code that is easy to understand and maintain.

The 1.1 release series for musl features coverage for all interfaces
defined in ISO C99 and POSIX 2008 base, along with a number of
non-standardized interfaces for compatibility with Linux, BSD, and
glibc functionality.

For basic installation instructions, see the included INSTALL file.
Information on full musl-targeted compiler toolchains, system
bootstrapping, and Linux distributions built on musl can be found on
the project website:

    http://www.musl-libc.org/