All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 0/2]: Fix build issue with error.h
@ 2011-07-12 19:00 Luiz Capitulino
  2011-07-12 19:00 ` [Qemu-devel] [PATCH 1/2] Introduce compiler.h header file Luiz Capitulino
  2011-07-12 19:00 ` [Qemu-devel] [PATCH 2/2] Error: Fix build when qemu-common.h is not included Luiz Capitulino
  0 siblings, 2 replies; 7+ messages in thread
From: Luiz Capitulino @ 2011-07-12 19:00 UTC (permalink / raw)
  To: qemu-devel; +Cc: aliguori, mdroth

A .c file including error.h and not including qemu-common.h will break the
build, because error.h uses a macro defined in qemu-common.h.

The simple and obvious fix would be to change error.h to include
qemu-common.h. But this is overkill, so this series does some splitting in
qemu-common.h and changes error.h to include only what it really needs.

Please, refer to the patches for more details.

v2

 o move compiler related macros from qemu-common.h to compiler.h

 compiler.h    |   38 ++++++++++++++++++++++++++++++++++++++
 error.h       |    1 +
 qemu-common.h |   25 +------------------------
 3 files changed, 40 insertions(+), 24 deletions(-)

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PATCH 1/2] Introduce compiler.h header file
  2011-07-12 19:00 [Qemu-devel] [PATCH v2 0/2]: Fix build issue with error.h Luiz Capitulino
@ 2011-07-12 19:00 ` Luiz Capitulino
  2011-07-12 20:31   ` malc
  2011-07-12 19:00 ` [Qemu-devel] [PATCH 2/2] Error: Fix build when qemu-common.h is not included Luiz Capitulino
  1 sibling, 1 reply; 7+ messages in thread
From: Luiz Capitulino @ 2011-07-12 19:00 UTC (permalink / raw)
  To: qemu-devel; +Cc: aliguori, mdroth

From: Luiz Capitulino <lcapitulino@gmail.com>

This moves compiler related macros from qemu-common.h to compiler.h.

The reason for this change is that there are simple header files that
depend only on the compiler macros, so including qemu-common.h is overkill.

Besides, qemu-common.h is bloated and will benefit from some splitting.

Signed-off-by: Luiz Capitulino <lcapitulino@gmail.com>
---
 compiler.h    |   38 ++++++++++++++++++++++++++++++++++++++
 qemu-common.h |   25 +------------------------
 2 files changed, 39 insertions(+), 24 deletions(-)
 create mode 100644 compiler.h

diff --git a/compiler.h b/compiler.h
new file mode 100644
index 0000000..864f8ff
--- /dev/null
+++ b/compiler.h
@@ -0,0 +1,38 @@
+/*
+ * Compiler related definition
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2.  See
+ * the COPYING file in the top-level directory.
+ *
+ */
+#ifndef COMPILER_H
+#define COMPILER_H
+
+#include "config-host.h"
+
+#define QEMU_NORETURN __attribute__ ((__noreturn__))
+#ifdef CONFIG_GCC_ATTRIBUTE_WARN_UNUSED_RESULT
+#define QEMU_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
+#else
+#define QEMU_WARN_UNUSED_RESULT
+#endif
+
+#define QEMU_BUILD_BUG_ON(x) typedef char __build_bug_on__##__LINE__[(x)?-1:1];
+
+#if defined __GNUC__
+# if (__GNUC__ < 4) || \
+     defined(__GNUC_MINOR__) && (__GNUC__ == 4) && (__GNUC_MINOR__ < 4)
+   /* gcc versions before 4.4.x don't support gnu_printf, so use printf. */
+#  define GCC_ATTR __attribute__((__unused__, format(printf, 1, 2)))
+#  define GCC_FMT_ATTR(n, m) __attribute__((format(printf, n, m)))
+# else
+   /* Use gnu_printf when supported (qemu uses standard format strings). */
+#  define GCC_ATTR __attribute__((__unused__, format(gnu_printf, 1, 2)))
+#  define GCC_FMT_ATTR(n, m) __attribute__((format(gnu_printf, n, m)))
+# endif
+#else
+#define GCC_ATTR /**/
+#define GCC_FMT_ATTR(n, m)
+#endif
+
+#endif /* COMPILER_H */
diff --git a/qemu-common.h b/qemu-common.h
index abd7a75..1e72931 100644
--- a/qemu-common.h
+++ b/qemu-common.h
@@ -2,16 +2,9 @@
 #ifndef QEMU_COMMON_H
 #define QEMU_COMMON_H
 
+#include "compiler.h"
 #include "config-host.h"
 
-#define QEMU_NORETURN __attribute__ ((__noreturn__))
-#ifdef CONFIG_GCC_ATTRIBUTE_WARN_UNUSED_RESULT
-#define QEMU_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
-#else
-#define QEMU_WARN_UNUSED_RESULT
-#endif
-
-#define QEMU_BUILD_BUG_ON(x) typedef char __build_bug_on__##__LINE__[(x)?-1:1];
 #define TFR(expr) do { if ((expr) != -1) break; } while (errno == EINTR)
 
 typedef struct QEMUTimer QEMUTimer;
@@ -82,22 +75,6 @@ struct iovec {
 #include <sys/uio.h>
 #endif
 
-#if defined __GNUC__
-# if (__GNUC__ < 4) || \
-     defined(__GNUC_MINOR__) && (__GNUC__ == 4) && (__GNUC_MINOR__ < 4)
-   /* gcc versions before 4.4.x don't support gnu_printf, so use printf. */
-#  define GCC_ATTR __attribute__((__unused__, format(printf, 1, 2)))
-#  define GCC_FMT_ATTR(n, m) __attribute__((format(printf, n, m)))
-# else
-   /* Use gnu_printf when supported (qemu uses standard format strings). */
-#  define GCC_ATTR __attribute__((__unused__, format(gnu_printf, 1, 2)))
-#  define GCC_FMT_ATTR(n, m) __attribute__((format(gnu_printf, n, m)))
-# endif
-#else
-#define GCC_ATTR /**/
-#define GCC_FMT_ATTR(n, m)
-#endif
-
 typedef int (*fprintf_function)(FILE *f, const char *fmt, ...)
     GCC_FMT_ATTR(2, 3);
 
-- 
1.7.6.134.gcf13f

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PATCH 2/2] Error: Fix build when qemu-common.h is not included
  2011-07-12 19:00 [Qemu-devel] [PATCH v2 0/2]: Fix build issue with error.h Luiz Capitulino
  2011-07-12 19:00 ` [Qemu-devel] [PATCH 1/2] Introduce compiler.h header file Luiz Capitulino
