El dissabte, 4 de gener de 2020, a les 8:02:54 CET, Ben Cooksley va escriure:
> 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.

Just being very verborse here, the fact that the library is statically linked 
when compiling doesn't mean that a dynamic version can not also exist, i.e. on 
my system i have both libz.a  and libz.so

> 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).

If we have confirmed with the FreeBSD people that there's no way to get a 
libasan.so we can inject with LD_PRELOAD I only see two options:
 * Build Qt with ASAN
 * Don't build anything with ASAN in FreeBSD

The first may be a huge can of worms though since maybe we need to build other 
stuff that Qt depends on with ASAN, so i guess option two is the solution?

It wouldn't be very terrible since AFAIK we don't have many "FreeBSD only" 
code, or do we?

Cheers,
  Albert

> 
> 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
> > >
> >
> >
> >
> >
> 




Reply via email to