* elf.c (assign_file_positions_for_segments): Set next_file_pos even
[deliverable/binutils-gdb.git] / bfd / elfxx-ia64.c
index 093adbc47c296d4475bb41b98e285c43ad5f1f00..9ae95d3238742b68a6eb2754725afe7b0264fe4d 100644 (file)
@@ -4338,11 +4338,10 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
        case R_IA64_SECREL32LSB:
        case R_IA64_SECREL64MSB:
        case R_IA64_SECREL64LSB:
-         /* Make output-section relative.  */
-         if (value > input_section->output_section->vma)
-           value -= input_section->output_section->vma;
-         else
-           value = 0;
+         /* Make output-section relative to section where the symbol
+            is defined. PR 475  */
+         if (sym_sec)
+           value -= sym_sec->output_section->vma;
          r = elfNN_ia64_install_value (hit_addr, value, r_type);
          break;
 
@@ -4497,7 +4496,7 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
            const char *name;
 
            if (h)
-             name = h->root.root.string;
+             name = NULL;
            else
              {
                name = bfd_elf_string_from_elf_section (input_bfd,
@@ -4506,10 +4505,10 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
                if (name == NULL)
                  return FALSE;
                if (*name == '\0')
-                 name = bfd_section_name (input_bfd, input_section);
+                 name = bfd_section_name (input_bfd, sym_sec);
              }
-           if (!(*info->callbacks->reloc_overflow) (info, name,
-                                                    howto->name,
+           if (!(*info->callbacks->reloc_overflow) (info, &h->root,
+                                                    name, howto->name,
                                                     (bfd_vma) 0,
                                                     input_bfd,
                                                     input_section,
This page took 0.024808 seconds and 4 git commands to generate.