On Sonntag, 27. Februar 2022 23:35:22 CET Will Cohen wrote:
> From: Keno Fischer <k...@juliacomputing.com>
> 
> To allow VirtFS on darwin, we need to check that pthread_fchdir_np is
> available, which has only been available since macOS 10.12.
> 
> Additionally, virtfs_proxy_helper is disabled on Darwin. This patch
> series does not currently provide an implementation of the proxy-helper,
> but this functionality could be implemented later on.
> 
> Signed-off-by: Keno Fischer <k...@juliacomputing.com>
> [Michael Roitzsch: - Rebase for NixOS]
> Signed-off-by: Michael Roitzsch <reactorcont...@icloud.com>
> [Will Cohen: - Rebase to master]
> Signed-off-by: Will Cohen <wwco...@gmail.com>
> Reviewed-by: Paolo Bonzini <pbonz...@redhat.com>

Paolo, could you have a look at this patch, please? It has changed quite a bit
since your review.

Best regards,
Christian Schoenebeck

> [Will Cohen: - Add check for pthread_fchdir_np to virtfs
>              - Add comments to patch commit
>              - Note that virtfs_proxy_helper does not work
>                on macOS
>              - Fully adjust meson virtfs error note to specify
>                macOS
>              - Rebase to master]
> Signed-off-by: Will Cohen <wwco...@gmail.com>
> ---
>  fsdev/meson.build |  1 +
>  meson.build       | 12 +++++++-----
>  2 files changed, 8 insertions(+), 5 deletions(-)
> 
> diff --git a/fsdev/meson.build b/fsdev/meson.build
> index adf57cc43e..b632b66348 100644
> --- a/fsdev/meson.build
> +++ b/fsdev/meson.build
> @@ -7,6 +7,7 @@ fsdev_ss.add(when: ['CONFIG_FSDEV_9P'], if_true: files(
>    'qemu-fsdev.c',
>  ), if_false: files('qemu-fsdev-dummy.c'))
>  softmmu_ss.add_all(when: 'CONFIG_LINUX', if_true: fsdev_ss)
> +softmmu_ss.add_all(when: 'CONFIG_DARWIN', if_true: fsdev_ss)
> 
>  if have_virtfs_proxy_helper
>    executable('virtfs-proxy-helper',
> diff --git a/meson.build b/meson.build
> index 3f8dca2c7a..ba52ed9e9a 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -1450,14 +1450,16 @@ dbus_display = get_option('dbus_display') \
>    .allowed()
> 
>  have_virtfs = get_option('virtfs') \
> -    .require(targetos == 'linux',
> -             error_message: 'virtio-9p (virtfs) requires Linux') \
> -    .require(libattr.found() and libcap_ng.found(),
> -             error_message: 'virtio-9p (virtfs) requires libcap-ng-devel and 
> libattr-devel') \
> +    .require(targetos == 'linux' or targetos == 'darwin',
> +             error_message: 'virtio-9p (virtfs) requires Linux or macOS') \
> +    .require(targetos == 'linux' or cc.has_function('pthread_fchdir_np'),
> +             error_message: 'virtio-9p (virtfs) on macOS requires the 
> presence of pthread_fchdir_np') \
> +    .require(targetos == 'darwin' or (libattr.found() and libcap_ng.found()),
> +             error_message: 'virtio-9p (virtfs) on Linux requires 
> libcap-ng-devel and libattr-devel') \
>      .disable_auto_if(not have_tools and not have_system) \
>      .allowed()
> 
> -have_virtfs_proxy_helper = have_virtfs and have_tools
> +have_virtfs_proxy_helper = targetos != 'darwin' and have_virtfs and 
> have_tools
> 
>  foreach k : get_option('trace_backends')
>    config_host_data.set('CONFIG_TRACE_' + k.to_upper(), true)



Reply via email to