On Solaris and Haiku, the _IO() macros are defined in <sys/ioccom.h>. Add a proper check for this header to our configure scripts, and make sure to include the header in tpm_ioctl.h to fix a build failure on Solaris and Haiku.
Signed-off-by: Thomas Huth <th...@redhat.com> --- backends/tpm/tpm_ioctl.h | 4 ++++ configure | 11 ++++++++++- nbd/nbd-internal.h | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/backends/tpm/tpm_ioctl.h b/backends/tpm/tpm_ioctl.h index f5f5c553a9..bd6c12cb86 100644 --- a/backends/tpm/tpm_ioctl.h +++ b/backends/tpm/tpm_ioctl.h @@ -12,6 +12,10 @@ #include <sys/uio.h> #include <sys/ioctl.h> +#ifdef HAVE_SYS_IOCCOM_H +#include <sys/ioccom.h> +#endif + /* * Every response from a command involving a TPM command execution must hold * the ptm_res as the first element. diff --git a/configure b/configure index c0acda164d..764e903748 100755 --- a/configure +++ b/configure @@ -3123,6 +3123,13 @@ if check_include "sys/signal.h" ; then have_sys_signal_h=yes fi +######################################### +# sys/ioccom.h check +have_sys_ioccom_h=no +if check_include "sys/ioccom.h" ; then + have_sys_ioccom_h=yes +fi + ########################################## # VTE probe @@ -6214,7 +6221,9 @@ fi if test "$have_sys_signal_h" = "yes" ; then echo "HAVE_SYS_SIGNAL_H=y" >> $config_host_mak fi - +if test "$have_sys_ioccom_h" = "yes" ; then + echo "HAVE_SYS_IOCCOM_H=y" >> $config_host_mak +fi # Work around a system header bug with some kernel/XFS header # versions where they both try to define 'struct fsxattr': # xfs headers will not try to redefine structs from linux headers diff --git a/nbd/nbd-internal.h b/nbd/nbd-internal.h index 60629ef160..1b2141ab4b 100644 --- a/nbd/nbd-internal.h +++ b/nbd/nbd-internal.h @@ -19,7 +19,7 @@ #ifndef _WIN32 #include <sys/ioctl.h> #endif -#if defined(__sun__) || defined(__HAIKU__) +#ifdef HAVE_SYS_IOCCOM_H #include <sys/ioccom.h> #endif -- 2.18.4