diff options
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf64-ppc.c | 5 |
2 files changed, 9 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 04e60a8..73605d7 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,10 @@ 2014-10-21 Alan Modra <amodra@gmail.com> + * elf64-ppc.c (ppc64_elf_tls_optimize): Ignore relocs against toc + entries that aren't a multiple of 8 rather than failing assertion. + +2014-10-21 Alan Modra <amodra@gmail.com> + * elf64-ppc.c (ppc64_elf_size_stubs): Add gcc-4.9 libgomp functions to thread_starter. diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index e3c06eb..0b65ab1 100644 --- a/bfd/elf64-ppc.c +++ b/bfd/elf64-ppc.c @@ -8343,7 +8343,10 @@ ppc64_elf_tls_optimize (struct bfd_link_info *info) else value = sym->st_value; value += rel->r_addend; - BFD_ASSERT (value < toc->size && value % 8 == 0); + if (value % 8 != 0) + continue; + BFD_ASSERT (value < toc->size + && toc->output_offset % 8 == 0); toc_ref_index = (value + toc->output_offset) / 8; if (r_type == R_PPC64_TLS || r_type == R_PPC64_TLSGD |