Problems compiling elfxx-sparc.c
David S. Miller
davem@davemloft.net
Wed Apr 20 18:40:00 GMT 2005
On Wed, 20 Apr 2005 15:15:31 +0200
Andreas Schwab <schwab@suse.de> wrote:
> > .../bfd/elfxx-sparc.c: In function `sparc_elf_r_symndx_64':
> > .../bfd/elfxx-sparc.c:541: warning: right shift count >= width of type
> > .../bfd/elfxx-sparc.c: In function `allocate_dynrelocs':
> > .../bfd/elfxx-sparc.c:1793: warning: left shift count >= width of type
...
> /cvs/binutils/bfd/elfxx-sparc.c: In function '_bfd_sparc_elf_link_hash_table_create':
> /cvs/binutils/bfd/elfxx-sparc.c:780: warning: pointer targets in assignment differ in signedness
> /cvs/binutils/bfd/elfxx-sparc.c:797: warning: pointer targets in assignment differ in signedness
These should all be cured by the following patch which I just
checked in. Let me know if any warnings still remain.
2005-04-20 David S. Miller <davem@davemloft.net>
* elfxx-sparc.c (sparc_elf_r_symndx_64): Fix compiler warning.
(_bfd_sparc_elf_link_hash_table_create): Likewise.
(allocate_dynrelocs): Likewise.
--- elfxx-sparc.c~ 2005-04-13 12:20:28.000000000 -0700
+++ elfxx-sparc.c 2005-04-20 11:21:17.000000000 -0700
@@ -538,7 +538,8 @@
static bfd_vma
sparc_elf_r_symndx_64 (bfd_vma r_info)
{
- return ELF64_R_SYM (r_info);
+ bfd_vma r_symndx = ELF32_R_SYM (r_info);
+ return (r_symndx >> 24);
}
static bfd_vma
@@ -777,7 +778,8 @@
ret->align_power_max = 4;
ret->bytes_per_word = 8;
ret->bytes_per_rela = sizeof (Elf64_External_Rela);
- ret->dynamic_interpreter = ELF64_DYNAMIC_INTERPRETER;
+ ret->dynamic_interpreter =
+ (const unsigned char *) ELF64_DYNAMIC_INTERPRETER;
ret->dynamic_interpreter_size = sizeof ELF64_DYNAMIC_INTERPRETER;
}
else
@@ -794,7 +796,8 @@
ret->align_power_max = 3;
ret->bytes_per_word = 4;
ret->bytes_per_rela = sizeof (Elf32_External_Rela);
- ret->dynamic_interpreter = ELF32_DYNAMIC_INTERPRETER;
+ ret->dynamic_interpreter =
+ (const unsigned char *) ELF32_DYNAMIC_INTERPRETER;
ret->dynamic_interpreter_size = sizeof ELF32_DYNAMIC_INTERPRETER;
}
@@ -1790,7 +1793,7 @@
/* The procedure linkage table size is bounded by the magnitude
of the offset we can describe in the entry. */
if (s->size >= (SPARC_ELF_WORD_BYTES(htab) == 8 ?
- (bfd_vma)1 << 32 : 0x400000))
+ (((bfd_vma)1 << 31) << 1) : 0x400000))
{
bfd_set_error (bfd_error_bad_value);
return FALSE;
More information about the Binutils
mailing list