This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: arm/iwmmxt VFP errors during linking


Hi Allan and Scott,

There is not too much more to expand...

/usr/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-linux-gnu/3.4.2/../../../../arm-iwmmxt-linu
x-gnu/bin/ld: ERROR: /cygdrive/c/cygwin/opt/nn/lib/libappbase-xscale-r.so uses VFP instructions, whereas /cygdrive/c/tmp/nnuziale/build/blahblah does not
/usr/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-linux-gnu/3.4.2/../../../../arm-iwmmxt-linu
x-gnu/bin/ld: failed to merge target specific data of file /cygdrive/c/cygwin/opt/nn/lib/libappbase-xscale-r.so


I have not applied the patch in Scott Merritt's posting yet, perhaps this will fix the VFP problems??

Also, another problem with the linking that I am having is that the standard C++ library needed by libappbase-xscale-r.so is "libstdc++.so.5" whereas the one built from the cross compiler I built is a different version (so.6 I believe) which results in some errors upon linking as shown below. I do not have the source for libappbase-xscale-r.so but I need to link with it, so essentially my standard C++ library needs to be the same as was used for libappbase-xscale-r.so. Is this just a matter of using the correct version of glibc when building my cross compiler, and if so how do I know which version of glibc to use?

/usr/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-linux-gnu/3.4.2/../../../../arm-iwmmxt-linux-gnu/bin/ld: warning: libstdc++.so.5, needed by /cygdrive/c/cygwin/opt/nn/lib/libappbase-xscale-r.so, not found (try using -rpath or -rpath-link)
...
/cygdrive/c/cygwin/opt/nn/lib/libappbase-xscale-r.so: undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(long)@GLIBCPP_3.2'
/cygdrive/c/cygwin/opt/nn/lib/libappbase-xscale-r.so: undefined reference to `std::ios_base::Init::Init()@GLIBCPP_3.2'
/cygdrive/c/cygwin/opt/nn/lib/libappbase-xscale-r.so: undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits
<char> >&))@GLIBCPP_3.2'
/cygdrive/c/cygwin/opt/nn/lib/libappbase-xscale-r.so: undefined reference to `__cxa_pure_virtual@CXXABI_1.2'
/cygdrive/c/cygwin/opt/nn/lib/libappbase-xscale-r.so: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)@GLIBCPP_3.2'
/cygdrive/c/cygwin/opt/nn/lib/libappbase-xscale-r.so: undefined reference to `std::cout@GLIBCPP_3.2'
/cygdrive/c/cygwin/opt/nn/lib/libappbase-xscale-r.so: undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(unsigned long)@GLIBCPP_3.2'
/cygdrive/c/cygwin/opt/nn/lib/libappbase-xscale-r.so: undefined reference to `std::ios_base::Init::~Init()@GLIBCPP_3.2'
/cygdrive/c/cygwin/opt/nn/lib/libappbase-xscale-r.so: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)@
GLIBCPP_3.2'
collect2: ld returned 1 exit status
make[1]: *** [/cygdrive/c/tmp/nnuziale/build/blahblah] Error 1
make[1]: Leaving directory `/cygdrive/c/workspace/dev/bbb'
make: *** [blahblah] Error 2



-Nick


From: Allan Clark <allanc@chickenandporn.com>
To: Nick Nuziale <nnuziale@hotmail.com>
Subject: Re: arm/iwmmxt VFP errors during linking
Date: Mon, 11 Apr 2005 01:27:18 -0400

Nick Nuziale wrote:

Hi,

I seem to have successfully built a toolchain(cross-compiler for windows) for iwmmxt-linux target (using gcc 3.4.2 and 2.3.3), however when linking my code with another library (a library built using a gcc cross compiler for the same target with VFP) I am getting VFP errors as shown below

"arm-iwmmxt-linux-gnu-g++ -o /cygdrive/c/tmp/nnuziale/build/blahblah /cygdrive/c/tmp
/nnuziale/build/hostBase.o /cygdrive/c/tmp/nnuziale/build/hostInit.o / -L/cygdrive/c/cygwin/usr/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/arm-iwmmxt-linux-gnu/lib -L/cygdrive/c/cygwin/opt/nn/lib -lappbase-xscale-r -lrt
usr/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-linux-gnu/3.4.2/../../../../arm-iwmmxt-linux-gnu/bin/ld: ERROR: /cygdrive/c/cygwin/opt/nn/lib/libappbase-xscale-r.so uses VFP instructions, whereas /cygdrive/c/tmp/nnuziale/build/blahblah does not
..."


My cross-compiler was built with arm-iwmmxt.dat containing:
KERNELCONFIG=`pwd`/arm.config
TARGET=arm-iwmmxt-linux-gnu
TARGET_CFLAGS="-O"
GCC_EXTRA_CONFIG="--enable-cross --enable-shared --enable-languages=c,c++ --enable-__cxa_atexit --enable-threads=posix --disable-multilib --with-float=soft --with-cpu=iwmmxt --with-tune=iwmmxt --with-fpu=vfp"
GLIBC_EXTRA_CONFIG="--without-fp"



Is there some patch I need to make VFP work?? Any help is much appreciated...

Would you expand the blahblah of your error text? Private response is OK for this Question.


Allan


_________________________________________________________________
Scan and help eliminate destructive viruses from your inbound and outbound e-mail and attachments. http://join.msn.com/?pgmarket=en-ca&page=byoa/prem&xAPID=1994&DI=1034&SU=http://hotmail.com/enca&HL=Market_MSNIS_Taglines Start enjoying all the benefits of MSN® Premium right now and get the first two months FREE*.



------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


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