download.html: Mention gcc_update.

2000-07-07  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/download.html:  Mention gcc_update.
	* docs/configopts.html:  Minor updates.
	* docs/gccrebuild.html:  Ditto.
	* docs/18_support/howto.html:  More tips, explanations, and reminders.
	* docs/19_diagnostics/howto.html:  Ditto.
	* docs/21_strings/howto.html:  Ditto.
	* docs/24_iterators/howto.html:  Ditto.
	* docs/25_algorithms/howto.html:  Ditto.
	* docs/26_numerics/howto.html:  Ditto.

From-SVN: r34912
This commit is contained in:
Phil Edwards 2000-07-07 21:13:28 +00:00 committed by Phil Edwards
parent 0e35c34624
commit dd1ee41e67
10 changed files with 255 additions and 68 deletions

View File

@ -1,3 +1,15 @@
2000-07-07 Phil Edwards <pme@sourceware.cygnus.com>
* docs/download.html: Mention gcc_update.
* docs/configopts.html: Minor updates.
* docs/gccrebuild.html: Ditto.
* docs/18_support/howto.html: More tips, explanations, and reminders.
* docs/19_diagnostics/howto.html: Ditto.
* docs/21_strings/howto.html: Ditto.
* docs/24_iterators/howto.html: Ditto.
* docs/25_algorithms/howto.html: Ditto.
* docs/26_numerics/howto.html: Ditto.
2000-07-05 brent verner <brent@rcfile.org>
* testsuite/27_io/ifstream_members.cc (test01): Add tests.

View File

