This is the mail archive of the
mailing list for the GCC project.
Re: testing policy for C/C++ front end changes
- From: Sandra Loosemore <sandra at codesourcery dot com>
- To: Richard Biener <richard dot guenther at gmail dot com>
- Cc: Jeff Law <law at redhat dot com>, libstdc++ <libstdc++ at gcc dot gnu dot org>, GCC Development <gcc at gcc dot gnu dot org>
- Date: Mon, 10 Nov 2014 08:28:49 -0700
- Subject: Re: testing policy for C/C++ front end changes
- Authentication-results: sourceware.org; auth=none
- References: <545FF50A dot 10402 at codesourcery dot com> <54604425 dot 2000103 at redhat dot com> <CAFiYyc3LHNPB0EMm2bzrhc5+h7wLHiqboe4_6AZgu4pNnEEkwg at mail dot gmail dot com>
On 11/10/2014 05:03 AM, Richard Biener wrote:
On Mon, Nov 10, 2014 at 5:50 AM, Jeff Law <email@example.com> wrote:
On 11/09/14 16:13, Sandra Loosemore wrote:
and noticed that the policy is to require a complete bootstrap for C
changes, but not for C++. Given that GCC's implementation language is
now C++, isn't that backwards? I'm not trying to weasel out of the
extra work for my patch, just curious if the web site guidelines have
gotten bit-rotten after the switch to C++, or if the SC did indeed
consider the issue already and the published policy is accurate.
They've bit-rotted a bit. Interested in cons-ing up an update?
Bootstrap should now be required for both C and C++ FE changes
_and_ for libstdc++ changes as well given we start to pull in
libstdc++ headers during bootstrap.
Hmmmm. How about the attached patch? I also added a blurb about
target-specific patches that I think reflects current practice.
RCS file: /cvs/gcc/wwwdocs/htdocs/contribute.html,v
retrieving revision 1.85
diff -u -p -r1.85 contribute.html
--- htdocs/contribute.html 27 Jun 2014 11:12:18 -0000 1.85
+++ htdocs/contribute.html 10 Nov 2014 15:19:37 -0000
@@ -100,9 +100,13 @@ list</a>.</p>
<h3>Which tests to perform</h3>
<p>If your change is to code that is not in a front end, or is to the
-C front end, you must perform a complete build of GCC and the runtime
+C or C++ front ends or <code>libgcc</code> or <code>libstdc++</code>
+libraries, you must perform a complete build of GCC and the runtime
libraries included with it, on at least one target. You must
-bootstrap all default languages, not just C, and run all testsuites.
+build all default languages, not just C, and run all testsuites.
+If your change is specific to a particular target back end, you need only
+build and test that target; otherwise a complete bootstrap on a
+primary platform designated in the current release criteria is required.
For a normal native configuration, running</p>
@@ -111,19 +115,9 @@ make -k check
<p>from the top level of the GCC tree (<strong>not</strong> the
<code>gcc</code> subdirectory) will accomplish this.</p>
-<p>If your change is to the C++ front end, you should rebuild the compiler,
-<code>libstdc++</code>, <code>libjava</code> and run the C++ testsuite.
-If you already did a complete C,C++,Java bootstrap from your build
-directory before, you can use the following:</p>
-make clean-target-libstdc++-v3 # clean libstdc++ and ...
-test -d */libjava && make -C */libjava clean-nat # ... parts of libjava
-make all-target-libstdc++-v3 all-target-libjava # rebuild compiler and libraries
-make -k check-c++ # run C++/libstdc++ testsuite
<p>If your change is to a front end other than the C or C++ front end,
-or a runtime library other than <code>libgcc</code>, you need to verify
+or a runtime library other than <code>libgcc</code> or
+<code>libstdc++</code>, you need to verify
only that the runtime library for that language still builds and the
tests for that language have not regressed. (Most languages have
tests stored both in the <code>gcc</code> subdirectory, and in the