On 11/17/25 21:38, Philippe Mathieu-Daudé wrote:
Commit 44ce1b5d2fc ("migration/rdma: define htonll/ntohll
only if not predefined") tried to only include htonll/ntohll
replacements when their symbol is *defined*, but this doesn't
work, as they aren't:

   ../migration/rdma.c:242:17: error: static declaration of 'htonll' follows 
non-static declaration
     242 | static uint64_t htonll(uint64_t v)
         |                 ^~~~~~
   In file included from /usr/include/netinet/in.h:73,
                    from /usr/include/sys/socket.h:32,
                    from /home/f4bug/qemu/include/system/os-posix.h:30,
                    from /home/f4bug/qemu/include/qemu/osdep.h:176,
                    from ../migration/rdma.c:17:
   /usr/include/sys/byteorder.h:75:18: note: previous declaration of 'htonll' 
with type 'uint64_t(uint64_t)' {aka 'long unsigned int(long unsigned int)'}
      75 | extern  uint64_t htonll(uint64_t);
         |                  ^~~~~~
   ../migration/rdma.c:252:17: error: static declaration of 'ntohll' follows 
non-static declaration
     252 | static uint64_t ntohll(uint64_t v)
         |                 ^~~~~~
   /usr/include/sys/byteorder.h:76:18: note: previous declaration of 'ntohll' 
with type 'uint64_t(uint64_t)' {aka 'long unsigned int(long unsigned int)'}
      76 | extern  uint64_t ntohll(uint64_t);
         |                  ^~~~~~

Better to check the symbol availability with meson.

Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
---
  meson.build      | 1 +
  migration/rdma.c | 4 +---
  2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/meson.build b/meson.build
index df4460035c3..72edd6097a4 100644
--- a/meson.build
+++ b/meson.build
@@ -2663,6 +2663,7 @@ config_host_data.set('CONFIG_SYNCFS', 
cc.has_function('syncfs'))
  config_host_data.set('CONFIG_SYNC_FILE_RANGE', 
cc.has_function('sync_file_range'))
  config_host_data.set('CONFIG_TIMERFD', cc.has_function('timerfd_create'))
  config_host_data.set('CONFIG_GETLOADAVG', cc.has_function('getloadavg'))
+config_host_data.set('CONFIG_ARPA_INET_64', cc.has_function('htonll'))
  config_host_data.set('HAVE_COPY_FILE_RANGE', 
cc.has_function('copy_file_range'))
  config_host_data.set('HAVE_GETIFADDRS', cc.has_function('getifaddrs'))
  config_host_data.set('HAVE_GLIB_WITH_SLICE_ALLOCATOR', glib_has_gslice)

Should we bother with htonl{,l} at all, when we have <qemu/bswap.h>?

That said, this is the minimal patch for 10.2, so
Reviewed-by: Richard Henderson <[email protected]>


r~

Reply via email to