This is the mail archive of the gcc@gcc.gnu.org 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]

Re: libstdc++ problems /w egcs-2.91.52 on sparc-linux?



>From "David S. Miller" <davem@dm.cobaltmicro.com>:
>
> It looks as if egcs is linking programs with the original libstdc++ 
> provided on your system, and not the one egcs installed.  Or vice versa.  
>
> Can you check to see which is the case? 

Egcs installed and is linking against the libstdc++ that it built; it 
doesn't look like that is the problem.

---------------------------------------------------------------------

>From Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>:  
> 
> You are mixing object files that are compiled with -fvtable-thunks with 
> ones that are compiled without it.  

Hmm... that's odd.  I configured/built with:

supo:~/sparc/egcs-cvs/egcs-build# ../egcs/configure --prefix=/usr \
   --enable-haifa --enable-threads
Configuring for a sparc-unknown-linux-gnu host.
Created "Makefile" in /root/sparc/egcs-cvs/egcs-build using "mh-frag" and "mt-frag"
Links are now set up to build a native compiler for sparc-unknown-linux-gnu 
supo:~/sparc/egcs-cvs/egcs-build# make bootstrap

Is it possible that this would cause some files to be compiled with 
-fvtable-thunks and others not?

>Please try
>
>       nm /usr/lib/libstdc++.a | grep -e : -e 'vt.*filebuf'

This reports many object files.  Those which are followed by symbols are:

filebuf.o: 
         U __vt_7filebuf 
stdstrbufs.o: 
         U _vt.7filebuf 
streambuf.o:  
00000000 R __vt_7filebuf

I will check to see if stdstrbufs.o was compiled differently from the 
other two.  If that turns out to be the problem, there's probably a bug
in the build process.

---------------------------------------------------------------------

>From "H.J. Lu" <hjl@lucon.org>: 
>
> I cannot link this simple program on Linux/Alpha. Can you like it on 
> Linux/Sparc?  
>
> ---foo.cc- 
> struct A
> {  
> 	virtual void f() = 0;
> };
> struct B : A
> {
> 	void f() {}
> };
>
> int main() { B b; return 0; }

This links okay under egcs on sparc-linux for me.

Thanks to all of you,
Kevin Milans




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