@ 2011-07-12 19:00 ` Luiz Capitulino
  1 sibling, 0 replies; 7+ messages in thread
From: Luiz Capitulino @ 2011-07-12 19:00 UTC (permalink / raw)
  To: qemu-devel; +Cc: aliguori, mdroth

From: Luiz Capitulino <lcapitulino@gmail.com>

Commit e4ea5e2d0e0e4c5188ab45b66f3195062ae059dc added the use of
the macro GCC_FMT_ATTR to error.h, however compiler.h is not
included by error.h

This will cause a build error when files including error.h
don't include qemu-common.h (or compiler.h). Not an issue today
because the only file including it is json-parser.h and it does
include qemu-common.h, but let's get it fixed.

Signed-off-by: Luiz Capitulino <lcapitulino@gmail.com>
---
 error.h |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/error.h b/error.h
index 0f92a6f..6361f40 100644
--- a/error.h
+++ b/error.h
@@ -12,6 +12,7 @@
 #ifndef ERROR_H
 #define ERROR_H
 
+#include "compiler.h"
 #include <stdbool.h>
 
 /**
-- 
1.7.6.134.gcf13f

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] [PATCH 1/2] Introduce compiler.h header file
  2011-07-12 19:00 ` [Qemu-devel] [PATCH 1/2] Introduce compiler.h header file Luiz Capitulino
@ 2011-07-12 20:31   ` malc
  2011-07-12 20:34     ` Luiz Capitulino
  0 siblings, 1 reply; 7+ messages in thread
