Faster linking (-gsplit-dwarf, gold/lld, --gdb-index)
Stephan Bergmann
sbergman at redhat.com
Wed Oct 10 11:30:02 UTC 2018
On 10/10/2018 12:57, Luboš Luňák wrote:
> On Thursday 04 of October 2018, Stephan Bergmann wrote:
>> On 04/07/2018 17:37, Luboš Luňák wrote:
>>> I've changed --enable-gold to --enable-ld=<linker>, because I've found
>>> out that LLVM besides Clang provides also a linker called lld, and lld at
>>> least in version 6 actually performs even better than gold (4s vs gold's
>>> 6-7s). There are some caveats though:
>>> * lld6 crashes sometimes and needs [1] (openSUSE users,
>>> devel:tools:compiler/libLLVM6 has it)
>>> * Valgrind can't handle lld's debuginfo and needs [2] and [3], or
>>> passing --no-rosegment to lld, see
>>> https://bugs.kde.org/show_bug.cgi?id=384727 (openSUSE users,
>>> home:llunak:my/valgrind has them)
>>
>> and lld doesn't understand --dynamic-list-cpp-typeinfo, which we add for
>> sanitizer (ASan/UBSan) builds in solenv/gbuild/platform/unxgcc.mk
>
>
> That's a very corner case and as far as I understand it that's in the
> workaround-for-workaround category (either we're doing something wrong, or
> the sanitizers shouldn't require options that make them work just as a
> side-effect). So I take it this problem is sufficiently solved either by
> ignoring it, or by adding a check to --enable-ld ?
The underlying issue is that the internals of Clang's UBSan use the
Itanium ABI's notion of type equality (checking for RTTI pointer
equivalence), not GCC's weaker notion (checking for RTTI string
equivalence). That requires some adjustments when building LO for
UBSan, to make sure RTTI for types used across library boundaries gets
exported from libraries. I don't think we are doing anything inherently
"right" or "wrong" here.
If you plan to make choice of --enable-ld=... implicit in configure.ac,
then yes, please do so in a way that verifies that the implicitly chosen
linker supports --dynamic-list-cpp-typeinfo if that will be needed by
the build's solenv/gbuild/platform/unxgcc.mk.
More information about the LibreOffice
mailing list