PATCH: 2 stage BFD linker for LTO plugin
Dave Korn
dave.korn.cygwin@gmail.com
Mon Dec 6 16:59:00 GMT 2010
On 06/12/2010 02:20, H.J. Lu wrote:
>>>>> BTW, the new linker passed bootstrap-lto with all default languages.
>>>>> I am planning to include this patch in the next Linux binutils.
>>>>>
>>>> I missed the IR object in an archive:
>>>>
>>>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42690#c34
>>>>
>>>> This updated patch fixed it. OK for trunk?
>>>>
>>> We shouldn't clear SEC_EXCLUDE if BFD_PLUGIN is set:
>>>
>>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42690#c38
>>>
>>> This updated patch fixed it. OK for trunk?
>>>
>> It turns out that my patch also fixes:
>>
>> http://sourceware.org/bugzilla/show_bug.cgi?id=12277
>>
>
> Updated patch, adjusted for plugin ELF symbol visibility bug fix.
> OK for trunk?
Well, I reckon this patch is great (but don't have the approval rights).
It's passed an lto-bootstrap of gcc on i686-pc-cygwin and the tests are well
underway without anything abnormal showing up.
> + /* Free the old already linked table and create a new one. */
> + bfd_section_already_linked_table_free ();
> + if (!bfd_section_already_linked_table_init ())
> + einfo (_("%P%F: Failed to create hash table\n"));
> +
> + /* Free the old hash table and create a new one. */
> + bfd_link_hash_table_free (link_info.output_bfd,
> + link_info.hash);
> + link_info.hash
> + = bfd_link_hash_table_create (link_info.output_bfd);
> + if (link_info.hash == NULL)
> + einfo (_("%P%F: can not create hash table: %E\n"));
If I had known that there was really this little stored state to be unwound
and regenerated, I would have wanted to do it this way in the first place.
> +typedef struct cmdlin_header_struct
Typo there.
Tristan, sorry, you must be sick of hearing from me by now, but I notice the
branch was still labile a couple of hours ago... it would be really good if we
could get HJ's patch approved and backported before you spin the release.
cheers,
DaveK
More information about the Gcc
mailing list