This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [www-patch] Testing C++ changes


On 27 Nov, Jason Merrill wrote:
> On Wed, 26 Nov 2003 01:40:06 +0100 (CET), Volker Reichelt <reichelt@igpm.rwth-aachen.de> 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.

Oops. Sure.

>> +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.

Yup.

>> +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++
> 
> Jason

Thanks for looking into this.
Here's an updated version inspired by your suggestions.

Regards,
Volker


Index: contribute.html
===================================================================
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
 else.</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
 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
-accomplish this.</p>
+native configuration, running</p>
+<blockquote><pre>
+make bootstrap
+make -k check
+</pre></blockquote>
+<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>
+<blockquote><pre>
+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
+</pre></blockquote>
 
-<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
===================================================================



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]