configure.ac decides whether udiv_w_sdiv.c fallback is needed based on $CHOST value (without $CFLAGS). longlong.h relies on compiler macros (relies on $CFLAGS implicitly). That leads to use of undefined macros. The workaround makes udiv_w_sdiv.c a no-on for -mzarch. https://bugs.gentoo.org/761310 --- a/mpn/generic/udiv_w_sdiv.c +++ b/mpn/generic/udiv_w_sdiv.c @@ -1,3 +1,4 @@ +#if !defined(__zarch__) /* mpn_udiv_w_sdiv -- implement udiv_qrnnd on machines with only signed division. @@ -139,3 +140,4 @@ mpn_udiv_w_sdiv (mp_limb_t *rp, mp_limb_t a1, mp_limb_t a0, mp_limb_t d) *rp = r; return q; } +#endif