On Sat, Sep 11, 2010 at 6:46 AM, Stefan Weil <w...@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 <aurel...@aurel32.net> > Signed-off-by: Stefan Weil <w...@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 > > >