mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-02 14:53:46 +08:00
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.
This commit is contained in:
parent
5409dacfb9
commit
affb4bf37a
@ -1,3 +1,13 @@
|
|||||||
|
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>
|
2009-11-17 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
PR ld/10955
|
PR ld/10955
|
||||||
|
@ -176,9 +176,9 @@ struct elfNN_ia64_link_hash_table
|
|||||||
optimized from R_IA64_LTOFF22X, against non-SHF_IA_64_SHORT
|
optimized from R_IA64_LTOFF22X, against non-SHF_IA_64_SHORT
|
||||||
sections. We need to record those sections so that we can choose
|
sections. We need to record those sections so that we can choose
|
||||||
a proper GP to cover all R_IA64_GPREL22 relocations. */
|
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 */
|
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 */
|
bfd_vma min_short_offset; /* minimum short offset */
|
||||||
|
|
||||||
htab_t loc_hash_table;
|
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)
|
&& offset < ia64_info->min_short_offset)
|
||||||
ia64_info->min_short_offset = offset;
|
ia64_info->min_short_offset = offset;
|
||||||
else if (sec->output_section->vma
|
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_sec = sec;
|
||||||
ia64_info->max_short_offset = offset;
|
ia64_info->max_short_offset = offset;
|
||||||
}
|
}
|
||||||
else if (sec->output_section->vma
|
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_sec = sec;
|
||||||
ia64_info->min_short_offset = offset;
|
ia64_info->min_short_offset = offset;
|
||||||
@ -1218,7 +1218,7 @@ elfNN_ia64_relax_section (bfd *abfd, asection *sec,
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (r_type == R_IA64_GPREL22)
|
if (r_type == R_IA64_GPREL22)
|
||||||
elfNN_ia64_update_short_info (tsec,
|
elfNN_ia64_update_short_info (tsec->output_section,
|
||||||
tsec->output_offset + toff,
|
tsec->output_offset + toff,
|
||||||
ia64_info);
|
ia64_info);
|
||||||
else if (r_type == R_IA64_LTOFF22X)
|
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;
|
changed_got |= !dyn_i->want_got;
|
||||||
}
|
}
|
||||||
|
|
||||||
elfNN_ia64_update_short_info (tsec,
|
elfNN_ia64_update_short_info (tsec->output_section,
|
||||||
tsec->output_offset + toff,
|
tsec->output_offset + toff,
|
||||||
ia64_info);
|
ia64_info);
|
||||||
}
|
}
|
||||||
@ -4313,14 +4313,14 @@ elfNN_ia64_choose_gp (bfd *abfd, struct bfd_link_info *info)
|
|||||||
if (ia64_info->min_short_sec)
|
if (ia64_info->min_short_sec)
|
||||||
{
|
{
|
||||||
if (min_short_vma
|
if (min_short_vma
|
||||||
> (ia64_info->min_short_sec->output_section->vma
|
> (ia64_info->min_short_sec->vma
|
||||||
+ ia64_info->min_short_offset))
|
+ 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);
|
+ ia64_info->min_short_offset);
|
||||||
if (max_short_vma
|
if (max_short_vma
|
||||||
< (ia64_info->max_short_sec->output_section->vma
|
< (ia64_info->max_short_sec->vma
|
||||||
+ ia64_info->max_short_offset))
|
+ 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);
|
+ ia64_info->max_short_offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user