--- a/bigstring_unix/src/bigstring_unix_stubs.c	2023-04-20 21:13:23.374157594 +0200
+++ b/bigstring_unix/src/bigstring_unix_stubs.c	2023-04-20 21:13:32.900011808 +0200
@@ -699,7 +699,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) {
