From: H.J. Lu Date: Wed, 27 Oct 2004 00:46:05 +0000 (+0000) Subject: 2004-10-26 H.J. Lu X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=97ecf3226de156edd6021981349357ea1094f1f8;p=binutils-gdb.git 2004-10-26 H.J. Lu PR 475 * elfxx-ia64.c (elfNN_ia64_relocate_section): Correct R_IA64_SECREL32MSB, R_IA64_SECREL32LSB, R_IA64_SECREL64MSB and R_IA64_SECREL64LSB. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 12db6d7c4fc..7e9d0855a2c 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2004-10-26 H.J. Lu + + PR 475 + * elfxx-ia64.c (elfNN_ia64_relocate_section): Correct + R_IA64_SECREL32MSB, R_IA64_SECREL32LSB, R_IA64_SECREL64MSB + and R_IA64_SECREL64LSB. + 2004-10-26 Paul Brook * elflink.c (elf_finalize_dynstr): Skip shared aux structure. diff --git a/bfd/elfxx-ia64.c b/bfd/elfxx-ia64.c index 917e2c3bbf7..a7d72bfa426 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;