mirror of
https://github.com/thead-yocto-mirror/meta-qt5
synced 2026-09-16 20:21:56 +02:00
qtwebengine: Fix build with musl
msghdr is not same between musl and glibc so do not assume that Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
initialize msghdr in a compatible manner
|
||||
|
||||
msghdr stuct from socket.h is not same between musl and glibc
|
||||
where musl claims to be more posix compliant where as glibc seems
|
||||
to fill whats needed for linux sizewise and chooses long enough types
|
||||
which maybe questionable, therefore constructing a structure with explicit
|
||||
constructor is not going to work correctly for musl and glibc at same time
|
||||
|
||||
see
|
||||
https://git.musl-libc.org/cgit/musl/commit/arch/x86_64/bits/socket.h?id=7168790763cdeb794df52be6e3b39fbb021c5a64
|
||||
|
||||
This fix initialized the struct to 0 first and then sets the struct elements
|
||||
by name, so we dont have to hard code the positions of elements when initializing
|
||||
structure
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
--- a/chromium/net/socket/udp_socket_posix.cc
|
||||
+++ b/chromium/net/socket/udp_socket_posix.cc
|
||||
@@ -1190,8 +1190,12 @@ SendResult UDPSocketPosixSender::Interna
|
||||
for (auto& buffer : buffers)
|
||||
msg_iov->push_back({const_cast<char*>(buffer->data()), buffer->length()});
|
||||
msgvec->reserve(buffers.size());
|
||||
- for (size_t j = 0; j < buffers.size(); j++)
|
||||
- msgvec->push_back({{nullptr, 0, &msg_iov[j], 1, nullptr, 0, 0}, 0});
|
||||
+ for (size_t j = 0; j < buffers.size(); j++) {
|
||||
+ struct msghdr m = {0};
|
||||
+ m.msg_iov = &msg_iov[j];
|
||||
+ m.msg_iovlen = 1;
|
||||
+ msgvec->push_back({m, 0});
|
||||
+ }
|
||||
int result = HANDLE_EINTR(Sendmmsg(fd, &msgvec[0], buffers.size(), 0));
|
||||
SendResult send_result(0, 0, std::move(buffers));
|
||||
if (result < 0) {
|
||||
@@ -187,6 +187,7 @@ SRC_URI_append_libc-musl = "\
|
||||
file://chromium/0023-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch;patchdir=src/3rdparty \
|
||||
file://chromium/0024-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch;patchdir=src/3rdparty \
|
||||
file://chromium/0025-chromium-musl-pread-pwrite.patch;patchdir=src/3rdparty \
|
||||
file://chromium/0026-chromium-musl-portable-msghdr.patch;patchdir=src/3rdparty \
|
||||
"
|
||||
|
||||
SRCREV_qtwebengine = "9e56f570e31a0ef18e544bb21dfddebfe43ec2d0"
|
||||
|
||||
Reference in New Issue
Block a user