configopts.html: Minor updates and typo fixes.

2001-02-15  Phil Edwards  <pme@sources.redhat.com>

	* docs/html/configopts.html:  Minor updates and typo fixes.
	* docs/html/faq/index.html:  Updates of the "not really bugs" list.
	* docs/html/faq/index.txt:  Regenerated.

From-SVN: r39727
This commit is contained in:
Phil Edwards 2001-02-15 22:21:12 +00:00
parent 6472877ae0
commit 777c951742
4 changed files with 220 additions and 166 deletions

View File

@ -1,3 +1,9 @@
2001-02-15 Phil Edwards <pme@sources.redhat.com>
* docs/html/configopts.html: Minor updates and typo fixes.
* docs/html/faq/index.html: Updates of the "not really bugs" list.
* docs/html/faq/index.txt: Regenerated.
2001-02-15 Gabriel Dos Reis <gdr@codesourcery.com> 2001-02-15 Gabriel Dos Reis <gdr@codesourcery.com>
* testsuite/lib/libstdc++.exp: Lift, temporarily, out of * testsuite/lib/libstdc++.exp: Lift, temporarily, out of

View File

@ -7,7 +7,7 @@
<META NAME="GENERATOR" CONTENT="vi and eight fingers"> <META NAME="GENERATOR" CONTENT="vi and eight fingers">
<TITLE>libstdc++-v3 configure options</TITLE> <TITLE>libstdc++-v3 configure options</TITLE>
<LINK REL=StyleSheet HREF="lib3styles.css"> <LINK REL=StyleSheet HREF="lib3styles.css">
<!-- $Id: configopts.html,v 1.5 2001/01/30 09:18:50 bkoz Exp $ --> <!-- $Id: configopts.html,v 1.6 2001/02/07 00:03:20 pme Exp $ -->
</HEAD> </HEAD>
<BODY> <BODY>
@ -66,7 +66,7 @@ options</A></H1>
I/O package (from I/O package (from
<A HREF="http://sources.redhat.com/glibc/">glibc</A>, the <A HREF="http://sources.redhat.com/glibc/">glibc</A>, the
GNU C library), or 'stdio' to use a generic &quot;C&quot; GNU C library), or 'stdio' to use a generic &quot;C&quot;
abstraction. The default is 'stdio'. abstraction. The default is 'stdio'.
</P> </P>
<DT><TT>--enable-clocale </TT> <DT><TT>--enable-clocale </TT>
@ -81,7 +81,7 @@ options</A></H1>
HREF="http://sources.redhat.com/glibc/">glibc</A>, the GNU C HREF="http://sources.redhat.com/glibc/">glibc</A>, the GNU C
library), or 'generic' to use a generic &quot;C&quot; library), or 'generic' to use a generic &quot;C&quot;
abstraction which consists of &quot;C&quot; locale info. abstraction which consists of &quot;C&quot; locale info.
The default is 'generic'. The default is 'generic'.
</P> </P>
<DT><TT>--enable-long-long </TT> <DT><TT>--enable-long-long </TT>
@ -98,10 +98,9 @@ options</A></H1>
<DT><TT>--enable-cheaders=OPTION </TT> <DT><TT>--enable-cheaders=OPTION </TT>
<DD><P>This allows the user to define what kind of C headers are <DD><P>This allows the user to define what kind of C headers are
used. Options are: c, c_std, and c_shadow. These correspond used. Options are: c, c_std, and c_shadow. These correspond
to the source directory's include/c, include/c_std, and to the source directory's include/c, include/c_std, and
include/c_shadow directories. include/c_shadow directories. The default is c_std.
The default is c_std.
</P> </P>
<DT><TT>--enable-threads </TT> <DT><TT>--enable-threads </TT>
@ -151,25 +150,24 @@ options</A></H1>
flags to the compiler to use when building libstdc++. FLAGS flags to the compiler to use when building libstdc++. FLAGS
is a quoted string of options, like is a quoted string of options, like
<PRE> <PRE>
--enable-cxx-flags='-fsquangle -fvtable-gc -ansi'</PRE> --enable-cxx-flags='-fvtable-gc -fomit-frame-pointer -ansi'</PRE>
Note that the flags don't necessarily have to all be -f flags, Note that the flags don't necessarily have to all be -f flags,
as shown, but usually those are the ones that will make sense as shown, but usually those are the ones that will make sense
for experimentation and configure-time overriding. for experimentation and configure-time overriding.
</P> </P>
<P>The advantage of --enable-cxx-flags over setting CXXFLAGS in <P>The advantage of --enable-cxx-flags over setting CXXFLAGS in
the 'make' environment is that, if libgcc is automatically the 'make' environment is that, if files are automatically
rebuilt, the same flags will be used when compiling those files rebuilt, the same flags will be used when compiling those files
as well, so that everything matches. as well, so that everything matches.
</P> </P>
<P>Fun flags to try might include combinations of <P>Fun flags to try might include combinations of
<PRE> <PRE>
-fstrict-aliasing -fstrict-aliasing
-fnew-abi -fno-exceptions
-fnew-exceptions
-ffunction-sections -ffunction-sections
-fvtable-gc</PRE> -fvtable-gc</PRE>
and -fno- forms of the same. Tell us (the mailing list) if and opposite forms (-fno-) of the same. Tell us (the mailing
you discover more! list) if you discover more!
</P> </P>
<DT><TT>--enable-c-mbchar </TT>[default] <DT><TT>--enable-c-mbchar </TT>[default]
@ -178,7 +176,7 @@ options</A></H1>
changing rapidly, and can cause problems on new platforms. changing rapidly, and can cause problems on new platforms.
Disabling wide character specializations is useful for initial Disabling wide character specializations is useful for initial
porting steps, but builds only a subset of what is required by porting steps, but builds only a subset of what is required by
ISO. Default is on, but the <TT>--enable-c_stdio=stdio </TT> ISO. Default is on, but the <TT>--enable-cstdio=stdio </TT>
option currently turns it off. option currently turns it off.
</P> </P>
</DL> </DL>
@ -192,7 +190,7 @@ options</A></H1>
<HR> <HR>
<P CLASS="fineprint"><EM> <P CLASS="fineprint"><EM>
$Id: configopts.html,v 1.5 2001/01/30 09:18:50 bkoz Exp $ $Id: configopts.html,v 1.6 2001/02/07 00:03:20 pme Exp $
</EM></P> </EM></P>

