Skip to content

Commit

Permalink
librdmacm: Use overloadable function attribute with clang
Browse files Browse the repository at this point in the history
 This is to fix build warnings seen with upcoming clang19 and
 glibc 2.40, since glibc 2.40 has improved fortyfying this
 function with clang, it ends up with build errors like below

librdmacm/preload.c:796:9: error: at most one overload for a given name may lack the 'overloadable' attribute
|   796 | ssize_t recvfrom(int socket, void *buf, size_t len, int flags,
|       |         ^
| /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux/rdma-core/51.0/recipe-sysroot/usr/include/sys/socket.h:163:16: note: previous unmarked overload of function is here
|   163 | extern ssize_t recvfrom (int __fd, void *__restrict __buf, size_t __n,
|       |                ^

Upstream-Status: Submitted [#1475]
Signed-off-by: Khem Raj <[email protected]>
  • Loading branch information
kraj committed Jun 24, 2024
1 parent d9bff23 commit aba2a08
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions librdmacm/preload.c
Original file line number Diff line number Diff line change
Expand Up @@ -792,8 +792,11 @@ ssize_t recv(int socket, void *buf, size_t len, int flags)
return (fd_fork_get(socket, &fd) == fd_rsocket) ?
rrecv(fd, buf, len, flags) : real.recv(fd, buf, len, flags);
}

ssize_t recvfrom(int socket, void *buf, size_t len, int flags,
ssize_t
#if defined(__clang__) && defined(__GLIBC__)
__attribute__((overloadable))
#endif
recvfrom(int socket, void *buf, size_t len, int flags,
struct sockaddr *src_addr, socklen_t *addrlen)
{
int fd;
Expand Down

0 comments on commit aba2a08

Please sign in to comment.