[PATCH] QUIC: fix build against musl-libc when using Clang
Piotr Sikora
piotr.sikora at frickle.com
Thu May 2 21:32:20 UTC 2024
# HG changeset patch
# User Piotr Sikora <piotr at aviatrix.com>
# Date 1714589495 0
# Wed May 01 18:51:35 2024 +0000
# Node ID 962cddbaecf02b9c213dca492a74b23924b8f24c
# Parent 49dce50fad40bf09db81ca2a35983ecd7b740e43
QUIC: fix build against musl-libc when using Clang.
Signed-off-by: Piotr Sikora <piotr at aviatrix.com>
diff -r 49dce50fad40 -r 962cddbaecf0 src/event/ngx_event_udp.c
--- a/src/event/ngx_event_udp.c Tue Apr 16 18:29:59 2024 +0400
+++ b/src/event/ngx_event_udp.c Wed May 01 18:51:35 2024 +0000
@@ -138,6 +138,14 @@
ngx_memcpy(&lsa, local_sockaddr, local_socklen);
local_sockaddr = &lsa.sockaddr;
+#ifndef __GLIBC__
+ /* Silence warnings from expanded CMSG_NXTHDR macro when using musl-libc. */
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wunknown-pragmas"
+ #pragma clang diagnostic push
+ #pragma clang diagnostic ignored "-Wsign-compare"
+#endif
+
for (cmsg = CMSG_FIRSTHDR(&msg);
cmsg != NULL;
cmsg = CMSG_NXTHDR(&msg, cmsg))
@@ -148,6 +156,11 @@
}
}
+#ifndef __GLIBC__
+ #pragma clang diagnostic pop
+ #pragma GCC diagnostic pop
+#endif
+
#endif
c = ngx_lookup_udp_connection(ls, sockaddr, socklen, local_sockaddr,
diff -r 49dce50fad40 -r 962cddbaecf0 src/event/quic/ngx_event_quic_output.c
--- a/src/event/quic/ngx_event_quic_output.c Tue Apr 16 18:29:59 2024 +0400
+++ b/src/event/quic/ngx_event_quic_output.c Wed May 01 18:51:35 2024 +0000
@@ -434,10 +434,25 @@
*valp = segment;
#if (NGX_HAVE_ADDRINFO_CMSG)
+
+#ifndef __GLIBC__
+ /* Silence warnings from expanded CMSG_NXTHDR macro when using musl-libc. */
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wunknown-pragmas"
+ #pragma clang diagnostic push
+ #pragma clang diagnostic ignored "-Wsign-compare"
+#endif
+
if (c->listening && c->listening->wildcard && c->local_sockaddr) {
cmsg = CMSG_NXTHDR(&msg, cmsg);
clen += ngx_set_srcaddr_cmsg(cmsg, c->local_sockaddr);
}
+
+#ifndef __GLIBC__
+ #pragma clang diagnostic pop
+ #pragma GCC diagnostic pop
+#endif
+
#endif
msg.msg_controllen = clen;
diff -r 49dce50fad40 -r 962cddbaecf0 src/event/quic/ngx_event_quic_udp.c
--- a/src/event/quic/ngx_event_quic_udp.c Tue Apr 16 18:29:59 2024 +0400
+++ b/src/event/quic/ngx_event_quic_udp.c Wed May 01 18:51:35 2024 +0000
@@ -140,6 +140,14 @@
ngx_memcpy(&lsa, local_sockaddr, local_socklen);
local_sockaddr = &lsa.sockaddr;
+#ifndef __GLIBC__
+ /* Silence warnings from expanded CMSG_NXTHDR macro when using musl-libc. */
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wunknown-pragmas"
+ #pragma clang diagnostic push
+ #pragma clang diagnostic ignored "-Wsign-compare"
+#endif
+
for (cmsg = CMSG_FIRSTHDR(&msg);
cmsg != NULL;
cmsg = CMSG_NXTHDR(&msg, cmsg))
@@ -150,6 +158,11 @@
}
}
+#ifndef __GLIBC__
+ #pragma clang diagnostic pop
+ #pragma GCC diagnostic pop
+#endif
+
#endif
if (ngx_quic_get_packet_dcid(ev->log, buffer, n, &key) != NGX_OK) {
More information about the nginx-devel
mailing list