public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Re: [www-patch] Testing C++ changes
@ 2003-12-04  4:25 Volker Reichelt
  0 siblings, 0 replies; 6+ messages in thread
From: Volker Reichelt @ 2003-12-04  4:25 UTC (permalink / raw)
  To: jason; +Cc: gcc-patches, giovannibajo, gerald, mark, tromey, gdr, toa, gcc

On 27 Nov, Jason Merrill wrote:

>>> $ rm -rf */libstdc++-v3
>>
>> Wouldn't "make clean-target-libstdc++-v3" be enough?
> 
> Usually.  If there have been configury changes since you last built v3,
> sometimes this breaks.  Reconfiguring v3 doesn't take long, so I find it
> simpler to just remove the directory and start over.

Well, personally I don't like "rm -rf" that much. If you do cut-n-paste
you easily end up with an empty hard disk :-)
I also like "make clean-target-libstdc++-v3" better since it is more portable.
(And if configury has changed, a new bootstrap sounds safer anyway.)
So, I left that untouched in the patch below.

Speaking of portability, having a make-target like
"make clean-nat-target-libjava" instead of
"test -d */libjava && make -C */libjava clean-nat"
would be nice.

>> +make -C gcc cc1plus                               # (cc1plus.exe for cygwin) build C++ compiler
> 
> Also, you don't need this step.  all-gcc is implied by
> all-target-libstdc++-v3.

This is nice. No special case for cygwin.

So, here we go again. OK to commit?

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	4 Dec 2003 02:24:45 -0000
@@ -87,18 +87,34 @@
 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 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
+</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
===================================================================


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [www-patch] Testing C++ changes
  2003-11-26 15:49 Volker Reichelt
  2003-11-26 15:57 ` Jason Merrill
@ 2003-11-26 16:30 ` Giovanni Bajo
  1 sibling, 0 replies; 6+ messages in thread
From: Giovanni Bajo @ 2003-11-26 16:30 UTC (permalink / raw)
  To: Volker Reichelt, jason; +Cc: gcc-patches, gerald, mark, tromey, gdr, toa, gcc

On Wednesday, November 26, 2003 3:35 PM [GMT+1=CET],
Volker Reichelt <reichelt@igpm.rwth-aachen.de> wrote:

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

Well, I read that in a gcc@ thread earlier this year. I actually don't care,
what I care is that we document the full C++ testing procedure, so that it
becomes official that we don't need to do a full bootstrap. Thank you for taking
care of this Volker, and sorry for the noise.

Giovanni Bajo


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [www-patch] Testing C++ changes
  2003-11-26 15:49 Volker Reichelt
@ 2003-11-26 15:57 ` Jason Merrill
  2003-11-26 16:30 ` Giovanni Bajo
  1 sibling, 0 replies; 6+ messages in thread
From: Jason Merrill @ 2003-11-26 15:57 UTC (permalink / raw)
  To: Volker Reichelt
  Cc: gcc-patches, giovannibajo, gerald, mark, tromey, gdr, toa, gcc

On Wed, 26 Nov 2003 15:35:17 +0100 (CET), Volker Reichelt <reichelt@igpm.rwth-aachen.de> wrote:

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

And I've been at this longer than he has.  :)

>> $ rm -rf */libstdc++-v3
>
> Wouldn't "make clean-target-libstdc++-v3" be enough?

Usually.  If there have been configury changes since you last built v3,
sometimes this breaks.  Reconfiguring v3 doesn't take long, so I find it
simpler to just remove the directory and start over.

> +make -C gcc cc1plus                               # (cc1plus.exe for cygwin) build C++ compiler

Also, you don't need this step.  all-gcc is implied by
all-target-libstdc++-v3.

Jason

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [www-patch] Testing C++ changes
@ 2003-11-26 15:49 Volker Reichelt
  2003-11-26 15:57 ` Jason Merrill
  2003-11-26 16:30 ` Giovanni Bajo
  0 siblings, 2 replies; 6+ messages in thread
From: Volker Reichelt @ 2003-11-26 15:49 UTC (permalink / raw)
  To: jason; +Cc: gcc-patches, giovannibajo, gerald, mark, tromey, gdr, toa, gcc

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
===================================================================


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [www-patch] Testing C++ changes
  2003-11-26  3:28 Volker Reichelt
@ 2003-11-26 12:58 ` Jason Merrill
  0 siblings, 0 replies; 6+ messages in thread
From: Jason Merrill @ 2003-11-26 12:58 UTC (permalink / raw)
  To: Volker Reichelt
  Cc: gcc-patches, giovannibajo, gerald, mark, tromey, gdr, toa, gcc

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.

> +cd gcc/libjava

The libjava directory isn't under gcc.

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

FWIW, I do

$ rm -rf */libstdc++-v3
$ test -d */libjava && make -C */libjava clean-nat
$ make all-target-libstdc++-v3 all-target-libjava
$ make -k check-c++

Jason

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [www-patch] Testing C++ changes
@ 2003-11-26  3:28 Volker Reichelt
  2003-11-26 12:58 ` Jason Merrill
  0 siblings, 1 reply; 6+ messages in thread
From: Volker Reichelt @ 2003-11-26  3:28 UTC (permalink / raw)
  To: gcc-patches; +Cc: giovannibajo, gerald, mark, tromey, jason, gdr, toa, gcc

Hi,

here's a more elaborate version than in

http://gcc.gnu.org/ml/gcc/2003-11/msg01203.html

of how to test changes to the C++ front end.
The credits for writing down the commands go to Giovanni Bajo,
I only did the XHTMLification.

The patch also changes the layout of the C section to match the
C++ paragraph.

Is this OK?

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 00:30:36 -0000
@@ -87,18 +87,38 @@
 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>
+cd gcc
+make cc1plus    [.exe for cygwin]                      # build C++ compiler
+cd ..
+make clean-target-libstdc++-v3 all-target-libstdc++-v3 # rebuild libstdc++
+cd gcc/libjava
+make clean-nat all                                     # rebuild libjava
+cd ..
+make check-g++                                         # run C++ 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


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2003-12-04  2:36 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-12-04  4:25 [www-patch] Testing C++ changes Volker Reichelt
  -- strict thread matches above, loose matches on Subject: below --
2003-11-26 15:49 Volker Reichelt
2003-11-26 15:57 ` Jason Merrill
2003-11-26 16:30 ` Giovanni Bajo
2003-11-26  3:28 Volker Reichelt
2003-11-26 12:58 ` Jason Merrill

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).