vmnet_enable_isolation_key and vmnet_network_identifier_key are macOS 11, so older SDKs do not declare them. This restores the guards qemu carried until commit 3bf445fbb199 ("net/vmnet: Drop ifdef for macOS versions older than 12.0"). The isolated and net-uuid options report a clear error on older systems rather than being silently ignored, and the rest of vmnet-host keeps working. --- net/vmnet-host.c.orig +++ net/vmnet-host.c @@ -21,13 +21,31 @@ static bool validate_options(const Netdev *netdev, Error **errp) { const NetdevVmnetHostOptions *options = &(netdev->u.vmnet_host); + +#if defined(MAC_OS_VERSION_11_0) && \ + MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_VERSION_11_0 + QemuUUID net_uuid; - if (options->net_uuid && qemu_uuid_parse(options->net_uuid, &net_uuid) < 0) { error_setg(errp, "Invalid UUID provided in 'net-uuid'"); return false; } +#else + if (options->has_isolated) { + error_setg(errp, + "vmnet-host.isolated feature is " + "unavailable: outdated vmnet.framework API"); + return false; + } + + if (options->net_uuid) { + error_setg(errp, + "vmnet-host.net-uuid feature is " + "unavailable: outdated vmnet.framework API"); + return false; + } +#endif if ((options->start_address || options->end_address || @@ -53,6 +71,9 @@ vmnet_operation_mode_key, VMNET_HOST_MODE); +#if defined(MAC_OS_VERSION_11_0) && \ + MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_VERSION_11_0 + xpc_dictionary_set_bool(if_desc, vmnet_enable_isolation_key, options->isolated); @@ -64,6 +85,7 @@ vmnet_network_identifier_key, net_uuid.data); } +#endif if (options->start_address) { xpc_dictionary_set_string(if_desc,