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.
Re: arm/iwmmxt VFP errors during linking
- From: "Nick Nuziale" <nnuziale at hotmail dot com>
- To: allanc at chickenandporn dot com
- Cc: crossgcc at sources dot redhat dot com
- Date: Mon, 11 Apr 2005 11:05:21 -0400
- Subject: Re: arm/iwmmxt VFP errors during linking
- Bcc:
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