awilcox reopened this revision. awilcox added a comment. This revision is now accepted and ready to land.
BUG: 391367 <https://bugs.kde.org/show_bug.cgi?id=391367>: musl is strictly POSIX conformant <http://git.musl-libc.org/cgit/musl/commit/arch/x86_64/bits/socket.h?id=7168790763cdeb794df52be6e3b39fbb021c5a64>, which means it uses int for msg_iovlen and socklen_t for msg_controllen in the msghdr struct. POSIX defines msghdr <http://pubs.opengroup.org/onlinepubs/009696699/basedefs/sys/socket.h.html> as containing "at least" the standard members, not "only" the standard members. Since this code (non-conformantly) assumes the members and layout of msghdr in its ctor, it FTBFS on 64-bit musl platforms (including x86_64, ppc64, aarch64): In file included from /usr/src/packages/user/kio/src/kio-5.43.0/src/ioslaves/file/fdreceiver.cpp:23:0: /usr/src/packages/user/kio/src/kio-5.43.0/src/ioslaves/file/sharefd_p.h: In constructor 'FDMessageHeader::FDMessageHeader()': /usr/src/packages/user/kio/src/kio-5.43.0/src/ioslaves/file/sharefd_p.h:78:37: error: invalid conversion from 'char (*)[24]' to 'int' [-fpermissive] , msg{nullptr, 0, &io, 1, &cmsg_buf, sizeof cmsg_buf, 0} ^~~~~~~~~ /usr/src/packages/user/kio/src/kio-5.43.0/src/ioslaves/file/sharefd_p.h:78:55: error: invalid conversion from 'long unsigned int' to 'void*' [-fpermissive] , msg{nullptr, 0, &io, 1, &cmsg_buf, sizeof cmsg_buf, 0} ^~~~~~~~ /usr/src/packages/user/kio/src/kio-5.43.0/src/ioslaves/file/sharefd_p.h:78:66: warning: missing initializer for member 'msghdr::__pad2' [-Wmissing-field-initializers] , msg{nullptr, 0, &io, 1, &cmsg_buf, sizeof cmsg_buf, 0} ^ /usr/src/packages/user/kio/src/kio-5.43.0/src/ioslaves/file/sharefd_p.h:78:66: warning: missing initializer for member 'msghdr::msg_flags' [-Wmissing-field-initializers] REPOSITORY R241 KIO REVISION DETAIL https://phabricator.kde.org/D6709 To: chinmoyr, thiago, #frameworks, dfaure Cc: awilcox, dfaure, davidedmundson, elvisangelaccio, shortstheory, michaelh