Fix compilation on Chrome OS

Chrome on Chrome OS is built with _FORTIFY_SOURCE=2 which causes there to be two definitions of recv() visible to the compiler. This means that the SyscallWrapper() function cannot decide which definition to use, and so cannot infer its template arguments.

Specify the template arguments explicitly to workaround this problem.

No functional changes.

PiperOrigin-RevId: 530360898
diff --git a/quiche/quic/core/io/socket_posix.inc b/quiche/quic/core/io/socket_posix.inc
index c646784..c98e2ef 100644
--- a/quiche/quic/core/io/socket_posix.inc
+++ b/quiche/quic/core/io/socket_posix.inc
@@ -70,7 +70,12 @@
   return SyscallWrapper(&::listen, sockfd, backlog);
 }
 ssize_t SyscallRecv(int sockfd, void* buf, size_t len, int flags) {
-  return SyscallWrapper(&::recv, sockfd, buf, len, flags);
+  // When compiled with _FORTIFY_SOURCE, there are two overloads of recv()
+  // available, which prevents SyscallWrapper from being able to infer its
+  // template arguments. This currently happens in Chrome OS builds of Chrome.
+  // Specify the template arguments explicitly as a workaround.
+  return SyscallWrapper<ssize_t, int, void*, size_t, int>(&::recv, sockfd, buf,
+                                                          len, flags);
 }
 ssize_t SyscallSend(int sockfd, const void* buf, size_t len, int flags) {
   return SyscallWrapper(&::send, sockfd, buf, len, flags);