This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Warn for ar/nm/ranlib/ld on lto objects without plugin
- From: Alan Modra <amodra at gmail dot com>
- To: binutils at sourceware dot org
- Date: Mon, 28 Jul 2014 22:39:23 +0930
- Subject: Warn for ar/nm/ranlib/ld on lto objects without plugin
- Authentication-results: sourceware.org; auth=none
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.
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/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)
--
Alan Modra
Australia Development Lab, IBM