From: malc @ 2011-07-12 20:31 UTC (permalink / raw)
  To: Luiz Capitulino; +Cc: aliguori, qemu-devel, mdroth

On Tue, 12 Jul 2011, Luiz Capitulino wrote:

> From: Luiz Capitulino <lcapitulino@gmail.com>
> 
> This moves compiler related macros from qemu-common.h to compiler.h.
> 
> The reason for this change is that there are simple header files that
> depend only on the compiler macros, so including qemu-common.h is overkill.
> 
> Besides, qemu-common.h is bloated and will benefit from some splitting.
> 
> Signed-off-by: Luiz Capitulino <lcapitulino@gmail.com>
> ---
>  compiler.h    |   38 ++++++++++++++++++++++++++++++++++++++
>  qemu-common.h |   25 +------------------------
>  2 files changed, 39 insertions(+), 24 deletions(-)
>  create mode 100644 compiler.h
> 
> diff --git a/compiler.h b/compiler.h
> new file mode 100644
> index 0000000..864f8ff
> --- /dev/null
> +++ b/compiler.h
> @@ -0,0 +1,38 @@
> +/*
> + * Compiler related definition
> + *
> + * This work is licensed under the terms of the GNU GPL, version 2.  See
> + * the COPYING file in the top-level directory.
> + *
> + */
> +#ifndef COMPILER_H
> +#define COMPILER_H
> +
> +#include "config-host.h"
> +
> +#define QEMU_NORETURN __attribute__ ((__noreturn__))
> +#ifdef CONFIG_GCC_ATTRIBUTE_WARN_UNUSED_RESULT
> +#define QEMU_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
> +#else
> +#define QEMU_WARN_UNUSED_RESULT
> +#endif
> +
> +#define QEMU_BUILD_BUG_ON(x) typedef char __build_bug_on__##__LINE__[(x)?-1:1];
> +
> +#if defined __GNUC__
> +# if (__GNUC__ < 4) || \
> +     defined(__GNUC_MINOR__) && (__GNUC__ == 4) && (__GNUC_MINOR__ < 4)
> +   /* gcc versions before 4.4.x don't support gnu_printf, so use printf. */
> +#  define GCC_ATTR __attribute__((__unused__, format(printf, 1, 2)))
> +#  define GCC_FMT_ATTR(n, m) __attribute__((format(printf, n, m)))

I wrote the above and certainly didn't license it under GPL, please drop
the bogus copyright notice at the top.

