diff options
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/elfxx-sparc.c | 11 |
2 files changed, 13 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index a01796e..73258a5 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +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. + 2005-04-20 Jerome Guitton <guitton@gnat.com> * configure.in: Fix the check for basename declaration. Add check diff --git a/bfd/elfxx-sparc.c b/bfd/elfxx-sparc.c index 7f1bc7f..0dacd4f 100644 --- a/bfd/elfxx-sparc.c +++ b/bfd/elfxx-sparc.c @@ -538,7 +538,8 @@ sparc_elf_r_info_32 (Elf_Internal_Rela *in_rel ATTRIBUTE_UNUSED, 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 @@ _bfd_sparc_elf_link_hash_table_create (bfd *abfd) 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 @@ _bfd_sparc_elf_link_hash_table_create (bfd *abfd) 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 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, PTR inf) /* 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; |