[Bug c/78600] New: gcc reads c++ object file during build for no apparent reason

bezemer at cs dot queensu.ca gcc-bugzilla@gcc.gnu.org
Tue Nov 29 20:39:00 GMT 2016


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78600

            Bug ID: 78600
           Summary: gcc reads c++ object file during build for no apparent
                    reason
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: bezemer at cs dot queensu.ca
  Target Milestone: ---

I am a researcher in a team that is working on build systems and we are doing a
case study on missing dependencies in the Qt 5.3.0 build system. I found
something that we could not explain and I contacted the Qt mailing list... but
I was forwarded to the gcc mailing list because it looks like we detected a bug
in gcc.


My question:
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.

Reply from one of the Qt maintainers:
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.


The target in question:
.obj/qgrayraster.o: painting/qgrayraster.c
../../include/QtGui/5.3.0/QtGui/private/qrasterdefs_p.h \
                painting/qrasterdefs_p.h \
                ../../include/QtGui/5.3.0/QtGui/private/qgrayraster_p.h \
                painting/qgrayraster_p.h \
                .pch/Qt5Gui.gch/c
        $(CC) -c -include .pch/Qt5Gui $(CFLAGS) $(INCPATH) -o
.obj/qgrayraster.o painting/qgrayraster.c


Sorry for not having a shorter working example.


More information about the Gcc-bugs mailing list