View File

@ -9,7 +9,7 @@
** Locations of "the most recent snapshot is the Nth" text are ** Locations of "the most recent snapshot is the Nth" text are
** answers 1_1, 1_4, 4_1, 5_6. ** answers 1_1, 1_4, 4_1, 5_6.
--> -->
<!-- $Id: index.html,v 1.1 2000/12/10 04:04:56 pme Exp $ --> <!-- $Id: index.html,v 1.2 2001/01/23 17:02:27 pme Exp $ -->
</HEAD> </HEAD>
<BODY> <BODY>
@ -62,8 +62,14 @@ http://gcc.gnu.org/onlinedocs/libstdc++/faq/</A>.</P>
<LI><A HREF="#4_2">Bugs in gcc/g++ (not libstdc++-v3)</A> <LI><A HREF="#4_2">Bugs in gcc/g++ (not libstdc++-v3)</A>
<LI><A HREF="#4_3">Bugs in the C++ language/lib specification</A> <LI><A HREF="#4_3">Bugs in the C++ language/lib specification</A>
<LI><A HREF="#4_4">Things in libstdc++ that look like bugs</A> <LI><A HREF="#4_4">Things in libstdc++ that look like bugs</A>
<BR><A HREF="#4_4_interface">The g++-3 headers are <UL>
<STRONG>not ours</STRONG></A> <LI><A HREF="#4_4_Weff">-Weffc++ complains too much</A>
<LI><A HREF="#4_4_rel_ops">&quot;ambiguous overloads&quot;
after including an old-style header</A>
<LI><A HREF="#4_4_interface">The g++-3 headers are
<STRONG>not ours</STRONG></A>
<LI><A HREF="#4_4_glibc">compilation errors from streambuf.h</A>
</UL>
<LI><A HREF="#4_5">Aw, that's easy to fix!</A> <LI><A HREF="#4_5">Aw, that's easy to fix!</A>
</OL> </OL>
@ -489,44 +495,66 @@ to the list</A>, Nathan Myers announced that he has started a list of
<H2><A NAME="4_4">4.4 Things in libstdc++ that look like bugs</A></H2> <H2><A NAME="4_4">4.4 Things in libstdc++ that look like bugs</A></H2>
<P>There are things which are not bugs in the compiler (4.2) nor <P>There are things which are not bugs in the compiler (4.2) nor
the language specification (4.3), but aren't really bugs in the language specification (4.3), but aren't really bugs in
libstdc++, either. Really! libstdc++, either. Really! Please do not report these as bugs.
</P> </P>
<P>The biggest of these is the quadzillions of warnings about the <A NAME="4_4_Weff">
library headers emitted when <TT>-Weffc++</TT> is used. Making <P>The biggest of these is the quadzillions of warnings about the
libstdc++ &quot;-Weffc++-clean&quot; is not a goal of the project, library headers emitted when <TT>-Weffc++</TT> is used. Making
for a few reasons. Mainly, that option tries to enforce libstdc++ &quot;-Weffc++-clean&quot; is not a goal of the project,
object-oriented programming, while the Standard Library isn't for a few reasons. Mainly, that option tries to enforce
necessarily trying to be OO. There are multiple solutions object-oriented programming, while the Standard Library isn't
under discussion. necessarily trying to be OO. There are multiple solutions
</P> under discussion.
<P>Another is the <TT>rel_ops</TT> namespace and the template </P>
comparison operator functions contained therein. If they become </A>
visible in the same namespace as other comparison functions <A NAME="4_4_rel_ops">
(e.g., '<TT>using</TT>' them and the &lt;iterator&gt; header), <P>Another is the <TT>rel_ops</TT> namespace and the template
then you will suddenly be faced with huge numbers of ambiguity comparison operator functions contained therein. If they become
errors. This was discussed on the -v3 list; Nathan Myers visible in the same namespace as other comparison functions
<A HREF="http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html">sums (e.g., '<TT>using</TT>' them and the &lt;iterator&gt; header),
things up here</A>. then you will suddenly be faced with huge numbers of ambiguity
</P> errors. This was discussed on the -v3 list; Nathan Myers
<H3><A NAME="4_4_interface">The g++-3 headers are <A HREF="http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html">sums
<EM>not ours</EM></A></H3> things up here</A>.
<P>If you have found an extremely broken header file which is </P>
causing problems for you, look carefully before submitting a </A>
&quot;high&quot; priority bug report (which you probably shouldn't <A NAME="4_4_interface"><H3>The g++-3 headers are
do anyhow; see the last paragraph of the page describing <EM>not ours</EM></H3>
<P>If you have found an extremely broken header file which is
causing problems for you, look carefully before submitting a
&quot;high&quot; priority bug report (which you probably shouldn't
do anyhow; see the last paragraph of the page describing
<A HREF="http://gcc.gnu.org/gnatswrite.html">the GCC bug database</A>). <A HREF="http://gcc.gnu.org/gnatswrite.html">the GCC bug database</A>).
</P> </P>
<P>If the headers are in <CODE>${prefix}/include/g++-3</CODE>, then <P>If the headers are in <CODE>${prefix}/include/g++-3</CODE>, then
you are using the old libstdc++-v2 library, which is nonstandard you are using the old libstdc++-v2 library, which is nonstandard
and unmaintained. Do not report problems with -v2 to the -v3 and unmaintained. Do not report problems with -v2 to the -v3
mailing list. mailing list.
</P> </P>
<P>Currently our header files are installed in <P>Currently our header files are installed in
<CODE>${prefix}/include/g++-v3</CODE> (see the 'v'?). This may <CODE>${prefix}/include/g++-v3</CODE> (see the 'v'?). This may
change with the next release of GCC, as it may be too confusing, change with the next release of GCC, as it may be too confusing,
but <A HREF="http://gcc.gnu.org/ml/gcc/2000-10/msg00732.html">the but <A HREF="http://gcc.gnu.org/ml/gcc/2000-10/msg00732.html">the
question has not yet been decided</A>. question has not yet been decided</A>.
</P> </P>
</A>
<A NAME="4_4_glibc">
<P>If you're on a GNU/Linux system and have just upgraded to
glibc 2.2, but are still using gcc 2.95.2, then you should have
read the glibc FAQ, specifically 2.34:
<PRE>
2.34. When compiling C++ programs, I get a compilation error in streambuf.h.
{BH} You are using g++ 2.95.2? After upgrading to glibc 2.2, you need to
apply a patch to the include files in /usr/include/g++, because the fpos_t
type has changed in glibc 2.2. The patch is at
http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
</PRE>
Note that 2.95.x shipped with the
<A HREF="#4_4_interface">old v2 library</A> which is no longer
maintained.
</P>
</A>
<HR> <HR>
<H2><A NAME="4_5">4.5 Aw, that's easy to fix!</A></H2> <H2><A NAME="4_5">4.5 Aw, that's easy to fix!</A></H2>
@ -534,8 +562,8 @@ to the list</A>, Nathan Myers announced that he has started a list of
a working fix, then send it in! The main GCC site has a page a working fix, then send it in! The main GCC site has a page
on <A HREF="http://gcc.gnu.org/contribute.html">submitting on <A HREF="http://gcc.gnu.org/contribute.html">submitting
patches</A> that covers the procedure, but for libstdc++ you patches</A> that covers the procedure, but for libstdc++ you
should of course send the patch to our mailing list, not the should also send the patch to our mailing list in addition to
GCC mailing list. The libstdc++ the GCC patches mailing list. The libstdc++
<A HREF="../17_intro/contribute.html">contributors' page</A> <A HREF="../17_intro/contribute.html">contributors' page</A>
also talks about how to submit patches. also talks about how to submit patches.
</P> </P>
@ -678,7 +706,7 @@ HREF="http://gcc.gnu.org/ml/libstdc++/1999/msg00084.html">speculation</A>.
Comments and suggestions are welcome, and may be sent to Comments and suggestions are welcome, and may be sent to
<A HREF="mailto:pme@sources.redhat.com">Phil Edwards</A> or <A HREF="mailto:pme@sources.redhat.com">Phil Edwards</A> or
<A HREF="mailto:gdr@gcc.gnu.org">Gabriel Dos Reis</A>. <A HREF="mailto:gdr@gcc.gnu.org">Gabriel Dos Reis</A>.
<BR> $Id: index.html,v 1.1 2000/12/10 04:04:56 pme Exp $ <BR> $Id: index.html,v 1.2 2001/01/23 17:02:27 pme Exp $
</EM></P> </EM></P>

