Message ID | 1310567013-11058-2-git-send-email-lcapitulino@redhat.com |
---|---|
State | New |
Headers | show |
On Wed, 13 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 | 31 +++++++++++++++++++++++++++++++ > qemu-common.h | 25 +------------------------ > 2 files changed, 32 insertions(+), 24 deletions(-) > create mode 100644 compiler.h > > diff --git a/compiler.h b/compiler.h > new file mode 100644 > index 0000000..2dfc2c6 > --- /dev/null > +++ b/compiler.h > @@ -0,0 +1,31 @@ > +#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]; Identifiers starting with double underscore are reserved for all uses, so, please, use something else. > + > +#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); > >
On 13 July 2011 15:23, Luiz Capitulino <lcapitulino@redhat.com> wrote: > diff --git a/compiler.h b/compiler.h > new file mode 100644 > index 0000000..2dfc2c6 > --- /dev/null > +++ b/compiler.h > @@ -0,0 +1,31 @@ > +#ifndef COMPILER_H > +#define COMPILER_H If we don't have a rule that says that all new source files should have a standard-ish format copyright notice and license statement, I think we ought to. (This came up last in the discussion over importing Linux kernel headers into the qemu tree. Having every file's status be clear and clearly stated makes life easier for people who have to check these things before redistributing...) -- PMM
On Wed, 13 Jul 2011 16:04:52 +0100 Peter Maydell <peter.maydell@linaro.org> wrote: > On 13 July 2011 15:23, Luiz Capitulino <lcapitulino@redhat.com> wrote: > > diff --git a/compiler.h b/compiler.h > > new file mode 100644 > > index 0000000..2dfc2c6 > > --- /dev/null > > +++ b/compiler.h > > @@ -0,0 +1,31 @@ > > +#ifndef COMPILER_H > > +#define COMPILER_H > > If we don't have a rule that says that all new source files should have > a standard-ish format copyright notice and license statement, I think > we ought to. Make sense, but this content comes from qemu-common.h which doesn't have that information. I can't choose for the authors. Malc is one of them, and he asked me to remove the license text altogether (which makes this public domain?) > > (This came up last in the discussion over importing Linux kernel > headers into the qemu tree. Having every file's status be clear and > clearly stated makes life easier for people who have to check these > things before redistributing...) > > -- PMM >
On Wed, 13 Jul 2011, Luiz Capitulino wrote: > On Wed, 13 Jul 2011 18:37:31 +0400 (MSD) > malc <av1474@comtv.ru> wrote: > > > On Wed, 13 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 | 31 +++++++++++++++++++++++++++++++ > > > qemu-common.h | 25 +------------------------ > > > 2 files changed, 32 insertions(+), 24 deletions(-) > > > create mode 100644 compiler.h > > > > > > diff --git a/compiler.h b/compiler.h > > > new file mode 100644 > > > index 0000000..2dfc2c6 > > > --- /dev/null > > > +++ b/compiler.h > > > @@ -0,0 +1,31 @@ > > > +#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]; > > > > Identifiers starting with double underscore are reserved for all uses, > > so, please, use something else. > > I'll fix it as an additional patch: OK. > > diff --git a/compiler.h b/compiler.h > index 2dfc2c6..54720bf 100644 > --- a/compiler.h > +++ b/compiler.h > @@ -10,7 +10,8 @@ > #define QEMU_WARN_UNUSED_RESULT > #endif > > -#define QEMU_BUILD_BUG_ON(x) typedef char __build_bug_on__##__LINE__[(x)?-1:1]; > +#define QEMU_BUILD_BUG_ON(x) \ > + typedef char qemu_build_bug_on__##__LINE__[(x)?-1:1]; > > #if defined __GNUC__ > # if (__GNUC__ < 4) || \ >
Am 13.07.2011 18:27, schrieb Luiz Capitulino: > On Wed, 13 Jul 2011 16:04:52 +0100 > Peter Maydell <peter.maydell@linaro.org> wrote: > >> On 13 July 2011 15:23, Luiz Capitulino <lcapitulino@redhat.com> wrote: >>> diff --git a/compiler.h b/compiler.h >>> new file mode 100644 >>> index 0000000..2dfc2c6 >>> --- /dev/null >>> +++ b/compiler.h >>> @@ -0,0 +1,31 @@ >>> +#ifndef COMPILER_H >>> +#define COMPILER_H >> >> If we don't have a rule that says that all new source files should have >> a standard-ish format copyright notice and license statement, I think >> we ought to. > > Make sense, but this content comes from qemu-common.h which doesn't > have that information. I can't choose for the authors. Malc is one of > them, > and he asked me to remove the license text altogether (which makes > this public > domain?) Malc's code was from audio/audio_int.h, so maybe the license text can be copied from that file. I thought that no individual license text implied the default license which is described in file LICENSE: "QEMU as a whole is released under the GNU General Public License" Regards, Stefan
On 13 July 2011 17:27, Luiz Capitulino <lcapitulino@redhat.com> wrote: > he asked me to remove the license text altogether (which makes this > public domain?) Saying nothing is definitely not putting something into the public domain, it's just leaving the recipient to guess (and for safety you generally have to assume the worst, ie not distributable.) In particular at least two people in this thread have assumed it means two definitely different things. We should just state clearly what licence we are providing the file under, and not leave people in doubt. [If we ourselves are in doubt we shouldn't ship it at all :-)] -- PMM
On Wed, 13 Jul 2011 22:39:07 +0200 Stefan Weil <weil@mail.berlios.de> wrote: > Am 13.07.2011 18:27, schrieb Luiz Capitulino: > > On Wed, 13 Jul 2011 16:04:52 +0100 > > Peter Maydell <peter.maydell@linaro.org> wrote: > > > >> On 13 July 2011 15:23, Luiz Capitulino <lcapitulino@redhat.com> wrote: > >>> diff --git a/compiler.h b/compiler.h > >>> new file mode 100644 > >>> index 0000000..2dfc2c6 > >>> --- /dev/null > >>> +++ b/compiler.h > >>> @@ -0,0 +1,31 @@ > >>> +#ifndef COMPILER_H > >>> +#define COMPILER_H > >> > >> If we don't have a rule that says that all new source files should have > >> a standard-ish format copyright notice and license statement, I think > >> we ought to. > > > > Make sense, but this content comes from qemu-common.h which doesn't > > have that information. I can't choose for the authors. Malc is one of > > them, > > and he asked me to remove the license text altogether (which makes > > this public > > domain?) > > Malc's code was from audio/audio_int.h, so maybe the license text > can be copied from that file. Malc, are you ok with that?
On Thu, 14 Jul 2011, Luiz Capitulino wrote: > On Wed, 13 Jul 2011 22:39:07 +0200 > Stefan Weil <weil@mail.berlios.de> wrote: > > > Am 13.07.2011 18:27, schrieb Luiz Capitulino: > > > On Wed, 13 Jul 2011 16:04:52 +0100 > > > Peter Maydell <peter.maydell@linaro.org> wrote: > > > > > >> On 13 July 2011 15:23, Luiz Capitulino <lcapitulino@redhat.com> wrote: > > >>> diff --git a/compiler.h b/compiler.h > > >>> new file mode 100644 > > >>> index 0000000..2dfc2c6 > > >>> --- /dev/null > > >>> +++ b/compiler.h > > >>> @@ -0,0 +1,31 @@ > > >>> +#ifndef COMPILER_H > > >>> +#define COMPILER_H > > >> > > >> If we don't have a rule that says that all new source files should have > > >> a standard-ish format copyright notice and license statement, I think > > >> we ought to. > > > > > > Make sense, but this content comes from qemu-common.h which doesn't > > > have that information. I can't choose for the authors. Malc is one of > > > them, > > > and he asked me to remove the license text altogether (which makes > > > this public > > > domain?) > > > > Malc's code was from audio/audio_int.h, so maybe the license text > > can be copied from that file. > > Malc, are you ok with that? > I would be okay with just making it public domain.
On Thu, 14 Jul 2011 18:15:57 +0400 (MSD) malc <av1474@comtv.ru> wrote: > On Thu, 14 Jul 2011, Luiz Capitulino wrote: > > > On Wed, 13 Jul 2011 22:39:07 +0200 > > Stefan Weil <weil@mail.berlios.de> wrote: > > > > > Am 13.07.2011 18:27, schrieb Luiz Capitulino: > > > > On Wed, 13 Jul 2011 16:04:52 +0100 > > > > Peter Maydell <peter.maydell@linaro.org> wrote: > > > > > > > >> On 13 July 2011 15:23, Luiz Capitulino <lcapitulino@redhat.com> wrote: > > > >>> diff --git a/compiler.h b/compiler.h > > > >>> new file mode 100644 > > > >>> index 0000000..2dfc2c6 > > > >>> --- /dev/null > > > >>> +++ b/compiler.h > > > >>> @@ -0,0 +1,31 @@ > > > >>> +#ifndef COMPILER_H > > > >>> +#define COMPILER_H > > > >> > > > >> If we don't have a rule that says that all new source files should have > > > >> a standard-ish format copyright notice and license statement, I think > > > >> we ought to. > > > > > > > > Make sense, but this content comes from qemu-common.h which doesn't > > > > have that information. I can't choose for the authors. Malc is one of > > > > them, > > > > and he asked me to remove the license text altogether (which makes > > > > this public > > > > domain?) > > > > > > Malc's code was from audio/audio_int.h, so maybe the license text > > > can be copied from that file. > > > > Malc, are you ok with that? > > > > I would be okay with just making it public domain. May you suggest a text to be put in the file?
On Thu, 14 Jul 2011, Luiz Capitulino wrote: > On Thu, 14 Jul 2011 18:15:57 +0400 (MSD) > malc <av1474@comtv.ru> wrote: > > > On Thu, 14 Jul 2011, Luiz Capitulino wrote: > > > > > On Wed, 13 Jul 2011 22:39:07 +0200 > > > Stefan Weil <weil@mail.berlios.de> wrote: > > > > > > > Am 13.07.2011 18:27, schrieb Luiz Capitulino: > > > > > On Wed, 13 Jul 2011 16:04:52 +0100 > > > > > Peter Maydell <peter.maydell@linaro.org> wrote: > > > > > > > > > >> On 13 July 2011 15:23, Luiz Capitulino <lcapitulino@redhat.com> wrote: > > > > >>> diff --git a/compiler.h b/compiler.h > > > > >>> new file mode 100644 > > > > >>> index 0000000..2dfc2c6 > > > > >>> --- /dev/null > > > > >>> +++ b/compiler.h > > > > >>> @@ -0,0 +1,31 @@ > > > > >>> +#ifndef COMPILER_H > > > > >>> +#define COMPILER_H > > > > >> > > > > >> If we don't have a rule that says that all new source files should have > > > > >> a standard-ish format copyright notice and license statement, I think > > > > >> we ought to. > > > > > > > > > > Make sense, but this content comes from qemu-common.h which doesn't > > > > > have that information. I can't choose for the authors. Malc is one of > > > > > them, > > > > > and he asked me to remove the license text altogether (which makes > > > > > this public > > > > > domain?) > > > > > > > > Malc's code was from audio/audio_int.h, so maybe the license text > > > > can be copied from that file. > > > > > > Malc, are you ok with that? > > > > > > > I would be okay with just making it public domain. > > May you suggest a text to be put in the file? > /* public domain */
diff --git a/compiler.h b/compiler.h new file mode 100644 index 0000000..2dfc2c6 --- /dev/null +++ b/compiler.h @@ -0,0 +1,31 @@ +#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);