--- a/bigstring_unix/src/bigstring_unix_stubs.c 2023-07-08 18:01:05.614573701 +0200 +++ b/bigstring_unix/src/bigstring_unix_stubs.c 2023-07-08 18:01:20.505598860 +0200 @@ -743,7 +743,7 @@ int count = Int_val(v_count); size_t total_len = 0; struct iovec *iovecs = copy_iovecs(&total_len, v_iovecs, count); - struct msghdr msghdr = {NULL, 0, NULL, 0, NULL, 0, 0}; + struct msghdr msghdr = {NULL}; ssize_t ret; if (total_len > THREAD_IO_CUTOFF || contains_mmapped(v_iovecs, count)) { Begin_roots1(v_iovecs); --- a/linux_ext/src/linux_ext_stubs.c 2024-05-29 19:59:43.955479960 +0200 +++ b/linux_ext/src/linux_ext_stubs.c 2024-05-29 20:00:26.661018190 +0200 @@ -243,7 +243,8 @@ int count = Int_val(v_count); ssize_t ret; struct iovec *iovecs = caml_stat_alloc(sizeof(struct iovec) * count); - struct msghdr msghdr = { NULL, 0, NULL, 0, NULL, 0, 0 }; + struct msghdr msghdr; + memset(&msghdr, 0, sizeof(msghdr)); msghdr.msg_iov = iovecs; msghdr.msg_iovlen = count; for (--count; count >= 0; --count) {