El domingo, 28 de octubre de 2018 08:32:07 -03 Dmitry Shachnev escribió:
> I want to follow-up on this bug discussing the future handling of this
> issue, mostly for my co-maintainers.
>
Hi!
> On Sun, Sep 09, 2018 at 05:47:28PM +0300, Dmitry Shachnev wrote:
> > As the changes in qtbase-opensource-src itself were minimal between the
> > two
> > uploads, it looks like this bug is caused by a dependency update.
> >
> > Here is what changed in llvm-toolchain-6.0 between the good and broken
> > qtbase builds [3]. This does not give me any clue though.
> > [...]
> >
> > [3]:
> > https://salsa.debian.org/pkg-llvm-team/llvm-toolchain/compare/debian%2F6.
> > 0.1-2...debian%2F6.0.1-5
> Answering my own question: it turned out that it was caused by
> llvm-toolchain maintainers dropping the force-gcc-header-obj.diff patch
> [1]. That patch was adding GCC’s include path to clang default search
> paths.
>
> How this is related to qdoc: as qdoc parses C++ files, it needs all headers
> to be present, including the C++ standard library headers. We need to make a
> decision on what headers we will use. There are two choices here:
>
> Choice 1: Use clang standard library (libclang-common-*-dev).
>
> This is what upstream uses (the path to that library is built into qdoc
> executable [2]).
>
> ➕: No patches needed.
> ➖: qttools5-dev-tools will need to depend on the headers package it was
> built against. E.g. from the latest build log you can see that it was built
> with -D'CLANG_RESOURCE_DIR="/usr/lib/llvm-6.0/lib/clang/6.0.1/include"'.
> That means it should depend on libclang-common-6.0-dev.
> ➖: Every time the major clang version changes, we should rebuild qttools.
This are non-go from a maintainability point of view. LLVM is API unstable,
depending on it means lots of problems for us.
> Choice 2: Use GCC standard library (libstdc++-*-dev).
>
> ➕: No additional dependencies or rebuilds are needed. During package builds
> the GCC standard library will be always installed.
> ➖: This will require a patch to add GCC library path to clang search paths.
> Currently I have a patch [3] in qttools to add that, but the logic can
> be moved to qtbase (namely to mkspecs/features/qt_docs.prf).
> ➖: Clang emits more warnings when used with the GCC standard library.
> I don‘t know how reliable such a combination is, maybe in future some of
> these warnings will become errors.
>
> For now I went with choice 2, but my changes need to be reverted anyway,
> as it is better when the logic is at runtime (in the .prf file).
Right thing to do, yes. And thanks a lot for the work!
> Alternatively, we can modify choice 1 and move the clang detection logic
> from build-time to run-time. However to make that possible, qdoc will need
> to depend on llvm package because it provides llvm-config executable. This
> is a larger build dependency: in a clean chroot installing
> libclang-common-6.0-dev will use 140 MB of disk space, but installing llvm
> + clang will use 205 MB of space.
Normally qdoc will be called at $some_package build time, so it's either the
developer or a buildd's machine space, so that's just fine.
Again, thanks *a lot*.
--
14: Para acceder y navegar en internet
* Debe tener conexion a Internet
Damian Nadales
http://mx.grulic.org.ar/lurker/message/20080307.141449.a70fb2fc.es.html
Lisandro Damián Nicanor Pérez Meyer
http://perezmeyer.com.ar/
http://perezmeyer.blogspot.com/
Attachment:
signature.asc
Description: This is a digitally signed message part.