This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] gcc parallel make check
- From: Tobias Burnus <burnus at net-b dot de>
- To: VandeVondele Joost <joost dot vandevondele at mat dot ethz dot ch>, Jakub Jelinek <jakub at redhat dot com>
- Cc: David Malcolm <dmalcolm at redhat dot com>, Mike Stump <mikestump at comcast dot net>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>, "fortran at gcc dot gnu dot org" <fortran at gcc dot gnu dot org>, "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 11 Sep 2014 21:23:05 +0200
- Subject: Re: [PATCH] gcc parallel make check
- Authentication-results: sourceware.org; auth=none
- References: <908103EDB4893A42920B21D3568BFD93150F7F45 at MBX23 dot d dot ethz dot ch> <908103EDB4893A42920B21D3568BFD93150F816B at MBX23 dot d dot ethz dot ch> <229476F6-B901-4C6E-AE0B-3A53521AE996 at comcast dot net> <1410381512 dot 28338 dot 9 dot camel at surprise> <20140910210822 dot GK17454 at tucnak dot redhat dot com> <20140910212334 dot GL17454 at tucnak dot redhat dot com> <20140911075123 dot GN17454 at tucnak dot redhat dot com> <20140911080640 dot GP17454 at tucnak dot redhat dot com> <20140911145300 dot GR17454 at tucnak dot redhat dot com> <908103EDB4893A42920B21D3568BFD93150F876D at MBX23 dot d dot ethz dot ch>,<20140911172637 dot GT17454 at tucnak dot redhat dot com> <908103EDB4893A42920B21D3568BFD93150F8797 at MBX23 dot d dot ethz dot ch>
On 11.09.2014 20:33, VandeVondele Joost wrote:
>For PR56408 we need some fix.
BTW, is there anything special about Fortran ? There are at least 180 test files that contain 'dg-additional-sources' some in a very non-local way:
Well, the question is what you want to do with the different files. If
you just want to compile them, e.g. for linking or executing, you are
fine. However, with Fortran module's there is a .mod file produced –
which gives an ordering constraint: The file with the module has to be
compiled first before the other file can be compiled. (If one puts the
module into the same file, one has effectively one translation unit and
some bugs do not pop up in this case.)
The current scheme comes at its limits in that case. Mainly because the
file specified in dg-additional-sources is compiled after the one in
which this line is written. That can be fine for linking/run-time tests,
where one disables the by-itself compilation of the second file - and
puts the module into the first file. However, as soon as one wants to do
more, e.g. dg-error/dg-warning output, checking the dump/assembler etc.,
one is in trouble. See the files listed in the PR for issues.
By contrast, for C/C++, one has a header file which is included by the
preprocessor (hence before the compiler), thus, there is no ordering
issue as no compiler input is generated. I don't know whether one could
run into issues with precompiled header files - but there on has at
least the different name *.h/*.hpp and *.c/.cc. I don't know about Ada
or C++'s upcoming ISO-version of precompiled headers ("modules"), maybe
there one runs into similar issues?
See the PR for some attempts to fix it.