--- 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) {
