Warn for ar/nm/ranlib/ld on lto objects without plugin
authorAlan Modra <amodra@gmail.com>
Mon, 28 Jul 2014 12:48:25 +0000 (22:18 +0930)
committerAlan Modra <amodra@gmail.com>
Mon, 28 Jul 2014 13:03:55 +0000 (22:33 +0930)
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.

bfd/ChangeLog
bfd/archive.c
bfd/linker.c
binutils/ChangeLog
binutils/nm.c

index f187761..9444812 100644 (file)
@@ -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*.
index 1c3ad52..40a3395 100644 (file)
@@ -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);
index f6ae4e2..5ad7988 100644 (file)
@@ -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;
 
index 58d6984..cf01c90 100644 (file)
@@ -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
index 2a44a84..ecd147e 100644 (file)
@@ -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)