> +# else
> +   /* Use gnu_printf when supported (qemu uses standard format strings). */
> +#  define GCC_ATTR __attribute__((__unused__, format(gnu_printf, 1, 2)))
> +#  define GCC_FMT_ATTR(n, m) __attribute__((format(gnu_printf, n, m)))
> +# endif
> +#else
> +#define GCC_ATTR /**/
> +#define GCC_FMT_ATTR(n, m)
> +#endif
> +
> +#endif /* COMPILER_H */
> diff --git a/qemu-common.h b/qemu-common.h
> index abd7a75..1e72931 100644
> --- a/qemu-common.h
> +++ b/qemu-common.h
> @@ -2,16 +2,9 @@
>  #ifndef QEMU_COMMON_H
>  #define QEMU_COMMON_H
>  
> +#include "compiler.h"
>  #include "config-host.h"
>  
> -#define QEMU_NORETURN __attribute__ ((__noreturn__))
> -#ifdef CONFIG_GCC_ATTRIBUTE_WARN_UNUSED_RESULT
> -#define QEMU_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
> -#else
> -#define QEMU_WARN_UNUSED_RESULT
> -#endif
> -
> -#define QEMU_BUILD_BUG_ON(x) typedef char __build_bug_on__##__LINE__[(x)?-1:1];
>  #define TFR(expr) do { if ((expr) != -1) break; } while (errno == EINTR)
>  
>  typedef struct QEMUTimer QEMUTimer;
> @@ -82,22 +75,6 @@ struct iovec {
>  #include <sys/uio.h>
>  #endif
>  
> -#if defined __GNUC__
> -# if (__GNUC__ < 4) || \
> -     defined(__GNUC_MINOR__) && (__GNUC__ == 4) && (__GNUC_MINOR__ < 4)
> -   /* gcc versions before 4.4.x don't support gnu_printf, so use printf. */
> -#  define GCC_ATTR __attribute__((__unused__, format(printf, 1, 2)))
> -#  define GCC_FMT_ATTR(n, m) __attribute__((format(printf, n, m)))
> -# else
> -   /* Use gnu_printf when supported (qemu uses standard format strings). */
> -#  define GCC_ATTR __attribute__((__unused__, format(gnu_printf, 1, 2)))
> -#  define GCC_FMT_ATTR(n, m) __attribute__((format(gnu_printf, n, m)))
> -# endif
> -#else
> -#define GCC_ATTR /**/
> -#define GCC_FMT_ATTR(n, m)
> -#endif
> -
>  typedef int (*fprintf_function)(FILE *f, const char *fmt, ...)
>      GCC_FMT_ATTR(2, 3);
>  
> 

-- 
mailto:av1474@comtv.ru

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] [PATCH 1/2] Introduce compiler.h header file
  2011-07-12 20:31   ` malc
@ 2011-07-12 20:34     ` Luiz Capitulino
  2011-07-12 20:43       ` malc
  0 siblings, 1 reply; 7+ messages in thread
From: Luiz Capitulino @ 2011-07-12 20:34 UTC (permalink / raw)
  To: malc; +Cc: aliguori, qemu-devel, mdroth

On Wed, 13 Jul 2011 00:31:56 +0400 (MSD)
malc <av1474@comtv.ru> wrote:

> On Tue, 12 Jul 2011, Luiz Capitulino wrote:
> 
> > From: Luiz Capitulino <lcapitulino@gmail.com>
> > 
> > This moves compiler related macros from qemu-common.h to compiler.h.
> > 
> > The reason for this change is that there are simple header files that
> > depend only on the compiler macros, so including qemu-common.h is overkill.
> > 
> > Besides, qemu-common.h is bloated and will benefit from some splitting.
> > 
> > Signed-off-by: Luiz Capitulino <lcapitulino@gmail.com>
> > ---
> >  compiler.h    |   38 ++++++++++++++++++++++++++++++++++++++
> >  qemu-common.h |   25 +------------------------
> >  2 files changed, 39 insertions(+), 24 deletions(-)
> >  create mode 100644 compiler.h
> > 
> > diff --git a/compiler.h b/compiler.h
> > new file mode 100644
> > index 0000000..864f8ff
> > --- /dev/null
> > +++ b/compiler.h
> > @@ -0,0 +1,38 @@
> > +/*
> > + * Compiler related definition
> > + *
> > + * This work is licensed under the terms of the GNU GPL, version 2.  See
> > + * the COPYING file in the top-level directory.
> > + *
> > + */
> > +#ifndef COMPILER_H
> > +#define COMPILER_H
> > +
> > +#include "config-host.h"
> > +
> > +#define QEMU_NORETURN __attribute__ ((__noreturn__))
> > +#ifdef CONFIG_GCC_ATTRIBUTE_WARN_UNUSED_RESULT
> > +#define QEMU_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
> > +#else
> > +#define QEMU_WARN_UNUSED_RESULT
> > +#endif
> > +
> > +#define QEMU_BUILD_BUG_ON(x) typedef char __build_bug_on__##__LINE__[(x)?-1:1];
> > +
> > +#if defined __GNUC__
> > +# if (__GNUC__ < 4) || \
> > +     defined(__GNUC_MINOR__) && (__GNUC__ == 4) && (__GNUC_MINOR__ < 4)
> > +   /* gcc versions before 4.4.x don't support gnu_printf, so use printf. */
> > +#  define GCC_ATTR __attribute__((__unused__, format(printf, 1, 2)))
> > +#  define GCC_FMT_ATTR(n, m) __attribute__((format(printf, n, m)))
> 
> I wrote the above and certainly didn't license it under GPL, please drop
> the bogus copyright notice at the top.

Which one should I use?

> 
> > +# else
> > +   /* Use gnu_printf when supported (qemu uses standard format strings). */
> > +#  define GCC_ATTR __attribute__((__unused__, format(gnu_printf, 1, 2)))
> > +#  define GCC_FMT_ATTR(n, m) __attribute__((format(gnu_printf, n, m)))
> > +# endif
> > +#else
> > +#define GCC_ATTR /**/
> > +#define GCC_FMT_ATTR(n, m)
> > +#endif
> > +
> > +#endif /* COMPILER_H */
> > diff --git a/qemu-common.h b/qemu-common.h
> > index abd7a75..1e72931 100644
> > --- a/qemu-common.h
> > +++ b/qemu-common.h
> > @@ -2,16 +2,9 @@
> >  #ifndef QEMU_COMMON_H
> >  #define QEMU_COMMON_H
> >  
> > +#include "compiler.h"
> >  #include "config-host.h"
> >  
> > -#define QEMU_NORETURN __attribute__ ((__noreturn__))
> > -#ifdef CONFIG_GCC_ATTRIBUTE_WARN_UNUSED_RESULT
> > -#define QEMU_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
> > -#else
> > -#define QEMU_WARN_UNUSED_RESULT
> > -#endif
> > -
> > -#define QEMU_BUILD_BUG_ON(x) typedef char __build_bug_on__##__LINE__[(x)?-1:1];
> >  #define TFR(expr) do { if ((expr) != -1) break; } while (errno == EINTR)
> >  
> >  typedef struct QEMUTimer QEMUTimer;
> > @@ -82,22 +75,6 @@ struct iovec {
> >  #include <sys/uio.h>
> >  #endif
> >  
> > -#if defined __GNUC__
> > -# if (__GNUC__ < 4) || \
> > -     defined(__GNUC_MINOR__) && (__GNUC__ == 4) && (__GNUC_MINOR__ < 4)
> > -   /* gcc versions before 4.4.x don't support gnu_printf, so use printf. */
> > -#  define GCC_ATTR __attribute__((__unused__, format(printf, 1, 2)))
> > -#  define GCC_FMT_ATTR(n, m) __attribute__((format(printf, n, m)))
> > -# else
> > -   /* Use gnu_printf when supported (qemu uses standard format strings). */
> > -#  define GCC_ATTR __attribute__((__unused__, format(gnu_printf, 1, 2)))
> > -#  define GCC_FMT_ATTR(n, m) __attribute__((format(gnu_printf, n, m)))
> > -# endif
> > -#else
> > -#define GCC_ATTR /**/
> > -#define GCC_FMT_ATTR(n, m)
> > -#endif
> > -
> >  typedef int (*fprintf_function)(FILE *f, const char *fmt, ...)
> >      GCC_FMT_ATTR(2, 3);
> >  
> > 
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] [PATCH 1/2] Introduce compiler.h header file
  2011-07-12 20:34     ` Luiz Capitulino
