aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/elfxx-sparc.c11
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;