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

Zhang Yanfei zhangyanfei at cn.fujitsu.com
Sun Apr 7 22:11:09 EDT 2013


于 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:
---------------------------------------------

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