All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Marek <mmarek@suse.cz>
To: Daniel Tang <dt.tangr@gmail.com>
Cc: linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org,
	trivial@kernel.org, David Daney <david.daney@cavium.com>
Subject: Re: [PATCH 1/2] Fix a build warning in scripts/sortextable.h
Date: Wed, 03 Jul 2013 14:07:47 +0200	[thread overview]
Message-ID: <51D41413.9060500@suse.cz> (raw)
In-Reply-To: <51D413D9.8040604@suse.cz>

On 3.7.2013 14:06, Michal Marek wrote:
> Added David Daney to CC.

Second attempt, sorry.


> On 9.6.2013 04:33, Daniel Tang wrote:
>> The pointer passed to the _r() macro does not always match the type
>> of the function that it is aliasing and raises several of the following
>> warnings at compile time:
>>
>> warning: passing argument 1 of ‘r8’ from incompatible pointer type
> 
> In what environment (arch, compiler, glibc) are you seeing this?
> 
> Michal
> 
>> Fixed by casting the pointers to (void *) so they work with both the
>> 32bit and 64bit code.
>>
>> Signed-off-by: Daniel Tang <dt.tangr@gmail.com>
>> ---
>>  scripts/sortextable.h | 29 +++++++++++++++--------------
>>  1 file changed, 15 insertions(+), 14 deletions(-)
>>
>> diff --git a/scripts/sortextable.h b/scripts/sortextable.h
>> index f5eb43d..0a38fbd 100644
>> --- a/scripts/sortextable.h
>> +++ b/scripts/sortextable.h
>> @@ -110,9 +110,9 @@ do_func(Elf_Ehdr *ehdr, char const *const fname, table_sort_t custom_sort)
>>  	int i;
>>  	int idx;
>>  
>> -	shdr = (Elf_Shdr *)((char *)ehdr + _r(&ehdr->e_shoff));
>> +	shdr = (Elf_Shdr *)((char *)ehdr + _r((void *)&ehdr->e_shoff));
>>  	shstrtab_sec = shdr + r2(&ehdr->e_shstrndx);
>> -	secstrtab = (const char *)ehdr + _r(&shstrtab_sec->sh_offset);
>> +	secstrtab = (const char *)ehdr + _r((void *)&shstrtab_sec->sh_offset);
>>  	for (i = 0; i < r2(&ehdr->e_shnum); i++) {
>>  		idx = r(&shdr[i].sh_name);
>>  		if (strcmp(secstrtab + idx, "__ex_table") == 0) {
>> @@ -122,8 +122,8 @@ do_func(Elf_Ehdr *ehdr, char const *const fname, table_sort_t custom_sort)
>>  		if ((r(&shdr[i].sh_type) == SHT_REL ||
>>  		     r(&shdr[i].sh_type) == SHT_RELA) &&
>>  		    r(&shdr[i].sh_info) == extab_index) {
>> -			relocs = (void *)ehdr + _r(&shdr[i].sh_offset);
>> -			relocs_size = _r(&shdr[i].sh_size);
>> +			relocs = (void *)ehdr + _r((void *)&shdr[i].sh_offset);
>> +			relocs_size = _r((void *)&shdr[i].sh_size);
>>  		}
>>  		if (strcmp(secstrtab + idx, ".symtab") == 0)
>>  			symtab_sec = shdr + i;
>> @@ -142,14 +142,14 @@ do_func(Elf_Ehdr *ehdr, char const *const fname, table_sort_t custom_sort)
>>  		fprintf(stderr,	"no __ex_table in  file: %s\n", fname);
>>  		fail_file();
>>  	}
>> -	strtab = (const char *)ehdr + _r(&strtab_sec->sh_offset);
>> +	strtab = (const char *)ehdr + _r((void *)&strtab_sec->sh_offset);
>>  
>> -	extab_image = (void *)ehdr + _r(&extab_sec->sh_offset);
>> +	extab_image = (void *)ehdr + _r((void *)&extab_sec->sh_offset);
>>  
>>  	if (custom_sort) {
>> -		custom_sort(extab_image, _r(&extab_sec->sh_size));
>> +		custom_sort(extab_image, _r((void *)&extab_sec->sh_size));
>>  	} else {
>> -		int num_entries = _r(&extab_sec->sh_size) / extable_ent_size;
>> +		int num_entries = _r((void *)&extab_sec->sh_size) / extable_ent_size;
>>  		qsort(extab_image, num_entries,
>>  		      extable_ent_size, compare_extable);
>>  	}
>> @@ -159,12 +159,13 @@ do_func(Elf_Ehdr *ehdr, char const *const fname, table_sort_t custom_sort)
>>  
>>  	/* find main_extable_sort_needed */
>>  	sort_needed_sym = NULL;
>> -	for (i = 0; i < _r(&symtab_sec->sh_size) / sizeof(Elf_Sym); i++) {
>> -		sym = (void *)ehdr + _r(&symtab_sec->sh_offset);
>> +	for (i = 0; i < _r((void *)&symtab_sec->sh_size) / sizeof(Elf_Sym); i++)
>> +	{
>> +		sym = (void *)ehdr + _r((void *)&symtab_sec->sh_offset);
>>  		sym += i;
>>  		if (ELF_ST_TYPE(sym->st_info) != STT_OBJECT)
>>  			continue;
>> -		idx = r(&sym->st_name);
>> +		idx = r((void *)&sym->st_name);
>>  		if (strcmp(strtab + idx, "main_extable_sort_needed") == 0) {
>>  			sort_needed_sym = sym;
>>  			break;
>> @@ -178,9 +179,9 @@ do_func(Elf_Ehdr *ehdr, char const *const fname, table_sort_t custom_sort)
>>  	}
>>  	sort_needed_sec = &shdr[r2(&sort_needed_sym->st_shndx)];
>>  	sort_done_location = (void *)ehdr +
>> -		_r(&sort_needed_sec->sh_offset) +
>> -		_r(&sort_needed_sym->st_value) -
>> -		_r(&sort_needed_sec->sh_addr);
>> +		_r((void *)&sort_needed_sec->sh_offset) +
>> +		_r((void *)&sort_needed_sym->st_value) -
>> +		_r((void *)&sort_needed_sec->sh_addr);
>>  
>>  #if 0
>>  	printf("sort done marker at %lx\n",
>>
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


  reply	other threads:[~2013-07-03 12:07 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-09  2:33 [PATCH 1/2] Fix a build warning in scripts/sortextable.h Daniel Tang
2013-06-09  2:33 ` [PATCH 2/2] Fix a build warning in scripts/mod/file2alias.c Daniel Tang
2013-07-03 12:31   ` Michal Marek
2013-07-03 12:06 ` [PATCH 1/2] Fix a build warning in scripts/sortextable.h Michal Marek
2013-07-03 12:07   ` Michal Marek [this message]
2013-07-03 12:12     ` Daniel Tang
2013-07-03 12:28       ` Michal Marek
2013-07-03 12:37         ` Daniel Tang
2013-07-03 12:57           ` Michal Marek
2013-07-03 13:15             ` Michal Marek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51D41413.9060500@suse.cz \
    --to=mmarek@suse.cz \
    --cc=david.daney@cavium.com \
    --cc=dt.tangr@gmail.com \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=trivial@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.