https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83387
--- Comment #15 from Sebastian Huber <sebastian.hu...@embedded-brains.de> --- (In reply to Sebastian Huber from comment #14) > (In reply to Peter Bergner from comment #13) > > (In reply to Sebastian Huber from comment #12) > > > (In reply to Peter Bergner from comment #9) > > > [...] > > > > Here, you can see that on ELFv2, we always assume HW FP regs are > > > > avialable, > > > > because we're forcing usage of HW FP registers (FP_ARG_RETURN, ie, f1, > > > > aka > > > > reg 33). I'm afraid that are going to be a *LOT* of these assumptions > > > > builtin into the backend and tracking them all down and fixing them is > > > > not > > > > going to be easy. That's why I asked earlier, if you really really > > > > need to > > > > disable HW FP for your builds. If you do, then good luck to you finding > > > > them all. > > > > > > Thanks for your investigations. I removed the 64-bit soft-float multilib. > > > > I can't promise this is all you need, but does the following patch help? > > > > Index: gcc/config/rs6000/rs6000.c > > =================================================================== > > --- gcc/config/rs6000/rs6000.c (revision 255700) > > +++ gcc/config/rs6000/rs6000.c (working copy) > > @@ -11095,7 +11095,8 @@ rs6000_discover_homogeneous_aggregate (m > > homogeneous aggregates; these types are handled via the > > targetm.calls.split_complex_arg mechanism. Complex types > > can be elements of homogeneous aggregates, however. */ > > - if (DEFAULT_ABI == ABI_ELFv2 && type && AGGREGATE_TYPE_P (type)) > > + if (TARGET_HARD_FLOAT && DEFAULT_ABI == ABI_ELFv2 && type > > + && AGGREGATE_TYPE_P (type)) > > { > > machine_mode field_mode = VOIDmode; > > int field_count = rs6000_aggregate_candidate (type, &field_mode); > > > > > > > > With this patch I can build an Ada compiler with a -m64 and -msoft-float > multilib. How do we want to continue with this PR? Close it as WONTFIX or apply the patch and close it as FIXED?