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

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.

v4
 o Fix use of reserved double underscores
 o Add license text as asked by Malc

v3
 o Drop license text from compiler.h

v2
 o Move compiler related macros from qemu-common.h to compiler.h

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

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

* [Qemu-devel] [PATCH 1/2] Introduce compiler.h header file
  2011-07-14 21:28 [Qemu-devel] [PATCH v4 0/3]: Fix build issue with error.h saga Luiz Capitulino
@ 2011-07-14 21:28 ` Luiz Capitulino
  2011-07-14 21:28 ` [Qemu-devel] [PATCH 2/2] Error: Fix build when qemu-common.h is not included Luiz Capitulino
  1 sibling, 0 replies; 5+ messages in thread
From: Luiz Capitulino @ 2011-07-14 21:28 UTC (permalink / raw)
  To: qemu-devel; +Cc: mdroth, peter.maydell

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.

Please, also note that the QEMU_BUILD_BUG_ON() macro is being fixed to
not use double underscores as a prefix and the license text was added
by Vassili Karpov (malc), who is one of the authors of the new file.

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

diff --git a/compiler.h b/compiler.h
new file mode 100644
index 0000000..9af5dc6
--- /dev/null
+++ b/compiler.h
@@ -0,0 +1,34 @@
+/* public domain */
+
+#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 qemu_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 c2b79bd..ba55719 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.178.g55272

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

* [Qemu-devel] [PATCH 2/2] Error: Fix build when qemu-common.h is not included
  2011-07-14 21:28 [Qemu-devel] [PATCH v4 0/3]: Fix build issue with error.h saga Luiz Capitulino
  2011-07-14 21:28 ` [Qemu-devel] [PATCH 1/2] Introduce compiler.h header file Luiz Capitulino
@ 2011-07-14 21:28 ` Luiz Capitulino
  1 sibling, 0 replies; 5+ messages in thread
From: Luiz Capitulino @ 2011-07-14 21:28 UTC (permalink / raw)
  To: qemu-devel; +Cc: mdroth, peter.maydell

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.178.g55272

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

* [Qemu-devel] [PATCH 2/2] Error: Fix build when qemu-common.h is not included
  2011-07-13 14:23 [Qemu-devel] [PATCH v2 0/3]: Fix build issue with error.h Luiz Capitulino
@ 2011-07-13 14:23 ` Luiz Capitulino
  0 siblings, 0 replies; 5+ messages in thread
From: Luiz Capitulino @ 2011-07-13 14:23 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] 5+ 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 ` Luiz Capitulino
  0 siblings, 0 replies; 5+ 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] 5+ messages in thread

end of thread, other threads:[~2011-07-14 21:28 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-14 21:28 [Qemu-devel] [PATCH v4 0/3]: Fix build issue with error.h saga Luiz Capitulino
2011-07-14 21:28 ` [Qemu-devel] [PATCH 1/2] Introduce compiler.h header file Luiz Capitulino
2011-07-14 21:28 ` [Qemu-devel] [PATCH 2/2] Error: Fix build when qemu-common.h is not included Luiz Capitulino
  -- strict thread matches above, loose matches on Subject: below --
2011-07-13 14:23 [Qemu-devel] [PATCH v2 0/3]: Fix build issue with error.h Luiz Capitulino
2011-07-13 14:23 ` [Qemu-devel] [PATCH 2/2] Error: Fix build when qemu-common.h is not included Luiz Capitulino
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 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.