This is the mail archive of the libstdc++@sourceware.cygnus.com mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

bugs: gcc with stdc++-v3, rawhide's gcc, stlport, cxxrt


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."

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]