Richard Guenther <[email protected]> writes:
>> Still doesn't work for me if compiling and linking manually with GNU ld
>> 2.21 on Solaris 11/x86: no .res file is being created, although
>> liblto_plugin.so is used.
>
> "Work" as in, it detects if -fuse-linker-plugin is enabled by default.
> Which it isn't for you?
I'm using gld 2.21, and -flto automatically uses the linker plugin, as
seen with -v. Despite that, -plugin-opt=-fresolution=ldl.res is passed
to collect2/ld, but no ldl.res file is created. In truss, I see a stat
of that file, but nothing more.
>> > Eventually scanning -v output for '-plugin' is better.
>>
>> This can only work if we make sure that -plugin is only passed to
>> linkers that properly handle it.
>
> Sure, but your version check patch part would ensure that, if not
> overridden by -fuse-linker-plugin.
No, -fuse-linker-plugin wouldn't override here: that option is only
accepted if we know that the linker has *some* -plugin support.
>> Why do you say so? The tri-state solution I've outlined only disables it
>> completely for non-GNU linkers. The plugin is used automatically for
>> gld/gold 2.21+ and for gold 2.20* if -fuse-linker-plugin is given.
>>
>> I don't see the `almost everyone' here, on the contrary: the situation
>> is identical to what we have now, with the exception that we don't try
>> to pass -plugin to linkers we don't know they can somehow (even with
>> restrictions) handle it. That's what PR lto/46944 is primarily about.
>
> Can you update your patch with the tri-state solution?
Sure if the solution is deemed acceptable. There isn't much point in
following that route if you see problems up front.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University