[Development] two questions about the build system of Qt

Cor-Paul Bezemer cpbezemer at gmail.com
Tue Nov 29 21:41:04 CET 2016


Thanks Thiago!

On Tue, Nov 29, 2016 at 3:37 PM, Thiago Macieira <thiago.macieira at intel.com>
wrote:

> On terça-feira, 29 de novembro de 2016 12:14:55 PST Thiago Macieira wrote:
> > > 2. The target for .obj/qgrayraster.o in the Makefile in qtbase/src/gui
> has
> > > a dependency on .pch/Qt5Gui.gch/c, but we noticed that during the
> build,
> > > the .pch/Qt5Gui.gch/c++ file is also read. Is there a reason why gcc
> would
> > > read the c++ file during the build? E.g. because c and c++ code is
> being
> > > mixed? We do not observe similar behaviour (i.e., the c file being
> read by
> > > g++) for targets that are compiled from .cpp files.
> >
> > I can confirm it with strace. Seems like a bug because there is no C++
> code
> > mixed in for that particular compilation. You should check with GCC
> folks.
>
> Looks like it's normal behaviour. Strace shows:
>
> open("./.pch/Qt5Gui.t.gch", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
> open("./.pch/Qt5Gui.t.gch/c++", O_RDONLY|O_NOCTTY) = 4
> open("./.pch/Qt5Gui.t.gch/c", O_RDONLY|O_NOCTTY) = 4
>
> So it's actually reading from the directory and opening all files it finds
> there
> until it finds one that is a valid GCC preprocessor output for the current
> language. Since the buildsystem creates the C++ preprocessed header first
> (more
> files depend on it), it's first in the directory listing.
>
> This is confirmed by running gcc with -H option. It prints:
>
> x ./.pch/Qt5Gui.t.gch/c++
> ! ./.pch/Qt5Gui.t.gch/c
>
> Its documentation says:
>
> '-H'
>      Print the name of each header file used, in addition to other
>      normal activities.  Each name is indented to show how deep in the
>      '#include' stack it is.  Precompiled header files are also printed,
>      even if they are found to be invalid; an invalid precompiled header
>      file is printed with '...x' and a valid one with '...!' .
>
> --
> Thiago Macieira - thiago.macieira (AT) intel.com
>   Software Architect - Intel Open Source Technology Center
>
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20161129/d4c8a202/attachment.html>


More information about the Development mailing list