aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf64-ppc.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2012-06-26 01:40:59 +0000
committerAlan Modra <amodra@gmail.com>2012-06-26 01:40:59 +0000
commita4fd3de5d3170b2c22c9fe4cf236cc31305ef103 (patch)
tree7fd1aa1ee7fe29f8bf0803d9e58c617c7517e47a /bfd/elf64-ppc.c
parente01efe68d406d3927bed0c538f0ed46def332a85 (diff)
downloadgdb-a4fd3de5d3170b2c22c9fe4cf236cc31305ef103.zip
gdb-a4fd3de5d3170b2c22c9fe4cf236cc31305ef103.tar.gz
gdb-a4fd3de5d3170b2c22c9fe4cf236cc31305ef103.tar.bz2
* elf64-ppc.c (ppc64_elf_next_toc_section): Don't error if input
file has multiple .got/.toc sections and all don't fit in current toc group.
Diffstat (limited to 'bfd/elf64-ppc.c')
-rw-r--r--bfd/elf64-ppc.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 46e8247..68ae03c 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -10554,7 +10554,9 @@ ppc64_elf_next_toc_section (struct bfd_link_info *info, asection *isec)
if (!htab->second_toc_pass)
{
/* Keep track of the first .toc or .got section for this input bfd. */
- if (htab->toc_bfd != isec->owner)
+ bfd_boolean new_bfd = htab->toc_bfd != isec->owner;
+
+ if (new_bfd)
{
htab->toc_bfd = isec->owner;
htab->toc_first_sec = isec;
@@ -10582,7 +10584,8 @@ ppc64_elf_next_toc_section (struct bfd_link_info *info, asection *isec)
/* Die if someone uses a linker script that doesn't keep input
file .toc and .got together. */
- if (elf_gp (isec->owner) != 0
+ if (new_bfd
+ && elf_gp (isec->owner) != 0
&& elf_gp (isec->owner) != off)
return FALSE;