A patch was already created and applied for gcc 4.1. It needs to be backported to the 4.0 branch.
See http://gcc.gnu.org/ml/gcc-patches/2005-09/msg01605.html -- Summary: Linux PPC64 libffi -vs- long double return Product: gcc Version: 4.0.3 Status: UNCONFIRMED Severity: normal Priority: P2 Component: libffi AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: mark at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24148