[libvirt] [PATCH] fix build erro when building with --without-libvirtd

Martin Kletzander mkletzan at redhat.com
Mon Feb 4 11:25:48 UTC 2013


On 02/04/2013 09:23 AM, Hu Tao wrote:
> ---
>  src/driver.h           |  4 ---
>  src/libvirt.c          | 70 +++++++++++++++++++++++++++++++++++++++++++++++++-
>  src/libvirt_internal.h |  2 --
>  3 files changed, 69 insertions(+), 7 deletions(-)
> 
> diff --git a/src/driver.h b/src/driver.h
> index 02ddd83..dab7495 100644
> --- a/src/driver.h
> +++ b/src/driver.h
> @@ -1512,7 +1512,6 @@ struct _virStorageDriver {
>      virDrvStoragePoolIsPersistent           poolIsPersistent;
>  };
>  
> -# ifdef WITH_LIBVIRTD
>  
>  typedef int (*virDrvStateInitialize) (bool privileged,
>                                        virStateInhibitCallback callback,
> @@ -1531,7 +1530,6 @@ struct _virStateDriver {
>      virDrvStateReload      reload;
>      virDrvStateStop        stop;
>  };
> -# endif

Even though this is a solution and it makes the calls to virState* never
fail during compilation, I see the other approach being used as well in
some files (xen _driver.c for example):

#ifdef WITH_LIBVIRTD
    if (virRegisterStateDriver(&state_driver) == -1) return -1;
#endif

I like this a bit more, but that's just a subjective opinion.  However,
if you go with your approach, I'd rather see it cleaning up those paths
as well.

>  
>  typedef struct _virDeviceMonitor virDeviceMonitor;
> @@ -1768,9 +1766,7 @@ int virRegisterStorageDriver(virStorageDriverPtr);
>  int virRegisterDeviceMonitor(virDeviceMonitorPtr);
>  int virRegisterSecretDriver(virSecretDriverPtr);
>  int virRegisterNWFilterDriver(virNWFilterDriverPtr);
> -# ifdef WITH_LIBVIRTD
>  int virRegisterStateDriver(virStateDriverPtr);
> -# endif
>  void virDriverModuleInitialize(const char *defmoddir);
>  void *virDriverLoadModule(const char *name);
>  
> diff --git a/src/libvirt.c b/src/libvirt.c
> index f81a3de..38e4f6e 100644
> --- a/src/libvirt.c
> +++ b/src/libvirt.c
> @@ -885,8 +885,76 @@ int virStateStop(void) {
>      return ret;
>  }
>  
> -#endif
> +#else /* WITH_LIBVIRTD */
> +
> +/**
> + * virRegisterStateDriver:
> + * @driver: pointer to a driver block
> + *
> + * Register a virtualization driver
> + *
> + * Returns the driver priority or -1 in case of error.
> + */
> +int
> +virRegisterStateDriver(virStateDriverPtr driver ATTRIBUTE_UNUSED)
> +{
> +    return 0;
> +}
> +

The comment is false in this case, so I'd keep the comments to a minimum
and just mention that these are just dummy functions.

[...]

Martin




More information about the libvir-list mailing list