Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion expected/wasm32-wasi-eh/predefined-macros.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2461,7 +2461,7 @@
#define POLLIN POLLRDNORM
#define POLLNVAL 0x4000
#define POLLOUT POLLWRNORM
#define POLLPRI POLLIN
#define POLLPRI 0x4
#define POLLRDNORM 0x1
#define POLLWRNORM 0x2
#define POSIX_CLOSE_RESTART 0
Expand Down Expand Up @@ -6082,6 +6082,7 @@
#define __WASI_EVENTFDFLAGS_SEMAPHORE ((__wasi_eventfdflags_t)+(1 << 0))
#define __WASI_EVENTRWFLAGS_FD_READWRITE_HANGUP ((__wasi_eventrwflags_t)+(1 << 0))
#define __WASI_EVENTTYPE_CLOCK (UINT8_C(0))
#define __WASI_EVENTTYPE_FD_EXCEPT (UINT8_C(3))
#define __WASI_EVENTTYPE_FD_READ (UINT8_C(1))
#define __WASI_EVENTTYPE_FD_WRITE (UINT8_C(2))
#define __WASI_FDFLAGSEXT_CLOEXEC ((__wasi_fdflagsext_t)+(1 << 0))
Expand Down Expand Up @@ -6125,6 +6126,7 @@
#define __WASI_PROC_SPAWN_FD_OP_NAME_OPEN (UINT8_C(2))
#define __WASI_RIFLAGS_RECV_DATA_TRUNCATED ((__wasi_riflags_t)+(1 << 2))
#define __WASI_RIFLAGS_RECV_DONT_WAIT ((__wasi_riflags_t)+(1 << 3))
#define __WASI_RIFLAGS_RECV_OOB ((__wasi_riflags_t)+(1 << 4))
#define __WASI_RIFLAGS_RECV_PEEK ((__wasi_riflags_t)+(1 << 0))
#define __WASI_RIFLAGS_RECV_WAITALL ((__wasi_riflags_t)+(1 << 1))
#define __WASI_RIGHTS_FD_ADVISE ((__wasi_rights_t)+(1 << 7))
Expand Down Expand Up @@ -6170,6 +6172,7 @@
#define __WASI_SDFLAGS_RD ((__wasi_sdflags_t)+(1 << 0))
#define __WASI_SDFLAGS_WR ((__wasi_sdflags_t)+(1 << 1))
#define __WASI_SIFLAGS_SEND_DONT_WAIT ((__wasi_siflags_t)+(1 << 0))
#define __WASI_SIFLAGS_SEND_OOB ((__wasi_siflags_t)+(1 << 1))
#define __WASI_SIGNAL_ABRT (UINT8_C(6))
#define __WASI_SIGNAL_ALRM (UINT8_C(14))
#define __WASI_SIGNAL_BUS (UINT8_C(7))
Expand Down
5 changes: 4 additions & 1 deletion expected/wasm32-wasi-ehpic/predefined-macros.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2461,7 +2461,7 @@
#define POLLIN POLLRDNORM
#define POLLNVAL 0x4000
#define POLLOUT POLLWRNORM
#define POLLPRI POLLIN
#define POLLPRI 0x4
#define POLLRDNORM 0x1
#define POLLWRNORM 0x2
#define POSIX_CLOSE_RESTART 0
Expand Down Expand Up @@ -6091,6 +6091,7 @@
#define __WASI_EVENTFDFLAGS_SEMAPHORE ((__wasi_eventfdflags_t)+(1 << 0))
#define __WASI_EVENTRWFLAGS_FD_READWRITE_HANGUP ((__wasi_eventrwflags_t)+(1 << 0))
#define __WASI_EVENTTYPE_CLOCK (UINT8_C(0))
#define __WASI_EVENTTYPE_FD_EXCEPT (UINT8_C(3))
#define __WASI_EVENTTYPE_FD_READ (UINT8_C(1))
#define __WASI_EVENTTYPE_FD_WRITE (UINT8_C(2))
#define __WASI_FDFLAGSEXT_CLOEXEC ((__wasi_fdflagsext_t)+(1 << 0))
Expand Down Expand Up @@ -6134,6 +6135,7 @@
#define __WASI_PROC_SPAWN_FD_OP_NAME_OPEN (UINT8_C(2))
#define __WASI_RIFLAGS_RECV_DATA_TRUNCATED ((__wasi_riflags_t)+(1 << 2))
#define __WASI_RIFLAGS_RECV_DONT_WAIT ((__wasi_riflags_t)+(1 << 3))
#define __WASI_RIFLAGS_RECV_OOB ((__wasi_riflags_t)+(1 << 4))
#define __WASI_RIFLAGS_RECV_PEEK ((__wasi_riflags_t)+(1 << 0))
#define __WASI_RIFLAGS_RECV_WAITALL ((__wasi_riflags_t)+(1 << 1))
#define __WASI_RIGHTS_FD_ADVISE ((__wasi_rights_t)+(1 << 7))
Expand Down Expand Up @@ -6179,6 +6181,7 @@
#define __WASI_SDFLAGS_RD ((__wasi_sdflags_t)+(1 << 0))
#define __WASI_SDFLAGS_WR ((__wasi_sdflags_t)+(1 << 1))
#define __WASI_SIFLAGS_SEND_DONT_WAIT ((__wasi_siflags_t)+(1 << 0))
#define __WASI_SIFLAGS_SEND_OOB ((__wasi_siflags_t)+(1 << 1))
#define __WASI_SIGNAL_ABRT (UINT8_C(6))
#define __WASI_SIGNAL_ALRM (UINT8_C(14))
#define __WASI_SIGNAL_BUS (UINT8_C(7))
Expand Down
3 changes: 2 additions & 1 deletion expected/wasm32-wasi-threads/predefined-macros.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2357,7 +2357,7 @@
#define POLLIN POLLRDNORM
#define POLLNVAL 0x4000
#define POLLOUT POLLWRNORM
#define POLLPRI POLLIN
#define POLLPRI 0x4
#define POLLRDNORM 0x1
#define POLLWRNORM 0x2
#define POSIX_CLOSE_RESTART 0
Expand Down Expand Up @@ -5881,6 +5881,7 @@
#define __WASI_EVENTFDFLAGS_SEMAPHORE ((__wasi_eventfdflags_t)(1 << 0))
#define __WASI_EVENTRWFLAGS_FD_READWRITE_HANGUP ((__wasi_eventrwflags_t)(1 << 0))
#define __WASI_EVENTTYPE_CLOCK (UINT8_C(0))
#define __WASI_EVENTTYPE_FD_EXCEPT (UINT8_C(3))
#define __WASI_EVENTTYPE_FD_READ (UINT8_C(1))
#define __WASI_EVENTTYPE_FD_WRITE (UINT8_C(2))
#define __WASI_FDFLAGS_APPEND ((__wasi_fdflags_t)(1 << 0))
Expand Down
5 changes: 4 additions & 1 deletion expected/wasm32-wasi/predefined-macros.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2461,7 +2461,7 @@
#define POLLIN POLLRDNORM
#define POLLNVAL 0x4000
#define POLLOUT POLLWRNORM
#define POLLPRI POLLIN
#define POLLPRI 0x4
#define POLLRDNORM 0x1
#define POLLWRNORM 0x2
#define POSIX_CLOSE_RESTART 0
Expand Down Expand Up @@ -6090,6 +6090,7 @@
#define __WASI_EVENTFDFLAGS_SEMAPHORE ((__wasi_eventfdflags_t)+(1 << 0))
#define __WASI_EVENTRWFLAGS_FD_READWRITE_HANGUP ((__wasi_eventrwflags_t)+(1 << 0))
#define __WASI_EVENTTYPE_CLOCK (UINT8_C(0))
#define __WASI_EVENTTYPE_FD_EXCEPT (UINT8_C(3))
#define __WASI_EVENTTYPE_FD_READ (UINT8_C(1))
#define __WASI_EVENTTYPE_FD_WRITE (UINT8_C(2))
#define __WASI_FDFLAGSEXT_CLOEXEC ((__wasi_fdflagsext_t)+(1 << 0))
Expand Down Expand Up @@ -6133,6 +6134,7 @@
#define __WASI_PROC_SPAWN_FD_OP_NAME_OPEN (UINT8_C(2))
#define __WASI_RIFLAGS_RECV_DATA_TRUNCATED ((__wasi_riflags_t)+(1 << 2))
#define __WASI_RIFLAGS_RECV_DONT_WAIT ((__wasi_riflags_t)+(1 << 3))
#define __WASI_RIFLAGS_RECV_OOB ((__wasi_riflags_t)+(1 << 4))
#define __WASI_RIFLAGS_RECV_PEEK ((__wasi_riflags_t)+(1 << 0))
#define __WASI_RIFLAGS_RECV_WAITALL ((__wasi_riflags_t)+(1 << 1))
#define __WASI_RIGHTS_FD_ADVISE ((__wasi_rights_t)+(1 << 7))
Expand Down Expand Up @@ -6178,6 +6180,7 @@
#define __WASI_SDFLAGS_RD ((__wasi_sdflags_t)+(1 << 0))
#define __WASI_SDFLAGS_WR ((__wasi_sdflags_t)+(1 << 1))
#define __WASI_SIFLAGS_SEND_DONT_WAIT ((__wasi_siflags_t)+(1 << 0))
#define __WASI_SIFLAGS_SEND_OOB ((__wasi_siflags_t)+(1 << 1))
#define __WASI_SIGNAL_ABRT (UINT8_C(6))
#define __WASI_SIGNAL_ALRM (UINT8_C(14))
#define __WASI_SIGNAL_BUS (UINT8_C(7))
Expand Down
3 changes: 2 additions & 1 deletion expected/wasm64-wasi/predefined-macros.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2403,7 +2403,7 @@
#define POLLIN POLLRDNORM
#define POLLNVAL 0x4000
#define POLLOUT POLLWRNORM
#define POLLPRI POLLIN
#define POLLPRI 0x4
#define POLLRDNORM 0x1
#define POLLWRNORM 0x2
#define POSIX_CLOSE_RESTART 0
Expand Down Expand Up @@ -5946,6 +5946,7 @@
#define __WASI_EVENTFDFLAGS_SEMAPHORE ((__wasi_eventfdflags_t)(1 << 0))
#define __WASI_EVENTRWFLAGS_FD_READWRITE_HANGUP ((__wasi_eventrwflags_t)(1 << 0))
#define __WASI_EVENTTYPE_CLOCK (UINT8_C(0))
#define __WASI_EVENTTYPE_FD_EXCEPT (UINT8_C(3))
#define __WASI_EVENTTYPE_FD_READ (UINT8_C(1))
#define __WASI_EVENTTYPE_FD_WRITE (UINT8_C(2))
#define __WASI_FDFLAGS_APPEND ((__wasi_fdflags_t)(1 << 0))
Expand Down
18 changes: 15 additions & 3 deletions libc-bottom-half/cloudlibc/src/libc/poll/poll.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

