On 12 June 2010 01:27, Richard Guenther <richard.guent...@gmail.com> wrote:
> On Fri, Jun 11, 2010 at 9:41 PM, Manuel López-Ibáñez
> <lopeziba...@gmail.com> wrote:
>> On 11 June 2010 20:48, Cary Coutant <ccout...@google.com> wrote:
>>>> But if I understand correctly, mixed LTO/non-LTO + whole-program is
>>>> almost never correct. So we should really emit a warning for this
>>>> specific combination. I think making this mistake would be quite easy
>>>> but hard to debug.
>>>
>>> It's not only correct, it's essential. "Whole Program" doesn't mean
>>> that the compiler has to see all the IR for the whole program.
>>> Instead, the compiler has visibility over the whole program in the
>>> sense that it knows what variables and functions are referenced and
>>> defined by the non-LTO code. Linking your program with non-LTO code is
>>> inescapable unless we start shipping language and system libraries as
>>> archives of objects compiled with -flto (and remove all assembly code
>>> from such libraries).
>>>
>>> The plugin interface was designed to provide this essential
>>> information to the compiler about all the non-LTO code; until Gnu ld
>>> implements this or the collect2 interface provides something similar,
>>> you're simply working with an incomplete implementation, and you'll
>>> have to live with the limitations.
>>
>> This also means that linking your program with non-LTO+whole-program
>> code may lead to miscompilations without any warning, which is really
>> bad. I don't think it is a reasonable limitation and we will get bad
>> press when programs start breaking for users. They won't care (and
>> they won't even listen) about the reasons. The conclusion will be: LTO
>> is broken in GCC, and just use another compiler.
>
> Thank you for this piece of FUD.

I don't believe the above for a second. But I want to have real answer
if I find such assertion in the wild. I think Ian's answer has been
the best so far and I totally agree with his proposal.

Sorry if I conveyed the hypothetical case too literally.

Manuel.

Reply via email to