arm/iwmmxt VFP errors during linking

Nick Nuziale nnuziale@hotmail.com
Mon Apr 11 15:05:00 GMT 2005


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



More information about the crossgcc mailing list