int poll(struct pollfd *fds, size_t nfds, int timeout) {
// Construct events for poll().
size_t maxevents = 2 * nfds + 1;
size_t maxevents = 3 * nfds + 1;
__wasi_subscription_t subscriptions[maxevents];
size_t nsubscriptions = 0;
for (size_t i = 0; i < nfds; ++i) {
Expand All @@ -35,6 +35,15 @@ int poll(struct pollfd *fds, size_t nfds, int timeout) {
};
created_events = true;
}
if ((pollfd->events & POLLPRI) != 0) {
__wasi_subscription_t *subscription = &subscriptions[nsubscriptions++];
*subscription = (__wasi_subscription_t){
.userdata = (uintptr_t)pollfd,
.u.tag = __WASI_EVENTTYPE_FD_EXCEPT,
.u.u.fd_read.file_descriptor = pollfd->fd,
};
created_events = true;
}

// As entries are decomposed into separate read/write subscriptions,
// we cannot detect POLLERR, POLLHUP and POLLNVAL if POLLRDNORM and
Expand Down Expand Up @@ -91,7 +100,8 @@ int poll(struct pollfd *fds, size_t nfds, int timeout) {
for (size_t i = 0; i < nevents; ++i) {
const __wasi_event_t *event = &events[i];
if (event->type == __WASI_EVENTTYPE_FD_READ ||
event->type == __WASI_EVENTTYPE_FD_WRITE) {
event->type == __WASI_EVENTTYPE_FD_WRITE ||
event->type == __WASI_EVENTTYPE_FD_EXCEPT) {
struct pollfd *pollfd = (struct pollfd *)(uintptr_t)event->userdata;
if (event->error == __WASI_ERRNO_BADF) {
// Invalid file descriptor.
Expand All @@ -103,7 +113,7 @@ int poll(struct pollfd *fds, size_t nfds, int timeout) {
// Another error occurred.
pollfd->revents |= POLLERR;
} else {
// Data can be read or written.
// Data can be read or written, or an exceptional condition is pending.
if (event->type == __WASI_EVENTTYPE_FD_READ) {
pollfd->revents |= POLLRDNORM;
if (event->fd_readwrite.flags & __WASI_EVENTRWFLAGS_FD_READWRITE_HANGUP) {
Expand All @@ -114,6 +124,8 @@ int poll(struct pollfd *fds, size_t nfds, int timeout) {
if (event->fd_readwrite.flags & __WASI_EVENTRWFLAGS_FD_READWRITE_HANGUP) {
pollfd->revents |= POLLHUP;
}
} else if (event->type == __WASI_EVENTTYPE_FD_EXCEPT) {
pollfd->revents |= POLLPRI;
}
}
}
Expand Down
32 changes: 22 additions & 10 deletions libc-bottom-half/cloudlibc/src/libc/sys/select/pselect.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,23 +18,18 @@ int pselect(int nfds, fd_set *restrict readfds, fd_set *restrict writefds,
return -1;
}

// This implementation does not support polling for exceptional
// conditions, such as out-of-band data on TCP sockets.
if (errorfds != NULL && errorfds->__nfds > 0) {
errno = ENOSYS;
return -1;
}

// Replace NULL pointers by the empty set.
fd_set empty;
FD_ZERO(&empty);
if (readfds == NULL)
readfds = &empty;
if (writefds == NULL)
writefds = &empty;
if (errorfds == NULL)
errorfds = &empty;

// Determine the maximum number of events.
size_t maxevents = readfds->__nfds + writefds->__nfds + 1;
size_t maxevents = readfds->__nfds + writefds->__nfds + errorfds->__nfds + 1;
__wasi_subscription_t subscriptions[maxevents];
size_t nsubscriptions = 0;

Expand Down Expand Up @@ -64,6 +59,19 @@ int pselect(int nfds, fd_set *restrict readfds, fd_set *restrict writefds,
}
}

// Convert the errorfds set.
for (size_t i = 0; i < errorfds->__nfds; ++i) {
int fd = errorfds->__fds[i];
if (fd < nfds) {
__wasi_subscription_t *subscription = &subscriptions[nsubscriptions++];
*subscription = (__wasi_subscription_t){
.userdata = fd,
.u.tag = __WASI_EVENTTYPE_FD_EXCEPT,
.u.u.fd_read.file_descriptor = fd,
};
}
}

// Create extra event for the timeout.
if (timeout != NULL) {
__wasi_subscription_t *subscription = &subscriptions[nsubscriptions++];
Expand Down Expand Up @@ -103,7 +111,8 @@ int pselect(int nfds, fd_set *restrict readfds, fd_set *restrict writefds,
for (size_t i = 0; i < nevents; ++i) {
const __wasi_event_t *event = &events[i];
if ((event->type == __WASI_EVENTTYPE_FD_READ ||
event->type == __WASI_EVENTTYPE_FD_WRITE) &&
event->type == __WASI_EVENTTYPE_FD_WRITE ||
event->type == __WASI_EVENTTYPE_FD_EXCEPT) &&
event->error == __WASI_ERRNO_BADF) {
errno = EBADF;
return -1;
Expand All @@ -113,13 +122,16 @@ int pselect(int nfds, fd_set *restrict readfds, fd_set *restrict writefds,
// Clear and set entries in the result sets.
FD_ZERO(readfds);
FD_ZERO(writefds);
FD_ZERO(errorfds);
for (size_t i = 0; i < nevents; ++i) {
const __wasi_event_t *event = &events[i];
if (event->type == __WASI_EVENTTYPE_FD_READ) {
readfds->__fds[readfds->__nfds++] = event->userdata;
} else if (event->type == __WASI_EVENTTYPE_FD_WRITE) {
writefds->__fds[writefds->__nfds++] = event->userdata;
} else if (event->type == __WASI_EVENTTYPE_FD_EXCEPT) {
errorfds->__fds[errorfds->__nfds++] = event->userdata;
}
}
return readfds->__nfds + writefds->__nfds;
return readfds->__nfds + writefds->__nfds + errorfds->__nfds;
}
1 change: 1 addition & 0 deletions libc-bottom-half/cloudlibc/src/libc/sys/socket/recv.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ ssize_t recv(int socket, void *restrict buffer, size_t length, int flags) {
if ((flags & MSG_WAITALL) != 0) { ri_flags |= __WASI_RIFLAGS_RECV_WAITALL; }
if ((flags & MSG_TRUNC) != 0) { ri_flags |= __WASI_RIFLAGS_RECV_DATA_TRUNCATED; }
if ((flags & MSG_DONTWAIT) != 0) { ri_flags |= __WASI_RIFLAGS_RECV_DONT_WAIT; }
if ((flags & MSG_OOB) != 0) { ri_flags |= __WASI_RIFLAGS_RECV_OOB; }

// Perform system call.
__wasi_size_t ro_datalen;
Expand Down
1 change: 1 addition & 0 deletions libc-bottom-half/cloudlibc/src/libc/sys/socket/recvfrom.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ ssize_t recvfrom(int socket, void* buffer, size_t length, int flags, struct sock
if ((flags & MSG_WAITALL) != 0) { ri_flags |= __WASI_RIFLAGS_RECV_WAITALL; }
if ((flags & MSG_TRUNC) != 0) { ri_flags |= __WASI_RIFLAGS_RECV_DATA_TRUNCATED; }
if ((flags & MSG_DONTWAIT) != 0) { ri_flags |= __WASI_RIFLAGS_RECV_DONT_WAIT; }
if ((flags & MSG_OOB) != 0) { ri_flags |= __WASI_RIFLAGS_RECV_OOB; }

// Perform system call.
__wasi_size_t ro_datalen;
Expand Down
1 change: 1 addition & 0 deletions libc-bottom-half/cloudlibc/src/libc/sys/socket/recvmsg.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ ssize_t recvmsg(int socket, struct msghdr *restrict msg, int flags) {
if ((flags & MSG_WAITALL) != 0) { ri_flags |= __WASI_RIFLAGS_RECV_WAITALL; }
if ((flags & MSG_TRUNC) != 0) { ri_flags |= __WASI_RIFLAGS_RECV_DATA_TRUNCATED; }
if ((flags & MSG_DONTWAIT) != 0) { ri_flags |= __WASI_RIFLAGS_RECV_DONT_WAIT; }
if ((flags & MSG_OOB) != 0) { ri_flags |= __WASI_RIFLAGS_RECV_OOB; }

__wasi_size_t ro_datalen;
__wasi_roflags_t ro_flags;
Expand Down
1 change: 1 addition & 0 deletions libc-bottom-half/cloudlibc/src/libc/sys/socket/send.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ ssize_t send(int socket, const void *buffer, size_t length, int flags) {
__wasi_siflags_t si_flags = 0;

if ((flags & MSG_DONTWAIT) != 0) { si_flags |= __WASI_SIFLAGS_SEND_DONT_WAIT; }
if ((flags & MSG_OOB) != 0) { si_flags |= __WASI_SIFLAGS_SEND_OOB; }

// Perform system call.
__wasi_size_t so_datalen;
Expand Down
1 change: 1 addition & 0 deletions libc-bottom-half/cloudlibc/src/libc/sys/socket/sendmsg.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ ssize_t sendmsg(int socket, const struct msghdr* msg, int flags) {
__wasi_errno_t error;

if ((flags & MSG_DONTWAIT) != 0) { si_flags |= __WASI_SIFLAGS_SEND_DONT_WAIT; }
if ((flags & MSG_OOB) != 0) { si_flags |= __WASI_SIFLAGS_SEND_OOB; }

if (msg->msg_name == NULL) {
error = __wasi_sock_send(socket, si_data, si_data_len, si_flags, &so_datalen);
Expand Down
1 change: 1 addition & 0 deletions libc-bottom-half/cloudlibc/src/libc/sys/socket/sendto.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ ssize_t sendto(int socket, const void *restrict buffer, size_t length, int flags
__wasi_siflags_t si_flags = 0;

if ((flags & MSG_DONTWAIT) != 0) { si_flags |= __WASI_SIFLAGS_SEND_DONT_WAIT; }
if ((flags & MSG_OOB) != 0) { si_flags |= __WASI_SIFLAGS_SEND_OOB; }

__wasi_addr_port_t peer_addr;
__wasi_errno_t error = sockaddr_to_wasi(addr, addrlen, &peer_addr);
Expand Down
1 change: 1 addition & 0 deletions libc-bottom-half/headers/public/__header_poll.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

#define POLLRDNORM 0x1
#define POLLWRNORM 0x2
#define POLLPRI 0x4

#define POLLIN POLLRDNORM
#define POLLOUT POLLWRNORM
Expand Down
6 changes: 6 additions & 0 deletions libc-bottom-half/headers/public/wasi/api_poly.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@
#include <stddef.h>
#include <stdint.h>

/**
* WASIX extension to the preview1 event type namespace. Indicates that a file
* descriptor has an exceptional condition pending, such as TCP urgent data.
*/
#define __WASI_EVENTTYPE_FD_EXCEPT (UINT8_C(3))

#ifdef _REENTRANT
/**
* Request a new thread to be created by the host.
Expand Down
12 changes: 12 additions & 0 deletions libc-bottom-half/headers/public/wasi/api_wasix.h
Original file line number Diff line number Diff line change
Expand Up @@ -765,6 +765,12 @@ typedef uint16_t __wasi_riflags_t;
*/
#define __WASI_RIFLAGS_RECV_DONT_WAIT ((__wasi_riflags_t)+(1 << 3))

/**
* Receive out-of-band (urgent) data. Only meaningful for stream sockets
* whose transport supports it (e.g. TCP).
*/
#define __WASI_RIFLAGS_RECV_OOB ((__wasi_riflags_t)+(1 << 4))

/**
* Signal condition.
*/
Expand Down Expand Up @@ -1414,6 +1420,12 @@ typedef uint16_t __wasi_siflags_t;
*/
#define __WASI_SIFLAGS_SEND_DONT_WAIT ((__wasi_siflags_t)+(1 << 0))

/**
* Send out-of-band (urgent) data. Only meaningful for stream sockets whose
* transport supports it (e.g. TCP).
*/
#define __WASI_SIFLAGS_SEND_OOB ((__wasi_siflags_t)+(1 << 1))

/**
*** Hidden type
typedef uint8_t __wasi_sdflags_t;
Expand Down
4 changes: 0 additions & 4 deletions libc-top-half/musl/include/poll.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,6 @@ extern "C" {
#endif
#else
#include <__header_poll.h>
// Poll fulfill. Since there are no important polls
// we identify all Important as normals
#define POLLPRI POLLIN
#define EPOLLPRI EPOLLIN
#endif

#ifdef __wasilibc_unmodified_upstream /* Use alternate WASI libc headers */
Expand Down
1 change: 1 addition & 0 deletions result
2 changes: 1 addition & 1 deletion tools/wasix-headers/WASI
Loading