qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 1/2] Add support for gcc format attribute gnu_pr


From: Stefan Weil
Subject: Re: [Qemu-devel] [PATCH 1/2] Add support for gcc format attribute gnu_printf
Date: Mon, 20 Sep 2010 23:03:49 +0200
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.12) Gecko/20100913 Iceowl/1.0b1 Icedove/3.0.7

Am 20.09.2010 21:18, schrieb Blue Swirl:
On Mon, Sep 13, 2010 at 8:02 PM, Stefan Weil<address@hidden>  wrote:
Since version 4.4.x, gcc supports additional format attributes.
    __attribute__ ((format (gnu_printf, 1, 2)))
should be used instead of
    __attribute__ ((format (printf, 1, 2))
because QEMU always uses standard format strings (even with mingw32).

For older compilers, we simply define gnu_printf = printf,
so they work with the new format attribute, too.

Signed-off-by: Stefan Weil<address@hidden>
---
  configure |   11 +++++++++++
  1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/configure b/configure
index 4061cb7..1300879 100755
--- a/configure
+++ b/configure
@@ -148,6 +148,17 @@ for flag in $gcc_flags; do
     fi
  done

+# Check gnu_printf (supported by gcc>= 4.4.x).
+cat>  $TMPC<<  EOF
+static void test(const char *format, ...)
+    __attribute__ ((format (gnu_printf, 1, 2)));
+static void test(const char *format, ...) {}
+int main(void) { test("\n"); return 0; }
+EOF
+if ! compile_prog "-Werror" ""; then
+    QEMU_CFLAGS="-Dgnu_printf=printf $QEMU_CFLAGS"
This could cause problems, for example if system headers declared a
function called gnu_printf.

I'd introduce CONFIG_GCC_FMT_ATTR_GNU_PRINTF and adjust GCC_FMT_ATTR
definition based on that.


Thanks for your review. I'll send a new patch which goes
into the direction which you suggested.

Instead of defining a new macro CONFIG_GCC_FMT_ATTR_GNU_PRINTF,
my new patch checks the gcc version (gnu_printf was introduced
with gcc 4.4). Like this, no changes to file configure are needed.

Regards
Stefan




reply via email to

[Prev in Thread] Current Thread [Next in Thread]