From 28cfee261d5f36fac430a44609e95fae02e99ebd Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 31 Aug 2001 19:20:12 +0000 Subject: [PATCH] * elf64-alpha.c (elf64_alpha_relocate_section): Duplicate memory value into R_ALPHA_RELATIVE's addend. (elf64_alpha_finish_dynamic_symbol): Likewise. --- bfd/ChangeLog | 6 ++++++ bfd/elf64-alpha.c | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 1c980af956e..488f925a5bc 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2001-08-31 Jakub Jelinek + + * 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 * elf32-arm.h (elf32_arm_relocate_section): Do not rightshift diff --git a/bfd/elf64-alpha.c b/bfd/elf64-alpha.c index 0dc4d4c7fcb..085d09beff8 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 *) -- 2.30.2