Can we check this in meson.build?
On Sun, Nov 15, 2020 at 12:53 AM Thomas Huth <
thuth@redhat.com> wrote:
>
> 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 <
thuth@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
>
>
--
此致
礼
罗勇刚
Yours
sincerely,
Yonggang Luo