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

gcc 4.0.x arm softfloat difficulties


Hi!

I've been trying to get a gcc 4.0.x-based arm softfloat toolchain
working (using crosstool), with little success so far.

Doing the straightforward thing and adding
	gcc-4.0.1-glibc-2.3.2-hdrs-2.6.11.2.dat
to demo-arm-softfloat.sh does not work -- this configuration uses gcc
3.3.6 to build glibc (since glibc 2.3.2 apparently doesn't build with
gcc 4.0.1) and that causes glibc to be built hardfloat since gcc 3.3
doesn't have arm softfloat support out-of-the-box.  Didn't investigate
this further.

Trying again with gcc-4.0.1-glibc-2.3.5-hdrs-2.6.11.2.dat didn't work
out either -- when building the bootstrap gcc, it bails out when building
libgcc with a list of undefined references to the following functions:
__adddf3 __addsf3 __divdf3 __divsf3 __eqdf2 __eqsf2 __fixsfsi __floatsidf
__floatsisf __gedf2 __ledf2 __ltdf2 __muldf3 __mulsf3 __nedf2 __subdf3
__subsf3.

So, I forward-ported patches/gcc-3.4.2/gcc-3.4.0-arm-lib1asm.patch and
patches/gcc-3.4.2/gcc-3.4.0-arm-nolibfloat.patch, and that takes me a
bit further (libgcc builds successfully), but bails out a bit later when
our newly built gcc tries to build itself, with a couple or errors a la:

libgcc/./_floatdidf_s.o: In function `__floatdidf':
libgcc2.c:(.text+0x0): multiple definition of `__floatdidf'
libgcc/./_addsubdf3_s.o:/data/buytenh/crosstool/crosstool-0.38/build/arm-softfloat-linux-gnu/gcc-4.0.1-glibc-2.3.5/gcc-4.0.1/gcc/config/arm/ieee754-df.S:474: first defined here
/opt/crosstool/gcc-4.0.1-glibc-2.3.5/arm-softfloat-linux-gnu/arm-softfloat-linux-gnu/bin/ld: Warning: size of symbol `__floatdidf' changed from 96 in libgcc/./_addsubdf3_s.o to 140 in libgcc/./_floatdidf_s.o
libgcc/./_floatdisf_s.o: In function `__floatdisf':
libgcc2.c:(.text+0x0): multiple definition of `__floatdisf'
libgcc/./_addsubsf3_s.o:/data/buytenh/crosstool/crosstool-0.38/build/arm-softfloat-linux-gnu/gcc-4.0.1-glibc-2.3.5/gcc-4.0.1/gcc/config/arm/ieee754-sf.S:315: first defined here
/opt/crosstool/gcc-4.0.1-glibc-2.3.5/arm-softfloat-linux-gnu/arm-softfloat-linux-gnu/bin/ld: Warning: size of symbol `__floatdisf' changed from 172 in libgcc/./_addsubsf3_s.o to 252 in libgcc/./_floatdisf_s.o
collect2: ld returned 1 exit status

I can't really imagine that gcc 4.0.x arm softfloat doesn't work at all
or that nobody is using it, so maybe someone here has an idea what to do
before I proceed to plod on?


thanks,
Lennert


------
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]