This is the mail archive of the
mailing list for the GCC project.
Re: [www-patch] Testing C++ changes
- From: Volker Reichelt <reichelt at igpm dot rwth-aachen dot de>
- To: jason at redhat dot com
- Cc: gcc-patches at gcc dot gnu dot org, giovannibajo at libero dot it, gerald at pfeifer dot com,mark at codesourcery dot com, tromey at redhat dot com, gdr at integrable-solutions dot net,toa at pop dot agri dot ch, gcc at gcc dot gnu dot org
- Date: Wed, 26 Nov 2003 15:35:17 +0100 (CET)
- Subject: Re: [www-patch] Testing C++ changes
- Reply-to: Volker Reichelt <reichelt at igpm dot rwth-aachen dot de>
On 27 Nov, Jason Merrill wrote:
> On Wed, 26 Nov 2003 01:40:06 +0100 (CET), Volker Reichelt <email@example.com> wrote:
>> +cd gcc
>> +make cc1plus [.exe for cygwin] # build C++ compiler
>> +cd ..
>> +make clean-target-libstdc++-v3 all-target-libstdc++-v3 # rebuild libstdc++
> This breaks with parallel make; it will try to both clean and build
> libstdc++ at the same time.
>> +cd gcc/libjava
> The libjava directory isn't under gcc.
Sorry. I should have checked more carefully...
>> +make clean-nat all # rebuild libjava
> This has the same problem as above.
>> +cd ..
>> +make check-g++ # run C++ testsuite
> And you are neglecting to run the libstdc++ testsuite.
Sorry. Giovanni told me that this is not necessary. But given Gerald's
patch, I think you're right.
> FWIW, I do
> $ rm -rf */libstdc++-v3
Wouldn't "make clean-target-libstdc++-v3" be enough?
> $ test -d */libjava && make -C */libjava clean-nat
> $ make all-target-libstdc++-v3 all-target-libjava
> $ make -k check-c++
Thanks for looking into this.
Here's an updated version inspired by your suggestions.
RCS file: /cvs/gcc/wwwdocs/htdocs/contribute.html,v
retrieving revision 1.56
diff -u -r1.56 contribute.html
--- contribute.html 17 Nov 2003 15:37:22 -0000 1.56
+++ contribute.html 26 Nov 2003 13:18:16 -0000
@@ -87,18 +87,35 @@
regression tests to ensure that your patch does not break anything
+<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
libraries included with it, on at least one target. You must
bootstrap all languages, not just C. You must also run all of the
testsuites included with GCC and its runtime libraries. For a normal
-native configuration, running <code>make bootstrap</code> followed by
-<code>make -k check</code> from the top level of the GCC tree
-(<strong>not</strong> the <code>gcc</code> subdirectory) will
+native configuration, running</p>
+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.
+Given that you already did a complete C,C++,Java bootstrap from your build
+directory before, you can use the following:</p>
+make -C gcc cc1plus # (cc1plus.exe for cygwin) build C++ compiler
+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 them
+make -k check-c++ # run C++/libstdc++ testsuite
-<p>If your change is to a front end other than the C front end, or a
-runtime library other than <code>libgcc</code>, you need to verify
+<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
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