diff options
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/elf64-alpha.c | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 1c980af..488f925 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2001-08-31 Jakub Jelinek <jakub@redhat.com> + + * elf64-alpha.c (elf64_alpha_relocate_section): Duplicate memory + value into R_ALPHA_RELATIVE's addend. + (elf64_alpha_finish_dynamic_symbol): Likewise. + 2001-08-31 Nick Clifton <nickc@cambridge.redhat.com> * elf32-arm.h (elf32_arm_relocate_section): Do not rightshift diff --git a/bfd/elf64-alpha.c b/bfd/elf64-alpha.c index 0dc4d4c..085d09b 100644 --- a/bfd/elf64-alpha.c +++ b/bfd/elf64-alpha.c @@ -3613,7 +3613,7 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section, + sgot->output_offset + gotent->got_offset); outrel.r_info = ELF64_R_INFO(0, R_ALPHA_RELATIVE); - outrel.r_addend = 0; + outrel.r_addend = relocation+addend; bfd_elf64_swap_reloca_out (output_bfd, &outrel, ((Elf64_External_Rela *) @@ -3678,7 +3678,7 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section, else if (info->shared && (input_section->flags & SEC_ALLOC)) { outrel.r_info = ELF64_R_INFO(0, R_ALPHA_RELATIVE); - outrel.r_addend = 0; + outrel.r_addend = relocation + addend; } else goto default_reloc; @@ -3871,7 +3871,7 @@ elf64_alpha_finish_dynamic_symbol (output_bfd, info, h, sym) + sgot->output_offset + gotent->got_offset); outrel.r_info = ELF64_R_INFO(0, R_ALPHA_RELATIVE); - outrel.r_addend = 0; + outrel.r_addend = plt_addr; bfd_elf64_swap_reloca_out (output_bfd, &outrel, ((Elf64_External_Rela *) |