[uClibc]why doesn't uclibc -msoft-float work like algorithmics -msoft-float?

Jay Carlson nop at nop.com
Mon Mar 31 19:36:44 UTC 2003

On Thu, 20 Mar 2003, David Wuertele wrote:

> Someone please hit me with the Clue Hammer.  My C++ file doesn't get
> linked the same when I use uclibc as when I use algorithmics.
> In the following, I use identical command lines to compile the file
> first with algorithmics, then with uclibc.  The uclibc file ends up
> with unlinked float commands.  Why are they different?

Because the Algorithmics toolchain is using the "GOFAST" softfp
library calling convention and uclibc is using the GNU calling
convention.  You run problems when you use one gcc to build programs
and then link against a differently-configured libgcc.

To see where this is configured, cd to gcc/config/mips/ in your source
tree and grep for GOFAST.

My current opinion is that GOFAST is a Bad Idea on Linux---I repented.
I'm too lazy to type in the argument again---does anybody know why
Algorithmics is still using it on this platform?


[original symbol list follows]

> ----------------------------------------------------------------------
> With Algorithmics toolchain:
> # mipsel-linux-g++ -Wall -O3 -mips2 -msoft-float [...]


>          U _gp_disp
>          U dpadd
>          U dpcmp
>          U dpdiv
>          U dpmul
>          U dpsub
>          U dptoli
> 00000000 t gcc2_compiled.
>          U litodp

> ----------------------------------------------------------------------
> With uclibc toolchain:
> $ /home/dave/buildroot/buildroot-200303200950/build/staging_dir/bin/mipsel-uclibc-g++ -Wall -O3 -mips2 -msoft-float [...]

>          U __adddf3
>          U __divdf3
>          U __eqdf2
> 000001cc T _FilterInit
>          U __fixdfsi
>          U __floatsidf
>          U _gp_disp
>          U __gtdf2
>          U __muldf3
>          U __subdf3
> 000000e4 T _Z6myceild
> 00000000 T _Z7myfloord

More information about the uClibc mailing list