<META NAME="GENERATOR" CONTENT="vi and eight fingers">
<TITLE>libstdc++-v3 configure options</TITLE>
<LINK REL=StyleSheet HREF="lib3styles.css">
-<!-- $Id: configopts.html,v 1.2 2001/01/02 22:52:51 bkoz Exp $ -->
+<!-- $Id: configopts.html,v 1.3 2001/01/03 15:53:27 bkoz Exp $ -->
</HEAD>
<BODY>
inside GDB.
</P>
- <DT><TT>--enable-cstdio </TT>[default]
+ <DT><TT>--enable-cstdio </TT>
<DD><P>This is an abbreviated form of <TT>'--enable-cstdio=stdio'</TT>
(described next).
</P>
snapshot 2.91, the choices are 'libio' to specify the GNU
I/O package (from
<A HREF="http://sources.redhat.com/glibc/">glibc</A>, the
- GNU C library), or 'stdio' to use a generic "C" abstraction.
+ GNU C library), or 'stdio' to use a generic "C"
+ abstraction. The default is 'stdio'.
</P>
<DT><TT>--enable-long-long </TT>
provided as a GNU extension to C++98 in g++. This flag builds
support for "long long" into the library
(specialized templates and the like). This option is off by
- default: if enabled, users will have to either use the
- new-style "C" headers by default (ie cmath not math.h) or add
- appropriate compile-time flags to all compile lines to allow
- "C" visibility of this feature (on gnu-linux, the flag is
- -D_ISOC99_SOURCE).
+ default: if enabled, users will have to either use the
+ new-style "C" headers by default (ie cmath not math.h)
+ or add appropriate compile-time flags to all compile lines to
+ allow "C" visibility of this feature (on GNU/Linux,
+ the flag is -D_ISOC99_SOURCE).
</P>
<DT><TT>--enable-cheaders=OPTION </TT>
</P>
<P>All of this is currently undergoing a lot of changes. As of
2.91, 'single' and 'posix' are the only implemented
- models. Default is off.
+ models. Default is single.
</P>
<DT><TT>--enable-version-specific-runtime-libs </TT>
<HR>
<P CLASS="fineprint"><EM>
-$Id: configopts.html,v 1.2 2000/12/21 22:52:51 bkoz Exp $
+$Id: configopts.html,v 1.3 2001/01/03 15:53:27 bkoz Exp $
</EM></P>
<META NAME="GENERATOR" CONTENT="vi and eight fingers">
<TITLE>libstdc++-v3 Installation Instructions</TITLE>
<LINK REL=StyleSheet HREF="lib3styles.css">
-<!-- $Id: install.html,v 1.12 2000/12/03 23:47:47 jsm28 Exp $ -->
+<!-- $Id: install.html,v 1.1 2000/12/10 04:03:08 pme Exp $ -->
</HEAD>
<BODY>
<H2><A NAME="prereqs">Tools you will need beforehand</A></H2>
<P>You will need a recent version of g++ to compile the snapshot of
- libstdc++: gcc-2.95.2 works well, or one of the post-2.95.2 GCC
+ libstdc++, one of the post-2.95.2 GCC
snapshots (insert standard caveat about using snapshots rather
than formal releases). You will need the full source
distribution to whatever compiler release you are using. The
and above) as earlier versions supposedly had problems creating
shared libraries.
- <DT>Solaris
- <DD>We recommend installing the <TT>SUNWxcu4</TT> package from the
- Solaris CD before configuring the library. You can check for
- this package as a non-privileged user with the command
- "pkginfo SUNWxcu4".
</DL>
</P>
</UL>
Note:
<OL>
- <LI>The .8 snapshot and following are intended to replace the
+ <LI>The .91 snapshot and following are intended to replace the
library that comes with the compiler, so <EM>libsrcdir</EM>
and <EM>libbuilddir</EM> must be contained under
<EM>gccsrcdir</EM> and <EM>gccbuilddir</EM>, respectively.
<P>Since the release of libstdc++-2.90.8, configuration patches have gone
into CVS gcc that make the management of the various libstdc++ source
trees a bit easier. Because of this, both libstdc++-v2 and
- libstdc++-v3 and live together more or less in peace, without the need
- for soft linking. If a CVS gcc source directory after April 5, 2000 is
- being used, then the directions are slightly different: please pick
- which of the following two scenarios best represents your particular
- situation.
+ libstdc++-v3 and live together in peace, without the need
+ for soft linking. The setup instructions are slightly different,
+ depending on whether you want to use CVS gcc or a snapshot. Please
+ choose the appropriate scenario:
</P>
- <P><B>...with gcc-2.95.2</B>
+ <P><B>...with a gcc-2.9[67] snapshot</B>
<P>Unpack the <EM>gccsrcdir</EM> and go into that directory. For
- instance, <TT>gcc-2.95.2</TT> is a valid <EM>gccsrcdir</EM>.
- Once in <EM>gccsrcdir</EM>, you'll need to rename the directories
- called <TT> libstdc++ </TT> and <TT> libio </TT> like so:
+X instance, <TT>gcc-2.95.2</TT> is a valid <EM>gccsrcdir</EM>.
+ Once in <EM>gccsrcdir</EM>, you'll need to rename the libstdc++-v3
+ directory which comes with that snapshot:
<PRE>
- mv libstdc++ libstdc++-v2
- mv libio libio-v2</PRE>
+ mv libstdc++-v3 libstdc++-v3-previous</PRE>
</P>
<P>Next, unpack the libstdc++-v3 library tarball into the
<EM>gccsrcdir</EM> directory; it will create a
gzip -dc libstdc++-version.tar.gz | tar xf -</PRE>
</P>
<P>Finally, make a soft link between <EM>libsrcdir</EM> and
- <TT>libstdc++</TT> so that libstdc++-v3 will be the default C++
+ <TT>libstdc++-v3</TT> so that libstdc++-v3 will be the default C++
library used.
<PRE>
- ln -s <EM>libsrcdir</EM> libstdc++</PRE>
- This complexity of having two completely separate libstdc++
- libraries is necessary so that you can unlink <EM>libsrcdir</EM>
- and update the compiler sources. If you're not this adventurous, or
- would not like to switch between different C++ standard libraries,
- this extra effort is probably wasted; just remove the v2 sources.
+ ln -s <EM>libsrcdir</EM> libstdc++-v3</PRE>
</P>
</P>
<P><B>...with CVS gcc</B>
<P>Check out or download the gcc sources: the resulting source
- directory is <EM>gccsrcdir</EM>.
+ directory is <EM>gccsrcdir</EM>. Once in <EM>gccsrcdir</EM>,
+ you'll need to rename the libstdc++-v3 directory which comes
+ with that snapshot:
+ mv libstdc++-v3 libstdc++-v3-previous</PRE>
</P>
<P>Next, unpack the libstdc++-v3 library tarball into this
<EM>gccsrcdir</EM> directory; it will create a
<PRE>
gzip -dc libstdc++-version.tar.gz | tar xf -</PRE>
</P>
-
- <P>If CVS libstdc++-v3 is being used instead of a snapshot's tarball,
- then move the source directory from the CVS checkout into the
- <EM>gccsrcdir</EM> directory.
-
<P>Finally, rename <EM>libsrcdir</EM> to <TT>libstdc++-v3</TT> so that
gcc's configure flags will be able to deal with the new library.
<PRE>
<HR>
<H2><A NAME="config">Configuring</A></H2>
+ <P>If you have never done this before, you should read the basic
+ <A HREF="http://gcc.gnu.org/install/">GCC Installation
+ Instructions</A> first.
+ </P>
<P>Due to namespaces, when building libstdc++-v3 you'll have to configure
the entire <EM>gccsrcdir</EM> directory. The full list of libstdc++-v3
specific configuration options, not dependent on the specific compiler
building the C++ language parts.
</P>
- <P><B>...with gcc-2.95.2</B>
- <PRE>
- <EM>gccsrcdir</EM>/configure --prefix=<EM>destdir</EM></PRE>
- </P>
-
- <P><B>...with CVS gcc</B>
- <PRE>
+ <P><PRE>
+ cd <EM>gccbuilddir</EM>
<EM>gccsrcdir</EM>/configure --prefix=<EM>destdir</EM> --enable-libstdcxx-v3</PRE>
</P>
as its default C++ library. The generated g++ will magically
use the correct headers, link against the correct library
binary, and in general using libstdc++-v3 will be a piece of
- cake. You're done; run <TT>'make install'</TT> (the GCC
- Installation instructions) to put the new compiler and libraries
+ cake. You're done; run <TT>'make install'</TT> (see the GCC
+ installation instructions) to put the new compiler and libraries
into place.
</P>
<H3>[re]building only libstdc++</H3>
- <P>Due to differences in the configure process, the resulting Makefiles
- in the<EM>gccbuilddir</EM> will have different rules depending on
- the source base being used.
- </P>
-
- <P><B>...with gcc-2.95.2</B>
- <BLOCKQUOTE>
- <EM>libstdc++-rule</EM> is <TT>libstdc++</TT>
- </BLOCKQUOTE>
- </P>
-
- <P><B>...with CVS gcc</B>
- <BLOCKQUOTE>
- <EM>libstdc++-rule</EM> is <TT>libstdc++-v3</TT>
- </BLOCKQUOTE>
- </P>
-
<P>To rebuild just libstdc++, use:
<PRE>
- make all-target-<EM>libstdc++-rule</EM></PRE>
+ make all-target-<EM>libstdc++-v3</EM></PRE>
This will configure and build the C++ library in the
<EM>gccbuilddir/cpu-vendor-OS/</EM>libstdc++ directory.
- As en example, for CVS gcc this would be
- <TT>make all-target-libstdc++-v3</TT>, and for gcc-2.95.2 it would be
- <TT>make all-target-libstdc++</TT>
</P>
<P>If the build fails with a "warning: can't inline call"
message when compiling stringMAIN.cc, see <A HREF="#Werror">the
lib/
include/g++-v3/
bits/
- backward/
+ ext/
+ cpu-vendor-OS/include/g++-v3/
+ bits/
ext/</PRE>
</P>
<P>You can check the status of the build without installing it using
make check</PRE>
or you can check the status of the installed library using
<PRE>
- make check-target-<EM>libstdc++-rule</EM></PRE>
+ make check-install</PRE>
+ in the <EM>libbuilddir</EM> directory.
These commands will create a 'testsuite' directory underneath
<EM>libbuilddir</EM> containing the results of the tests. We are
interested in any strange failures of the testsuite; please see
which will in turn pass them on to the linker. The exact
format of the options is dependent on which linker you use:
<UL>
- <LI>GNU ld (default on Linux):<TT> -Wl,--rpath -Wl,<EM>destdir</EM>/lib</TT>
- <LI>IRIX ld:<TT> -Wl,-rpath -Wl,<EM>destdir</EM>/lib</TT>
+ <LI>GNU ld (default on Linux):<TT> -Wl,--rpath,<EM>destdir</EM>/lib</TT>
+ <LI>IRIX ld:<TT> -Wl,-rpath,<EM>destdir</EM>/lib</TT>
<LI>Solaris ld:<TT> -Wl,-R<EM>destdir</EM>/lib</TT>
<LI>More...?
</UL>
Comments and suggestions are welcome, and may be sent to
<A HREF="mailto:pme@sources.redhat.com">Phil Edwards</A> or
<A HREF="mailto:gdr@gcc.gnu.org">Gabriel Dos Reis</A>.
-<BR> $Id: install.html,v 1.12 2000/12/03 23:47:47 jsm28 Exp $
+<BR> $Id: install.html,v 1.1 2000/12/10 04:03:08 pme Exp $
</EM></P>