On Wed, Feb 05, 2025 at 05:00:06PM +0100, Stefano Brivio wrote: > When building against musl headers: > > - sizeof() needs sttdef.h, as it should be; > > - we can't initialise a struct msghdr by simply listing fields in > order, as they contain explicit padding fields. Use field names > instead. > > Signed-off-by: Stefano Brivio Reviewed-by: David Gibson > --- > passt-repair.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/passt-repair.c b/passt-repair.c > index 6f79423..3c3247b 100644 > --- a/passt-repair.c > +++ b/passt-repair.c > @@ -21,6 +21,7 @@ > #include > #include > #include > +#include > #include > #include > #include > @@ -75,7 +76,11 @@ int main(int argc, char **argv) > } > > iov = (struct iovec){ &cmd, sizeof(cmd) }; > - msg = (struct msghdr){ NULL, 0, &iov, 1, buf, sizeof(buf), 0 }; > + msg = (struct msghdr){ .msg_name = NULL, .msg_namelen = 0, > + .msg_iov = &iov, .msg_iovlen = 1, > + .msg_control = buf, > + .msg_controllen = sizeof(buf), > + .msg_flags = 0 }; > cmsg = CMSG_FIRSTHDR(&msg); > > if (argc != 2) { -- David Gibson (he or they) | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you, not the other way | around. http://www.ozlabs.org/~dgibson