* [Qemu-devel] [PATCH] mips_fulong2e: Detect format errors for function prom_set @ 2010-09-11 6:46 Stefan Weil 2010-09-11 6:46 ` [Qemu-devel] [PATCH] mips_malta: " Stefan Weil 2010-09-20 19:03 ` [Qemu-devel] [PATCH] mips_fulong2e: " Blue Swirl 0 siblings, 2 replies; 19+ messages in thread From: Stefan Weil @ 2010-09-11 6:46 UTC (permalink / raw) To: QEMU Developers; +Cc: Aurelien Jarno Add the necessary gcc attribute and fix the detected errors. Cc: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Stefan Weil <weil@mail.berlios.de> --- hw/mips_fulong2e.c | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-) diff --git a/hw/mips_fulong2e.c b/hw/mips_fulong2e.c index cbe7156..2ef5070 100644 --- a/hw/mips_fulong2e.c +++ b/hw/mips_fulong2e.c @@ -77,6 +77,8 @@ static struct _loaderparams { } loaderparams; static void prom_set(uint32_t* prom_buf, int index, const char *string, ...) + __attribute__ ((format (gnu_printf, 3, 4))); +static void prom_set(uint32_t* prom_buf, int index, const char *string, ...) { va_list ap; int32_t table_addr; @@ -141,13 +143,13 @@ static int64_t load_kernel (CPUState *env) prom_size = ENVP_NB_ENTRIES * (sizeof(int32_t) + ENVP_ENTRY_SIZE); prom_buf = qemu_malloc(prom_size); - prom_set(prom_buf, index++, loaderparams.kernel_filename); + prom_set(prom_buf, index++, "%s", loaderparams.kernel_filename); if (initrd_size > 0) { - prom_set(prom_buf, index++, "rd_start=0x" PRIx64 " rd_size=%li %s", + prom_set(prom_buf, index++, "rd_start=0x%" PRIx64 " rd_size=%li %s", cpu_mips_phys_to_kseg0(NULL, initrd_offset), initrd_size, loaderparams.kernel_cmdline); } else { - prom_set(prom_buf, index++, loaderparams.kernel_cmdline); + prom_set(prom_buf, index++, "%s", loaderparams.kernel_cmdline); } /* Setup minimum environment variables */ -- 1.7.0.4 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [Qemu-devel] [PATCH] mips_malta: Detect format errors for function prom_set 2010-09-11 6:46 [Qemu-devel] [PATCH] mips_fulong2e: Detect format errors for function prom_set Stefan Weil @ 2010-09-11 6:46 ` Stefan Weil 2010-09-13 20:02 ` [Qemu-devel] [PATCH 1/2] Add support for gcc format attribute gnu_printf Stefan Weil ` (2 more replies) 2010-09-20 19:03 ` [Qemu-devel] [PATCH] mips_fulong2e: " Blue Swirl 1 sibling, 3 replies; 19+ messages in thread From: Stefan Weil @ 2010-09-11 6:46 UTC (permalink / raw) To: QEMU Developers; +Cc: Aurelien Jarno Add the necessary gcc attribute and fix the detected errors. Cc: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Stefan Weil <weil@mail.berlios.de> --- hw/mips_malta.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/hw/mips_malta.c b/hw/mips_malta.c index a458c97..deee273 100644 --- a/hw/mips_malta.c +++ b/hw/mips_malta.c @@ -684,6 +684,8 @@ static void write_bootloader (CPUState *env, uint8_t *base, } static void prom_set(uint32_t* prom_buf, int index, const char *string, ...) + __attribute__ ((format (gnu_printf, 3, 4))); +static void prom_set(uint32_t* prom_buf, int index, const char *string, ...) { va_list ap; int32_t table_addr; @@ -750,13 +752,13 @@ static int64_t load_kernel(int big_endian) prom_size = ENVP_NB_ENTRIES * (sizeof(int32_t) + ENVP_ENTRY_SIZE); prom_buf = qemu_malloc(prom_size); - prom_set(prom_buf, prom_index++, loaderparams.kernel_filename); + prom_set(prom_buf, prom_index++, "%s", loaderparams.kernel_filename); if (initrd_size > 0) { prom_set(prom_buf, prom_index++, "rd_start=0x%" PRIx64 " rd_size=%li %s", cpu_mips_phys_to_kseg0(NULL, initrd_offset), initrd_size, loaderparams.kernel_cmdline); } else { - prom_set(prom_buf, prom_index++, loaderparams.kernel_cmdline); + prom_set(prom_buf, prom_index++, "%s", loaderparams.kernel_cmdline); } prom_set(prom_buf, prom_index++, "memsize"); -- 1.7.0.4 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [Qemu-devel] [PATCH 1/2] Add support for gcc format attribute gnu_printf 2010-09-11 6:46 ` [Qemu-devel] [PATCH] mips_malta: " Stefan Weil @ 2010-09-13 20:02 ` Stefan Weil 2010-09-20 19:18 ` Blue Swirl 2010-09-13 20:02 ` [Qemu-devel] [PATCH 2/2] Use new gcc format attribute gnu_printf Stefan Weil 2010-09-20 19:04 ` [Qemu-devel] [PATCH] mips_malta: Detect format errors for function prom_set Blue Swirl 2 siblings, 1 reply; 19+ messages in thread From: Stefan Weil @ 2010-09-13 20:02 UTC (permalink / raw) To: QEMU Developers 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 <weil@mail.berlios.de> --- 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" +fi + # check that the C compiler works. cat > $TMPC <<EOF int main(void) {} -- 1.7.1 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] Add support for gcc format attribute gnu_printf 2010-09-13 20:02 ` [Qemu-devel] [PATCH 1/2] Add support for gcc format attribute gnu_printf Stefan Weil @ 2010-09-20 19:18 ` Blue Swirl 2010-09-20 21:03 ` Stefan Weil 2010-09-20 21:05 ` [Qemu-devel] [PATCH] Move macros GCC_ATTR and GCC_FMT_ATTR to common header file Stefan Weil 0 siblings, 2 replies; 19+ messages in thread From: Blue Swirl @ 2010-09-20 19:18 UTC (permalink / raw) To: Stefan Weil; +Cc: QEMU Developers On Mon, Sep 13, 2010 at 8:02 PM, Stefan Weil <weil@mail.berlios.de> 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 <weil@mail.berlios.de> > --- > 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. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] Add support for gcc format attribute gnu_printf 2010-09-20 19:18 ` Blue Swirl @ 2010-09-20 21:03 ` Stefan Weil 2010-09-20 21:05 ` [Qemu-devel] [PATCH] Move macros GCC_ATTR and GCC_FMT_ATTR to common header file Stefan Weil 1 sibling, 0 replies; 19+ messages in thread From: Stefan Weil @ 2010-09-20 21:03 UTC (permalink / raw) To: Blue Swirl; +Cc: QEMU Developers Am 20.09.2010 21:18, schrieb Blue Swirl: > On Mon, Sep 13, 2010 at 8:02 PM, Stefan Weil<weil@mail.berlios.de> 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<weil@mail.berlios.de> >> --- >> 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 ^ permalink raw reply [flat|nested] 19+ messages in thread
* [Qemu-devel] [PATCH] Move macros GCC_ATTR and GCC_FMT_ATTR to common header file 2010-09-20 19:18 ` Blue Swirl 2010-09-20 21:03 ` Stefan Weil @ 2010-09-20 21:05 ` Stefan Weil 2010-09-21 17:46 ` [Qemu-devel] " Stefan Weil 1 sibling, 1 reply; 19+ messages in thread From: Stefan Weil @ 2010-09-20 21:05 UTC (permalink / raw) To: QEMU Developers; +Cc: Blue Swirl By moving the definition of GCC_ATTR and GCC_FMT_ATTR from audio_int.h to qemu-common.h these macros are now generally available for further patches which add the gcc format attribute. Newer gcc versions support format gnu_printf which is better suited for use in QEMU than format printf (QEMU always uses standard format strings (even with mingw32)). Cc: Blue Swirl <blauwirbel@gmail.com> Signed-off-by: Stefan Weil <weil@mail.berlios.de> --- audio/audio_int.h | 8 -------- qemu-common.h | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/audio/audio_int.h b/audio/audio_int.h index f6a77ad..d8560b6 100644 --- a/audio/audio_int.h +++ b/audio/audio_int.h @@ -236,14 +236,6 @@ static inline int audio_ring_dist (int dst, int src, int len) return (dst >= src) ? (dst - src) : (len - src + dst); } -#if defined __GNUC__ -#define GCC_ATTR __attribute__ ((__unused__, format (gnu_printf, 1, 2))) -#define GCC_FMT_ATTR(n, m) __attribute__ ((format (gnu_printf, n, m))) -#else -#define GCC_ATTR /**/ -#define GCC_FMT_ATTR(n, m) -#endif - static void GCC_ATTR dolog (const char *fmt, ...) { va_list ap; diff --git a/qemu-common.h b/qemu-common.h index 956b545..8a2872a 100644 --- a/qemu-common.h +++ b/qemu-common.h @@ -70,6 +70,22 @@ 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 + #ifdef _WIN32 #define fsync _commit #define lseek _lseeki64 -- 1.7.1 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [Qemu-devel] Re: [PATCH] Move macros GCC_ATTR and GCC_FMT_ATTR to common header file 2010-09-20 21:05 ` [Qemu-devel] [PATCH] Move macros GCC_ATTR and GCC_FMT_ATTR to common header file Stefan Weil @ 2010-09-21 17:46 ` Stefan Weil 2010-09-21 17:48 ` [Qemu-devel] " Stefan Weil 0 siblings, 1 reply; 19+ messages in thread From: Stefan Weil @ 2010-09-21 17:46 UTC (permalink / raw) To: Blue Swirl; +Cc: QEMU Developers Please ignore this patch. It's wrong (= instead of ==). I'll send a fixed version. Sorry, Stefan Am 20.09.2010 23:05, schrieb Stefan Weil: > By moving the definition of GCC_ATTR and GCC_FMT_ATTR > from audio_int.h to qemu-common.h these macros are > now generally available for further patches which add > the gcc format attribute. > > Newer gcc versions support format gnu_printf which is > better suited for use in QEMU than format printf > (QEMU always uses standard format strings (even with mingw32)). > > Cc: Blue Swirl<blauwirbel@gmail.com> > Signed-off-by: Stefan Weil<weil@mail.berlios.de> > --- > audio/audio_int.h | 8 -------- > qemu-common.h | 16 ++++++++++++++++ > 2 files changed, 16 insertions(+), 8 deletions(-) > > diff --git a/audio/audio_int.h b/audio/audio_int.h > index f6a77ad..d8560b6 100644 > --- a/audio/audio_int.h > +++ b/audio/audio_int.h > @@ -236,14 +236,6 @@ static inline int audio_ring_dist (int dst, int src, int len) > return (dst>= src) ? (dst - src) : (len - src + dst); > } > > -#if defined __GNUC__ > -#define GCC_ATTR __attribute__ ((__unused__, format (gnu_printf, 1, 2))) > -#define GCC_FMT_ATTR(n, m) __attribute__ ((format (gnu_printf, n, m))) > -#else > -#define GCC_ATTR /**/ > -#define GCC_FMT_ATTR(n, m) > -#endif > - > static void GCC_ATTR dolog (const char *fmt, ...) > { > va_list ap; > diff --git a/qemu-common.h b/qemu-common.h > index 956b545..8a2872a 100644 > --- a/qemu-common.h > +++ b/qemu-common.h > @@ -70,6 +70,22 @@ 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 > + > #ifdef _WIN32 > #define fsync _commit > #define lseek _lseeki64 > ^ permalink raw reply [flat|nested] 19+ messages in thread
* [Qemu-devel] [PATCH] Move macros GCC_ATTR and GCC_FMT_ATTR to common header file 2010-09-21 17:46 ` [Qemu-devel] " Stefan Weil @ 2010-09-21 17:48 ` Stefan Weil 2010-09-21 18:17 ` [Qemu-devel] " Blue Swirl 0 siblings, 1 reply; 19+ messages in thread From: Stefan Weil @ 2010-09-21 17:48 UTC (permalink / raw) To: QEMU Developers; +Cc: Blue Swirl By moving the definition of GCC_ATTR and GCC_FMT_ATTR from audio_int.h to qemu-common.h these macros are now generally available for further patches which add the gcc format attribute. Newer gcc versions support format gnu_printf which is better suited for use in QEMU than format printf (QEMU always uses standard format strings (even with mingw32)). V2: Use correct operator '==' (instead of '=') Cc: Blue Swirl <blauwirbel@gmail.com> Signed-off-by: Stefan Weil <weil@mail.berlios.de> --- audio/audio_int.h | 8 -------- qemu-common.h | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/audio/audio_int.h b/audio/audio_int.h index f6a77ad..d8560b6 100644 --- a/audio/audio_int.h +++ b/audio/audio_int.h @@ -236,14 +236,6 @@ static inline int audio_ring_dist (int dst, int src, int len) return (dst >= src) ? (dst - src) : (len - src + dst); } -#if defined __GNUC__ -#define GCC_ATTR __attribute__ ((__unused__, format (gnu_printf, 1, 2))) -#define GCC_FMT_ATTR(n, m) __attribute__ ((format (gnu_printf, n, m))) -#else -#define GCC_ATTR /**/ -#define GCC_FMT_ATTR(n, m) -#endif - static void GCC_ATTR dolog (const char *fmt, ...) { va_list ap; diff --git a/qemu-common.h b/qemu-common.h index 956b545..e97a96e 100644 --- a/qemu-common.h +++ b/qemu-common.h @@ -70,6 +70,22 @@ 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 + #ifdef _WIN32 #define fsync _commit #define lseek _lseeki64 -- 1.7.1 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [Qemu-devel] Re: [PATCH] Move macros GCC_ATTR and GCC_FMT_ATTR to common header file 2010-09-21 17:48 ` [Qemu-devel] " Stefan Weil @ 2010-09-21 18:17 ` Blue Swirl 2010-09-21 20:27 ` [Qemu-devel] " Stefan Weil 0 siblings, 1 reply; 19+ messages in thread From: Blue Swirl @ 2010-09-21 18:17 UTC (permalink / raw) To: Stefan Weil; +Cc: QEMU Developers On Tue, Sep 21, 2010 at 5:48 PM, Stefan Weil <weil@mail.berlios.de> wrote: > By moving the definition of GCC_ATTR and GCC_FMT_ATTR > from audio_int.h to qemu-common.h these macros are > now generally available for further patches which add > the gcc format attribute. > > Newer gcc versions support format gnu_printf which is > better suited for use in QEMU than format printf > (QEMU always uses standard format strings (even with mingw32)). > > V2: Use correct operator '==' (instead of '=') > > Cc: Blue Swirl <blauwirbel@gmail.com> > Signed-off-by: Stefan Weil <weil@mail.berlios.de> > --- > audio/audio_int.h | 8 -------- > qemu-common.h | 16 ++++++++++++++++ > 2 files changed, 16 insertions(+), 8 deletions(-) > > diff --git a/audio/audio_int.h b/audio/audio_int.h > index f6a77ad..d8560b6 100644 > --- a/audio/audio_int.h > +++ b/audio/audio_int.h > @@ -236,14 +236,6 @@ static inline int audio_ring_dist (int dst, int src, int len) > return (dst >= src) ? (dst - src) : (len - src + dst); > } > > -#if defined __GNUC__ > -#define GCC_ATTR __attribute__ ((__unused__, format (gnu_printf, 1, 2))) > -#define GCC_FMT_ATTR(n, m) __attribute__ ((format (gnu_printf, n, m))) The patch doesn't apply, the above lines do not match HEAD. ^ permalink raw reply [flat|nested] 19+ messages in thread
* [Qemu-devel] [PATCH] Move macros GCC_ATTR and GCC_FMT_ATTR to common header file 2010-09-21 18:17 ` [Qemu-devel] " Blue Swirl @ 2010-09-21 20:27 ` Stefan Weil 2010-09-22 20:30 ` [Qemu-devel] " Blue Swirl 0 siblings, 1 reply; 19+ messages in thread From: Stefan Weil @ 2010-09-21 20:27 UTC (permalink / raw) To: QEMU Developers; +Cc: Blue Swirl By moving the definition of GCC_ATTR and GCC_FMT_ATTR from audio_int.h to qemu-common.h these macros are now generally available for further patches which add the gcc format attribute. Newer gcc versions support format gnu_printf which is better suited for use in QEMU than format printf (QEMU always uses standard format strings (even with mingw32)). V2: Use correct operator '==' (instead of '=') Cc: Blue Swirl <blauwirbel@gmail.com> Signed-off-by: Stefan Weil <weil@mail.berlios.de> --- audio/audio_int.h | 8 -------- qemu-common.h | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/audio/audio_int.h b/audio/audio_int.h index 06e313f..d8560b6 100644 --- a/audio/audio_int.h +++ b/audio/audio_int.h @@ -236,14 +236,6 @@ static inline int audio_ring_dist (int dst, int src, int len) return (dst >= src) ? (dst - src) : (len - src + dst); } -#if defined __GNUC__ -#define GCC_ATTR __attribute__ ((__unused__, __format__ (__printf__, 1, 2))) -#define GCC_FMT_ATTR(n, m) __attribute__ ((__format__ (__printf__, n, m))) -#else -#define GCC_ATTR /**/ -#define GCC_FMT_ATTR(n, m) -#endif - static void GCC_ATTR dolog (const char *fmt, ...) { va_list ap; diff --git a/qemu-common.h b/qemu-common.h index dfd3dc0..96be1d4 100644 --- a/qemu-common.h +++ b/qemu-common.h @@ -70,6 +70,22 @@ 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 + #ifdef _WIN32 #define fsync _commit #define lseek _lseeki64 -- 1.7.1 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [Qemu-devel] Re: [PATCH] Move macros GCC_ATTR and GCC_FMT_ATTR to common header file 2010-09-21 20:27 ` [Qemu-devel] " Stefan Weil @ 2010-09-22 20:30 ` Blue Swirl 0 siblings, 0 replies; 19+ messages in thread From: Blue Swirl @ 2010-09-22 20:30 UTC (permalink / raw) To: Stefan Weil; +Cc: QEMU Developers Thanks, applied. On Tue, Sep 21, 2010 at 8:27 PM, Stefan Weil <weil@mail.berlios.de> wrote: > By moving the definition of GCC_ATTR and GCC_FMT_ATTR > from audio_int.h to qemu-common.h these macros are > now generally available for further patches which add > the gcc format attribute. > > Newer gcc versions support format gnu_printf which is > better suited for use in QEMU than format printf > (QEMU always uses standard format strings (even with mingw32)). > > V2: Use correct operator '==' (instead of '=') > > Cc: Blue Swirl <blauwirbel@gmail.com> > Signed-off-by: Stefan Weil <weil@mail.berlios.de> > --- > audio/audio_int.h | 8 -------- > qemu-common.h | 16 ++++++++++++++++ > 2 files changed, 16 insertions(+), 8 deletions(-) > > diff --git a/audio/audio_int.h b/audio/audio_int.h > index 06e313f..d8560b6 100644 > --- a/audio/audio_int.h > +++ b/audio/audio_int.h > @@ -236,14 +236,6 @@ static inline int audio_ring_dist (int dst, int src, int len) > return (dst >= src) ? (dst - src) : (len - src + dst); > } > > -#if defined __GNUC__ > -#define GCC_ATTR __attribute__ ((__unused__, __format__ (__printf__, 1, 2))) > -#define GCC_FMT_ATTR(n, m) __attribute__ ((__format__ (__printf__, n, m))) > -#else > -#define GCC_ATTR /**/ > -#define GCC_FMT_ATTR(n, m) > -#endif > - > static void GCC_ATTR dolog (const char *fmt, ...) > { > va_list ap; > diff --git a/qemu-common.h b/qemu-common.h > index dfd3dc0..96be1d4 100644 > --- a/qemu-common.h > +++ b/qemu-common.h > @@ -70,6 +70,22 @@ 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 > + > #ifdef _WIN32 > #define fsync _commit > #define lseek _lseeki64 > -- > 1.7.1 > > ^ permalink raw reply [flat|nested] 19+ messages in thread
* [Qemu-devel] [PATCH 2/2] Use new gcc format attribute gnu_printf 2010-09-11 6:46 ` [Qemu-devel] [PATCH] mips_malta: " Stefan Weil 2010-09-13 20:02 ` [Qemu-devel] [PATCH 1/2] Add support for gcc format attribute gnu_printf Stefan Weil @ 2010-09-13 20:02 ` Stefan Weil 2010-09-20 18:53 ` Blue Swirl 2010-09-20 19:04 ` [Qemu-devel] [PATCH] mips_malta: Detect format errors for function prom_set Blue Swirl 2 siblings, 1 reply; 19+ messages in thread From: Stefan Weil @ 2010-09-13 20:02 UTC (permalink / raw) To: QEMU Developers 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). The patch replaces format attribute printf / __printf__ by gnu_printf. It also removes an #ifdef __GNUC__ (not needed as long as we compile with gcc, and for non-gcc compilers we need more changes than this). The gcc documentation uses format (not __format__), the majority in QEMU uses this shorter form, too. Therefore the patch also replaces __format__ by format. Spacing was unified (again as in the gcc documentation). Signed-off-by: Stefan Weil <weil@mail.berlios.de> --- audio/audio.h | 5 +---- audio/audio_int.h | 4 ++-- bsd-user/qemu.h | 2 +- cpu-all.h | 2 +- darwin-user/qemu.h | 2 +- hw/xen_backend.h | 2 +- linux-user/qemu.h | 2 +- monitor.h | 2 +- qemu-common.h | 2 +- qemu-error.h | 8 +++++--- qerror.h | 2 +- qjson.h | 2 +- 12 files changed, 17 insertions(+), 18 deletions(-) diff --git a/audio/audio.h b/audio/audio.h index 454ade2..4439b82 100644 --- a/audio/audio.h +++ b/audio/audio.h @@ -88,10 +88,7 @@ typedef struct QEMUAudioTimeStamp { void AUD_vlog (const char *cap, const char *fmt, va_list ap); void AUD_log (const char *cap, const char *fmt, ...) -#ifdef __GNUC__ - __attribute__ ((__format__ (__printf__, 2, 3))) -#endif - ; + __attribute__ ((format (gnu_printf, 2, 3))); void AUD_help (void); void AUD_register_card (const char *name, QEMUSoundCard *card); diff --git a/audio/audio_int.h b/audio/audio_int.h index 06e313f..f6a77ad 100644 --- a/audio/audio_int.h +++ b/audio/audio_int.h @@ -237,8 +237,8 @@ static inline int audio_ring_dist (int dst, int src, int len) } #if defined __GNUC__ -#define GCC_ATTR __attribute__ ((__unused__, __format__ (__printf__, 1, 2))) -#define GCC_FMT_ATTR(n, m) __attribute__ ((__format__ (__printf__, n, m))) +#define GCC_ATTR __attribute__ ((__unused__, format (gnu_printf, 1, 2))) +#define GCC_FMT_ATTR(n, m) __attribute__ ((format (gnu_printf, n, m))) #else #define GCC_ATTR /**/ #define GCC_FMT_ATTR(n, m) diff --git a/bsd-user/qemu.h b/bsd-user/qemu.h index 554ff8b..34407aa 100644 --- a/bsd-user/qemu.h +++ b/bsd-user/qemu.h @@ -139,7 +139,7 @@ abi_long do_netbsd_syscall(void *cpu_env, int num, abi_long arg1, abi_long do_openbsd_syscall(void *cpu_env, int num, abi_long arg1, abi_long arg2, abi_long arg3, abi_long arg4, abi_long arg5, abi_long arg6); -void gemu_log(const char *fmt, ...) __attribute__((format(printf,1,2))); +void gemu_log(const char *fmt, ...) __attribute__((format (gnu_printf, 1, 2))); extern THREAD CPUState *thread_env; void cpu_loop(CPUState *env); char *target_strerror(int err); diff --git a/cpu-all.h b/cpu-all.h index 67a3266..183bb40 100644 --- a/cpu-all.h +++ b/cpu-all.h @@ -773,7 +773,7 @@ void cpu_dump_statistics (CPUState *env, FILE *f, int flags); void QEMU_NORETURN cpu_abort(CPUState *env, const char *fmt, ...) - __attribute__ ((__format__ (__printf__, 2, 3))); + __attribute__ ((format (gnu_printf, 2, 3))); extern CPUState *first_cpu; extern CPUState *cpu_single_env; diff --git a/darwin-user/qemu.h b/darwin-user/qemu.h index 462bbda..2df2bc9 100644 --- a/darwin-user/qemu.h +++ b/darwin-user/qemu.h @@ -99,7 +99,7 @@ int do_sigaction(int sig, const struct sigaction *act, struct sigaction *oact); int do_sigaltstack(const struct sigaltstack *ss, struct sigaltstack *oss); -void gemu_log(const char *fmt, ...) __attribute__((format(printf,1,2))); +void gemu_log(const char *fmt, ...) __attribute__((format (gnu_printf, 1, 2))); void qerror(const char *fmt, ...); void write_dt(void *ptr, unsigned long addr, unsigned long limit, int flags); diff --git a/hw/xen_backend.h b/hw/xen_backend.h index 292126d..5b78182 100644 --- a/hw/xen_backend.h +++ b/hw/xen_backend.h @@ -84,7 +84,7 @@ int xen_be_bind_evtchn(struct XenDevice *xendev); void xen_be_unbind_evtchn(struct XenDevice *xendev); int xen_be_send_notify(struct XenDevice *xendev); void xen_be_printf(struct XenDevice *xendev, int msg_level, const char *fmt, ...) - __attribute__ ((format(printf, 3, 4))); + __attribute__ ((format (gnu_printf, 3, 4))); /* actual backend drivers */ extern struct XenDevOps xen_console_ops; /* xen_console.c */ diff --git a/linux-user/qemu.h b/linux-user/qemu.h index 794fe49..779d892 100644 --- a/linux-user/qemu.h +++ b/linux-user/qemu.h @@ -186,7 +186,7 @@ void syscall_init(void); abi_long do_syscall(void *cpu_env, int num, abi_long arg1, abi_long arg2, abi_long arg3, abi_long arg4, abi_long arg5, abi_long arg6); -void gemu_log(const char *fmt, ...) __attribute__((format(printf,1,2))); +void gemu_log(const char *fmt, ...) __attribute__ ((format (gnu_printf, 1, 2))); extern THREAD CPUState *thread_env; void cpu_loop(CPUState *env); char *target_strerror(int err); diff --git a/monitor.h b/monitor.h index 38b22a4..d4c3872 100644 --- a/monitor.h +++ b/monitor.h @@ -51,7 +51,7 @@ int monitor_get_fd(Monitor *mon, const char *fdname); void monitor_vprintf(Monitor *mon, const char *fmt, va_list ap); void monitor_printf(Monitor *mon, const char *fmt, ...) - __attribute__ ((__format__ (__printf__, 2, 3))); + __attribute__ ((format (gnu_printf, 2, 3))); void monitor_print_filename(Monitor *mon, const char *filename); void monitor_flush(Monitor *mon); diff --git a/qemu-common.h b/qemu-common.h index dfd3dc0..956b545 100644 --- a/qemu-common.h +++ b/qemu-common.h @@ -181,7 +181,7 @@ int qemu_pipe(int pipefd[2]); /* Error handling. */ void QEMU_NORETURN hw_error(const char *fmt, ...) - __attribute__ ((__format__ (__printf__, 1, 2))); + __attribute__ ((format (gnu_printf, 1, 2))); /* IO callbacks. */ typedef void IOReadHandler(void *opaque, const uint8_t *buf, int size); diff --git a/qemu-error.h b/qemu-error.h index a45609f..25f2bfb 100644 --- a/qemu-error.h +++ b/qemu-error.h @@ -31,11 +31,13 @@ void loc_set_cmdline(char **argv, int idx, int cnt); void loc_set_file(const char *fname, int lno); void error_vprintf(const char *fmt, va_list ap); -void error_printf(const char *fmt, ...) __attribute__ ((format(printf, 1, 2))); +void error_printf(const char *fmt, ...) + __attribute__ ((format (gnu_printf, 1, 2))); void error_printf_unless_qmp(const char *fmt, ...) - __attribute__ ((format(printf, 1, 2))); + __attribute__ ((format (gnu_printf, 1, 2))); void error_print_loc(void); void error_set_progname(const char *argv0); -void error_report(const char *fmt, ...) __attribute__ ((format(printf, 1, 2))); +void error_report(const char *fmt, ...) + __attribute__ ((format (gnu_printf, 1, 2))); #endif diff --git a/qerror.h b/qerror.h index 62802ea..fbabe89 100644 --- a/qerror.h +++ b/qerror.h @@ -39,7 +39,7 @@ QString *qerror_human(const QError *qerror); void qerror_print(QError *qerror); void qerror_report_internal(const char *file, int linenr, const char *func, const char *fmt, ...) - __attribute__ ((format(printf, 4, 5))); + __attribute__ ((format (gnu_printf, 4, 5))); #define qerror_report(fmt, ...) \ qerror_report_internal(__FILE__, __LINE__, __func__, fmt, ## __VA_ARGS__) QError *qobject_to_qerror(const QObject *obj); diff --git a/qjson.h b/qjson.h index 7afec2e..b21423a 100644 --- a/qjson.h +++ b/qjson.h @@ -20,7 +20,7 @@ QObject *qobject_from_json(const char *string); QObject *qobject_from_jsonf(const char *string, ...) - __attribute__((__format__ (__printf__, 1, 2))); + __attribute__((format (gnu_printf, 1, 2))); QObject *qobject_from_jsonv(const char *string, va_list *ap); QString *qobject_to_json(const QObject *obj); -- 1.7.1 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] Use new gcc format attribute gnu_printf 2010-09-13 20:02 ` [Qemu-devel] [PATCH 2/2] Use new gcc format attribute gnu_printf Stefan Weil @ 2010-09-20 18:53 ` Blue Swirl 0 siblings, 0 replies; 19+ messages in thread From: Blue Swirl @ 2010-09-20 18:53 UTC (permalink / raw) To: Stefan Weil; +Cc: QEMU Developers On Mon, Sep 13, 2010 at 8:02 PM, Stefan Weil <weil@mail.berlios.de> 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). > > The patch replaces format attribute printf / __printf__ by gnu_printf. > > It also removes an #ifdef __GNUC__ (not needed as long as we compile > with gcc, and for non-gcc compilers we need more changes than this). > > The gcc documentation uses format (not __format__), the majority in > QEMU uses this shorter form, too. Therefore the patch also replaces > __format__ by format. > > Spacing was unified (again as in the gcc documentation). Please avoid GNU style spacing. This is C, not LISP. > Signed-off-by: Stefan Weil <weil@mail.berlios.de> > --- > audio/audio.h | 5 +---- > audio/audio_int.h | 4 ++-- > bsd-user/qemu.h | 2 +- > cpu-all.h | 2 +- > darwin-user/qemu.h | 2 +- > hw/xen_backend.h | 2 +- > linux-user/qemu.h | 2 +- > monitor.h | 2 +- > qemu-common.h | 2 +- > qemu-error.h | 8 +++++--- > qerror.h | 2 +- > qjson.h | 2 +- > 12 files changed, 17 insertions(+), 18 deletions(-) > > diff --git a/audio/audio.h b/audio/audio.h > index 454ade2..4439b82 100644 > --- a/audio/audio.h > +++ b/audio/audio.h > @@ -88,10 +88,7 @@ typedef struct QEMUAudioTimeStamp { > > void AUD_vlog (const char *cap, const char *fmt, va_list ap); > void AUD_log (const char *cap, const char *fmt, ...) > -#ifdef __GNUC__ > - __attribute__ ((__format__ (__printf__, 2, 3))) > -#endif > - ; > + __attribute__ ((format (gnu_printf, 2, 3))); > > void AUD_help (void); > void AUD_register_card (const char *name, QEMUSoundCard *card); > diff --git a/audio/audio_int.h b/audio/audio_int.h > index 06e313f..f6a77ad 100644 > --- a/audio/audio_int.h > +++ b/audio/audio_int.h > @@ -237,8 +237,8 @@ static inline int audio_ring_dist (int dst, int src, int len) > } > > #if defined __GNUC__ > -#define GCC_ATTR __attribute__ ((__unused__, __format__ (__printf__, 1, 2))) > -#define GCC_FMT_ATTR(n, m) __attribute__ ((__format__ (__printf__, n, m))) > +#define GCC_ATTR __attribute__ ((__unused__, format (gnu_printf, 1, 2))) > +#define GCC_FMT_ATTR(n, m) __attribute__ ((format (gnu_printf, n, m))) I'd rather move this macro to a central header and converting instead users of other syntax. The macro could be defined differently depending on whether gnu_printf is supported or not. Then we would not need any -Dgnu_printf=printf in 1/2, which can cause problems. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PATCH] mips_malta: Detect format errors for function prom_set 2010-09-11 6:46 ` [Qemu-devel] [PATCH] mips_malta: " Stefan Weil 2010-09-13 20:02 ` [Qemu-devel] [PATCH 1/2] Add support for gcc format attribute gnu_printf Stefan Weil 2010-09-13 20:02 ` [Qemu-devel] [PATCH 2/2] Use new gcc format attribute gnu_printf Stefan Weil @ 2010-09-20 19:04 ` Blue Swirl 2 siblings, 0 replies; 19+ messages in thread From: Blue Swirl @ 2010-09-20 19:04 UTC (permalink / raw) To: Stefan Weil; +Cc: QEMU Developers, Aurelien Jarno On Sat, Sep 11, 2010 at 6:46 AM, Stefan Weil <weil@mail.berlios.de> wrote: > Add the necessary gcc attribute and fix the detected errors. This is identical to fulong patch, so my comments on that one apply also here. > > Cc: Aurelien Jarno <aurelien@aurel32.net> > Signed-off-by: Stefan Weil <weil@mail.berlios.de> > --- > hw/mips_malta.c | 6 ++++-- > 1 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/hw/mips_malta.c b/hw/mips_malta.c > index a458c97..deee273 100644 > --- a/hw/mips_malta.c > +++ b/hw/mips_malta.c > @@ -684,6 +684,8 @@ static void write_bootloader (CPUState *env, uint8_t *base, > } > > static void prom_set(uint32_t* prom_buf, int index, const char *string, ...) > + __attribute__ ((format (gnu_printf, 3, 4))); > +static void prom_set(uint32_t* prom_buf, int index, const char *string, ...) > { > va_list ap; > int32_t table_addr; > @@ -750,13 +752,13 @@ static int64_t load_kernel(int big_endian) > prom_size = ENVP_NB_ENTRIES * (sizeof(int32_t) + ENVP_ENTRY_SIZE); > prom_buf = qemu_malloc(prom_size); > > - prom_set(prom_buf, prom_index++, loaderparams.kernel_filename); > + prom_set(prom_buf, prom_index++, "%s", loaderparams.kernel_filename); > if (initrd_size > 0) { > prom_set(prom_buf, prom_index++, "rd_start=0x%" PRIx64 " rd_size=%li %s", > cpu_mips_phys_to_kseg0(NULL, initrd_offset), initrd_size, > loaderparams.kernel_cmdline); > } else { > - prom_set(prom_buf, prom_index++, loaderparams.kernel_cmdline); > + prom_set(prom_buf, prom_index++, "%s", loaderparams.kernel_cmdline); > } > > prom_set(prom_buf, prom_index++, "memsize"); > -- > 1.7.0.4 > > > ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PATCH] mips_fulong2e: Detect format errors for function prom_set 2010-09-11 6:46 [Qemu-devel] [PATCH] mips_fulong2e: Detect format errors for function prom_set Stefan Weil 2010-09-11 6:46 ` [Qemu-devel] [PATCH] mips_malta: " Stefan Weil @ 2010-09-20 19:03 ` Blue Swirl 2010-09-20 20:18 ` [Qemu-devel] [PATCH 1/2] mips_fulong2e: Fix format strings Stefan Weil 2010-09-20 20:18 ` [Qemu-devel] [PATCH 2/2] mips_malta: " Stefan Weil 1 sibling, 2 replies; 19+ messages in thread From: Blue Swirl @ 2010-09-20 19:03 UTC (permalink / raw) To: Stefan Weil; +Cc: QEMU Developers, Aurelien Jarno On Sat, Sep 11, 2010 at 6:46 AM, Stefan Weil <weil@mail.berlios.de> wrote: > Add the necessary gcc attribute and fix the detected errors. The fixes are correct, so those parts could be applied. However the gnu_printf part will break with older compilers unless 1/2 is applied first. That part should also use GCC_FMT_ATTR macro. Please split the patch. > > Cc: Aurelien Jarno <aurelien@aurel32.net> > Signed-off-by: Stefan Weil <weil@mail.berlios.de> > --- > hw/mips_fulong2e.c | 8 +++++--- > 1 files changed, 5 insertions(+), 3 deletions(-) > > diff --git a/hw/mips_fulong2e.c b/hw/mips_fulong2e.c > index cbe7156..2ef5070 100644 > --- a/hw/mips_fulong2e.c > +++ b/hw/mips_fulong2e.c > @@ -77,6 +77,8 @@ static struct _loaderparams { > } loaderparams; > > static void prom_set(uint32_t* prom_buf, int index, const char *string, ...) > + __attribute__ ((format (gnu_printf, 3, 4))); > +static void prom_set(uint32_t* prom_buf, int index, const char *string, ...) > { > va_list ap; > int32_t table_addr; > @@ -141,13 +143,13 @@ static int64_t load_kernel (CPUState *env) > prom_size = ENVP_NB_ENTRIES * (sizeof(int32_t) + ENVP_ENTRY_SIZE); > prom_buf = qemu_malloc(prom_size); > > - prom_set(prom_buf, index++, loaderparams.kernel_filename); > + prom_set(prom_buf, index++, "%s", loaderparams.kernel_filename); > if (initrd_size > 0) { > - prom_set(prom_buf, index++, "rd_start=0x" PRIx64 " rd_size=%li %s", > + prom_set(prom_buf, index++, "rd_start=0x%" PRIx64 " rd_size=%li %s", > cpu_mips_phys_to_kseg0(NULL, initrd_offset), initrd_size, > loaderparams.kernel_cmdline); > } else { > - prom_set(prom_buf, index++, loaderparams.kernel_cmdline); > + prom_set(prom_buf, index++, "%s", loaderparams.kernel_cmdline); > } > > /* Setup minimum environment variables */ > -- > 1.7.0.4 > > > ^ permalink raw reply [flat|nested] 19+ messages in thread
* [Qemu-devel] [PATCH 1/2] mips_fulong2e: Fix format strings 2010-09-20 19:03 ` [Qemu-devel] [PATCH] mips_fulong2e: " Blue Swirl @ 2010-09-20 20:18 ` Stefan Weil 2010-09-21 19:48 ` [Qemu-devel] " Blue Swirl 2010-09-20 20:18 ` [Qemu-devel] [PATCH 2/2] mips_malta: " Stefan Weil 1 sibling, 1 reply; 19+ messages in thread From: Stefan Weil @ 2010-09-20 20:18 UTC (permalink / raw) To: QEMU Developers; +Cc: Blue Swirl, Aurelien Jarno Fix two compiler warnings (when format attribute is applied) and one error (missing %) in format strings. Cc: Aurelien Jarno <aurelien@aurel32.net> Cc: Blue Swirl <blauwirbel@gmail.com> Signed-off-by: Stefan Weil <weil@mail.berlios.de> --- hw/mips_fulong2e.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/mips_fulong2e.c b/hw/mips_fulong2e.c index ac82067..61ca9c4 100644 --- a/hw/mips_fulong2e.c +++ b/hw/mips_fulong2e.c @@ -141,13 +141,13 @@ static int64_t load_kernel (CPUState *env) prom_size = ENVP_NB_ENTRIES * (sizeof(int32_t) + ENVP_ENTRY_SIZE); prom_buf = qemu_malloc(prom_size); - prom_set(prom_buf, index++, loaderparams.kernel_filename); + prom_set(prom_buf, index++, "%s", loaderparams.kernel_filename); if (initrd_size > 0) { - prom_set(prom_buf, index++, "rd_start=0x" PRIx64 " rd_size=%li %s", + prom_set(prom_buf, index++, "rd_start=0x%" PRIx64 " rd_size=%li %s", cpu_mips_phys_to_kseg0(NULL, initrd_offset), initrd_size, loaderparams.kernel_cmdline); } else { - prom_set(prom_buf, index++, loaderparams.kernel_cmdline); + prom_set(prom_buf, index++, "%s", loaderparams.kernel_cmdline); } /* Setup minimum environment variables */ -- 1.7.1 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [Qemu-devel] Re: [PATCH 1/2] mips_fulong2e: Fix format strings 2010-09-20 20:18 ` [Qemu-devel] [PATCH 1/2] mips_fulong2e: Fix format strings Stefan Weil @ 2010-09-21 19:48 ` Blue Swirl 0 siblings, 0 replies; 19+ messages in thread From: Blue Swirl @ 2010-09-21 19:48 UTC (permalink / raw) To: Stefan Weil; +Cc: QEMU Developers, Aurelien Jarno Thanks, applied. On Mon, Sep 20, 2010 at 8:18 PM, Stefan Weil <weil@mail.berlios.de> wrote: > Fix two compiler warnings (when format attribute is applied) > and one error (missing %) in format strings. > > Cc: Aurelien Jarno <aurelien@aurel32.net> > Cc: Blue Swirl <blauwirbel@gmail.com> > Signed-off-by: Stefan Weil <weil@mail.berlios.de> > --- > hw/mips_fulong2e.c | 6 +++--- > 1 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/hw/mips_fulong2e.c b/hw/mips_fulong2e.c > index ac82067..61ca9c4 100644 > --- a/hw/mips_fulong2e.c > +++ b/hw/mips_fulong2e.c > @@ -141,13 +141,13 @@ static int64_t load_kernel (CPUState *env) > prom_size = ENVP_NB_ENTRIES * (sizeof(int32_t) + ENVP_ENTRY_SIZE); > prom_buf = qemu_malloc(prom_size); > > - prom_set(prom_buf, index++, loaderparams.kernel_filename); > + prom_set(prom_buf, index++, "%s", loaderparams.kernel_filename); > if (initrd_size > 0) { > - prom_set(prom_buf, index++, "rd_start=0x" PRIx64 " rd_size=%li %s", > + prom_set(prom_buf, index++, "rd_start=0x%" PRIx64 " rd_size=%li %s", > cpu_mips_phys_to_kseg0(NULL, initrd_offset), initrd_size, > loaderparams.kernel_cmdline); > } else { > - prom_set(prom_buf, index++, loaderparams.kernel_cmdline); > + prom_set(prom_buf, index++, "%s", loaderparams.kernel_cmdline); > } > > /* Setup minimum environment variables */ > -- > 1.7.1 > > ^ permalink raw reply [flat|nested] 19+ messages in thread
* [Qemu-devel] [PATCH 2/2] mips_malta: Fix format strings 2010-09-20 19:03 ` [Qemu-devel] [PATCH] mips_fulong2e: " Blue Swirl 2010-09-20 20:18 ` [Qemu-devel] [PATCH 1/2] mips_fulong2e: Fix format strings Stefan Weil @ 2010-09-20 20:18 ` Stefan Weil 2010-09-21 19:48 ` [Qemu-devel] " Blue Swirl 1 sibling, 1 reply; 19+ messages in thread From: Stefan Weil @ 2010-09-20 20:18 UTC (permalink / raw) To: QEMU Developers; +Cc: Blue Swirl, Aurelien Jarno Fix two compiler warnings (when format attribute is applied). Cc: Aurelien Jarno <aurelien@aurel32.net> Cc: Blue Swirl <blauwirbel@gmail.com> Signed-off-by: Stefan Weil <weil@mail.berlios.de> --- hw/mips_malta.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/mips_malta.c b/hw/mips_malta.c index ec95cd8..1cb7880 100644 --- a/hw/mips_malta.c +++ b/hw/mips_malta.c @@ -728,13 +728,13 @@ static int64_t load_kernel (void) prom_size = ENVP_NB_ENTRIES * (sizeof(int32_t) + ENVP_ENTRY_SIZE); prom_buf = qemu_malloc(prom_size); - prom_set(prom_buf, prom_index++, loaderparams.kernel_filename); + prom_set(prom_buf, prom_index++, "%s", loaderparams.kernel_filename); if (initrd_size > 0) { prom_set(prom_buf, prom_index++, "rd_start=0x%" PRIx64 " rd_size=%li %s", cpu_mips_phys_to_kseg0(NULL, initrd_offset), initrd_size, loaderparams.kernel_cmdline); } else { - prom_set(prom_buf, prom_index++, loaderparams.kernel_cmdline); + prom_set(prom_buf, prom_index++, "%s", loaderparams.kernel_cmdline); } prom_set(prom_buf, prom_index++, "memsize"); -- 1.7.1 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [Qemu-devel] Re: [PATCH 2/2] mips_malta: Fix format strings 2010-09-20 20:18 ` [Qemu-devel] [PATCH 2/2] mips_malta: " Stefan Weil @ 2010-09-21 19:48 ` Blue Swirl 0 siblings, 0 replies; 19+ messages in thread From: Blue Swirl @ 2010-09-21 19:48 UTC (permalink / raw) To: Stefan Weil; +Cc: QEMU Developers, Aurelien Jarno Thanks, applied. On Mon, Sep 20, 2010 at 8:18 PM, Stefan Weil <weil@mail.berlios.de> wrote: > Fix two compiler warnings (when format attribute is applied). > > Cc: Aurelien Jarno <aurelien@aurel32.net> > Cc: Blue Swirl <blauwirbel@gmail.com> > Signed-off-by: Stefan Weil <weil@mail.berlios.de> > --- > hw/mips_malta.c | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/hw/mips_malta.c b/hw/mips_malta.c > index ec95cd8..1cb7880 100644 > --- a/hw/mips_malta.c > +++ b/hw/mips_malta.c > @@ -728,13 +728,13 @@ static int64_t load_kernel (void) > prom_size = ENVP_NB_ENTRIES * (sizeof(int32_t) + ENVP_ENTRY_SIZE); > prom_buf = qemu_malloc(prom_size); > > - prom_set(prom_buf, prom_index++, loaderparams.kernel_filename); > + prom_set(prom_buf, prom_index++, "%s", loaderparams.kernel_filename); > if (initrd_size > 0) { > prom_set(prom_buf, prom_index++, "rd_start=0x%" PRIx64 " rd_size=%li %s", > cpu_mips_phys_to_kseg0(NULL, initrd_offset), initrd_size, > loaderparams.kernel_cmdline); > } else { > - prom_set(prom_buf, prom_index++, loaderparams.kernel_cmdline); > + prom_set(prom_buf, prom_index++, "%s", loaderparams.kernel_cmdline); > } > > prom_set(prom_buf, prom_index++, "memsize"); > -- > 1.7.1 > > ^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2010-09-22 20:31 UTC | newest] Thread overview: 19+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-09-11 6:46 [Qemu-devel] [PATCH] mips_fulong2e: Detect format errors for function prom_set Stefan Weil 2010-09-11 6:46 ` [Qemu-devel] [PATCH] mips_malta: " Stefan Weil 2010-09-13 20:02 ` [Qemu-devel] [PATCH 1/2] Add support for gcc format attribute gnu_printf Stefan Weil 2010-09-20 19:18 ` Blue Swirl 2010-09-20 21:03 ` Stefan Weil 2010-09-20 21:05 ` [Qemu-devel] [PATCH] Move macros GCC_ATTR and GCC_FMT_ATTR to common header file Stefan Weil 2010-09-21 17:46 ` [Qemu-devel] " Stefan Weil 2010-09-21 17:48 ` [Qemu-devel] " Stefan Weil 2010-09-21 18:17 ` [Qemu-devel] " Blue Swirl 2010-09-21 20:27 ` [Qemu-devel] " Stefan Weil 2010-09-22 20:30 ` [Qemu-devel] " Blue Swirl 2010-09-13 20:02 ` [Qemu-devel] [PATCH 2/2] Use new gcc format attribute gnu_printf Stefan Weil 2010-09-20 18:53 ` Blue Swirl 2010-09-20 19:04 ` [Qemu-devel] [PATCH] mips_malta: Detect format errors for function prom_set Blue Swirl 2010-09-20 19:03 ` [Qemu-devel] [PATCH] mips_fulong2e: " Blue Swirl 2010-09-20 20:18 ` [Qemu-devel] [PATCH 1/2] mips_fulong2e: Fix format strings Stefan Weil 2010-09-21 19:48 ` [Qemu-devel] " Blue Swirl 2010-09-20 20:18 ` [Qemu-devel] [PATCH 2/2] mips_malta: " Stefan Weil 2010-09-21 19:48 ` [Qemu-devel] " Blue Swirl
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).