diff options
author | H.J. Lu <hjl@lucon.org> | 2006-03-08 21:24:22 +0000 |
---|---|---|
committer | H.J. Lu <hjl@lucon.org> | 2006-03-08 21:24:22 +0000 |
commit | 6feb553f5632881ae6c9e9a9befde4e3f4e86d5f (patch) | |
tree | c54dc9ed3bac2d19f21d8518486304d3f81d8435 | |
parent | 976d07ff1b16c1fe354457032dacbc190dda1c0c (diff) | |
download | gdb-6feb553f5632881ae6c9e9a9befde4e3f4e86d5f.tar.gz |
2006-03-08 H.J. Lu <hongjiu.lu@intel.com>
* elfxx-ia64.c (elfNN_ia64_choose_gp): Properly choose gp.
-rw-r--r-- | bfd/ChangeLog | 4 | ||||
-rw-r--r-- | bfd/elfxx-ia64.c | 8 |
2 files changed, 9 insertions, 3 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index e91d267a144..855984af639 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,7 @@ +2006-03-08 H.J. Lu <hongjiu.lu@intel.com> + + * elfxx-ia64.c (elfNN_ia64_choose_gp): Properly choose gp. + 2006-03-07 Richard Sandiford <richard@codesourcery.com> Daniel Jacobowitz <dan@codesourcery.com> Zack Weinberg <zack@codesourcery.com> diff --git a/bfd/elfxx-ia64.c b/bfd/elfxx-ia64.c index 7a0cc90371e..63c131649b6 100644 --- a/bfd/elfxx-ia64.c +++ b/bfd/elfxx-ia64.c @@ -3928,14 +3928,16 @@ elfNN_ia64_choose_gp (abfd, info) gp_val = got_sec->output_section->vma; else if (max_short_vma != 0) gp_val = min_short_vma; - else + else if (max_vma - min_vma < 0x200000) gp_val = min_vma; + else + gp_val = max_vma - 0x200000 + 8; /* If it is possible to address the entire image, but we don't with the choice above, adjust. */ if (max_vma - min_vma < 0x400000 - && max_vma - gp_val <= 0x200000 - && gp_val - min_vma > 0x200000) + && (max_vma - gp_val >= 0x200000 + || gp_val - min_vma > 0x200000)) gp_val = min_vma + 0x200000; else if (max_short_vma != 0) { |