libgcc.a not built with -msoft-float when --with-float=soft specified for ARM-ELF target (__divsi3 problem etc.)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,
I have successfully built binutils and gcc, both for the arm-elftarget. Programs not requiring integer division (only multiply or plusor minus) arithmetic operation compile right.However I have one program doing integer division and in the resultingobject file, there are references to functions like __divsi3 etc.,which I believe are to make the integer division possible.
The problem is, I compile with "-march=armv5 -msoft-float", and duringlinking, the linker complains:
arm-elf-gcc -march=armv5 -mno-thumb -O1 -c -o ./prec.o ./prec.carm-elf-ld --entry=main -L/usr/local/lib/gcc/arm-elf/4.2.2 --strip-all-o ./prec ./prec.o -lgccarm-elf-ld: ERROR:/usr/local/lib/gcc/arm-elf/4.2.2/libgcc.a(_divsi3.o) uses FPAinstructions, whereas ./prec does notarm-elf-ld: failed to merge target specific data of file/usr/local/lib/gcc/arm-elf/4.2.2/libgcc.a(_divsi3.o)arm-elf-ld: ERROR:/usr/local/lib/gcc/arm-elf/4.2.2/libgcc.a(_modsi3.o) uses FPAinstructions, whereas ./prec does notarm-elf-ld: failed to merge target specific data of file/usr/local/lib/gcc/arm-elf/4.2.2/libgcc.a(_modsi3.o)arm-elf-ld: ERROR:/usr/local/lib/gcc/arm-elf/4.2.2/libgcc.a(_dvmd_tls.o) uses FPAinstructions, whereas ./prec does notarm-elf-ld: failed to merge target specific data of file/usr/local/lib/gcc/arm-elf/4.2.2/libgcc.a(_dvmd_tls.o)./prec.o: In function `poradi_na_permutace':prec.c:(.text+0x110): undefined reference to `realloc'
I read in the gcc manual that when I use -msoft-float, then I mustmake sure that libgcc.a is built with -msoft-float as well. I havespecified the "--with-float=soft" to gcc ./configure, but it probablydoes not take effect for the libgcc.a build.
And I just thought about it and because _divsi3 and _modsi3 are, as itseems, written in assembly, they are probably already hardcoded to usethe HW floating unit (FPA).
Could you please explain to me if there is a solution to the problem?I am using gcc branch 4.2 from SVN (and binutila 2.18). My target isarm-elf.
Thanks,Boris Dušek

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux