KDE Applications 17.08.1 packages available for packagers
Friedrich W. H. Kossebau
kossebau at kde.org
Tue Sep 5 14:07:25 UTC 2017
Am Dienstag, 5. September 2017, 10:51:43 CEST schrieb Ben Cooksley:
> Minuet fails because it does not use ECM, and is therefore not
> building with ASAN enabled. Because ASAN is contagious and Frameworks
> is built with ASAN enabled, Minuet fails to compile. A similar issue
> impacts Marble (which is disabled on the FreeBSD CI as it causes
> issues for the Dependency Build jobs which the whole system depends on
> to function properly).
>
> There are only two fixes for this: 1) Using ECM in both of those
> projects or 2) Fixing Frameworks/ECM to pass along the enablement of
> ASAN to anything which uses Frameworks.
>
> This is not a compile time issue on Linux due to how ASAN works on
> Linux (however the binaries produced won't be usable unless ASAN is
> injected into the binary using LD_PRELOAD)
There is a third fix option:
Fixing ECM code to support the dynamic lib option with ASAN also with clang as
compiler, instead of resulting in different behaviour (gcc using -shared-
libasan, clang not) which in the aftermath then prevents LD_PRELOAD injection
from helping on freebsd.
>From https://github.com/google/sanitizers/wiki/AddressSanitizer
Q: When I link my shared library with -fsanitize=address, it fails due to
some undefined ASan symbols (e.g. asan_init_v4)?
A: Most probably you link with -Wl,-z,defs or -Wl,--no-undefined. These
flags don't work with ASan unless you also use -shared-libasan (which is the
default mode for GCC, but not for Clang).
Right now https://cgit.kde.org/extra-cmake-modules.git/tree/modules/
ECMEnableSanitizers.cmake#n164 only tries to dump (half of) the conflicting
linker flags in case of clang, where instead it should possibly see to add the
flag -shared-libasan. Though that might mean some juggling with supported
clang versions, which made me stay away from trying to propose a fix (besides
not having that much clue about ASan and clang :) ).
Cheers
Friedrich
More information about the release-team
mailing list