@ -9,7 +9,7 @@
<TITLE>libstdc++-v3 HOWTO: Chapter 18</TITLE>
<LINK REL="home" HREF="http://sourceware.cygnus.com/libstdc++/docs/18_support/">
<LINK REL=StyleSheet HREF="../lib3styles.css">
<!-- $Id: howto.html,v 1.5 1999/12/15 16:57:06 pme Exp $ -->
<!-- $Id: howto.html,v 1.1 2000/04/21 20:33:31 bkoz Exp $ -->
</HEAD>
<BODY>
@ -46,7 +46,48 @@
macro is <EM>not</EM> allowed to be <TT>(void*)0</TT>, which is
often used in C.
</P>
<P>
<P>In g++, NULL is #define'd to be <TT>__null</TT>, a magic keyword
extension of g++.
</P>
<P>The biggest problem of #defining NULL to be something like
&quot;0L&quot; is that the compiler will view that as a long integer
before it views it as a pointer, so overloading won't do what you
expect. (This is why g++ has a magic extension, so that NULL is
always a pointer.)
</P>
<P>In his book
<A HREF="http://cseng.aw.com/bookdetail.qry?ISBN=0-201-92488-9&ptype=0"><EM>Effective C++</EM></A>,
Scott Meyers points out that the best way to solve this problem is to
not overload on pointer-vs-integer types to begin with. He also
offers a way to make your own magic NULL that will match pointers
before it matches integers:
<PRE>
const // this is a const object...
class {
public:
template&lt;class T&gt; // convertible to any type
operator T*() const // of null non-member
{ return 0; } // pointer...
template&lt;class C, class T&gt; // or any type of null
operator T C::*() const // member pointer...
{ return 0; }
private:
void operator&amp;() const; // whose address can't be
// taken (see Item 27)...
} NULL; // and whose name is NULL
</PRE>(Cribbed from the published version of
<A HREF="http://www.awlonline.com/cseng/meyerscddemo/">the
Effective C++ CD</A>, reproduced here with permission.)
</P>
<P>If you aren't using g++ (why?), but you do have a compiler which
supports member function templates, then you can use this definition
of NULL (be sure to #undef any existing versions). It only helps if
you actually use NULL in function calls, though; if you make a call of
<TT>foo(0);</TT> instead of <TT>foo(NULL);</TT>, then you're back
where you started.
</P>
<P>Return <A HREF="#top">to top of page</A> or
<A HREF="../faq/index.html">to the FAQ</A>.
@ -209,7 +250,7 @@
Comments and suggestions are welcome, and may be sent to
<A HREF="mailto:pme@sourceware.cygnus.com">Phil Edwards</A> or
<A HREF="mailto:gdr@egcs.cygnus.com">Gabriel Dos Reis</A>.
<BR> $Id: howto.html,v 1.5 1999/12/15 16:57:06 pme Exp $
<BR> $Id: howto.html,v 1.1 2000/04/21 20:33:31 bkoz Exp $
</EM></P>

View File

@ -9,14 +9,15 @@
<TITLE>libstdc++-v3 HOWTO: Chapter 19</TITLE>
<LINK REL="home" HREF="http://sourceware.cygnus.com/libstdc++/docs/19_diagnostics/">
<LINK REL=StyleSheet HREF="../lib3styles.css">
<!-- $Id: howto.html,v 1.4 1999/12/15 16:57:06 pme Exp $ -->
<!-- $Id: howto.html,v 1.1 2000/04/21 20:33:31 bkoz Exp $ -->
</HEAD>
<BODY>
<H1 CLASS="centered"><A NAME="top">Chapter 19: Diagnostics</A></H1>
<P>Chapter 19 deals with program diagnostics, such as exceptions
and assertions.
and assertions. You know, all the things we wish weren't even
necessary at all.
</P>
@ -26,6 +27,7 @@
<UL>
<LI><A HREF="#1">Adding data to exceptions</A>
<LI><A HREF="#2">Exception class hierarchy diagram</A>
<LI><A HREF="#3">Concept checkers</A>
</UL>
<HR>
@ -65,6 +67,29 @@
<A HREF="../faq/index.html">to the FAQ</A>.
</P>
<HR>
<H2><A NAME="3">Concept checkers</A></H2>
<P>As part of their 3.3 release, SGI added some nifty macros which
perform assertions on type properties. For example, the Standard
requires that types passed as template parameters to <TT>vector</TT>
be &quot;Assignable&quot; (which means what you think it means).
</P>
<P>The concept checkers allow the source code for <TT>vector</TT> to
declare
<PRE>
__STL_CLASS_REQUIRES(_Tp, _Assignable);
</PRE>inside the template. <TT>_Tp</TT> is the element type of the
vector, and <TT>_Assignable</TT> is the concept to be checked (it is
defined in some back-end header files). When you instantiate
<TT>vector&lt;MyType&gt;</TT>, compile-time checking can be done on
whether MyType meets the requirements for vectors.
</P>
<P>This is an extension to the library. This documentation needs updating.</P>
<P>Return <A HREF="#top">to top of page</A> or
<A HREF="../faq/index.html">to the FAQ</A>.
</P>
@ -75,7 +100,7 @@
Comments and suggestions are welcome, and may be sent to
<A HREF="mailto:pme@sourceware.cygnus.com">Phil Edwards</A> or
<A HREF="mailto:gdr@egcs.cygnus.com">Gabriel Dos Reis</A>.
<BR> $Id: howto.html,v 1.4 1999/12/15 16:57:06 pme Exp $
<BR> $Id: howto.html,v 1.1 2000/04/21 20:33:31 bkoz Exp $
</EM></P>

View File

@ -9,7 +9,7 @@
<TITLE>libstdc++-v3 HOWTO: Chapter 21</TITLE>
<LINK REL="home" HREF="http://sourceware.cygnus.com/libstdc++/docs/21_strings/">
<LINK REL=StyleSheet HREF="../lib3styles.css">
<!-- $Id: howto.html,v 1.8 2000/03/20 22:16:21 pme Exp $ -->
<!-- $Id: howto.html,v 1.1 2000/04/21 20:33:31 bkoz Exp $ -->
</HEAD>
<BODY>
@ -165,6 +165,19 @@
here</A>.
</P>
<P>See? Told you it was easy!</P>
<P><B>Added June 2000:</B> The May issue of <U>C++ Report</U> contains
a fascinating article by Matt Austern (yes, <EM>the</EM> Matt Austern)
on why case-insensitive comparisons are not as easy as they seem,
and why creating a class is the <EM>wrong</EM> way to go about it in
production code. (The GotW answer mentions one of the principle
difficulties; this article mentions more.)
</P>
<P>Basically, this is &quot;easy&quot; only if you ignore some things,
things which may be too important to your program to ignore. (I chose
to ignore them when originally writing this entry, and am surprised
that nobody ever called me on it...) The GotW question and answer
remain useful instructional tools, however.
</P>
<P>Return <A HREF="#top">to top of page</A> or
<A HREF="../faq/index.html">to the FAQ</A>.
</P>
@ -284,7 +297,7 @@
Comments and suggestions are welcome, and may be sent to
<A HREF="mailto:pme@sourceware.cygnus.com">Phil Edwards</A> or
<A HREF="mailto:gdr@egcs.cygnus.com">Gabriel Dos Reis</A>.
<BR> $Id: howto.html,v 1.8 2000/03/20 22:16:21 pme Exp $
<BR> $Id: howto.html,v 1.1 2000/04/21 20:33:31 bkoz Exp $
</EM></P>

View File

@ -9,7 +9,7 @@
<TITLE>libstdc++-v3 HOWTO: Chapter 24</TITLE>
<LINK REL="home" HREF="http://sourceware.cygnus.com/libstdc++/docs/24_iterators/">
<LINK REL=StyleSheet HREF="../lib3styles.css">
<!-- $Id: howto.html,v 1.4 1999/12/15 16:57:06 pme Exp $ -->
<!-- $Id: howto.html,v 1.1 2000/04/21 20:33:31 bkoz Exp $ -->
</HEAD>
<BODY>
@ -25,7 +25,7 @@
<H1>Contents</H1>
<UL>
<LI><A HREF="#1">They ain't pointers!</A>
<LI><A HREF="#2">Topic</A>
<LI><A HREF="#2">It ends <EM>where?</EM></A>
</UL>
<HR>
@ -70,7 +70,7 @@
</P>
<HR>
<H2><A NAME="2">Topic</A></H2>
<H2><A NAME="2">It ends <EM>where?</EM></A></H2>
<P>Blah.
</P>
<P>Return <A HREF="#top">to top of page</A> or
@ -87,7 +87,7 @@
Comments and suggestions are welcome, and may be sent to
<A HREF="mailto:pme@sourceware.cygnus.com">Phil Edwards</A> or
<A HREF="mailto:gdr@egcs.cygnus.com">Gabriel Dos Reis</A>.
<BR> $Id: howto.html,v 1.4 1999/12/15 16:57:06 pme Exp $
<BR> $Id: howto.html,v 1.1 2000/04/21 20:33:31 bkoz Exp $
</EM></P>

View File

@ -9,13 +9,13 @@
<TITLE>libstdc++-v3 HOWTO: Chapter 25</TITLE>
<LINK REL="home" HREF="http://sourceware.cygnus.com/libstdc++/docs/25_algorithms/">
<LINK REL=StyleSheet HREF="../lib3styles.css">
<!-- $Id: howto.html,v 1.4 1999/12/15 16:57:06 pme Exp $ -->
<!-- $Id: howto.html,v 1.1 2000/04/21 20:33:31 bkoz Exp $ -->
</HEAD>
<BODY>
<H1 CLASS="centered"><A NAME="top">Chapter 25: Algorithms</A></H1>
<P>Chapter 25 deals with the FORTRAN subroutines for automatically
<P>Chapter 25 deals with the generalized subroutines for automatically
transforming lemmings into gold.
</P>
@ -24,7 +24,7 @@
<HR>
<H1>Contents</H1>
<UL>
<LI><A HREF="#1">Topic</A>
<LI><A HREF="#1">Prerequisites</A>
<LI><A HREF="#2">Topic</A>
</UL>
@ -32,8 +32,40 @@
<!-- ####################################################### -->
<H2><A NAME="1">Topic</A></H2>
<P>Blah.
<H2><A NAME="1">Prerequisites</A></H2>
<P>The neatest accomplishment of the algorithms chapter is that all the
work is done via iterators, not containers directly. This means two
important things:
<OL>
<LI>Anything that behaves like an iterator can be used in one of
these algorithms. Raw pointers make great candidates, thus
built-in arrays are fine containers. So do your own iterators.
<LI>The algorithms do not (and cannot) affect the container as a
whole; only the things between the two iterator endpoints. If
you pass a range of iterators only enclosing the middle third of
a container, then anything outside that range is inviolate.
</OL>
</P>
<P>Even strings can be fed through the algorithms here, although the
string class has specialized versions of many of these functions (for
example, <TT>string::find()</TT>). Most of the examples on this
page will use simple arrays of integers as a playground for
algorithms, just to keep things simple.
<A NAME="Nsize">The use of <B>N</B></A> as a size in the examples is
to keep things easy to read but probably won't be legal code. You can
use wrappers such as those described in the
<A HREF="../23_containers/howto.html">containers chapter</A> to keep
real code readable.
</P>
<P>The single thing that trips people up the most is the definition of
<EM>range</EM> used with iterators; the famous
&quot;past-the-end&quot; rule that everybody loves to hate. The
<A HREF="../24_iterators/howto.html">iterators chapter</A> of this
document has a complete explanation of this simple rule that seems to
cause so much confusion. Once you get <EM>range</EM> into your head
(it's not that hard, honest!), then the algorithms are a cakewalk.
</P>
<P>
</P>
<P>Return <A HREF="#top">to top of page</A> or
<A HREF="../faq/index.html">to the FAQ</A>.
@ -57,7 +89,7 @@
Comments and suggestions are welcome, and may be sent to
<A HREF="mailto:pme@sourceware.cygnus.com">Phil Edwards</A> or
<A HREF="mailto:gdr@egcs.cygnus.com">Gabriel Dos Reis</A>.
<BR> $Id: howto.html,v 1.4 1999/12/15 16:57:06 pme Exp $
<BR> $Id: howto.html,v 1.1 2000/04/21 20:33:31 bkoz Exp $
</EM></P>

View File

@ -9,22 +9,24 @@
<TITLE>libstdc++-v3 HOWTO: Chapter 26</TITLE>
<LINK REL="home" HREF="http://sourceware.cygnus.com/libstdc++/docs/26_numerics/">
<LINK REL=StyleSheet HREF="../lib3styles.css">
<!-- $Id: howto.html,v 1.1 2000/04/21 20:33:32 bkoz Exp $ -->
<!-- $Id: howto.html,v 1.2 2000/06/28 15:14:39 gdr Exp $ -->
</HEAD>
<BODY>
<H1 CLASS="centered"><A NAME="top">Chapter 26: Numerics</A></H1>
<P>
Chapter 26 deals with building block abstractions to aid in numerical
computing:
<UL>
<LI>template data structures such as <TT>valarray&lt;&gt;</TT>,
<TT>complex&lt;&gt;</TT> and
<LI>numerical functions such as <TT>accumulate</TT>;
<TT>inner_product</TT>; <TT>partial_sum</TT> and
<TT>adjacent_difference</TT>.
</UL>
<P>Chapter 26 deals with building block abstractions to aid in
numerical computing:
<UL>
<LI>Template data structures such as <TT>valarray&lt;&gt;</TT>
and <TT>complex&lt;&gt;</TT>.
<LI>Template numerical functions such as <TT>accumulate</TT>;
<TT>inner_product</TT>; <TT>partial_sum</TT> and
<TT>adjacent_difference</TT>.
</UL>
All of the Standard C math functions are of course included in C++,
and overloaded versions for <TT>long</TT>, <TT>float</TT>, and
<TT>long double</TT> have been added for all of them.
</P>
<!-- ####################################################### -->
@ -41,7 +43,21 @@ computing:
<!-- ####################################################### -->
<H2><A NAME="1">Complex Number Processing</A></H2>
<P>Blah.
<P>Using <TT>complex&lt;&gt;</TT> becomes even more comple- er, sorry,
<EM>complicated</EM>, with the not-quite-gratuitously-incompatible
addition of complex types to the C language. David Tribble has
compiled a list of C++89 and C99 conflict points; his description of
C's new type versus those of C++ and how to get them playing together
nicely is
<A HREF="http://home.flash.net/~dtribble/text/cdiffs.htm#C99.complex">here</A>.
</P>
<P><TT>complex&lt;&gt;</TT> is intended to be instantiated with a
floating-point type. As long as you meet that and some other basic
requirements, then the resulting instantiation has all of the usual
math operators defined, as well as definitions of <TT>op&lt;&lt;</TT>
and <TT>op&gt;&gt;</TT> that work with iostreams: <TT>op&lt;&lt;</TT>
prints <TT>(u,v)</TT> and <TT>op&gt;&gt;</TT> can read <TT>u</TT>,
<TT>(u)</TT>, and <TT>(u,v)</TT>.
</P>
<P>Return <A HREF="#top">to top of page</A> or
<A HREF="../faq/index.html">to the FAQ</A>.
@ -49,7 +65,24 @@ computing:
<HR>
<H2><A NAME="2">Array Processing</A></H2>
<P>Blah.
<P>One of the major reasons why FORTRAN can chew through numbers so well
is that it is defined to be free of pointer aliasing, an assumption
that C89 is not allowed to make, and neither is C++. C99 adds a new
keyword, <TT>restrict</TT>, to apply to individual pointers. The C++
solution is contained in the library rather than the language
(although many vendors can be expected to add this to their compilers
as an extension).
</P>
<P>That library solution is a set of two classes, five template classes,
and &quot;a whole bunch&quot; of functions. The classes are required
to be free of pointer aliasing, so compilers can optimize the
daylights out of them the same way that they have been for FORTRAN.
They are collectively called <TT>valarray</TT>, although strictly
speaking this is only one of the five template classes, and they are
designed to be familiar to people who have worked with the BLAS
libraries before.
</P>
<P>Some more stuff should go here once somebody has time to write it.
</P>
<P>Return <A HREF="#top">to top of page</A> or
<A HREF="../faq/index.html">to the FAQ</A>.
@ -57,7 +90,37 @@ computing:
<HR>
<H2><A NAME="3">Numerical Functions</A></H2>
<P>Blah.
<P>There are four generalized functions in the &lt;numeric&gt; header
that follow the same conventions as those in &lt;algorithm&gt;. Each
of them is overloaded: one signature for common default operations,
and a second for fully general operations. Their names are
self-explanatory to anyone who works with numerics on a regular basis:
<UL>
<LI><TT>accumulate</TT>
<LI><TT>inner_product</TT>
<LI><TT>partial_sum</TT>
<LI><TT>adjacent_difference</TT>
</UL>
</P>
<P>Here is a simple example of the two forms of <TT>accumulate</TT>.
<PRE>
int ar[50];
int someval = somefunction();
// ...initialize members of ar to something...
int sum = std::accumulate(ar,ar+50,0);
int sum_stuff = std::accumulate(ar,ar+50,someval);
int product = std::accumulate(ar,ar+50,1,std::multiplies&lt;int&gt;());
</PRE>
The first call adds all the members of the array, using zero as an
initial value for <TT>sum</TT>. The second does the same, but uses
<TT>someval</TT> as the starting value (thus, <TT>sum_stuff == sum +
someval</TT>). The final call uses the second of the two signatures,
and multiplies all the members of the array; here we must obviously
use 1 as a starting value instead of 0.
</P>
<P>The other three functions have similar dual-signature forms.
</P>
<P>Return <A HREF="#top">to top of page</A> or
<A HREF="../faq/index.html">to the FAQ</A>.
@ -72,7 +135,7 @@ computing:
Comments and suggestions are welcome, and may be sent to
<A HREF="mailto:pme@sourceware.cygnus.com">Phil Edwards</A> or
<A HREF="mailto:gdr@egcs.cygnus.com">Gabriel Dos Reis</A>.
<BR> $Id: howto.html,v 1.1 2000/04/21 20:33:32 bkoz Exp $
<BR> $Id: howto.html,v 1.2 2000/06/28 15:14:39 gdr Exp $
</EM></P>

View File

@ -9,7 +9,7 @@
<TITLE>libstdc++-v3 configure options</TITLE>
<LINK REL="home" HREF="http://sourceware.cygnus.com/libstdc++/">
<LINK REL=StyleSheet HREF="lib3styles.css">
<!-- $Id: configopts.html,v 1.3 2000/05/16 17:06:39 pme Exp $ -->
<!-- $Id: configopts.html,v 1.4 2000/05/19 19:55:50 pme Exp $ -->
</HEAD>
<BODY>
@ -114,11 +114,12 @@ options</A></H1>
<DD><P>This is a grueling temporary hack no matter which way you look
at it. It's described in <A HREF="gccrebuild.html">its own
little page</A>. Note that other --enable flags will
interact with this one. As of libstdc++-v3 snapshot 2.90.8,
interact with this one. In libstdc++-v3 snapshot 2.90.8,
this is enabled by default, with DIR
set to <TT> '../..' </TT>, so that building
the complete GCC sources with libstdc++-v3 in place works
transparently.
transparently. Since then, library sources have been merged
into the compiler sources, and this option has been removed.
</P>
<DT><TT>--enable-cxx-flags=FLAGS</TT>
@ -157,7 +158,7 @@ options</A></H1>
<HR>
<P CLASS="fineprint"><EM>
$Id: configopts.html,v 1.3 2000/05/16 17:06:39 pme Exp $
$Id: configopts.html,v 1.4 2000/05/19 19:55:50 pme Exp $
</EM></P>

View File

@ -4,39 +4,39 @@
<H3>Getting the sources by FTP or CVS</H3>
<!-- The <URL:foo> syntax is the standard way of writing such things. No
link to the FTP site is given directly, encouraging mirror usage.
-->
<P>Get the snapshot archive via FTP from
<BLOCKQUOTE>
<A HREF="ftp://sourceware.cygnus.com/pub/libstdc++/">
ftp://sourceware.cygnus.com/pub/libstdc++/
</A>
</BLOCKQUOTE>
You will probably need to use one of the
<TT>&lt;URL:ftp://sourceware.cygnus.com/pub/libstdc++/&gt;</TT>.
You will almost certainly need to use one of the
<A HREF="http://sourceware.cygnus.com/mirrors.html">mirror sites</A>
due to the heavy load on the main server.
due to the extremely heavy load on the main server.
</P>
<P> The master CVS repository for libstdc++-v3 is now a part of the
gcc repository. As such, checking out the <TT>gcc</TT> module includes the
current libstdc++-v3 development sources. To check out libstdc++-v3
only, use <TT>libstdc++-v3</TT> instead of <TT>gcc</TT> as the module.
<P>The master CVS repository for libstdc++-v3 is now a part of the gcc
repository. As such, checking out the <TT>gcc</TT> module includes
the current libstdc++-v3 development sources. To check out
libstdc++-v3 only, use <TT>libstdc++-v3</TT> instead of <TT>gcc</TT>
as the module.
<UL>
<LI>Read only CVS repository available by anonymous CVS. Directions
<A HREF="http://gcc.gnu.org/cvs.html"> here.
</A>
<P>
<LI>Read-Write CVS repository available by authorized CVS via SSH.
Directions <A HREF="http://gcc.gnu.org/cvswrite.html"> here.
</A>
</UL>
<LI>Read-only CVS repository is available by anonymous CVS. Directions
are <A HREF="http://gcc.gnu.org/cvs.html">here</A>. You can also
use anonymous CVS from one of the mirrors of the CVS repository.
<LI>Read-write CVS repository is available by authorized CVS via SSH.
Directions are <A HREF="http://gcc.gnu.org/cvswrite.html">here</A>.
</UL>
</P>
<P>One you have the GCC sources checked out over CVS, you can use the
<TT>contrib/gcc_update</TT> script to retrieve the latest changes, and
automatically update the timestamps of certain files. With the
timestamps updated, you won't need autoconf or the other tools (unless
you make changes, obviously).
</P>
<p>You can also
<P>You can also
<A HREF="http://gcc.gnu.org/cgi-bin/cvsweb.cgi/libstdc++-v3?cvsroot=gcc">browse
the CVS repository over the web</A>.
the CVS repository over the web</A>.
</P>

View File

@ -9,7 +9,7 @@
<TITLE>How to automatically rebuild libgcc.a.</TITLE>
<LINK REL="home" HREF="http://sourceware.cygnus.com/libstdc++/">
<LINK REL=StyleSheet HREF="lib3styles.css">
<!-- $Id: gccrebuild.html,v 1.2 2000/05/03 16:11:02 pme Exp $ -->
<!-- $Id: gccrebuild.html,v 1.3 2000/06/19 22:20:15 bkoz Exp $ -->
</HEAD>
<BODY>
@ -42,10 +42,10 @@
as <EM>objdir</EM>; here it will be called <EM>GCCobjdir</EM>.
</P>
<P>This is a kludge, and will go away eventually, as more and more of
these copiler-level ABI switches get turned on by default. (In a
sense, it has already gone away, as the library sources have been
merged into the compiler sources.)
<P>This was a kludge, and after the library sources were merged into
the compiler sources, this was commented out. If you must re-enable
it, you amy do so by uncommenting the GLIBCPP_ENABLE_RELIBGCC line in
configure.in and regenerating.
</P>
<HR>
@ -118,7 +118,7 @@
<HR>
<P CLASS="fineprint"><EM>
$Id: gccrebuild.html,v 1.2 2000/05/03 16:11:02 pme Exp $
$Id: gccrebuild.html,v 1.3 2000/06/19 22:20:15 bkoz Exp $
</EM></P>