Message ID | 20201115152317.42752-1-thuth@redhat.com |
---|---|
State | New |
Headers | show |
Series | None | expand |
On 11/15/20 4:23 PM, Thomas Huth wrote: > On Solaris and Haiku, the _IO() macros are defined in <sys/ioccom.h>. > Add a proper check for this header to our build system, 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> > --- > v2: Check in meson.build instead of using the configure script > > backends/tpm/tpm_ioctl.h | 4 ++++ > meson.build | 2 ++ > nbd/nbd-internal.h | 2 +- > 3 files changed, 7 insertions(+), 1 deletion(-) Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
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/meson.build b/meson.build index 61d883bc07..be85f70e4c 100644 --- a/meson.build +++ b/meson.build @@ -789,6 +789,8 @@ config_host_data.set('QEMU_VERSION_MAJOR', meson.project_version().split('.')[0] config_host_data.set('QEMU_VERSION_MINOR', meson.project_version().split('.')[1]) config_host_data.set('QEMU_VERSION_MICRO', meson.project_version().split('.')[2]) +config_host_data.set('HAVE_SYS_IOCCOM_H', cc.has_header('sys/ioccom.h')) + ignored = ['CONFIG_QEMU_INTERP_PREFIX'] # actually per-target arrays = ['CONFIG_AUDIO_DRIVERS', 'CONFIG_BDRV_RW_WHITELIST', 'CONFIG_BDRV_RO_WHITELIST'] strings = ['HOST_DSOSUF', 'CONFIG_IASL'] 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
On Solaris and Haiku, the _IO() macros are defined in <sys/ioccom.h>. Add a proper check for this header to our build system, 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> --- v2: Check in meson.build instead of using the configure script backends/tpm/tpm_ioctl.h | 4 ++++ meson.build | 2 ++ nbd/nbd-internal.h | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-)