This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: MIPS64 soft-float: missing definition for __floatdidf and friends
Roger Sayle <roger@eyesopen.com> writes:
> I think your patch is the correct approach (and another simplification
> towards a top-level libgcc), but unfortunately I can't approve it as its
> in that grey area just outside of libbackend.a.
Perhaps I'm going over old ground here, but do we really want to
cut-&-paste bits of libgcc2.c like this? The templates there are fine
(and indeed Adam's versions seem to be copied from there, with appropriate
macro substitutions). I thought the idea of doing it libgcc2.c's way was
to reduce the duplication between very similar functions.
Why not just arrange for libgcc2.c to define functions for all three
of SI, DI and TI where appropriate?
> It might also be good to add some -msoft-float tests to the testsuite
> to catch this sort of thing in future.
We don't want to force -msoft-float in link or run tests, even for *-elf
targets. The problem is a combination of:
(1) there's no canonical "mips64-elf" system as such and
(2) -msoft-float is an ABI change from -mhard-float
We don't know what BSP libraries the chosen --target_board will be
linking in and there's no guarantee that those libraries will be
link-compatible with -msoft-float code.
The thing to do is to test -msoft-float multilibs on targets where
that's possible (such as --target_board mips-sim for mips{,64}-elf).
That's what I tend to do anyway. (Like DJ's __dso_handle thing,
this was a failure I'd noticed and not had time to deal with yet
due to excess busyness elsewhere.)
Richard