[libvirt] [RFC PATCH] build: consistently use C99 varargs macros

Daniel Veillard veillard at redhat.com
Mon Mar 1 17:13:45 UTC 2010


On Mon, Mar 01, 2010 at 08:04:35AM -0700, Eric Blake wrote:
> Prior to this patch, there was an inconsistent mix between GNU and
> C99.  For consistency, and potential portability to other compilers,
> stick with the C99 vararg macro syntax.
> 
> * src/conf/cpu_conf.c (virCPUReportError): Use C99 rather than GNU
> vararg macro syntax.
> * src/conf/domain_conf.c (virDomainReportError): Likewise.
> * src/conf/domain_event.c (eventReportError): Likewise.
> * src/conf/interface_conf.c (virInterfaceReportError): Likewise.
> * src/conf/network_conf.c (virNetworkReportError): Likewise.
> * src/conf/node_device_conf.h (virNodeDeviceReportError):
> Likewise.
> * src/conf/secret_conf.h (virSecretReportError): Likewise.
> * src/conf/storage_conf.h (virStorageReportError): Likewise.
> ---
> 
> Any objections to expanding this into a full-blown patch series?  This
> touches 8 files; I counted 43 more files that could be altered, using:
> $ git grep -l 'define.*[a-zA-Z]\.\.\.'
> 
>  src/conf/cpu_conf.c         |    4 ++--
>  src/conf/domain_conf.c      |    4 ++--
>  src/conf/domain_event.c     |    5 +++--
>  src/conf/interface_conf.c   |    4 ++--
>  src/conf/network_conf.c     |    6 +++---
>  src/conf/node_device_conf.h |    5 +++--
>  src/conf/secret_conf.h      |    6 +++---
>  src/conf/storage_conf.h     |    6 +++---
>  8 files changed, 21 insertions(+), 19 deletions(-)
> 
> diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c
> index ed83188..612e376 100644
> --- a/src/conf/cpu_conf.c
> +++ b/src/conf/cpu_conf.c
> @@ -31,9 +31,9 @@
> 
>  #define VIR_FROM_THIS VIR_FROM_CPU
> 
> -#define virCPUReportError(code, fmt...)                           \
> +#define virCPUReportError(code, ...)                              \
>      virReportErrorHelper(NULL, VIR_FROM_CPU, code, __FILE__,      \
> -                         __FUNCTION__, __LINE__, fmt)
> +                         __FUNCTION__, __LINE__, __VA_ARGS__)
> 
>  VIR_ENUM_IMPL(virCPUMatch, VIR_CPU_MATCH_LAST,
>                "minimum",
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index 4420445..ea84863 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -232,9 +232,9 @@ VIR_ENUM_IMPL(virDomainNetdevMacvtap, VIR_DOMAIN_NETDEV_MACVTAP_MODE_LAST,
>                "private",
>                "bridge")
> 
> -#define virDomainReportError(code, fmt...)                           \
> +#define virDomainReportError(code, ...)                              \
>      virReportErrorHelper(NULL, VIR_FROM_DOMAIN, code, __FILE__,      \
> -                         __FUNCTION__, __LINE__, fmt)
> +                         __FUNCTION__, __LINE__, __VA_ARGS__)
> 
>  #ifndef PROXY
> 
> diff --git a/src/conf/domain_event.c b/src/conf/domain_event.c
> index b474b1c..e791cab 100644
> --- a/src/conf/domain_event.c
> +++ b/src/conf/domain_event.c
> @@ -1,6 +1,7 @@
>  /*
>   * domain_event.c: domain event queue processing helpers
>   *
> + * Copyright (C) 2010 Red Hat, Inc.
>   * Copyright (C) 2008 VirtualIron
>   *
>   * This library is free software; you can redistribute it and/or
> @@ -30,9 +31,9 @@
> 
>  #define VIR_FROM_THIS VIR_FROM_NONE
> 
> -#define eventReportError(conn, code, fmt...)                        \
> +#define eventReportError(conn, code, ...)                           \
>      virReportErrorHelper(conn, VIR_FROM_THIS, code, __FILE__,       \
> -                         __FUNCTION__, __LINE__, fmt)
> +                         __FUNCTION__, __LINE__, __VA_ARGS__)
> 
> 
>  /**
> diff --git a/src/conf/interface_conf.c b/src/conf/interface_conf.c
> index a0d2dfa..bc9e958 100644
> --- a/src/conf/interface_conf.c
> +++ b/src/conf/interface_conf.c
> @@ -45,9 +45,9 @@ static int
>  virInterfaceDefDevFormat(virBufferPtr buf,
>                           const virInterfaceDefPtr def, int level);
> 
> -#define virInterfaceReportError(code, fmt...)                           \
> +#define virInterfaceReportError(code, ...)                              \
>      virReportErrorHelper(NULL, VIR_FROM_INTERFACE, code, __FILE__,      \
> -                         __FUNCTION__, __LINE__, fmt)
> +                         __FUNCTION__, __LINE__, __VA_ARGS__)
> 
>  static
>  void virInterfaceIpDefFree(virInterfaceIpDefPtr def) {
> diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c
> index 6d3c3c0..39ebd62 100644
> --- a/src/conf/network_conf.c
> +++ b/src/conf/network_conf.c
> @@ -1,7 +1,7 @@
>  /*
>   * network_conf.c: network XML handling
>   *
> - * Copyright (C) 2006-2009 Red Hat, Inc.
> + * Copyright (C) 2006-2010 Red Hat, Inc.
>   * Copyright (C) 2006-2008 Daniel P. Berrange
>   *
>   * This library is free software; you can redistribute it and/or
> @@ -53,9 +53,9 @@ VIR_ENUM_IMPL(virNetworkForward,
>                VIR_NETWORK_FORWARD_LAST,
>                "none", "nat", "route" )
> 
> -#define virNetworkReportError(code, fmt...)                             \
> +#define virNetworkReportError(code, ...)                                \
>      virReportErrorHelper(NULL, VIR_FROM_NETWORK, code, __FILE__,        \
> -                         __FUNCTION__, __LINE__, fmt)
> +                         __FUNCTION__, __LINE__, __VA_ARGS__)
> 
>  virNetworkObjPtr virNetworkFindByUUID(const virNetworkObjListPtr nets,
>                                        const unsigned char *uuid)
> diff --git a/src/conf/node_device_conf.h b/src/conf/node_device_conf.h
> index 3a5432c..cbaad9b 100644
> --- a/src/conf/node_device_conf.h
> +++ b/src/conf/node_device_conf.h
> @@ -1,6 +1,7 @@
>  /*
>   * node_device_conf.h: config handling for node devices
>   *
> + * Copyright (C) 2010 Red Hat, Inc.
>   * Copyright (C) 2008 Virtual Iron Software, Inc.
>   * Copyright (C) 2008 David F. Lively
>   *
> @@ -217,9 +218,9 @@ struct _virDeviceMonitorState {
>      void *privateData;			/* driver-specific private data */
>  };
> 
> -#define virNodeDeviceReportError(code, fmt...)                          \
> +#define virNodeDeviceReportError(code, ...)                             \
>      virReportErrorHelper(NULL, VIR_FROM_NODEDEV, code, __FILE__,	\
> -                         __FUNCTION__, __LINE__, fmt)
> +                         __FUNCTION__, __LINE__, __VA_ARGS__)
> 
>  int virNodeDeviceHasCap(const virNodeDeviceObjPtr dev, const char *cap);
> 
> diff --git a/src/conf/secret_conf.h b/src/conf/secret_conf.h
> index da00920..afcf8f1 100644
> --- a/src/conf/secret_conf.h
> +++ b/src/conf/secret_conf.h
> @@ -1,7 +1,7 @@
>  /*
>   * secret_conf.h: internal <secret> XML handling API
>   *
> - * Copyright (C) 2009 Red Hat, Inc.
> + * Copyright (C) 2009-2010 Red Hat, Inc.
>   *
>   * This library is free software; you can redistribute it and/or
>   * modify it under the terms of the GNU Lesser General Public
> @@ -26,9 +26,9 @@
>  #include "internal.h"
>  #include "util.h"
> 
> -#define virSecretReportError(code, fmt...)                      \
> +#define virSecretReportError(code, ...)                         \
>      virReportErrorHelper(NULL, VIR_FROM_SECRET, code, __FILE__, \
> -                         __FUNCTION__, __LINE__, fmt)
> +                         __FUNCTION__, __LINE__, __VA_ARGS__)
> 
>  VIR_ENUM_DECL(virSecretUsageType)
> 
> diff --git a/src/conf/storage_conf.h b/src/conf/storage_conf.h
> index c643984..5441c8e 100644
> --- a/src/conf/storage_conf.h
> +++ b/src/conf/storage_conf.h
> @@ -1,7 +1,7 @@
>  /*
>   * storage_conf.h: config handling for storage driver
>   *
> - * Copyright (C) 2006-2008 Red Hat, Inc.
> + * Copyright (C) 2006-2008, 2010 Red Hat, Inc.
>   * Copyright (C) 2006-2008 Daniel P. Berrange
>   *
>   * This library is free software; you can redistribute it and/or
> @@ -318,9 +318,9 @@ static inline int virStoragePoolObjIsActive(virStoragePoolObjPtr pool) {
>      return pool->active;
>  }
> 
> -#define virStorageReportError(code, fmt...)                             \
> +#define virStorageReportError(code, ...)                                \
>      virReportErrorHelper(NULL, VIR_FROM_STORAGE, code, __FILE__,        \
> -                         __FUNCTION__, __LINE__, fmt)
> +                         __FUNCTION__, __LINE__, __VA_ARGS__)
> 
>  int virStoragePoolLoadAllConfigs(virStoragePoolObjListPtr pools,
>                                   const char *configDir,

  That sounds a good idea, since mingw is the other compiler we use now,
we just need to make sure it grok it, can you confirm ? google()[1] on
the topic seems to be a post from you so I assume you can give a
definite and quick answer :-)

  thanks !

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list