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,
|       |                ^

Signed-off-by: Khem Raj <raj.khem@gmail.com>
  • Loading branch information
kraj committed Jun 22, 2024
1 parent 367ba33 commit c7de683
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
#ifdef __clang__
__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 c7de683

Please sign in to comment.