wasi-libc/libc-bottom-half
Joel Dice d038294899
implement getsockname, getpeername, and getaddrinfo (#488)
This also includes stubs for `gethostbyname`, `gethostbyaddr`, etc. which were
necessary to get CPython to build.  I believe it will be possible to implement
them all properly at some point, but don't have the bandwidth at the moment.

Finally, this includes a few fixes for issues I missed in earlier PRs that
surfaced when running the CPython `asyncio` test suite.

Signed-off-by: Joel Dice <joel.dice@fermyon.com>
Co-authored-by: Dave Bakker <github@davebakker.io>
2024-04-02 16:54:41 -07:00
..
clocks Add some more comments. 2021-03-23 10:34:46 -07:00
cloudlibc wasip2 support for close, poll, pselect (#486) 2024-03-27 12:24:10 -07:00
crt crt1-command.c: fix whitespace issues (#480) 2024-03-11 17:04:46 -07:00
getpid Implement emulated support for getpid. 2021-04-05 16:58:36 -07:00
headers implement basic TCP/UDP client support (#477) 2024-03-13 10:59:27 -07:00
mman Make mmap() possible to use in a conformant way. (#197) 2020-05-26 12:49:13 -07:00
signal Fix typo in signal.c error messages (#437) 2023-09-27 08:42:02 -07:00
sources implement getsockname, getpeername, and getaddrinfo (#488) 2024-04-02 16:54:41 -07:00
README.md Merge the basics component into libc-bottom-half. (#199) 2020-06-01 16:44:05 -07:00

WASI libc "bottom half".

The WASI libc "bottom half" is conceptually the lower half of a traditional libc implementation, consisting of C interfaces to the low-level WASI syscalls.

This implementation is partially derived from the "bottom half" of cloudlibc, revision 8835639f27fc42d32096d59d294a0bbb857dc368.

This implementation includes preopen functionality, which emulates POSIX APIs accepting absolute paths by translating them into pre-opened directory handles and relative paths that can be opened with openat. This technique is inspired by libpreopen, however the implementation here is designed to be built into libc rather than to be a layer on top of libc.

The WASI libc lower half currently depends on the dlmalloc component.