View File

@ -33,17 +33,21 @@
2. [23]Bugs in gcc/g++ (not libstdc++-v3) 2. [23]Bugs in gcc/g++ (not libstdc++-v3)
3. [24]Bugs in the C++ language/lib specification 3. [24]Bugs in the C++ language/lib specification
4. [25]Things in libstdc++ that look like bugs 4. [25]Things in libstdc++ that look like bugs
[26]The g++-3 headers are not ours o [26]-Weffc++ complains too much
5. [27]Aw, that's easy to fix! o [27]"ambiguous overloads" after including an old-style
5. [28]Miscellaneous header
1. [29]string::iterator is not char*; vector<T>::iterator is not o [28]The g++-3 headers are not ours
o [29]compilation errors from streambuf.h
5. [30]Aw, that's easy to fix!
5. [31]Miscellaneous
1. [32]string::iterator is not char*; vector<T>::iterator is not
T* T*
2. [30]What's next after libstdc++-v3? 2. [33]What's next after libstdc++-v3?
3. [31]What about the STL from SGI? 3. [34]What about the STL from SGI?
4. [32]Extensions and Backward Compatibility 4. [35]Extensions and Backward Compatibility
5. [33]Compiling with "-fnew-abi" 5. [36]Compiling with "-fnew-abi"
6. [34]Is libstdc++-v3 thread-safe? 6. [37]Is libstdc++-v3 thread-safe?
7. [35]How do I get a copy of the ISO C++ Standard? 7. [38]How do I get a copy of the ISO C++ Standard?
_________________________________________________________________ _________________________________________________________________
1.0 General Information 1.0 General Information
@ -54,13 +58,13 @@
ongoing project to implement the ISO 14882 Standard C++ library as ongoing project to implement the ISO 14882 Standard C++ library as
described in chapters 17 through 27 and annex D. As the library described in chapters 17 through 27 and annex D. As the library
reaches stable plateaus, it is captured in a snapshot and released. reaches stable plateaus, it is captured in a snapshot and released.
The current release is [36]the tenth snapshot. For those who want to The current release is [39]the tenth snapshot. For those who want to
see exactly how far the project has come, or just want the latest see exactly how far the project has come, or just want the latest
bleeding-edge code, the up-to-date source is available over anonymous bleeding-edge code, the up-to-date source is available over anonymous
CVS, and can even be browsed over the Web (see below). CVS, and can even be browsed over the Web (see below).
A more formal description of the V3 goals can be found in the official A more formal description of the V3 goals can be found in the official
[37]design document. [40]design document.
_________________________________________________________________ _________________________________________________________________
1.2 Why should I use libstdc++? 1.2 Why should I use libstdc++?
@ -73,8 +77,8 @@
The GNU C/C++/FORTRAN/<pick-a-language> compiler (gcc, g++, etc) is The GNU C/C++/FORTRAN/<pick-a-language> compiler (gcc, g++, etc) is
widely considered to be one of the leading compilers in the world. Its widely considered to be one of the leading compilers in the world. Its
development has recently been taken over by the [38]GCC team. All of development has recently been taken over by the [41]GCC team. All of
the rapid development and near-legendary [39]portability that are the the rapid development and near-legendary [42]portability that are the
hallmarks of an open-source project are being applied to libstdc++. hallmarks of an open-source project are being applied to libstdc++.
That means that all of the Standard classes and functions (such as That means that all of the Standard classes and functions (such as
@ -92,16 +96,16 @@
Development and discussion is held on the libstdc++ mailing list. Development and discussion is held on the libstdc++ mailing list.
Subscribing to the list, or searching the list archives, is open to Subscribing to the list, or searching the list archives, is open to
everyone. You can read instructions for doing so on the [40]homepage. everyone. You can read instructions for doing so on the [43]homepage.
If you have questions, ideas, code, or are just curious, sign up! If you have questions, ideas, code, or are just curious, sign up!
_________________________________________________________________ _________________________________________________________________
1.4 How do I get libstdc++? 1.4 How do I get libstdc++?
The tenth (and latest) snapshot of libstdc++-v3 is [41]available via The tenth (and latest) snapshot of libstdc++-v3 is [44]available via
ftp. ftp.
The [42]homepage has instructions for retrieving the latest CVS The [45]homepage has instructions for retrieving the latest CVS
sources, and for browsing the CVS sources over the web. sources, and for browsing the CVS sources over the web.
The subset commonly known as the Standard Template Library (chapters The subset commonly known as the Standard Template Library (chapters
@ -117,7 +121,7 @@
1.6 How do I contribute to the effort? 1.6 How do I contribute to the effort?
Here is [43]a page devoted to this topic. Subscribing to the mailing Here is [46]a page devoted to this topic. Subscribing to the mailing
list (see above, or the homepage) is a very good idea if you have list (see above, or the homepage) is a very good idea if you have
something to contribute, or if you have spare time and want to help. something to contribute, or if you have spare time and want to help.
Contributions don't have to be in the form of source code; anybody who Contributions don't have to be in the form of source code; anybody who
@ -152,11 +156,11 @@
extracted into an updated utilities library, but nobody has stated extracted into an updated utilities library, but nobody has stated
such a project yet. such a project yet.
(The [44]Boost site houses free C++ libraries that do varying things, (The [47]Boost site houses free C++ libraries that do varying things,
and happened to be started by members of the Standards Committee. and happened to be started by members of the Standards Committee.
Certain "useful stuff" classes will probably migrate there.) Certain "useful stuff" classes will probably migrate there.)
For the bold and/or desperate, the [45]GCC FAQ describes where to find For the bold and/or desperate, the [48]GCC FAQ describes where to find
the last libg++ source. the last libg++ source.
_________________________________________________________________ _________________________________________________________________
@ -166,11 +170,11 @@
remains unanswered, then just ask the mailing list. At present, you do remains unanswered, then just ask the mailing list. At present, you do
not need to be subscribed to the list to send a message to it. More not need to be subscribed to the list to send a message to it. More
information is available on the homepage (including how to browse the information is available on the homepage (including how to browse the
list archives); to send to the list, use [46]libstdc++@gcc.gnu.org. list archives); to send to the list, use [49]libstdc++@gcc.gnu.org.
If you have a question that you think should be included here, or if If you have a question that you think should be included here, or if
you have a question about a question/answer here, contact [47]Phil you have a question about a question/answer here, contact [50]Phil
Edwards or [48]Gabriel Dos Reis. Edwards or [51]Gabriel Dos Reis.
_________________________________________________________________ _________________________________________________________________
2.0 Installation 2.0 Installation
@ -184,15 +188,15 @@
GCC is much easier and more automated than building the GCC 2.[78] GCC is much easier and more automated than building the GCC 2.[78]
series was. series was.
* If you plan on hacking around with the makefiles, you will need * If you plan on hacking around with the makefiles, you will need
the tools [49]autoconfand [50]automake. the tools [52]autoconfand [53]automake.
* GNU Make is the only make that supports these makefiles. * GNU Make is the only make that supports these makefiles.
The file [51]documentation.html provides a good overview of the steps The file [54]documentation.html provides a good overview of the steps
necessary to build, install, and use the library. Instructions for necessary to build, install, and use the library. Instructions for
configuring the library with new flags such as --enable-threads are configuring the library with new flags such as --enable-threads are
there also. there also.
The top-level install.html and [52]RELEASE-NOTES files contain the The top-level install.html and [55]RELEASE-NOTES files contain the
exact build and installation instructions. You may wish to browse exact build and installation instructions. You may wish to browse
those files over CVSweb ahead of time to get a feel for what's those files over CVSweb ahead of time to get a feel for what's
required. RELEASE-NOTES is located in the ".../docs/17_intro/" required. RELEASE-NOTES is located in the ".../docs/17_intro/"
@ -210,8 +214,8 @@
The Concurrent Versions System is one of several revision control The Concurrent Versions System is one of several revision control
packages. It was selected for GNU projects because it's free (speech), packages. It was selected for GNU projects because it's free (speech),
free (beer), and very high quality. The [53]CVS entry in the GNU free (beer), and very high quality. The [56]CVS entry in the GNU
software catalogue has a better description as well as a [54]link to software catalogue has a better description as well as a [57]link to
the makers of CVS. the makers of CVS.
The "anonymous client checkout" feature of CVS is similar to anonymous The "anonymous client checkout" feature of CVS is similar to anonymous
@ -281,9 +285,9 @@
doesn't prevent hanging elsewhere. doesn't prevent hanging elsewhere.
You have two options. You can get a newer cygwin1.dll (see the Cygwin You have two options. You can get a newer cygwin1.dll (see the Cygwin
paragraph in the [55]installation instructions). Or you can get a paragraph in the [58]installation instructions). Or you can get a
prebuilt set of bits/std_limits.h and src/limitsMEMBERS.cc files from prebuilt set of bits/std_limits.h and src/limitsMEMBERS.cc files from
Mumit Khan's [56]Cygwin-related website. Mumit Khan's [59]Cygwin-related website.
_________________________________________________________________ _________________________________________________________________
3.3 Building DEC OSF kills the assembler 3.3 Building DEC OSF kills the assembler
@ -294,7 +298,7 @@
install GNU as and arrange for the GCC build to use it (or merge the install GNU as and arrange for the GCC build to use it (or merge the
sources and build it during the bootstrap). sources and build it during the bootstrap).
Anyone who [57]knows the DEC assembler well enough to provide the Anyone who [60]knows the DEC assembler well enough to provide the
equivalent of these two pseudos would win praise and accolades from equivalent of these two pseudos would win praise and accolades from
many. many.
_________________________________________________________________ _________________________________________________________________
@ -374,23 +378,23 @@ New:
4.3 Bugs in the C++ language/lib specification 4.3 Bugs in the C++ language/lib specification
Yes, unfortunately, there are some. In a [58]message to the list, Yes, unfortunately, there are some. In a [61]message to the list,
Nathan Myers announced that he has started a list of problems in the Nathan Myers announced that he has started a list of problems in the
ISO C++ Standard itself, especially with regard to the chapters that ISO C++ Standard itself, especially with regard to the chapters that
concern the library. The list itself is [59]posted on his website. concern the library. The list itself is [62]posted on his website.
Developers who are having problems interpreting the Standard may wish Developers who are having problems interpreting the Standard may wish
to consult his notes. to consult his notes.
For those people who are not part of the ISO Library Group (i.e., For those people who are not part of the ISO Library Group (i.e.,
nearly all of us needing to read this page in the first place :-), a nearly all of us needing to read this page in the first place :-), a
public list of the library defects is occasionally published [60]here. public list of the library defects is occasionally published [63]here.
_________________________________________________________________ _________________________________________________________________
4.4 Things in libstdc++ that look like bugs 4.4 Things in libstdc++ that look like bugs
There are things which are not bugs in the compiler (4.2) nor the There are things which are not bugs in the compiler (4.2) nor the
language specification (4.3), but aren't really bugs in libstdc++, language specification (4.3), but aren't really bugs in libstdc++,
either. Really! either. Really! Please do not report these as bugs.
The biggest of these is the quadzillions of warnings about the library The biggest of these is the quadzillions of warnings about the library
headers emitted when -Weffc++ is used. Making libstdc++ headers emitted when -Weffc++ is used. Making libstdc++
@ -404,14 +408,14 @@ New:
namespace as other comparison functions (e.g., 'using' them and the namespace as other comparison functions (e.g., 'using' them and the
<iterator> header), then you will suddenly be faced with huge numbers <iterator> header), then you will suddenly be faced with huge numbers
of ambiguity errors. This was discussed on the -v3 list; Nathan Myers of ambiguity errors. This was discussed on the -v3 list; Nathan Myers
[61]sums things up here. [64]sums things up here.
The g++-3 headers are not ours The g++-3 headers are not ours
If you have found an extremely broken header file which is causing If you have found an extremely broken header file which is causing
problems for you, look carefully before submitting a "high" priority problems for you, look carefully before submitting a "high" priority
bug report (which you probably shouldn't do anyhow; see the last bug report (which you probably shouldn't do anyhow; see the last
paragraph of the page describing [62]the GCC bug database). paragraph of the page describing [65]the GCC bug database).
If the headers are in ${prefix}/include/g++-3, then you are using the If the headers are in ${prefix}/include/g++-3, then you are using the
old libstdc++-v2 library, which is nonstandard and unmaintained. Do old libstdc++-v2 library, which is nonstandard and unmaintained. Do
@ -419,23 +423,37 @@ New:
Currently our header files are installed in ${prefix}/include/g++-v3 Currently our header files are installed in ${prefix}/include/g++-v3
(see the 'v'?). This may change with the next release of GCC, as it (see the 'v'?). This may change with the next release of GCC, as it
may be too confusing, but [63]the question has not yet been decided. may be too confusing, but [66]the question has not yet been decided.
If you're on a GNU/Linux system and have just upgraded to glibc 2.2,
but are still using gcc 2.95.2, then you should have read the glibc
FAQ, specifically 2.34:
2.34. When compiling C++ programs, I get a compilation error in streambuf.h.
{BH} You are using g++ 2.95.2? After upgrading to glibc 2.2, you need to
apply a patch to the include files in /usr/include/g++, because the fpos_t
type has changed in glibc 2.2. The patch is at
http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
Note that 2.95.x shipped with the [67]old v2 library which is no
longer maintained.
_________________________________________________________________ _________________________________________________________________
4.5 Aw, that's easy to fix! 4.5 Aw, that's easy to fix!
If you have found a bug in the library and you think you have a If you have found a bug in the library and you think you have a
working fix, then send it in! The main GCC site has a page on working fix, then send it in! The main GCC site has a page on
[64]submitting patches that covers the procedure, but for libstdc++ [68]submitting patches that covers the procedure, but for libstdc++
you should of course send the patch to our mailing list, not the GCC you should also send the patch to our mailing list in addition to the
mailing list. The libstdc++ [65]contributors' page also talks about GCC patches mailing list. The libstdc++ [69]contributors' page also
how to submit patches. talks about how to submit patches.
In addition to the description, the patch, and the ChangeLog entry, it In addition to the description, the patch, and the ChangeLog entry, it
is a Good Thing if you can additionally create a small test program to is a Good Thing if you can additionally create a small test program to
test for the presence of the bug that your patch fixes. Bugs have a test for the presence of the bug that your patch fixes. Bugs have a
way of being reintroduced; if an old bug creeps back in, it will be way of being reintroduced; if an old bug creeps back in, it will be
caught immediately by the [66]testsuite -- but only if such a test caught immediately by the [70]testsuite -- but only if such a test
exists. exists.
_________________________________________________________________ _________________________________________________________________
@ -473,13 +491,13 @@ New:
Bugfixes and rewrites (to improve or fix thread safety, for instance) Bugfixes and rewrites (to improve or fix thread safety, for instance)
will of course be a continuing task. will of course be a continuing task.
[67]This question about the next libstdc++ prompted some brief but [71]This question about the next libstdc++ prompted some brief but
interesting [68]speculation. interesting [72]speculation.
_________________________________________________________________ _________________________________________________________________
5.3 What about the STL from SGI? 5.3 What about the STL from SGI?
The [69]STL from SGI is merged into libstdc++-v3 with changes as The [73]STL from SGI is merged into libstdc++-v3 with changes as
necessary. Currently release 3.3 is being used. Changes in the STL necessary. Currently release 3.3 is being used. Changes in the STL
usually produce some weird bugs and lots of changes in the rest of the usually produce some weird bugs and lots of changes in the rest of the
libstdc++ source as we scramble to keep up. :-) libstdc++ source as we scramble to keep up. :-)
@ -500,13 +518,13 @@ New:
#include <ext/hash_map> #include <ext/hash_map>
Extensions to the library have [70]their own page. Extensions to the library have [74]their own page.
_________________________________________________________________ _________________________________________________________________
5.5 Compiling with "-fnew-abi" 5.5 Compiling with "-fnew-abi"
Towards the end of July 1999, this subject was brought up again on the Towards the end of July 1999, this subject was brought up again on the
mailing list under a different name. The related [71]thread (by the mailing list under a different name. The related [75]thread (by the
name HOWTO-honor-std) is very instructive. More info is at the end of name HOWTO-honor-std) is very instructive. More info is at the end of
RELEASE-NOTES. RELEASE-NOTES.
@ -520,8 +538,8 @@ New:
This is assuming that your idea of "multithreaded" is the same as This is assuming that your idea of "multithreaded" is the same as
ours... The general question of multithreading and libstdc++-v3 is ours... The general question of multithreading and libstdc++-v3 is
addressed in the chapter-specific advice for [72]Library Introduction. addressed in the chapter-specific advice for [76]Library Introduction.
Threadsafe containers are covered in more detail in [73]the Received Threadsafe containers are covered in more detail in [77]the Received
Wisdom section on containers. Wisdom section on containers.
_________________________________________________________________ _________________________________________________________________
@ -533,17 +551,17 @@ New:
their two-meeting commitment for voting rights, may get a copy of the their two-meeting commitment for voting rights, may get a copy of the
standard from their respective national standards organization. In the standard from their respective national standards organization. In the
USA, this national standards organization is ANSI and their website is USA, this national standards organization is ANSI and their website is
right [74]here. (And if you've already registered with them, clicking right [78]here. (And if you've already registered with them, clicking
this link will take you to directly to the place where you can [75]buy this link will take you to directly to the place where you can [79]buy
the standard on-line. the standard on-line.
Who is your country's member body? Visit the [76]ISO homepage and find Who is your country's member body? Visit the [80]ISO homepage and find
out! out!
_________________________________________________________________ _________________________________________________________________
Comments and suggestions are welcome, and may be sent to [77]Phil Comments and suggestions are welcome, and may be sent to [81]Phil
Edwards or [78]Gabriel Dos Reis. Edwards or [82]Gabriel Dos Reis.
$Id: index.html,v 1.1 2000/12/10 04:04:56 pme Exp $ $Id: index.html,v 1.2 2001/01/23 17:02:27 pme Exp $
References References
@ -572,56 +590,60 @@ References
23. ../faq/index.html#4_2 23. ../faq/index.html#4_2
24. ../faq/index.html#4_3 24. ../faq/index.html#4_3
25. ../faq/index.html#4_4 25. ../faq/index.html#4_4
26. ../faq/index.html#4_4_interface 26. ../faq/index.html#4_4_Weff
27. ../faq/index.html#4_5 27. ../faq/index.html#4_4_rel_ops
28. ../faq/index.html#5_0 28. ../faq/index.html#4_4_interface
29. ../faq/index.html#5_1 29. ../faq/index.html#4_4_glibc
30. ../faq/index.html#5_2 30. ../faq/index.html#4_5
31. ../faq/index.html#5_3 31. ../faq/index.html#5_0
32. ../faq/index.html#5_4 32. ../faq/index.html#5_1
33. ../faq/index.html#5_5 33. ../faq/index.html#5_2
34. ../faq/index.html#5_6 34. ../faq/index.html#5_3
35. ../faq/index.html#5_7 35. ../faq/index.html#5_4
36. ftp://gcc.gnu.org/pub/libstdc++/libstdc++-2.91.tar.gz 36. ../faq/index.html#5_5
37. ../17_intro/DESIGN 37. ../faq/index.html#5_6
38. http://gcc.gnu.org/ 38. ../faq/index.html#5_7
39. http://gcc.gnu.org/gcc-2.95/buildstat.html 39. ftp://gcc.gnu.org/pub/libstdc++/libstdc++-2.91.tar.gz
40. http://gcc.gnu.org/libstdc++/ 40. ../17_intro/DESIGN
41. ftp://gcc.gnu.org/pub/libstdc++/libstdc++-2.91.tar.gz 41. http://gcc.gnu.org/
42. http://gcc.gnu.org/libstdc++/ 42. http://gcc.gnu.org/gcc-2.95/buildstat.html
43. ../17_intro/contribute.html 43. http://gcc.gnu.org/libstdc++/
44. http://www.boost.org/ 44. ftp://gcc.gnu.org/pub/libstdc++/libstdc++-2.91.tar.gz
45. http://gcc.gnu.org/fom_serv/cache/33.html 45. http://gcc.gnu.org/libstdc++/
46. mailto:libstdc++@gcc.gnu.org 46. ../17_intro/contribute.html
47. mailto:pme@sources.redhat.com 47. http://www.boost.org/
48. mailto:gdr@gcc.gnu.org 48. http://gcc.gnu.org/fom_serv/cache/33.html
49. http://sources.redhat.com/autoconf/ 49. mailto:libstdc++@gcc.gnu.org
50. http://sources.redhat.com/automake/ 50. mailto:pme@sources.redhat.com
51. ../documentation.html 51. mailto:gdr@gcc.gnu.org
52. ../17_intro/RELEASE-NOTES 52. http://sources.redhat.com/autoconf/
53. http://www.gnu.org/software/cvs/cvs.html 53. http://sources.redhat.com/automake/
54. http://www.cyclic.com/ 54. ../documentation.html
55. ../install.html 55. ../17_intro/RELEASE-NOTES
56. http://www.xraylith.wisc.edu/~khan/software/gnu-win32/libstdc++-v3.html 56. http://www.gnu.org/software/cvs/cvs.html
57. http://gcc.gnu.org/ml/libstdc++/2000-12/msg00279.html 57. http://www.cyclic.com/
58. http://gcc.gnu.org/ml/libstdc++/1998/msg00006.html 58. ../install.html
59. http://www.cantrip.org/draft-bugs.txt 59. http://www.xraylith.wisc.edu/~khan/software/gnu-win32/libstdc++-v3.html
60. http://anubis.dkuug.dk/jtc1/sc22/wg21/ 60. http://gcc.gnu.org/ml/libstdc++/2000-12/msg00279.html
61. http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html 61. http://gcc.gnu.org/ml/libstdc++/1998/msg00006.html
62. http://gcc.gnu.org/gnatswrite.html 62. http://www.cantrip.org/draft-bugs.txt
63. http://gcc.gnu.org/ml/gcc/2000-10/msg00732.html 63. http://anubis.dkuug.dk/jtc1/sc22/wg21/
64. http://gcc.gnu.org/contribute.html 64. http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html
65. ../17_intro/contribute.html 65. http://gcc.gnu.org/gnatswrite.html
66. ../faq/index.html#2_4 66. http://gcc.gnu.org/ml/gcc/2000-10/msg00732.html
67. http://gcc.gnu.org/ml/libstdc++/1999/msg00080.html 67. ../faq/index.html#4_4_interface
68. http://gcc.gnu.org/ml/libstdc++/1999/msg00084.html 68. http://gcc.gnu.org/contribute.html
69. http://www.sgi.com/Technology/STL/ 69. ../17_intro/contribute.html
70. ../ext/howto.html 70. ../faq/index.html#2_4
71. http://gcc.gnu.org/ml/libstdc++/1999-q3/msg00066.html 71. http://gcc.gnu.org/ml/libstdc++/1999/msg00080.html
72. http://gcc.gnu.org/libstdc++/17_intro/howto.html#3 72. http://gcc.gnu.org/ml/libstdc++/1999/msg00084.html
73. http://gcc.gnu.org/libstdc++/23_containers/howto.html 73. http://www.sgi.com/Technology/STL/
74. http://www.ansi.org/ 74. ../ext/howto.html
75. http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%2D1998 75. http://gcc.gnu.org/ml/libstdc++/1999-q3/msg00066.html
76. http://www.iso.ch/ 76. http://gcc.gnu.org/libstdc++/17_intro/howto.html#3
77. mailto:pme@sources.redhat.com 77. http://gcc.gnu.org/libstdc++/23_containers/howto.html
78. mailto:gdr@gcc.gnu.org 78. http://www.ansi.org/
79. http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%2D1998
80. http://www.iso.ch/
81. mailto:pme@sources.redhat.com
82. mailto:gdr@gcc.gnu.org