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/
signature.asc
Description: This is a digitally signed message part.