https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106832
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- BTW, for the case where -mabi=ieeelongdouble is the default unless there is some power* specific configuration in the library that needs to be done perhaps changing configure.tgt is all we need, but for the case where long double is IBM extended and only _Float128/__float128 is IEEE quad perhaps some compiler changes are needed too. I see stuff like: ireal_type_node = build_distinct_type_copy (long_double_type_node); TYPE_IMAGINARY_FLOAT (ireal_type_node) = 1; else if (TYPE_MAIN_VARIANT (basetype) == long_double_type_node || TYPE_MAIN_VARIANT (basetype) == ireal_type_node) fmodfn = builtin_decl_explicit (BUILT_IN_FMODL); etc. (e.g. grep for long_double_type_node or BUILT_IN_[A-Z0-9_]*L etc.) in the backend.