@ 2011-07-12 20:43       ` malc
  2011-07-12 20:52         ` Luiz Capitulino
  0 siblings, 1 reply; 7+ messages in thread
From: malc @ 2011-07-12 20:43 UTC (permalink / raw)
  To: Luiz Capitulino; +Cc: aliguori, qemu-devel, mdroth

On Tue, 12 Jul 2011, Luiz Capitulino wrote:

> On Wed, 13 Jul 2011 00:31:56 +0400 (MSD)
> malc <av1474@comtv.ru> wrote:
> 
> > On Tue, 12 Jul 2011, Luiz Capitulino wrote:
> > 
> > > From: Luiz Capitulino <lcapitulino@gmail.com>
> > > 
> > > This moves compiler related macros from qemu-common.h to compiler.h.
> > > 
> > > The reason for this change is that there are simple header files that
> > > depend only on the compiler macros, so including qemu-common.h is overkill.
> > > 
> > > Besides, qemu-common.h is bloated and will benefit from some splitting.
> > > 
> > > Signed-off-by: Luiz Capitulino <lcapitulino@gmail.com>
> > > ---
> > >  compiler.h    |   38 ++++++++++++++++++++++++++++++++++++++
> > >  qemu-common.h |   25 +------------------------
> > >  2 files changed, 39 insertions(+), 24 deletions(-)
> > >  create mode 100644 compiler.h
> > > 
> > > diff --git a/compiler.h b/compiler.h
> > > new file mode 100644
> > > index 0000000..864f8ff
> > > --- /dev/null
> > > +++ b/compiler.h
> > > @@ -0,0 +1,38 @@
> > > +/*
> > > + * Compiler related definition
> > > + *
> > > + * This work is licensed under the terms of the GNU GPL, version 2.  See
> > > + * the COPYING file in the top-level directory.
> > > + *
> > > + */
> > > +#ifndef COMPILER_H
> > > +#define COMPILER_H
> > > +
> > > +#include "config-host.h"
> > > +
> > > +#define QEMU_NORETURN __attribute__ ((__noreturn__))
> > > +#ifdef CONFIG_GCC_ATTRIBUTE_WARN_UNUSED_RESULT
> > > +#define QEMU_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
> > > +#else
> > > +#define QEMU_WARN_UNUSED_RESULT
> > > +#endif
> > > +
> > > +#define QEMU_BUILD_BUG_ON(x) typedef char __build_bug_on__##__LINE__[(x)?-1:1];
> > > +
> > > +#if defined __GNUC__
> > > +# if (__GNUC__ < 4) || \
> > > +     defined(__GNUC_MINOR__) && (__GNUC__ == 4) && (__GNUC_MINOR__ < 4)
> > > +   /* gcc versions before 4.4.x don't support gnu_printf, so use printf. */
> > > +#  define GCC_ATTR __attribute__((__unused__, format(printf, 1, 2)))
> > > +#  define GCC_FMT_ATTR(n, m) __attribute__((format(printf, n, m)))
> > 
> > I wrote the above and certainly didn't license it under GPL, please drop
> > the bogus copyright notice at the top.
> 
> Which one should I use?

