* elf64-alpha.c (elf64_alpha_relocate_section): Duplicate memory
authorJakub Jelinek <jakub@redhat.com>
Fri, 31 Aug 2001 19:20:12 +0000 (19:20 +0000)
committerJakub Jelinek <jakub@redhat.com>
Fri, 31 Aug 2001 19:20:12 +0000 (19:20 +0000)
value into R_ALPHA_RELATIVE's addend.
(elf64_alpha_finish_dynamic_symbol): Likewise.

bfd/ChangeLog
bfd/elf64-alpha.c

index 1c980af..488f925 100644 (file)
@@ -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
index 0dc4d4c..085d09b 100644 (file)
@@ -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 *)