From e601d38b7cc222345d4128f45db18529b9fb477b Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 25 Oct 2017 15:32:52 +1030 Subject: Allow for __gnu_lto_slim prefixed with extra "_" Some targets prefix global symbols with "_". bfd/ * archive.c (_bfd_compute_and_write_armap): Match "__gnu_lto_slim" optionally prefixed with "_". * linker.c (_bfd_generic_link_add_one_symbol): Likewise. binutils/ * nm.c (filter_symbols): Match "__gnu_lto_slim" optionally prefixed with "_". gold/ * symtab.cc (Symbol_table::add_from_relobj): Match "__gnu_lto_slim" optionally prefixed with "_". ld/ * testsuite/ld-plugin/lto-3r.d: Match "__gnu_lto_v" optionally prefixed with "_". * testsuite/ld-plugin/lto-5r.d: Likewise. --- bfd/archive.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'bfd/archive.c') diff --git a/bfd/archive.c b/bfd/archive.c index 1e87685..0b98df3 100644 --- a/bfd/archive.c +++ b/bfd/archive.c @@ -2411,7 +2411,11 @@ _bfd_compute_and_write_armap (bfd *arch, unsigned int elength) map = new_map; } - if (strcmp (syms[src_count]->name, "__gnu_lto_slim") == 0) + if (syms[src_count]->name[0] == '_' + && syms[src_count]->name[1] == '_' + && strcmp (syms[src_count]->name + + (syms[src_count]->name[2] == '_'), + "__gnu_lto_slim") == 0) _bfd_error_handler (_("%B: plugin needed to handle lto object"), current); -- cgit v1.1