None, it's a bloody header with definitions it's not copyrightable.

> 
> > 
> > > +# else
> > > +   /* Use gnu_printf when supported (qemu uses standard format strings). */
> > > +#  define GCC_ATTR __attribute__((__unused__, format(gnu_printf, 1, 2)))
> > > +#  define GCC_FMT_ATTR(n, m) __attribute__((format(gnu_printf, n, m)))
> > > +# endif
> > > +#else
> > > +#define GCC_ATTR /**/
> > > +#define GCC_FMT_ATTR(n, m)
> > > +#endif
> > > +
> > > +#endif /* COMPILER_H */
> > > diff --git a/qemu-common.h b/qemu-common.h
> > > index abd7a75..1e72931 100644
> > > --- a/qemu-common.h
> > > +++ b/qemu-common.h
> > > @@ -2,16 +2,9 @@
> > >  #ifndef QEMU_COMMON_H
> > >  #define QEMU_COMMON_H
> > >  
> > > +#include "compiler.h"
> > >  #include "config-host.h"
> > >  
> > > -#define QEMU_NORETURN __attribute__ ((__noreturn__))
> > > -#ifdef CONFIG_GCC_ATTRIBUTE_WARN_UNUSED_RESULT
> > > -#define QEMU_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
> > > -#else
> > > -#define QEMU_WARN_UNUSED_RESULT
> > > -#endif
> > > -
> > > -#define QEMU_BUILD_BUG_ON(x) typedef char __build_bug_on__##__LINE__[(x)?-1:1];
> > >  #define TFR(expr) do { if ((expr) != -1) break; } while (errno == EINTR)
> > >  
> > >  typedef struct QEMUTimer QEMUTimer;
> > > @@ -82,22 +75,6 @@ struct iovec {
> > >  #include <sys/uio.h>
> > >  #endif
> > >  
> > > -#if defined __GNUC__
> > > -# if (__GNUC__ < 4) || \
> > > -     defined(__GNUC_MINOR__) && (__GNUC__ == 4) && (__GNUC_MINOR__ < 4)
> > > -   /* gcc versions before 4.4.x don't support gnu_printf, so use printf. */
> > > -#  define GCC_ATTR __attribute__((__unused__, format(printf, 1, 2)))
> > > -#  define GCC_FMT_ATTR(n, m) __attribute__((format(printf, n, m)))
> > > -# else
> > > -   /* Use gnu_printf when supported (qemu uses standard format strings). */
> > > -#  define GCC_ATTR __attribute__((__unused__, format(gnu_printf, 1, 2)))
> > > -#  define GCC_FMT_ATTR(n, m) __attribute__((format(gnu_printf, n, m)))
> > > -# endif
> > > -#else
> > > -#define GCC_ATTR /**/
> > > -#define GCC_FMT_ATTR(n, m)
> > > -#endif
> > > -
> > >  typedef int (*fprintf_function)(FILE *f, const char *fmt, ...)
> > >      GCC_FMT_ATTR(2, 3);
> > >  
> > > 
> > 
> 

-- 
mailto:av1474@comtv.ru

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] [PATCH 1/2] Introduce compiler.h header file
  2011-07-12 20:43       ` malc
@ 2011-07-12 20:52         ` Luiz Capitulino
  0 siblings, 0 replies; 7+ messages in thread
