diff options
author | Alan Modra <amodra@gmail.com> | 2012-06-26 01:40:59 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2012-06-26 01:40:59 +0000 |
commit | a4fd3de5d3170b2c22c9fe4cf236cc31305ef103 (patch) | |
tree | 7fd1aa1ee7fe29f8bf0803d9e58c617c7517e47a /bfd | |
parent | e01efe68d406d3927bed0c538f0ed46def332a85 (diff) | |
download | gdb-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')
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/elf64-ppc.c | 7 |
2 files changed, 11 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 538864d..f00c337 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2012-06-26 Alan Modra <amodra@gmail.com> + + * 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. + 2012-06-22 Roland McGrath <mcgrathr@google.com> * elf.c (assign_file_positions_for_non_load_sections): Define 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; |