This is the mail archive of the
binutils-cvs@sourceware.org
mailing list for the binutils project.
[binutils-gdb] Help diagnose problems with the metag target when mixing static and shared binaries.
- From: Nick Clifton <nickc at sourceware dot org>
- To: bfd-cvs at sourceware dot org
- Date: 18 Nov 2016 09:28:28 -0000
- Subject: [binutils-gdb] Help diagnose problems with the metag target when mixing static and shared binaries.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=6ec49e7c0aeb6d98e379319b565aee2c89388615
commit 6ec49e7c0aeb6d98e379319b565aee2c89388615
Author: Nick Clifton <nickc@redhat.com>
Date: Fri Nov 18 09:27:41 2016 +0000
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.
Diff:
---
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 <nickc@redhat.com>
+
+ PR ld/20675
+ * elf32-metag.c (elf_metag_relocate_section): Replace abort with
+ an informative error message.
+
2016-11-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
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;