From: Luiz Capitulino @ 2011-07-12 20:52 UTC (permalink / raw)
  To: malc; +Cc: aliguori, qemu-devel, mdroth

On Wed, 13 Jul 2011 00:43:42 +0400 (MSD)
malc <av1474@comtv.ru> wrote:

> On Tue, 12 Jul 2011, Luiz Capitulino wrote:
> 
> > On Wed, 13 Jul 2011 00:31:56 +0400 (MSD)
> > malc <av1474@comtv.ru> wrote:
> > 
> > > On Tue, 12 Jul 2011, Luiz Capitulino wrote:
> > > 
> > > > From: Luiz Capitulino <lcapitulino@gmail.com>
> > > > 
> > > > This moves compiler related macros from qemu-common.h to compiler.h.
> > > > 
> > > > The reason for this change is that there are simple header files that
> > > > depend only on the compiler macros, so including qemu-common.h is overkill.
> > > > 
> > > > Besides, qemu-common.h is bloated and will benefit from some splitting.
> > > > 
> > > > Signed-off-by: Luiz Capitulino <lcapitulino@gmail.com>
> > > > ---
> > > >  compiler.h    |   38 ++++++++++++++++++++++++++++++++++++++
> > > >  qemu-common.h |   25 +------------------------
> > > >  2 files changed, 39 insertions(+), 24 deletions(-)
> > > >  create mode 100644 compiler.h
> > > > 
> > > > diff --git a/compiler.h b/compiler.h
> > > > new file mode 100644
> > > > index 0000000..864f8ff
> > > > --- /dev/null
> > > > +++ b/compiler.h
> > > > @@ -0,0 +1,38 @@
> > > > +/*
> > > > + * Compiler related definition
> > > > + *
> > > > + * This work is licensed under the terms of the GNU GPL, version 2.  See
> > > > + * the COPYING file in the top-level directory.
> > > > + *
> > > > + */
> > > > +#ifndef COMPILER_H
> > > > +#define COMPILER_H
> > > > +
> > > > +#include "config-host.h"
> > > > +
> > > > +#define QEMU_NORETURN __attribute__ ((__noreturn__))
> > > > +#ifdef CONFIG_GCC_ATTRIBUTE_WARN_UNUSED_RESULT
> > > > +#define QEMU_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
> > > > +#else
> > > > +#define QEMU_WARN_UNUSED_RESULT
> > > > +#endif
> > > > +
> > > > +#define QEMU_BUILD_BUG_ON(x) typedef char __build_bug_on__##__LINE__[(x)?-1:1];
> > > > +
> > > > +#if defined __GNUC__
> > > > +# if (__GNUC__ < 4) || \
> > > > +     defined(__GNUC_MINOR__) && (__GNUC__ == 4) && (__GNUC_MINOR__ < 4)
> > > > +   /* gcc versions before 4.4.x don't support gnu_printf, so use printf. */
> > > > +#  define GCC_ATTR __attribute__((__unused__, format(printf, 1, 2)))
> > > > +#  define GCC_FMT_ATTR(n, m) __attribute__((format(printf, n, m)))
> > > 
> > > I wrote the above and certainly didn't license it under GPL, please drop
> > > the bogus copyright notice at the top.
> > 
> > Which one should I use?
> 
> None, it's a bloody header with definitions it's not copyrightable.

