This is the mail archive of the libstdc++@sources.redhat.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]

Re: Couldn't build libstdc++ (configure fails)


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




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