Commit Graph
4 Commits
Author SHA1 Message Date
Hauke MehrtensandRich Felker e206582091 add getrandom syscall wrapper
This syscall is available since Linux 3.17 and was also implemented in
glibc in version 2.25 using the same interfaces.
2018-02-22 19:34:58 -05:00
Hauke MehrtensandRich Felker b583c5d3b4 add additional uapi guards for Linux kernel header files
With Linux kernel 4.16 it will be possible to guard more parts of the
Linux header files from a libc. Make use of this in musl to guard all
the structures and other definitions from the Linux header files which
are also defined by the header files provided by musl. This will make
it possible to compile source files which include both the libc
headers and the kernel userspace headers.

This extends the definitions done in commit 04983f2272 ("make
netinet/in.h suppress clashing definitions from kernel headers")
2018-01-09 13:08:25 -05:00
Hauke MehrtensandRich Felker b0bf52f3e9 mips: add vdso support
vdso support is available on mips starting with kernel 4.4, see kernel
commit a7f4df4e21 "MIPS: VDSO: Add implementations of gettimeofday()
and clock_gettime()" for details.

In Linux kernel 4.4.0 the mips code returns -ENOSYS in case it can not
handle the vdso call and assumes the libc will call the original
syscall in this case. Handle this case in musl. Currently Linux kernel
4.4.0 handles the following types: CLOCK_REALTIME_COARSE,
CLOCK_MONOTONIC_COARSE, CLOCK_REALTIME and CLOCK_MONOTONIC.
2016-01-27 12:40:24 -05:00
Hauke MehrtensandRich Felker 6eada2edb3 getnameinfo: make size check not fail for bigger sizes
getnameinfo() compares the size of the given struct sockaddr with
sizeof(struct sockaddr_in) and sizeof(struct sockaddr_in6) depending on
the net family. When you add a sockaddr of size sizeof(struct
sockaddr_storage) this function will fail because the size of the
sockaddr is too big. Change the check that it only fails if the size is
too small, but make it work when it is too big for example when someone
calls this function with a struct sockaddr_storage and its size.
This fixes a problem with IoTivity 1.0.0 and musl.

glibc and bionic are only failing if it is smaller, net/freebsd
implemented the != check.

Signed-off-by: Hauke Mehrtens <[email protected]>
2015-10-26 20:00:03 -04:00