It's, but you're choosing not to do so.

> 
> > 
> > > 
> > > > +# else
> > > > +   /* Use gnu_printf when supported (qemu uses standard format strings). */
> > > > +#  define GCC_ATTR __attribute__((__unused__, format(gnu_printf, 1, 2)))
> > > > +#  define GCC_FMT_ATTR(n, m) __attribute__((format(gnu_printf, n, m)))
> > > > +# endif
> > > > +#else
> > > > +#define GCC_ATTR /**/
> > > > +#define GCC_FMT_ATTR(n, m)
> > > > +#endif
> > > > +
> > > > +#endif /* COMPILER_H */
> > > > diff --git a/qemu-common.h b/qemu-common.h
> > > > index abd7a75..1e72931 100644
> > > > --- a/qemu-common.h
> > > > +++ b/qemu-common.h
> > > > @@ -2,16 +2,9 @@
> > > >  #ifndef QEMU_COMMON_H
> > > >  #define QEMU_COMMON_H
> > > >  
> > > > +#include "compiler.h"
> > > >  #include "config-host.h"
> > > >  
> > > > -#define QEMU_NORETURN __attribute__ ((__noreturn__))
> > > > -#ifdef CONFIG_GCC_ATTRIBUTE_WARN_UNUSED_RESULT
> > > > -#define QEMU_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
> > > > -#else
> > > > -#define QEMU_WARN_UNUSED_RESULT
> > > > -#endif
> > > > -
> > > > -#define QEMU_BUILD_BUG_ON(x) typedef char __build_bug_on__##__LINE__[(x)?-1:1];
> > > >  #define TFR(expr) do { if ((expr) != -1) break; } while (errno == EINTR)
> > > >  
> > > >  typedef struct QEMUTimer QEMUTimer;
> > > > @@ -82,22 +75,6 @@ struct iovec {
> > > >  #include <sys/uio.h>
> > > >  #endif
> > > >  
> > > > -#if defined __GNUC__
> > > > -# if (__GNUC__ < 4) || \
> > > > -     defined(__GNUC_MINOR__) && (__GNUC__ == 4) && (__GNUC_MINOR__ < 4)
> > > > -   /* gcc versions before 4.4.x don't support gnu_printf, so use printf. */
> > > > -#  define GCC_ATTR __attribute__((__unused__, format(printf, 1, 2)))
> > > > -#  define GCC_FMT_ATTR(n, m) __attribute__((format(printf, n, m)))
> > > > -# else
> > > > -   /* Use gnu_printf when supported (qemu uses standard format strings). */
> > > > -#  define GCC_ATTR __attribute__((__unused__, format(gnu_printf, 1, 2)))
> > > > -#  define GCC_FMT_ATTR(n, m) __attribute__((format(gnu_printf, n, m)))
> > > > -# endif
> > > > -#else
> > > > -#define GCC_ATTR /**/
> > > > -#define GCC_FMT_ATTR(n, m)
> > > > -#endif
> > > > -
> > > >  typedef int (*fprintf_function)(FILE *f, const char *fmt, ...)
> > > >      GCC_FMT_ATTR(2, 3);
> > > >  
> > > > 
> > > 
> > 
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2011-07-12 20:53 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-12 19:00 [Qemu-devel] [PATCH v2 0/2]: Fix build issue with error.h Luiz Capitulino
2011-07-12 19:00 ` [Qemu-devel] [PATCH 1/2] Introduce compiler.h header file Luiz Capitulino
2011-07-12 20:31   ` malc
2011-07-12 20:34     ` Luiz Capitulino
2011-07-12 20:43       ` malc
2011-07-12 20:52         ` Luiz Capitulino
2011-07-12 19:00 ` [Qemu-devel] [PATCH 2/2] Error: Fix build when qemu-common.h is not included Luiz Capitulino

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.