aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2009-11-17 20:57:21 +0000
committerH.J. Lu <hjl.tools@gmail.com>2009-11-17 20:57:21 +0000
commitaffb4bf37a03b65825f187dfbe694470495a94bf (patch)
treeeec962296ce388d27e2fa45e62863639917c24e1
parent5409dacfb9b62964f95af8c693fa708baf60ecdd (diff)
downloadgdb-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/ChangeLog10
-rw-r--r--bfd/elfxx-ia64.c20
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);
}