[Spice-devel] [spice-common] log: Define G_LOG_DOMAIN as early as possible

Frediano Ziglio fziglio at redhat.com
Fri Jul 7 10:07:33 UTC 2017


> 
> "log: Forbid the usage of obsolete SPICE_LOG_DOMAIN" introduced a small
> regression, if G_LOG_DOMAIN is not set when glib.h is included, the
> header will set it to a default value. Redefining it later in log.c is
> going to cause a compile-time warning.
> This commit adds the definition to SPICE_COMMON_CFLAGS so that it's
> defined before any inclusion of glib.h is possible. This is similar to
> what is done in spice/configure.ac.
> 
> This avoids this warning:
> CC       log.lo
> log.c:44:0: warning: "G_LOG_DOMAIN" redefined
>  #define G_LOG_DOMAIN "Spice"
> 
> In file included from /usr/include/glib-2.0/glib.h:62:0,
>                  from log.c:22:
> /usr/include/glib-2.0/glib/gmessages.h:280:0: note: this is the location of
> the previous definition
>  #define G_LOG_DOMAIN    ((gchar*) 0)
> 
> Signed-off-by: Christophe Fergeau <cfergeau at redhat.com>
> ---
>  common/log.c | 2 --
>  configure.ac | 1 +
>  2 files changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/common/log.c b/common/log.c
> index 9b4757b..69ac63e 100644
> --- a/common/log.c
> +++ b/common/log.c
> @@ -41,8 +41,6 @@ static int abort_mask = 0;
>  #endif
>  #endif
>  
> -#define G_LOG_DOMAIN "Spice"
> -
>  typedef enum {
>      SPICE_LOG_LEVEL_ERROR,
>      SPICE_LOG_LEVEL_CRITICAL,
> diff --git a/configure.ac b/configure.ac
> index efd7317..f9b3f96 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -50,6 +50,7 @@ SPICE_CHECK_OPENSSL
>  
>  SPICE_COMMON_CFLAGS='$(PIXMAN_CFLAGS) $(SMARTCARD_CFLAGS) $(CELT051_CFLAGS)
>  $(GLIB2_CFLAGS) $(OPUS_CFLAGS) $(OPENSSL_CFLAGS)'
>  SPICE_COMMON_LIBS='$(PIXMAN_LIBS) $(CELT051_LIBS) $(GLIB2_LIBS) $(OPUS_LIBS)
>  $(OPENSSL_LIBS)'
> +SPICE_COMMON_CFLAGS+=' -DG_LOG_DOMAIN=\"Spice\"'

This is not standard shell compatible. The configure uses /bin/sh which
in some Linux systems is not even bash.

Is a weird mix of shell/Makefile which may be hard to quote correctly.

Something that simulate bash is

SPICE_COMMON_CFLAGS="$SPICE_COMMON_CFLAGS -DG_LOG_DOMAIN=\\\"Spice\\\""

>  AC_SUBST(SPICE_COMMON_CFLAGS)
>  AC_SUBST(SPICE_COMMON_LIBS)
>  

Frediano


More information about the Spice-devel mailing list