So what was happening was that the file added from libgcc.a during the
rescan was not put on file_chain. map_input_to_output_sections then
doesn't see the file and its sections are treated as discarded.
The file_chain list pointer bug was caused by that fact that an
archive element claimed by the plugin does not have my_archive set.
Or more correctly, the actual archive element does have my_archive
set, but this bfd is replaced with a dummy bfd that doesn't have
my_archive set.
PR 22751
* ldlang.c (find_rescan_insertion): Look past bfds with claim_archive
set.
+2018-01-28 Alan Modra <amodra@gmail.com>
+
+ PR 22751
+ * ldlang.c (find_rescan_insertion): Look past bfds with claim_archive
+ set.
+
2018-01-26 Maciej W. Rozycki <macro@mips.com>
* emulparams/elf32mipswindiss.sh (EXTRA_EM_FILE): Set to
for (iter = before ? &before->next : &file_chain.head->input_statement.next;
*iter != NULL;
iter = &(*iter)->input_statement.next)
- if ((*iter)->input_statement.the_bfd->my_archive == NULL)
+ if (!(*iter)->input_statement.flags.claim_archive
+ && (*iter)->input_statement.the_bfd->my_archive == NULL)
break;
return iter;