On Sat, Jan 4, 2020 at 10:54 AM Albert Astals Cid <[email protected]> wrote: > > El divendres, 3 de gener de 2020, a les 10:01:50 CET, Ben Cooksley va > escriure: > > On Thu, Jan 2, 2020 at 9:39 AM Michail Vourlakos <[email protected]> > > wrote: > > > > > > https://phabricator.kde.org/source/latte-dock/browse/master/app/FakeTarget.cmake > > > > > > Can you please make a PR because I am not that sure I understand what I > > > need to change in it > > > > Sorry, CMake is a bit beyond me in this case. > > We would be wanting to change line 16 in this case, to see if > > ECM_ENABLE_SANITIZERS is empty (because if it isn't, we shouldn't be > > running qmllint). > > > > Does anyone on the development list know of the best way to tackle this? > > > > (Background to this: qmllint is a application shipped with Qt, and > > thus not built with ASAN, but our libraries are built with ASAN so > > trying to run qmllint on the CI system will always fail. You can > > workaround this on Linux by forcibly injecting ASAN into the process > > using LD_PRELOAD but ASAN is statically linked on FreeBSD, so it is > > impossible to workaround there) > > You mean there's no dynamic library ASAN at all in FreeBSD?
That is correct, ASAN is statically linked on FreeBSD. I'm not sure if that is because of the way they've decided to package ASAN, or if it because that is the way that Clang does it. I'm inclined to think it is Clang, because even on Linux/GCC if you try to run an executable that isn't linked to ASAN, but which does use a library that is linked to ASAN, then it will abort on you with a message about ASAN needing to be loaded first (before anything else is loaded) That is why Kirigami and Marble have the "force-inject-asan" flag set in their Build Specifications on the CI system to make their tests pass - because Kirigami reiies on tools shipped with Qt itself (and we use distribution Qt), and Marble doesn't use ECM (so the necessary flags never get passed to the compiler - Marble also doesn't build on FreeBSD due to this). We don't set that flag globally because Skrooge relies on Java for some of it's unit tests, and Java really does not like ASAN being injected into it (it crashes). > > Cheers, > Albert Cheers, Ben > > > > > Cheers, > > Ben > > > > > > > > Στις Τετ, 1 Ιαν 2020, 10:30 μ.μ. ο χρήστης Ben Cooksley > > > <[email protected]> έγραψε: > > >> > > >> On Thu, Jan 2, 2020 at 7:25 AM Michail Vourlakos <[email protected]> > > >> wrote: > > >> > > > >> > found in the Internet that the CMake command should contain: > > >> > > > >> > > > >> > cmake ........... -DCMAKE_BUILD_TYPE=Release > > >> > > > >> > > >> Because we are running a CI system, and therefore want tests with full > > >> asserts enabled, we use a build type of Debug. > > >> I haven't seen the qmllint failures elsewhere, mind linking me to > > >> where to find app/FakeTarget.cmake? > > >> > > >> If it is part of Latte Dock, you'll need to change it to skip qmllint > > >> when ASAN support is enabled (which is controlled by > > >> -DECM_ENABLE_SANITIZERS being passed to CMake) > > >> > > >> Cheers, > > >> Ben > > >> > > >> > > > >> > Στις Τετ, 1 Ιαν 2020 στις 8:16 μ.μ., ο/η Ben Cooksley > > >> > <[email protected]> έγραψε: > > >> >> > > >> >> Hi Michail, > > >> >> > > >> >> A while back when we upgraded things on FreeBSD, one of the > > >> >> unfortunate casualties of this process was the Latte Dock builds on > > >> >> that platform, which now fail with a ASAN related error. > > >> >> > > >> >> (See > > >> >> https://build.kde.org/job/Extragear/job/latte-dock/job/stable-kf5-qt5%20FreeBSDQt5.13/99/console) > > >> >> > > >> >> Examining the build log, I note that it looks like you are running > > >> >> `qmllint` as part of the final steps before linking the executable. > > >> >> > > >> >> Could you confirm whether this is the case? > > >> >> > > >> >> Cheers, > > >> >> Ben > > > > > >
