diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2009-11-17 20:57:21 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2009-11-17 20:57:21 +0000 |
commit | affb4bf37a03b65825f187dfbe694470495a94bf (patch) | |
tree | eec962296ce388d27e2fa45e62863639917c24e1 | |
parent | 5409dacfb9b62964f95af8c693fa708baf60ecdd (diff) | |
download | gdb-affb4bf37a03b65825f187dfbe694470495a94bf.zip gdb-affb4bf37a03b65825f187dfbe694470495a94bf.tar.gz gdb-affb4bf37a03b65825f187dfbe694470495a94bf.tar.bz2 |
2009-11-17 H.J. Lu <hongjiu.lu@intel.com>
PR ld/10955
* elfxx-ia64.c (elfNN_ia64_link_hash_table): Update comments.
(elfNN_ia64_update_short_info): Remove "->output_section" from
ia64_info->max_short_sec and ia64_info->min_short_sec.
(elfNN_ia64_choose_gp): Likewise.
(elfNN_ia64_relax_section): Pass tsec->output_section to
elfNN_ia64_update_short_info.
-rw-r--r-- | bfd/ChangeLog | 10 | ||||
-rw-r--r-- | bfd/elfxx-ia64.c | 20 |
2 files changed, 20 insertions, 10 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 113ddf8..09a5477 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,6 +1,16 @@ 2009-11-17 H.J. Lu <hongjiu.lu@intel.com> PR ld/10955 + * elfxx-ia64.c (elfNN_ia64_link_hash_table): Update comments. + (elfNN_ia64_update_short_info): Remove "->output_section" from + ia64_info->max_short_sec and ia64_info->min_short_sec. + (elfNN_ia64_choose_gp): Likewise. + (elfNN_ia64_relax_section): Pass tsec->output_section to + elfNN_ia64_update_short_info. + +2009-11-17 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/10955 * elfxx-ia64.c (elfNN_ia64_link_hash_table): Add max_short_sec, max_short_offset, min_short_sec and min_short_offset. (elfNN_ia64_update_short_info): New. diff --git a/bfd/elfxx-ia64.c b/bfd/elfxx-ia64.c index 5bf4d9e..ed105c8 100644 --- a/bfd/elfxx-ia64.c +++ b/bfd/elfxx-ia64.c @@ -176,9 +176,9 @@ struct elfNN_ia64_link_hash_table optimized from R_IA64_LTOFF22X, against non-SHF_IA_64_SHORT sections. We need to record those sections so that we can choose a proper GP to cover all R_IA64_GPREL22 relocations. */ - asection *max_short_sec; /* maximum short section */ + asection *max_short_sec; /* maximum short output section */ bfd_vma max_short_offset; /* maximum short offset */ - asection *min_short_sec; /* minimum short section */ + asection *min_short_sec; /* minimum short output section */ bfd_vma min_short_offset; /* minimum short offset */ htab_t loc_hash_table; @@ -782,13 +782,13 @@ elfNN_ia64_update_short_info (asection *sec, bfd_vma offset, && offset < ia64_info->min_short_offset) ia64_info->min_short_offset = offset; else if (sec->output_section->vma - > ia64_info->max_short_sec->output_section->vma) + > ia64_info->max_short_sec->vma) { ia64_info->max_short_sec = sec; ia64_info->max_short_offset = offset; } else if (sec->output_section->vma - < ia64_info->min_short_sec->output_section->vma) + < ia64_info->min_short_sec->vma) { ia64_info->min_short_sec = sec; ia64_info->min_short_offset = offset; @@ -1218,7 +1218,7 @@ elfNN_ia64_relax_section (bfd *abfd, asection *sec, continue; if (r_type == R_IA64_GPREL22) - elfNN_ia64_update_short_info (tsec, + elfNN_ia64_update_short_info (tsec->output_section, tsec->output_offset + toff, ia64_info); else if (r_type == R_IA64_LTOFF22X) @@ -1232,7 +1232,7 @@ elfNN_ia64_relax_section (bfd *abfd, asection *sec, changed_got |= !dyn_i->want_got; } - elfNN_ia64_update_short_info (tsec, + elfNN_ia64_update_short_info (tsec->output_section, tsec->output_offset + toff, ia64_info); } @@ -4313,14 +4313,14 @@ elfNN_ia64_choose_gp (bfd *abfd, struct bfd_link_info *info) if (ia64_info->min_short_sec) { if (min_short_vma - > (ia64_info->min_short_sec->output_section->vma + > (ia64_info->min_short_sec->vma + ia64_info->min_short_offset)) - min_short_vma = (ia64_info->min_short_sec->output_section->vma + min_short_vma = (ia64_info->min_short_sec->vma + ia64_info->min_short_offset); if (max_short_vma - < (ia64_info->max_short_sec->output_section->vma + < (ia64_info->max_short_sec->vma + ia64_info->max_short_offset)) - max_short_vma = (ia64_info->max_short_sec->output_section->vma + max_short_vma = (ia64_info->max_short_sec->vma + ia64_info->max_short_offset); } |