aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2014-07-28 22:18:25 +0930
committerAlan Modra <amodra@gmail.com>2014-07-28 22:33:55 +0930
commitb794fc1d1c3a3dfb65b74a36fe96c474fee65000 (patch)
tree8ddcf3ad5e531f53a3d9bcdb7033972cfe94b76f
parent774bb79e9b9e192bcecc38da919edffaf9b5d236 (diff)
downloadgdb-b794fc1d1c3a3dfb65b74a36fe96c474fee65000.zip
gdb-b794fc1d1c3a3dfb65b74a36fe96c474fee65000.tar.gz
gdb-b794fc1d1c3a3dfb65b74a36fe96c474fee65000.tar.bz2
Warn for ar/nm/ranlib/ld on lto objects without plugin
PR 13227 bfd/ * archive.c (_bfd_compute_and_write_armap): Warn on adding __gnu_lto_slim to armap. * linker.c (_bfd_generic_link_add_one_symbol): Warn on adding __gnu_lto_slim to linker hash table. binutils/ * nm.c (filter_symbols): Warn on __gnu_lto_slim.
-rw-r--r--bfd/ChangeLog8
-rw-r--r--bfd/archive.c4
-rw-r--r--bfd/linker.c8
-rw-r--r--binutils/ChangeLog5
-rw-r--r--binutils/nm.c4
5 files changed, 28 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index f187761..9444812 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2014-07-28 Alan Modra <amodra@gmail.com>
+
+ PR 13227
+ * archive.c (_bfd_compute_and_write_armap): Warn on adding
+ __gnu_lto_slim to armap.
+ * linker.c (_bfd_generic_link_add_one_symbol): Warn on adding
+ __gnu_lto_slim to linker hash table.
+
2014-07-27 Anthony Green <green@moxielogic.org>
* config.bfd: Add moxie-*-moxiebox*.
diff --git a/bfd/archive.c b/bfd/archive.c
index 1c3ad52..40a3395 100644
--- a/bfd/archive.c
+++ b/bfd/archive.c
@@ -2357,6 +2357,10 @@ _bfd_compute_and_write_armap (bfd *arch, unsigned int elength)
map = new_map;
}
+ if (strcmp (syms[src_count]->name, "__gnu_lto_slim") == 0)
+ (*_bfd_error_handler)
+ (_("%s: plugin needed to handle lto object"),
+ bfd_get_filename (current));
namelen = strlen (syms[src_count]->name);
amt = sizeof (char *);
map[orl_count].name = (char **) bfd_alloc (arch, amt);
diff --git a/bfd/linker.c b/bfd/linker.c
index f6ae4e2..5ad7988 100644
--- a/bfd/linker.c
+++ b/bfd/linker.c
@@ -1642,7 +1642,13 @@ _bfd_generic_link_add_one_symbol (struct bfd_link_info *info,
else if ((flags & BSF_WEAK) != 0)
row = DEFW_ROW;
else if (bfd_is_com_section (section))
- row = COMMON_ROW;
+ {
+ row = COMMON_ROW;
+ if (strcmp (name, "__gnu_lto_slim") == 0)
+ (*_bfd_error_handler)
+ (_("%s: plugin needed to handle lto object"),
+ bfd_get_filename (abfd));
+ }
else
row = DEF_ROW;
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 58d6984..cf01c90 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,8 @@
+2014-07-28 Alan Modra <amodra@gmail.com>
+
+ PR 13227
+ * nm.c (filter_symbols): Warn on __gnu_lto_slim.
+
2014-07-07 Nick Clifton <nickc@redhat.com>
* readelf.c (get_symbol_type): Revert accidental change to
diff --git a/binutils/nm.c b/binutils/nm.c
index 2a44a84..ecd147e 100644
--- a/binutils/nm.c
+++ b/binutils/nm.c
@@ -434,6 +434,10 @@ filter_symbols (bfd *abfd, bfd_boolean is_dynamic, void *minisyms,
if (sym == NULL)
bfd_fatal (bfd_get_filename (abfd));
+ if (strcmp (sym->name, "__gnu_lto_slim") == 0)
+ non_fatal (_("%s: plugin needed to handle lto object"),
+ bfd_get_filename (abfd));
+
if (undefined_only)
keep = bfd_is_und_section (sym->section);
else if (external_only)