This is the mail archive of the
libstdc++@sources.redhat.com
mailing list for the libstdc++ project.
Re: Couldn't build libstdc++ (configure fails)
- To: <oliva at lsd dot ic dot unicamp dot br>
- Subject: Re: Couldn't build libstdc++ (configure fails)
- From: Maurizio Loreti <loreti at pd dot infn dot it>
- Date: Fri, 1 Dec 2000 10:12:03 +0100 (CET)
- cc: <libstdc++ at sources dot redhat dot com>
I'm replying to my own message, because I have solved the problem I had
yesterday (altough with a dirty kludge) - just in case this information
may be useful to other people.
To begin with, on the cluster of Linux boxes I am managing there are a lot
of gcc's installed: in /usr/bin the one included in the vanilla RedHat 6.1
release (that is, egcs-2.91.66); in /usr/soft/bin the default 2.95.2
release with libstdc++ v2; and, in /usr/local/gcc/bin, 2.95.2 with
libstdc++ 2.90.8.
My users select a particular gcc version changing their PATH (and MANPATH,
INFOPATH, LD_LIBRARY_PATH, ...) with the help of prebuilt shell command
procedures.
In some way, not compatible header files have been used when building the
2.97 snapshot; I have tried, first, with the following commands to select
the correct headers:
../gcc-20001127/configure --prefix=/usr/local/gcc \
--oldincludedir=/usr/soft/include --enable-libstdcxx-v3
make bootstrap
to no avail (I got always the same errors I reported yesterday, for doubly
typedef'ed float_t and double_t in /usr/include/bits/mathdef.h).
Note that THIS mathdef.h belongs to *egcs 2.91.66*, and I do not
understand why on earth the make procedure tries to use it; in addition,
there is NO FILE name mathdef.h in the include path of {gcc 2.95.2 +
libstdc++v2} or in the path of {gcc 2.95.2 + libstdc++v2.90.8}. I had to
manually edit that file (as root), removing lines 27 and 29 that read:
23: #if defined __USE_ISOC9X && defined _MATH_H
24: /* The ix87 FPUs evaluate all values in the 80 bit floating-point format
25: which is also available for the user as `long double'. Therefore we
26: define: */
27: typedef long double float_t; /* `float' expressions are evaluated as
28: `long double'. */
29: typedef long double double_t; /* `double' expressions are evaluated as
30: `long double'. */
After having given a command "make" the building of 2.97 resumes and goes
to the end; and I (as root) restored the old content of the include file
/usr/include/bits/mathdef.h.
In this moment I am performing a "make -k check", and I got:
- build failures in 20_util/auto_ptr.cc, 23_containers/map_operators.cc,
23_containers/set_operators.cc
- run failures in 27_io/filebuf_members.cc
These failures are both in the 'static' and in the 'shared' mode. The
files objdir/i686-pc-linux-gnu/libstdc++-v3/testsuite/20001201-mkcheck.txt
mkcheckfiles.txt, mkchecklog.txt and filebuf_members-1.tst show no useful
information to me (the last one is empty).
Do you have any suggestion for me? Should I remove gcc 2.95.2
with libstdc++ 2.90.8 and replace it with gcc 20001201?
However, I hope the previous info will be usefull to you; I may send the
files in .../testsuite/, if you need them.
HTH, Maurizio
P.S.: Now I am going to proceed installing on Sun/Solaris and on
Digital/DEC OSF systems; maybe other messages will follow :-)
--
Maurizio Loreti http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy loreti@pd.infn.it
Murphy's law: "Anything that can go wr
/bin/fortune: segmentation fault - core dumped