diff --git a/configure b/configure index e4ec021b7d4ac8c40543c4f4f678a44670f6de3d..8b078c21e2276c5d331c8ffe8e34ea8228d3fef0 100755 --- a/configure +++ b/configure @@ -2302,26 +2302,6 @@ EOF fi fi -########################################## -# check if mingw environment provides a recent ntddscsi.h -guest_agent_ntddscsi="no" -if test "$mingw32" = "yes"; then - cat > $TMPC << EOF -#include <windows.h> -#include <ntddscsi.h> -int main(void) { -#if !defined(IOCTL_SCSI_GET_ADDRESS) -#error Missing required ioctl definitions -#endif - SCSI_ADDRESS addr = { .Lun = 0, .TargetId = 0, .PathId = 0 }; - return addr.Lun; -} -EOF - if compile_prog "" "" ; then - guest_agent_ntddscsi=yes - fi -fi - ########################################## # capstone @@ -2831,9 +2811,6 @@ if test "$debug_tcg" = "yes" ; then fi if test "$mingw32" = "yes" ; then echo "CONFIG_WIN32=y" >> $config_host_mak - if test "$guest_agent_ntddscsi" = "yes" ; then - echo "CONFIG_QGA_NTDDSCSI=y" >> $config_host_mak - fi echo "QEMU_GA_MSI_MINGW_DLL_PATH=${QEMU_GA_MSI_MINGW_DLL_PATH}" >> $config_host_mak echo "QEMU_GA_MANUFACTURER=${QEMU_GA_MANUFACTURER}" >> $config_host_mak echo "QEMU_GA_DISTRO=${QEMU_GA_DISTRO}" >> $config_host_mak diff --git a/meson.build b/meson.build index 8d9898c5c3a6d3ef33236b2e88de925348cc6a20..aefe8681b9fc8fdd8ea3a3d3ffae724a4f77511e 100644 --- a/meson.build +++ b/meson.build @@ -1938,6 +1938,22 @@ if targetos == 'windows' and link_language == 'cpp' int main(void) { return VSS_CTX_BACKUP; }''') endif +have_ntddscsi = false +if targetos == 'windows' + have_ntddscsi = cc.compiles(''' + #include <windows.h> + #include <ntddscsi.h> + int main(void) { + #if !defined(IOCTL_SCSI_GET_ADDRESS) + #error Missing required ioctl definitions + #endif + SCSI_ADDRESS addr = { .Lun = 0, .TargetId = 0, .PathId = 0 }; + return addr.Lun; + } +''') +endif +config_host_data.set('HAVE_NTDDSCSI', have_ntddscsi) + ignored = ['CONFIG_QEMU_INTERP_PREFIX', # actually per-target 'HAVE_GDB_BIN'] arrays = ['CONFIG_BDRV_RW_WHITELIST', 'CONFIG_BDRV_RO_WHITELIST'] @@ -3605,7 +3621,7 @@ summary_info += {'libnfs support': libnfs} if targetos == 'windows' if have_ga summary_info += {'QGA VSS support': have_qga_vss} - summary_info += {'QGA w32 disk info': config_host.has_key('CONFIG_QGA_NTDDSCSI')} + summary_info += {'QGA w32 disk info': have_ntddscsi} endif endif summary_info += {'seccomp support': seccomp} diff --git a/qga/commands-win32.c b/qga/commands-win32.c index 484cb1c6bd594379b2b9e4026608b0485744d76d..4fbbad793f2e543905257aa078abed915b223e8b 100644 --- a/qga/commands-win32.c +++ b/qga/commands-win32.c @@ -18,7 +18,7 @@ #include <ws2tcpip.h> #include <iptypes.h> #include <iphlpapi.h> -#ifdef CONFIG_QGA_NTDDSCSI +#ifdef HAVE_NTDDSCSI #include <winioctl.h> #include <ntddscsi.h> #endif @@ -474,7 +474,7 @@ void qmp_guest_file_flush(int64_t handle, Error **errp) } } -#ifdef CONFIG_QGA_NTDDSCSI +#ifdef HAVE_NTDDSCSI static GuestDiskBusType win2qemu[] = { [BusTypeUnknown] = GUEST_DISK_BUS_TYPE_UNKNOWN, @@ -1111,7 +1111,7 @@ GuestDiskInfoList *qmp_guest_get_disks(Error **errp) return NULL; } -#endif /* CONFIG_QGA_NTDDSCSI */ +#endif /* HAVE_NTDDSCSI */ static GuestFilesystemInfo *build_guest_fsinfo(char *guid, Error **errp) { diff --git a/qga/meson.build b/qga/meson.build index d22ecb41872c604e1b6e326f19f39040b43d12cc..54f2da5b07635be4fc6690d851e6267375a74b2a 100644 --- a/qga/meson.build +++ b/qga/meson.build @@ -88,7 +88,7 @@ if targetos == 'windows' qga_libs += ['-lole32', '-loleaut32', '-lshlwapi', '-lstdc++', '-Wl,--enable-stdcall-fixup'] subdir('vss-win32') endif - if 'CONFIG_QGA_NTDDSCSI' in config_host + if have_ntddscsi qga_libs += ['-lsetupapi', '-lcfgmgr32'] endif endif