[PATCH] kexec, i386: Fix build warning of size_t print

Simon Horman horms at verge.net.au
Sun Apr 7 23:33:35 EDT 2013


On Mon, Apr 08, 2013 at 10:11:09AM +0800, Zhang Yanfei wrote:
> 于 2013年04月08日 10:08, Simon Horman 写道:
> > On Mon, Apr 08, 2013 at 09:38:49AM +0800, Zhang Yanfei wrote:
> >> 于 2013年04月08日 09:37, Simon Horman 写道:
> >>> On Sat, Apr 06, 2013 at 01:39:40PM +0800, Zhang Yanfei wrote:
> >>>> From: Zhang Yanfei <zhangyanfei at cn.fujitsu.com>
> >>>>
> >>>> When compile kexec-tools in i386, we got the following warnings:
> >>>>
> >>>> kexec/kexec-elf-rel.c: In function ‘elf_rel_set_symbol’:
> >>>> kexec/kexec-elf-rel.c:517: warning: format ‘%ld’ expects type ‘long int’, but argument 4 has type ‘size_t’
> >>>> kexec/kexec-elf-rel.c: In function ‘elf_rel_get_symbol’:
> >>>> kexec/kexec-elf-rel.c:541: warning: format ‘%ld’ expects type ‘long int’, but argument 4 has type ‘size_t’
> >>>>
> >>>> This is because the two functions output a size_t value as %ld
> >>>> when it should be %zd, resulting in this warning.
> >>>
> >>> Thanks,
> >>>
> >>> This change looks good to me, however, the patch does
> >>> not appear to apply on the master branch of the kexec-tools tree.
> >>> Could you rebase and repost it?
> >>
> >> Really? Maybe I made some mistake. Anyway I will regenerate it and
> >> resend it again.
> > 
> > Perhaps I made a mistake ^)
> > 
> > The head commit I have is:
> > 
> > commit 969f3e8c1c534f63b869183ccf292bcaef0e5558
> > Author: Richard Weinberger <richard at nod.at>
> > Date:   Mon Apr 1 13:23:04 2013 +0200
> > 
> >     purgatory: remove arch/i386/timer.c
> >     
> >     This file is nowhere referenced, let's get rid of it.
> >     
> >     Signed-off-by: Richard Weinberger <richard at nod.at>
> >     Signed-off-by: Simon Horman <horms at verge.net.au>
> > 
> 
> Same with you.
> 
> I regenerate one, see below:

Thanks, applied.

> ---------------------------------------------
> 
> From: Zhang Yanfei <zhangyanfei at cn.fujitsu.com>
> Date: Mon, 8 Apr 2013 02:05:07 +0800
> Subject: [PATCH] kexec, i386: Fix build warning of size_t print
> 
> When compile kexec-tools in i386, we got the following warnings:
> 
> kexec/kexec-elf-rel.c: In function ‘elf_rel_set_symbol’:
> kexec/kexec-elf-rel.c:517: warning: format ‘%ld’ expects type ‘long int’, but argument 4 has type ‘size_t’
> kexec/kexec-elf-rel.c: In function ‘elf_rel_get_symbol’:
> kexec/kexec-elf-rel.c:541: warning: format ‘%ld’ expects type ‘long int’, but argument 4 has type ‘size_t’
> 
> This is because the two functions output a size_t value as %ld
> when it should be %zd, resulting in this warning.
> 
> Signed-off-by: Zhang Yanfei <zhangyanfei at cn.fujitsu.com>
> ---
>  kexec/kexec-elf-rel.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/kexec/kexec-elf-rel.c b/kexec/kexec-elf-rel.c
> index 38e34ec..f59140f 100644
> --- a/kexec/kexec-elf-rel.c
> +++ b/kexec/kexec-elf-rel.c
> @@ -513,7 +513,7 @@ void elf_rel_set_symbol(struct mem_ehdr *ehdr,
>  			name);
>  	}
>  	if (sym.st_size != size) {
> -		die("Symbol: %s has size: %lld not %ld\n",
> +		die("Symbol: %s has size: %lld not %zd\n",
>  			name, sym.st_size, size);
>  	}
>  	shdr = &ehdr->e_shdr[sym.st_shndx];
> @@ -537,7 +537,7 @@ void elf_rel_get_symbol(struct mem_ehdr *ehdr,
>  		die("Symbol: %s not found cannot get\n", name);
>  	}
>  	if (sym.st_size != size) {
> -		die("Symbol: %s has size: %lld not %ld\n",
> +		die("Symbol: %s has size: %lld not %zd\n",
>  			name, sym.st_size, size);
>  	}
>  	shdr = &ehdr->e_shdr[sym.st_shndx];
> -- 
> 1.7.1
> 
> 



More information about the kexec mailing list