From: Natanael Copa Date: Tue, 24 Mar 2020 11:04:24 +0000 (+0100) Subject: sysdeps: use POSIX poll.h instead of sys/poll.h X-Git-Tag: dbus-1.13.14~5^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3509748dce7cb1512d3a071e454505f6b232f0a5;p=thirdparty%2Fdbus.git sysdeps: use POSIX poll.h instead of sys/poll.h POSIX.1-2001 and POSIX.1-2008 specifies include so use that rather than the non-standard/legacy include . This fixes the following warnings when building with musl libc: 1 | #warning redirecting incorrect #include to | ^~~~~~~ Signed-off-by: Natanael Copa --- diff --git a/cmake/ConfigureChecks.cmake b/cmake/ConfigureChecks.cmake index 3a1165f00..a25166782 100644 --- a/cmake/ConfigureChecks.cmake +++ b/cmake/ConfigureChecks.cmake @@ -32,7 +32,6 @@ check_include_file(sys/resource.h HAVE_SYS_RESOURCE_H) check_include_file(sys/stat.h HAVE_SYS_STAT_H) check_include_file(sys/types.h HAVE_SYS_TYPES_H) check_include_file(sys/uio.h HAVE_SYS_UIO_H) -check_include_file(sys/poll.h HAVE_POLL) # dbus-sysdeps.c, dbus-sysdeps-win.c check_include_file(sys/prctl.h HAVE_SYS_PRCTL_H) check_include_file(sys/syslimits.h HAVE_SYS_SYSLIMITS_H) # dbus-sysdeps-unix.c check_include_file(sys/time.h HAVE_SYS_TIME_H)# dbus-sysdeps-win.c @@ -55,6 +54,7 @@ check_symbol_exists(setrlimit "sys/resource.h" HAVE_SETRLIMIT) # check_symbol_exists(socketpair "sys/socket.h" HAVE_SOCKETPAIR) # dbus-sysdeps.c check_symbol_exists(setlocale "locale.h" HAVE_SETLOCALE) # dbus-test-main.c check_symbol_exists(localeconv "locale.h" HAVE_LOCALECONV) # dbus-sysdeps.c +check_symbol_exists(poll "poll.h" HAVE_POLL) # dbus-sysdeps-unix.c check_symbol_exists(strtoll "stdlib.h" HAVE_STRTOLL) # dbus-send.c check_symbol_exists(strtoull "stdlib.h" HAVE_STRTOULL) # dbus-send.c set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE) diff --git a/cmake/config.h.cmake b/cmake/config.h.cmake index 2f9f5413e..bd1c0dbf5 100644 --- a/cmake/config.h.cmake +++ b/cmake/config.h.cmake @@ -115,7 +115,7 @@ #cmakedefine HAVE_MEMORY_H 1 -/* Define to 1 if you have sys/poll.h */ +/* Define to 1 if you have poll */ #cmakedefine HAVE_POLL 1 /* Define to 1 if you have signal.h */ diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c index 71e5d86dc..8350ac27a 100644 --- a/dbus/dbus-sysdeps-unix.c +++ b/dbus/dbus-sysdeps-unix.c @@ -68,9 +68,6 @@ #ifdef HAVE_WRITEV #include #endif -#ifdef HAVE_POLL -#include -#endif #ifdef HAVE_BACKTRACE #include #endif diff --git a/dbus/dbus-sysdeps.h b/dbus/dbus-sysdeps.h index 60091026a..a91c61e33 100644 --- a/dbus/dbus-sysdeps.h +++ b/dbus/dbus-sysdeps.h @@ -74,12 +74,15 @@ # define BROKEN_POLL #endif -/* AIX sys/poll.h does #define events reqevents, and other - * wonderousness, so must include sys/poll before declaring - * DBusPollFD - */ +/* Normally we'd only include this in dbus-sysdeps-unix.c. + * However, the member names in DBusPollFD are (deliberately) the same as + * in POSIX struct pollfd, and AIX's poll() implementation is known to + * do things like "#define events reqevents", which would break that approach. + * Defend against that by ensuring that if it's renamed anywhere, it's renamed + * everywhere. + */ #ifdef HAVE_POLL -#include +#include #endif #ifdef DBUS_WINCE