diff options
author | Stefan Weil <weil@mail.berlios.de> | 2011-09-16 22:03:07 +0200 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2011-09-23 11:51:05 -0500 |
commit | f8b72754c21789293eb655641459ab43ebd69c66 (patch) | |
tree | 2eba7c233b61c71308055adc3b56f643ac543755 /compiler.h | |
parent | ffe3ce1173e71ca299d08f6542839cc31ea3e3cf (diff) | |
download | qemu-f8b72754c21789293eb655641459ab43ebd69c66.zip qemu-f8b72754c21789293eb655641459ab43ebd69c66.tar.gz qemu-f8b72754c21789293eb655641459ab43ebd69c66.tar.bz2 |
Move macro QEMU_GNUC_PREREQ to compiler.h
The macro is compiler specific and does not depend on the operating system.
Move macro QEMU_GNUC_PREREQ from osdep.h to compiler.h
and use it to simplify existing code.
host-utils.h uses this macro, so it now needs compiler.h
instead of osdep.h.
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'compiler.h')
-rw-r--r-- | compiler.h | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -5,7 +5,19 @@ #include "config-host.h" +/*---------------------------------------------------------------------------- +| The macro QEMU_GNUC_PREREQ tests for minimum version of the GNU C compiler. +| The code is a copy of SOFTFLOAT_GNUC_PREREQ, see softfloat-macros.h. +*----------------------------------------------------------------------------*/ +#if defined(__GNUC__) && defined(__GNUC_MINOR__) +# define QEMU_GNUC_PREREQ(maj, min) \ + ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) +#else +# define QEMU_GNUC_PREREQ(maj, min) 0 +#endif + #define QEMU_NORETURN __attribute__ ((__noreturn__)) + #ifdef CONFIG_GCC_ATTRIBUTE_WARN_UNUSED_RESULT #define QEMU_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) #else @@ -22,8 +34,7 @@ typedef char qemu_build_bug_on__##__LINE__[(x)?-1:1]; #if defined __GNUC__ -# if (__GNUC__ < 4) || \ - defined(__GNUC_MINOR__) && (__GNUC__ == 4) && (__GNUC_MINOR__ < 4) +# if !QEMU_GNUC_PREREQ(4, 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))) |