From 222bb619fbdc3775767cde2d500c92d58ce1d499 Mon Sep 17 00:00:00 2001
From: Phil Edwards If you don't have bash, and want to run 'make check' to
test your build, you'll need to get bash 2.x. Also recommended
is GNU Make, since it is the only 'make' that will parse these
- makefiles correctly.
+ makefiles correctly. We are moving to DejaGNU, so you'll
+ probably want to get that.
As of June 19, 2000, libstdc++ attempts to use tricky and
@@ -151,10 +152,11 @@
...with a gcc-2.9[67] snapshot
Unpack the gccsrcdir and go into that directory. For
instance, gcc-2.95.2 is a valid gccsrcdir.
- Once in gccsrcdir, you'll need to rename the libstdc++-v3
- directory which comes with that snapshot:
+ Once in gccsrcdir, you'll need to rename or delete
+ the libstdc++-v3 directory which comes with that snapshot:
- mv libstdc++-v3 libstdc++-v3-previous
+ mv libstdc++-v3 libstdc++-v3-previous [OR]
+ rm -r libstdc++-v3
Next, unpack the libstdc++-v3 library tarball into the gccsrcdir directory; it will create a @@ -173,9 +175,11 @@
...with CVS gcc
Check out or download the gcc sources: the resulting source directory is gccsrcdir. Once in gccsrcdir, - you'll need to rename the libstdc++-v3 directory which comes - with that snapshot: - mv libstdc++-v3 libstdc++-v3-previous + you'll need to rename or delete the libstdc++-v3 directory + which comes with that snapshot: +
+ mv libstdc++-v3 libstdc++-v3-previous [OR] + rm -r libstdc++-v3
Next, unpack the libstdc++-v3 library tarball into this gccsrcdir directory; it will create a @@ -208,13 +212,7 @@
cd gccbuilddir - gccsrcdir/configure --prefix=destdir --enable-libstdcxx-v3- - -
Adding --enable-libstdcxx-v3 automatically selects libstdc++-v3 - as the C++ library to be used alongside the C++ compiler being built, - and also enables -fhonor-std by default. This option is not available - with gcc-2.95.2. + gccsrcdir/configure --prefix=destdir --other-opts...
@@ -239,10 +237,6 @@ This will configure and build the C++ library in the gccbuilddir/cpu-vendor-OS/libstdc++ directory. -If the build fails with a "warning: can't inline call" - message when compiling stringMAIN.cc, see the - resolution at the end of this document. -
If you are rebuilding from a previous build [attempt], some information is kept in a cache file. This is stored in gccbuilddir/cpu-vendor-OS/ if you are building with @@ -258,7 +252,7 @@ or
make install-gcc - make install-target-libstdc++-rule+ make install-target-libstdc++-v3 @@ -271,7 +265,7 @@ include/g++-v3/ bits/ ext/ - cpu-vendor-OS/include/g++-v3/ + CPU-vendor-OS/include/g++-v3/ bits/ ext/ @@ -326,35 +320,6 @@ -
When building the .8 snapshot with g++ 2.95.2, compilation may halt - with this warning message. The "problem" is the -Werror - flag being passed to the compiler, which says to treat warnings as - errors. (This plus a high warning level makes us track down bugs - quickly.) The compiler can't inline a certain call, prints - a warning, and dies. -
-The workaround is to edit either libsrcdir/src/Makefile.in - (before configuring) or bld-libstdc++/src/Makefile - (after configuring). There's one line that reads -
- WERROR = -Werror- Delete the flag itself, so that the line reads -
- WERROR =- Then the compiler will still print a warning, but it won't die. - -
For the curious, this "problem" is actually a symptom - of something else. The compiler in CVS could inline more than what - 2.95.2 does, and the libstdc++ changes were made with that - compiler. One of the libstdc++ maintainers explains this -here. -
-This has been patched in current CVS sources. -
- -