Messages in this thread | | | Subject | Re: [PATCH] arch: x86: entry: vdso: fix type conversion on printf() call | From | Randy Dunlap <> | Date | Tue, 15 Dec 2020 08:32:20 -0800 |
| |
On 12/15/20 8:03 AM, Enrico Weigelt, metux IT consult wrote: > Fixing the following compiler warning by explicit conversion to long: > > In file included from /home/nekrad/src/apu2-dev/pkg/kernel.apu2.git/arch/x86/entry/vdso/vdso2c.c:162:0: > /home/nekrad/src/apu2-dev/pkg/kernel.apu2.git/arch/x86/entry/vdso/vdso2c.h: In function 'extract64': > /home/nekrad/src/apu2-dev/pkg/kernel.apu2.git/arch/x86/entry/vdso/vdso2c.h:38:52: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'size_t {aka unsigned int}' [-Wformat=] > fprintf(outfile, "static const unsigned char %s[%lu] = {", name, len); > ^ > CC mm/filemap.o > In file included from /home/nekrad/src/apu2-dev/pkg/kernel.apu2.git/arch/x86/entry/vdso/vdso2c.c:166:0: > /home/nekrad/src/apu2-dev/pkg/kernel.apu2.git/arch/x86/entry/vdso/vdso2c.h: In function 'extract32': > /home/nekrad/src/apu2-dev/pkg/kernel.apu2.git/arch/x86/entry/vdso/vdso2c.h:38:52: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'size_t {aka unsigned int}' [-Wformat=] > fprintf(outfile, "static const unsigned char %s[%lu] = {", name, len); > > Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net> > --- > arch/x86/entry/vdso/vdso2c.h | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-)
Hi,
size_t is normally printed with %zu. Is there some reason that isn't being used here?
> diff --git a/arch/x86/entry/vdso/vdso2c.h b/arch/x86/entry/vdso/vdso2c.h > index 1c7cfac7e64a..5c6a4bbc63f9 100644 > --- a/arch/x86/entry/vdso/vdso2c.h > +++ b/arch/x86/entry/vdso/vdso2c.h > @@ -35,7 +35,8 @@ static void BITSFUNC(extract)(const unsigned char *data, size_t data_len, > if (offset + len > data_len) > fail("section to extract overruns input data"); > > - fprintf(outfile, "static const unsigned char %s[%lu] = {", name, len); > + fprintf(outfile, "static const unsigned char %s[%lu] = {", name, > + (unsigned long)len); > BITSFUNC(copy)(outfile, data + offset, len); > fprintf(outfile, "\n};\n\n"); > } >
thanks. -- ~Randy
| |