From 6ec49e7c0aeb6d98e379319b565aee2c89388615 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 18 Nov 2016 09:27:41 +0000 Subject: [PATCH] Help diagnose problems with the metag target when mixing static and shared binaries. PR ld/20675 * elf32-metag.c (elf_metag_relocate_section): Replace abort with an informative error message. --- bfd/ChangeLog | 6 ++++++ bfd/elf32-metag.c | 11 +++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index fcc5b1c..b96b939 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2016-11-18 Nick Clifton + + PR ld/20675 + * elf32-metag.c (elf_metag_relocate_section): Replace abort with + an informative error message. + 2016-11-15 Senthil Kumar Selvaraj PR ld/20789 diff --git a/bfd/elf32-metag.c b/bfd/elf32-metag.c index 1557a37..ac78324 100644 --- a/bfd/elf32-metag.c +++ b/bfd/elf32-metag.c @@ -1820,7 +1820,7 @@ elf_metag_relocate_section (bfd *output_bfd, } if (tls_type == GOT_UNKNOWN) - abort(); + abort (); if ((off & 1) != 0) off &= ~1; @@ -1880,7 +1880,14 @@ elf_metag_relocate_section (bfd *output_bfd, else { /* We don't support changing the TLS model. */ - abort (); + /* PR 20675 */ + if (bfd_link_pic (info)) + _bfd_error_handler (_("%B(%A): multiple TLS models are not supported"), + input_bfd, input_section, name); + else + _bfd_error_handler (_("%B(%A): shared library symbol %s encountered whilst performing a static link"), + input_bfd, input_section, name); + return FALSE; } cur_off += 8; -- 2.7.4