]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
lsfd: fix bsearch macro usage with glibc C23
authorCristian Rodríguez <cristian@rodriguez.im>
Sat, 22 Nov 2025 13:41:08 +0000 (10:41 -0300)
committerKarel Zak <kzak@redhat.com>
Mon, 8 Dec 2025 13:48:07 +0000 (14:48 +0100)
C23 requires bsearch to be a const preserving macro, build now fails
with

../lsfd-cmd/lsfd.c:1879:75: error: macro ‘bsearch’ passed 6 arguments, but takes just 5
 1879 |                                     nfds, sizeof(struct pollfd), pollfdcmp))
      |                                                                           ^
In file included from ../include/c.h:17,
                 from ../lsfd-cmd/lsfd.c:48:
/usr/include/stdlib.h:987:10: note: macro ‘bsearch’ defined here
  987 | # define bsearch(KEY, BASE, NMEMB, SIZE, COMPAR)                        \

  add parenthesis around expression to fix it.

(cherry picked from commit 711bda1441561bfd2eb6d45fe0bc789535c1f1a8)

lsfd-cmd/lsfd.c

index 75cd1de5807b848d2a4d02ce2077b8ee7dc4f5b1..9aae240fcbd7821664711dcb1079177cd3365a41 100644 (file)
@@ -1836,7 +1836,7 @@ static void mark_poll_fds_as_multiplexed(char *buf,
                struct file *file = list_entry(f, struct file, files);
                if (is_opened_file(file) && !file->multiplexed) {
                        int fd = file->association;
-                       if (bsearch(&(struct pollfd){.fd = fd,}, local.iov_base,
+                       if (bsearch((&(struct pollfd){.fd = fd,}), local.iov_base,
                                    nfds, sizeof(struct pollfd), pollfdcmp))
                                file->multiplexed = 1;
                }