PR22751, LTO broken for libgcc libcalls
authorAlan Modra <amodra@gmail.com>
Sat, 27 Jan 2018 21:33:26 +0000 (08:03 +1030)
committerAlan Modra <amodra@gmail.com>
Sat, 27 Jan 2018 21:59:55 +0000 (08:29 +1030)
commitd580dcc7aac21dc8396e8e90ea6d05ec32d6cbb9
tree9b38fe49bda78422d8c63b8bf19818ce977a5100
parent9a5db26e6d9494e8285d4c177ee3d32292c7a35e
PR22751, LTO broken for libgcc libcalls

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.
ld/ChangeLog
ld/ldlang.c