This is the mail archive of the mailing list for the GCC project.

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

Building libstdc++-2.90.7 using gcc-2.95.3 on Redhat Linux 7.1


The administrator for the Linux PC I use recently upgraded the OS to
Redhat Linux 7.1.  Before this I had gcc 2.95.2 and libstdc++ 2.90.7 build
as separate entities and it worked just fine using -I and -L.  After the
new OS was installed the old installation no longer worked.  The complier
seemed to work but the library would not link in with an executable.  Now
I can't get gcc 2.95.3 to build libstdc++ 2.90.7 (as a separate library)
on this computer.  The compilation stops on the file '' and
here is the error message returned by the complier:

/bin/sh ../libtool --mode=compile c++ -DHAVE_CONFIG_H -I. -I../../src/src
-I.. -nostdinc++ -I../../src/config/linux -I../../src -I../../src/stl
-I../../src/libio    -D_GNU_SOURCE -fno-implicit-templates -Wall
-Wno-format -W -Wwrite-strings -Winline -Werror  -g -fno-honor-std -c
rm -f .libs/basic_file.lo
c++ -DHAVE_CONFIG_H -I. -I../../src/src -I.. -nostdinc++
-I../../src/config/linux -I../../src -I../../src/stl -I../../src/libio
-D_GNU_SOURCE -fno-implicit-templates -Wall -Wno-format -W -Wwrite-strings
-Winline -Werror -g -fno-honor-std -c  -fPIC -DPIC
../../src/src/ -o .libs/basic_file.lo
../../src/src/ In method `struct __c_streampos
__basic_file::seekpos(_G_fpos64_t, _Ios_Openmode = operator |((enum
_Ios_Openmode)1, (enum _Ios_Openmode)2))':
../../src/src/ `struct __c_streampos' used where a `long
long int' was expected
cc1plus: warnings being treated as errors
../../src/src/ warning: control reaches end of non-void
function `__basic_file::seekpos(_G_fpos64_t, _Ios_Openmode)'
../../src/src/ In method `struct __c_streampos
__basic_file::sys_seek(_G_fpos64_t, _Ios_Seekdir)':
../../src/src/ `struct __c_streampos' used where a `long
long int' was expected
../../src/src/ warning: control reaches end of non-void
function `__basic_file::sys_seek(_G_fpos64_t, _Ios_Seekdir)'
make[2]: *** [basic_file.lo] Error 1
make[2]: Leaving directory `/usr/local/src/libstdc++-2.90.7/obj/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/libstdc++-2.90.7/obj'
make: *** [all-recursive-am] Error 2

I have looked into this some and it seems that a struct is trying to be
passed as an argument of type 'long long int'.  One of the offending
function calls in '' is:

  __basic_file::seekpos(__c_streampos __pos, ios_base::openmode __mode)
  { return _IO_file_seekoff(this, __pos, ios_base::beg, __mode); }

The called function is declared in 'libioP.h' as:

extern _IO_seek_fpos_t _IO_file_seekoff __P ((_IO_FILE *,
					      _IO_seek_off_t, int, int));

Here it seems that '_IO_seek_off_t' is a typedef to a build-in type 'long
long int' and '__c_streampos' is a typedef to another struct as:

../src/bits/basic_file.h:50:    typedef _IO_fpos64_t __c_streampos;
../src/libio/libio.h:43:#define _IO_fpos64_t _G_fpos64_t

It seems that '_G_fpos64_t' is a struct that I can't find declared in any
header file for libstdc++ 2.90.7 or gcc 2.95.3.

Did the 'configure' script configure these file wrong or did something
else bad happen?  I can't seem to find the more detailed documentation
about how to make this build work?

Please let me know if anyone has any ideas.



|  Roscoe Bartlett                     |
|  Ph.D. student                       |
|  Department of Chemical Engineering  |
|  Carnegie Mellon University          |
|  email:        |
|  work phone: (412) 268 - 2238        |

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