This is the mail archive of the
libstdc++@sourceware.cygnus.com
mailing list for the libstdc++ project.
bugs: gcc with stdc++-v3, rawhide's gcc, stlport, cxxrt
- To: Redhat Devel <redhat-devel-list at redhat dot com>,STDC++ <libstdc++ at sourceware dot cygnus dot com>
- Subject: bugs: gcc with stdc++-v3, rawhide's gcc, stlport, cxxrt
- From: Levente Farkas <lfarkas at mindmaker dot hu>
- Date: Thu, 06 Jul 2000 17:49:32 +0200
- Organization: Mindmaker Ltd.
- Reply-To: lfarkas at mindmaker dot hu
hi,
after I spending many days try to build a gcc rpm (since I hate install
anything from tar ball (or make install)) which contains the
latest snapshot of gcc with stdc++-v3 (ie. the latest standard c++ library)
it seems I'll give up. so here is my summary.
what I find
http://www.codesourcery.com/gcc-snapshots.html
ftp://sourceware.cygnus.com/pub/java/rpm/
ftp://ftp.redhat.com/pub/rawhide/ (and redhat's rawhide which is always
full so I use mirror sites and check it yesterday, I said it just because
I heard the rawhide changed yesterday).
all of them contain the "old" stdc++ although redhat's rawhide's
gcc-2.95.3-0.20000517 said:
-------------
%description -n libstdc++
The libstdc++ package contains a snapshot of the GCC Standard C++
Library v3, an ongoing project to implement the ISO 14882 Standard C++
library.
--------------
which is clearly not true, since the configure options does not contain
the --enable-libstdcxx-v3 options:-( those who think (eg. at redhat) that
include/g++-3/ contains the v3 header files are wrong, the new header files
under include/g++-v3/. so rawhide's spec file sould have to patch. since
rawhide's spec file seems to be the best I try to patch it.
- first the gcc source is invalid:
Source0: ftp://ftp.gnu.org/pub/gnu/gcc/gcc-2.95.3-20000315.tar.bz2
there is no bz2 files nor gnu's neither gcc's ftp site and the gcc still
called egcs-...
so I checkout the latest cvs and make a tar.bz2 from it.
- I download and replace the libgcj with the latest snapshot just to be
uptodate (there's no problem with it) and since it's beta anyway IMHO
it can be replaced both in the rawhide's and redhat distro rpm.
- remove all patches since all of the in the latest snapshot of gcc and libgcj.
- the libstdc++ Provides: should have to update if we wanna make it correct.
- I have to comment the following part since gcc/java/parse.c not generated
during the compilation (it's a gcc config/makefile bug), it'd be enough
to delete just that file but I was lasy
# Remove bison-generated files - we want bison 1.28'ish versions...
#for i in gcc/cp/parse gcc/c-parse gcc/cexp gcc/java/parse-scan gcc/java/parse
gcc/objc/objc-parse; do
# rm -f $i.c
#done
- add --enable-libstdcxx-v3 to the configure options without it gcc compiled
with stdc++-v2!!!
and try to build. of course I've got an error again during compilation:-(
in the stdc++ (as I send it to the stdc++ list in another mail).
a strange thing if I run confugure and make in the gcc's toplevel directory
insted of the i386-redhat-linux (as the gcc install doc said, as the rawhide's
spec file was written) everything is compiled, but stdc++-v3 is not even
touched (why? if the --enable-libstdcxx-v3 given). another interesting
sentence from http://gcc.gnu.org/install/configure.html :
--------------
First, we highly recommend that GCC be built into a separate directory than the
sources which does not reside within the source tree. This is how we generally
build GCC; building where srcdir == objdir should still work, but doesn't get
extensive testing; building where objdir is a subdirectory of srcdir is
unsupported.
--------------
so this kind of directory structure (spec file) like rahide and codesourcery
where i386-redhat-linux is in the gcc directory is not the best choice,
(if I understand the above statement well) or if it's ok then gcc's configure
documentation should have to change.
what else should have to modify in the spec file to be correct:
- change the %files section of libstdc++ and libstdc++-devel :-)
eg: %{GCC_PREFIX}/include/g++* would be usefule with the correct lib
filenames
- libstdc++-compat.tar.bz2 contain the "old" stdc++ libraries, the stdc++-v2
libraries would have to add to this (which were the library eg. this rpm
since those are now "old" too.
after I spend many day with it, I give up. may be someone (eg. at redhat)
who has more time to do this can do it.
another option to make an rpm from stlport (http://www.stlport.org/) and
the developer can choose between libstdc++ (if there be one) or stlport.
the only problem it's not integrated into gcc which means you have to use
gcc/g++ -I... -L... x.cc
insted of
g++ x.cc
which is not a big price. unfortunately I can't compile stlport either:-(
(there's some conflict between glibc's and sgi's locale header files)
with gcc-glibc.mak (as I suppose rh 6.2 is a glibc system) just with
gcc.mak (may it's also good, but I haven't got time to test it, yet).
I try to compile cxxrt too, but it's also fail during compilation (and I
don't wanna send time with it:-)
so after that I'm really don't know, nobody use c++ on linux (or at least
use without need a good standard c++ library) or they install it manualy
and more clever than me ?
-- Levente
"The only thing worse than not knowing the truth is
ruining the bliss of ignorance."