summaryrefslogtreecommitdiff
path: root/bfd/elfxx-ia64.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl@lucon.org>2004-10-27 00:46:05 +0000
committerH.J. Lu <hjl@lucon.org>2004-10-27 00:46:05 +0000
commitbf3024e5658310b1680567bb98dbfd73c445f04f (patch)
tree44ac88c3a4f33ca375dd2c86c0effcb0453ed1a3 /bfd/elfxx-ia64.c
parent9795c7a118dff0e86392b7ea3094c6094515fa02 (diff)
downloadbinutils-redhat-bf3024e5658310b1680567bb98dbfd73c445f04f.tar.gz
2004-10-26 H.J. Lu <hongjiu.lu@intel.com>
PR 475 * elfxx-ia64.c (elfNN_ia64_relocate_section): Correct R_IA64_SECREL32MSB, R_IA64_SECREL32LSB, R_IA64_SECREL64MSB and R_IA64_SECREL64LSB.
Diffstat (limited to 'bfd/elfxx-ia64.c')
-rw-r--r--bfd/elfxx-ia64.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/bfd/elfxx-ia64.c b/bfd/elfxx-ia64.c
index 917e2c3bbf..a7d72bfa42 100644
--- a/bfd/elfxx-ia64.c
+++ b/bfd/elfxx-ia64.c
@@ -4338,11 +4338,9 @@ 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 */
+ value -= sym_sec->output_section->vma;
r = elfNN_ia64_install_value (hit_addr, value, r_type);
break;