Fix build with GCC 13 _FloatN, _FloatNx built-in functions

GCC 13 has added more _FloatN and _FloatNx versions of existing
<math.h> and <complex.h> built-in functions, for use in libstdc++-v3.

This breaks the glibc build because of how those functions are defined
as aliases to functions with the same ABI but different types.  Add
appropriate -fno-builtin-* options for compiling relevant files, as
already done for the case of long double functions aliasing double
ones and based on the list of files used there.

I fixed some mistakes in that list of double files that I noticed
while implementing this fix, but there may well be more such
(harmless) cases, in this list or the new one (files that don't
actually exist or don't define the named functions as aliases so don't
need the options).  I did try to exclude cases where glibc doesn't
define certain functions for _FloatN or _FloatNx types at all from the
new uses of -fno-builtin-* options.  As with the options for double
files (see the commit message for commit
49348beafe, "Fix build with GCC 10 when
long double = double."), it's deliberate that the options are used
even if GCC currently doesn't have a built-in version of a given
functions, so providing some level of future-proofing against more
such built-in functions being added in future.

Tested with build-many-glibcs.py for aarch64-linux-gnu
powerpc-linux-gnu powerpc64le-linux-gnu x86_64-linux-gnu (compilers
and glibcs builds) with GCC mainline.
This commit is contained in:
Joseph Myers 2022-10-31 23:20:08 +00:00
parent bbff275fb1
commit f66780ba46
8 changed files with 753 additions and 12 deletions

View File

@ -668,18 +668,18 @@ CFLAGS-s_csinh.c += -fno-builtin-csinhl
CFLAGS-s_csqrt.c += -fno-builtin-csqrtl
CFLAGS-s_ctan.c += -fno-builtin-ctanl
CFLAGS-s_ctanh.c += -fno-builtin-ctanhl
CFLAGS-s_dadd.c += -fno-builtin-daddl
CFLAGS-s_ddiv.c += -fno-builtin-ddivl
CFLAGS-s_dfma.c += -fno-builtin-dfmal
CFLAGS-s_dmul.c += -fno-builtin-dmull
CFLAGS-s_dsqrt.c += -fno-builtin-dsqrtl
CFLAGS-s_dsub.c += -fno-builtin-dsubl
CFLAGS-s_erf.c += -fno-builtin-erfl
CFLAGS-s_erfc.c += -fno-builtin-erfcl
CFLAGS-e_exp.c += -fno-builtin-expl
CFLAGS-w_exp10.c += -fno-builtin-exp10l
CFLAGS-e_exp2.c += -fno-builtin-exp2l
CFLAGS-s_expm1.c += -fno-builtin-expm1l
CFLAGS-s_f32xaddf64.c += -fno-builtin-daddl
CFLAGS-s_f32xdivf64.c += -fno-builtin-ddivl
CFLAGS-s_f32xfmaf64.c += -fno-builtin-dfmal
CFLAGS-s_f32xmulf64.c += -fno-builtin-dmull
CFLAGS-s_f32xsqrtf64.c += -fno-builtin-dsqrtl
CFLAGS-s_f32xsubf64.c += -fno-builtin-dsubl
CFLAGS-s_fabs.c += -fno-builtin-fabsl
CFLAGS-s_fadd.c += -fno-builtin-faddl
CFLAGS-s_fdim.c += -fno-builtin-fdiml
@ -707,7 +707,6 @@ CFLAGS-s_fromfp.c += -fno-builtin-fromfpl
CFLAGS-s_fromfpx.c += -fno-builtin-fromfpxl
CFLAGS-s_fsqrt.c += -fno-builtin-fsqrtl
CFLAGS-s_fsub.c += -fno-builtin-fsubl
CFLAGS-s_gamma.c += -fno-builtin-gammal
CFLAGS-s_getpayload.c += -fno-builtin-getpayloadl
CFLAGS-w_hypot.c += -fno-builtin-hypotl
CFLAGS-w_ilogb.c += -fno-builtin-ilogbl
@ -766,6 +765,240 @@ CFLAGS-s_y1.c += -fno-builtin-y1l
CFLAGS-s_yn.c += -fno-builtin-ynl
endif
# Likewise, for _Float32x and _Float64 aliases.
CFLAGS-w_acos.c += -fno-builtin-acosf32x -fno-builtin-acosf64
CFLAGS-w_acosh.c += -fno-builtin-acoshf32x -fno-builtin-acoshf64
CFLAGS-w_asin.c += -fno-builtin-asinf32x -fno-builtin-asinf64
CFLAGS-s_asinh.c += -fno-builtin-asinhf32x -fno-builtin-asinhf64
CFLAGS-s_atan.c += -fno-builtin-atanf32x -fno-builtin-atanf64
CFLAGS-w_atan2.c += -fno-builtin-atan2f32x -fno-builtin-atan2f64
CFLAGS-w_atanh.c += -fno-builtin-atanhf32x -fno-builtin-atanhf64
CFLAGS-s_cabs.c += -fno-builtin-cabsf32x -fno-builtin-cabsf64
CFLAGS-s_cacos.c += -fno-builtin-cacosf32x -fno-builtin-cacosf64
CFLAGS-s_cacosh.c += -fno-builtin-cacoshf32x -fno-builtin-cacoshf64
CFLAGS-s_canonicalize.c += -fno-builtin-canonicalizef32x -fno-builtin-canonicalizef64
CFLAGS-s_carg.c += -fno-builtin-cargf32x -fno-builtin-cargf64
CFLAGS-s_casin.c += -fno-builtin-casinf32x -fno-builtin-casinf64
CFLAGS-s_casinh.c += -fno-builtin-casinhf32x -fno-builtin-casinhf64
CFLAGS-s_catan.c += -fno-builtin-catanf32x -fno-builtin-catanf64
CFLAGS-s_catanh.c += -fno-builtin-catanhf32x -fno-builtin-catanhf64
CFLAGS-s_cbrt.c += -fno-builtin-cbrtf32x -fno-builtin-cbrtf64
CFLAGS-s_ccos.c += -fno-builtin-ccosf32x -fno-builtin-ccosf64
CFLAGS-s_ccosh.c += -fno-builtin-ccoshf32x -fno-builtin-ccoshf64
CFLAGS-s_ceil.c += -fno-builtin-ceilf32x -fno-builtin-ceilf64
CFLAGS-s_cexp.c += -fno-builtin-cexpf32x -fno-builtin-cexpf64
CFLAGS-s_cimag.c += -fno-builtin-cimagf32x -fno-builtin-cimagf64
CFLAGS-s_clog.c += -fno-builtin-clogf32x -fno-builtin-clogf64
CFLAGS-s_clog10.c += -fno-builtin-clog10f32x -fno-builtin-clog10f64
CFLAGS-s_conj.c += -fno-builtin-conjf32x -fno-builtin-conjf64
CFLAGS-s_copysign.c += -fno-builtin-copysignf32x -fno-builtin-copysignf64
CFLAGS-s_cos.c += -fno-builtin-cosf32x -fno-builtin-cosf64
CFLAGS-w_cosh.c += -fno-builtin-coshf32x -fno-builtin-coshf64
CFLAGS-s_cpow.c += -fno-builtin-cpowf32x -fno-builtin-cpowf64
CFLAGS-s_cproj.c += -fno-builtin-cprojf32x -fno-builtin-cprojf64
CFLAGS-s_creal.c += -fno-builtin-crealf32x -fno-builtin-crealf64
CFLAGS-s_csin.c += -fno-builtin-csinf32x -fno-builtin-csinf64
CFLAGS-s_csinh.c += -fno-builtin-csinhf32x -fno-builtin-csinhf64
CFLAGS-s_csqrt.c += -fno-builtin-csqrtf32x -fno-builtin-csqrtf64
CFLAGS-s_ctan.c += -fno-builtin-ctanf32x -fno-builtin-ctanf64
CFLAGS-s_ctanh.c += -fno-builtin-ctanhf32x -fno-builtin-ctanhf64
CFLAGS-s_erf.c += -fno-builtin-erff32x -fno-builtin-erff64
CFLAGS-s_erfc.c += -fno-builtin-erfcf32x -fno-builtin-erfcf64
CFLAGS-e_exp.c += -fno-builtin-expf32x -fno-builtin-expf64
CFLAGS-w_exp10.c += -fno-builtin-exp10f32x -fno-builtin-exp10f64
CFLAGS-e_exp2.c += -fno-builtin-exp2f32x -fno-builtin-exp2f64
CFLAGS-s_expm1.c += -fno-builtin-expm1f32x -fno-builtin-expm1f64
CFLAGS-s_fabs.c += -fno-builtin-fabsf32x -fno-builtin-fabsf64
CFLAGS-s_fadd.c += -fno-builtin-f32addf32x -fno-builtin-f32addf64
CFLAGS-s_fdim.c += -fno-builtin-fdimf32x -fno-builtin-fdimf64
CFLAGS-s_fdiv.c += -fno-builtin-f32divf32x -fno-builtin-f32divf64
CFLAGS-s_ffma.c += -fno-builtin-f32fmaf32x -fno-builtin-f32fmaf64
CFLAGS-s_floor.c += -fno-builtin-floorf32x -fno-builtin-floorf64
CFLAGS-s_fma.c += -fno-builtin-fmaf32x -fno-builtin-fmaf64
CFLAGS-s_fmax.c += -fno-builtin-fmaxf32x -fno-builtin-fmaxf64
CFLAGS-s_fmaximum.c += -fno-builtin-fmaximumf32x -fno-builtin-fmaximumf64
CFLAGS-s_fmaximum_mag.c += -fno-builtin-fmaximum_magf32x -fno-builtin-fmaximum_magf64
CFLAGS-s_fmaximum_mag_num.c += -fno-builtin-fmaximum_mag_numf32x -fno-builtin-fmaximum_mag_numf64
CFLAGS-s_fmaximum_num.c += -fno-builtin-fmaximum_numf32x -fno-builtin-fmaximum_numf64
CFLAGS-s_fmaxmag.c += -fno-builtin-fmaxmagf32x -fno-builtin-fmaxmagf64
CFLAGS-s_fmin.c += -fno-builtin-fminf32x -fno-builtin-fminf64
CFLAGS-s_fminimum.c += -fno-builtin-fminimumf32x -fno-builtin-fminimumf64
CFLAGS-s_fminimum_mag.c += -fno-builtin-fminimum_magf32x -fno-builtin-fminimum_magf64
CFLAGS-s_fminimum_mag_num.c += -fno-builtin-fminimum_mag_numf32x -fno-builtin-fminimum_mag_numf64
CFLAGS-s_fminimum_num.c += -fno-builtin-fminimum_numf32x -fno-builtin-fminimum_numf64
CFLAGS-s_fminmag.c += -fno-builtin-fminmagf32x -fno-builtin-fminmagf64
CFLAGS-w_fmod.c += -fno-builtin-fmodf32x -fno-builtin-fmodf64
CFLAGS-s_fmul.c += -fno-builtin-f32mulf32x -fno-builtin-f32mulf64
CFLAGS-s_frexp.c += -fno-builtin-frexpf32x -fno-builtin-frexpf64
CFLAGS-s_fromfp.c += -fno-builtin-fromfpf32x -fno-builtin-fromfpf64
CFLAGS-s_fromfpx.c += -fno-builtin-fromfpxf32x -fno-builtin-fromfpxf64
CFLAGS-s_fsqrt.c += -fno-builtin-f32sqrtf32x -fno-builtin-f32sqrtf64
CFLAGS-s_fsub.c += -fno-builtin-f32subf32x -fno-builtin-f32subf64
CFLAGS-s_getpayload.c += -fno-builtin-getpayloadf32x -fno-builtin-getpayloadf64
CFLAGS-w_hypot.c += -fno-builtin-hypotf32x -fno-builtin-hypotf64
CFLAGS-w_ilogb.c += -fno-builtin-ilogbf32x -fno-builtin-ilogbf64
CFLAGS-w_j0.c += -fno-builtin-j0f32x -fno-builtin-j0f64
CFLAGS-w_j1.c += -fno-builtin-j1f32x -fno-builtin-j1f64
CFLAGS-w_jn.c += -fno-builtin-jnf32x -fno-builtin-jnf64
CFLAGS-s_ldexp.c += -fno-builtin-ldexpf32x -fno-builtin-ldexpf64
CFLAGS-w_lgamma.c += -fno-builtin-lgammaf32x -fno-builtin-lgammaf64
CFLAGS-w_lgamma_r.c += -fno-builtin-lgammaf32x_r -fno-builtin-lgammaf64_r
CFLAGS-w_llogb.c += -fno-builtin-llogbf32x -fno-builtin-llogbf64
CFLAGS-s_llrint.c += -fno-builtin-llrintf32x -fno-builtin-llrintf64
CFLAGS-s_llround.c += -fno-builtin-llroundf32x -fno-builtin-llroundf64
CFLAGS-e_log.c += -fno-builtin-logf32x -fno-builtin-logf64
CFLAGS-w_log10.c += -fno-builtin-log10f32x -fno-builtin-log10f64
CFLAGS-w_log1p.c += -fno-builtin-log1pf32x -fno-builtin-log1pf64
CFLAGS-e_log2.c += -fno-builtin-log2f32x -fno-builtin-log2f64
CFLAGS-s_logb.c += -fno-builtin-logbf32x -fno-builtin-logbf64
CFLAGS-s_lrint.c += -fno-builtin-lrintf32x -fno-builtin-lrintf64
CFLAGS-s_lround.c += -fno-builtin-lroundf32x -fno-builtin-lroundf64
CFLAGS-s_modf.c += -fno-builtin-modff32x -fno-builtin-modff64
CFLAGS-s_nan.c += -fno-builtin-nanf32x -fno-builtin-nanf64
CFLAGS-s_nearbyint.c += -fno-builtin-nearbyintf32x -fno-builtin-nearbyintf64
CFLAGS-s_nextafter.c += -fno-builtin-nextafterf32x -fno-builtin-nextafterf64
CFLAGS-s_nextdown.c += -fno-builtin-nextdownf32x -fno-builtin-nextdownf64
CFLAGS-s_nextup.c += -fno-builtin-nextupf32x -fno-builtin-nextupf64
CFLAGS-e_pow.c += -fno-builtin-powf32x -fno-builtin-powf64
CFLAGS-w_remainder.c += -fno-builtin-remainderf32x -fno-builtin-remainderf64
CFLAGS-s_remquo.c += -fno-builtin-remquof32x -fno-builtin-remquof64
CFLAGS-s_rint.c += -fno-builtin-rintf32x -fno-builtin-rintf64
CFLAGS-s_round.c += -fno-builtin-roundf32x -fno-builtin-roundf64
CFLAGS-s_roundeven.c += -fno-builtin-roundevenf32x -fno-builtin-roundevenf64
CFLAGS-w_scalbln.c += -fno-builtin-scalblnf32x -fno-builtin-scalblnf64
CFLAGS-s_scalbn.c += -fno-builtin-scalbnf32x -fno-builtin-scalbnf64
CFLAGS-s_setpayload.c += -fno-builtin-setpayloadf32x -fno-builtin-setpayloadf64
CFLAGS-s_setpayloadsig.c += -fno-builtin-setpayloadsigf32x -fno-builtin-setpayloadsigf64
CFLAGS-s_sin.c += -fno-builtin-sinf32x -fno-builtin-sinf64
CFLAGS-s_sincos.c += -fno-builtin-sincosf32x -fno-builtin-sincosf64
CFLAGS-w_sinh.c += -fno-builtin-sinhf32x -fno-builtin-sinhf64
CFLAGS-w_sqrt.c += -fno-builtin-sqrtf32x -fno-builtin-sqrtf64
CFLAGS-s_tan.c += -fno-builtin-tanf32x -fno-builtin-tanf64
CFLAGS-s_tanh.c += -fno-builtin-tanhf32x -fno-builtin-tanhf64
CFLAGS-w_tgamma.c += -fno-builtin-tgammaf32x -fno-builtin-tgammaf64
CFLAGS-s_totalorder.c += -fno-builtin-totalorderf32x -fno-builtin-totalorderf64
CFLAGS-s_totalordermag.c += -fno-builtin-totalordermagf32x -fno-builtin-totalordermagf64
CFLAGS-s_trunc.c += -fno-builtin-truncf32x -fno-builtin-truncf64
CFLAGS-s_ufromfp.c += -fno-builtin-ufromfpf32x -fno-builtin-ufromfpf64
CFLAGS-s_ufromfpx.c += -fno-builtin-ufromfpxf32x -fno-builtin-ufromfpxf64
CFLAGS-s_y0.c += -fno-builtin-y0f32x -fno-builtin-y0f64
CFLAGS-s_y1.c += -fno-builtin-y1f32x -fno-builtin-y1f64
CFLAGS-s_yn.c += -fno-builtin-ynf32x -fno-builtin-ynf64
# Likewise, for _Float32 aliases.
CFLAGS-w_acosf.c += -fno-builtin-acosf32
CFLAGS-w_acoshf.c += -fno-builtin-acoshf32
CFLAGS-w_asinf.c += -fno-builtin-asinf32
CFLAGS-s_asinhf.c += -fno-builtin-asinhf32
CFLAGS-s_atanf.c += -fno-builtin-atanf32
CFLAGS-w_atan2f.c += -fno-builtin-atan2f32
CFLAGS-w_atanhf.c += -fno-builtin-atanhf32
CFLAGS-s_cabsf.c += -fno-builtin-cabsf32
CFLAGS-s_cacosf.c += -fno-builtin-cacosf32
CFLAGS-s_cacoshf.c += -fno-builtin-cacoshf32
CFLAGS-s_canonicalizef.c += -fno-builtin-canonicalizef32
CFLAGS-s_cargf.c += -fno-builtin-cargf32
CFLAGS-s_casinf.c += -fno-builtin-casinf32
CFLAGS-s_casinhf.c += -fno-builtin-casinhf32
CFLAGS-s_catanf.c += -fno-builtin-catanf32
CFLAGS-s_catanhf.c += -fno-builtin-catanhf32
CFLAGS-s_cbrtf.c += -fno-builtin-cbrtf32
CFLAGS-s_ccosf.c += -fno-builtin-ccosf32
CFLAGS-s_ccoshf.c += -fno-builtin-ccoshf32
CFLAGS-s_ceilf.c += -fno-builtin-ceilf32
CFLAGS-s_cexpf.c += -fno-builtin-cexpf32
CFLAGS-s_cimagf.c += -fno-builtin-cimagf32
CFLAGS-s_clogf.c += -fno-builtin-clogf32
CFLAGS-s_clog10f.c += -fno-builtin-clog10f32
CFLAGS-s_conjf.c += -fno-builtin-conjf32
CFLAGS-s_copysignf.c += -fno-builtin-copysignf32
CFLAGS-s_cosf.c += -fno-builtin-cosf32
CFLAGS-w_coshf.c += -fno-builtin-coshf32
CFLAGS-s_cpowf.c += -fno-builtin-cpowf32
CFLAGS-s_cprojf.c += -fno-builtin-cprojf32
CFLAGS-s_crealf.c += -fno-builtin-crealf32
CFLAGS-s_csinf.c += -fno-builtin-csinf32
CFLAGS-s_csinhf.c += -fno-builtin-csinhf32
CFLAGS-s_csqrtf.c += -fno-builtin-csqrtf32
CFLAGS-s_ctanf.c += -fno-builtin-ctanf32
CFLAGS-s_ctanhf.c += -fno-builtin-ctanhf32
CFLAGS-s_erff.c += -fno-builtin-erff32
CFLAGS-s_erfcf.c += -fno-builtin-erfcf32
CFLAGS-e_expf.c += -fno-builtin-expf32
CFLAGS-w_exp10f.c += -fno-builtin-exp10f32
CFLAGS-e_exp2f.c += -fno-builtin-exp2f32
CFLAGS-s_expm1f.c += -fno-builtin-expm1f32
CFLAGS-s_fabsf.c += -fno-builtin-fabsf32
CFLAGS-s_fdimf.c += -fno-builtin-fdimf32
CFLAGS-s_floorf.c += -fno-builtin-floorf32
CFLAGS-s_fmaf.c += -fno-builtin-fmaf32
CFLAGS-s_fmaxf.c += -fno-builtin-fmaxf32
CFLAGS-s_fmaximumf.c += -fno-builtin-fmaximumf32
CFLAGS-s_fmaximum_magf.c += -fno-builtin-fmaximum_magf32
CFLAGS-s_fmaximum_mag_numf.c += -fno-builtin-fmaximum_mag_numf32
CFLAGS-s_fmaximum_numf.c += -fno-builtin-fmaximum_numf32
CFLAGS-s_fmaxmagf.c += -fno-builtin-fmaxmagf32
CFLAGS-s_fminf.c += -fno-builtin-fminf32
CFLAGS-s_fminimumf.c += -fno-builtin-fminimumf32
CFLAGS-s_fminimum_magf.c += -fno-builtin-fminimum_magf32
CFLAGS-s_fminimum_mag_numf.c += -fno-builtin-fminimum_mag_numf32
CFLAGS-s_fminimum_numf.c += -fno-builtin-fminimum_numf32
CFLAGS-s_fminmagf.c += -fno-builtin-fminmagf32
CFLAGS-w_fmodf.c += -fno-builtin-fmodf32
CFLAGS-s_frexpf.c += -fno-builtin-frexpf32
CFLAGS-s_fromfpf.c += -fno-builtin-fromfpf32
CFLAGS-s_fromfpxf.c += -fno-builtin-fromfpxf32
CFLAGS-s_getpayloadf.c += -fno-builtin-getpayloadf32
CFLAGS-w_hypotf.c += -fno-builtin-hypotf32
CFLAGS-w_ilogbf.c += -fno-builtin-ilogbf32
CFLAGS-w_j0f.c += -fno-builtin-j0f32
CFLAGS-w_j1f.c += -fno-builtin-j1f32
CFLAGS-w_jnf.c += -fno-builtin-jnf32
CFLAGS-s_ldexpf.c += -fno-builtin-ldexpf32
CFLAGS-w_lgammaf.c += -fno-builtin-lgammaf32
CFLAGS-w_lgammaf_r.c += -fno-builtin-lgammaf32_r
CFLAGS-w_llogbf.c += -fno-builtin-llogbf32
CFLAGS-s_llrintf.c += -fno-builtin-llrintf32
CFLAGS-s_llroundf.c += -fno-builtin-llroundf32
CFLAGS-e_logf.c += -fno-builtin-logf32
CFLAGS-w_log10f.c += -fno-builtin-log10f32
CFLAGS-w_log1pf.c += -fno-builtin-log1pf32
CFLAGS-e_log2f.c += -fno-builtin-log2f32
CFLAGS-s_logbf.c += -fno-builtin-logbf32
CFLAGS-s_lrintf.c += -fno-builtin-lrintf32
CFLAGS-s_lroundf.c += -fno-builtin-lroundf32
CFLAGS-s_modff.c += -fno-builtin-modff32
CFLAGS-s_nanf.c += -fno-builtin-nanf32
CFLAGS-s_nearbyintf.c += -fno-builtin-nearbyintf32
CFLAGS-s_nextafterf.c += -fno-builtin-nextafterf32
CFLAGS-s_nextdownf.c += -fno-builtin-nextdownf32
CFLAGS-s_nextupf.c += -fno-builtin-nextupf32
CFLAGS-e_powf.c += -fno-builtin-powf32
CFLAGS-w_remainderf.c += -fno-builtin-remainderf32
CFLAGS-s_remquof.c += -fno-builtin-remquof32
CFLAGS-s_rintf.c += -fno-builtin-rintf32
CFLAGS-s_roundf.c += -fno-builtin-roundf32
CFLAGS-s_roundevenf.c += -fno-builtin-roundevenf32
CFLAGS-w_scalblnf.c += -fno-builtin-scalblnf32
CFLAGS-s_scalbnf.c += -fno-builtin-scalbnf32
CFLAGS-s_setpayloadf.c += -fno-builtin-setpayloadf32
CFLAGS-s_setpayloadsigf.c += -fno-builtin-setpayloadsigf32
CFLAGS-s_sinf.c += -fno-builtin-sinf32
CFLAGS-s_sincosf.c += -fno-builtin-sincosf32
CFLAGS-w_sinhf.c += -fno-builtin-sinhf32
CFLAGS-w_sqrtf.c += -fno-builtin-sqrtf32
CFLAGS-s_tanf.c += -fno-builtin-tanf32
CFLAGS-s_tanhf.c += -fno-builtin-tanhf32
CFLAGS-w_tgammaf.c += -fno-builtin-tgammaf32
CFLAGS-s_totalorderf.c += -fno-builtin-totalorderf32
CFLAGS-s_totalordermagf.c += -fno-builtin-totalordermagf32
CFLAGS-s_truncf.c += -fno-builtin-truncf32
CFLAGS-s_ufromfpf.c += -fno-builtin-ufromfpf32
CFLAGS-s_ufromfpxf.c += -fno-builtin-ufromfpxf32
CFLAGS-s_y0f.c += -fno-builtin-y0f32
CFLAGS-s_y1f.c += -fno-builtin-y1f32
CFLAGS-s_ynf.c += -fno-builtin-ynf32
# These files quiet sNaNs in a way that is optimized away without
# -fsignaling-nans.
CFLAGS-s_modf.c += -fsignaling-nans

View File

@ -10,3 +10,130 @@ endif
ifeq ($(subdir),wcsmbs)
routines += wcstof128_l wcstof128 wcstof128_nan
endif
ifeq ($(subdir),math)
CFLAGS-w_acosf128.c += -fno-builtin-acosf64x
CFLAGS-w_acoshf128.c += -fno-builtin-acoshf64x
CFLAGS-w_asinf128.c += -fno-builtin-asinf64x
CFLAGS-s_asinhf128.c += -fno-builtin-asinhf64x
CFLAGS-s_atanf128.c += -fno-builtin-atanf64x
CFLAGS-w_atan2f128.c += -fno-builtin-atan2f64x
CFLAGS-w_atanhf128.c += -fno-builtin-atanhf64x
CFLAGS-s_cabsf128.c += -fno-builtin-cabsf64x
CFLAGS-s_cacosf128.c += -fno-builtin-cacosf64x
CFLAGS-s_cacoshf128.c += -fno-builtin-cacoshf64x
CFLAGS-s_canonicalizef128.c += -fno-builtin-canonicalizef64x
CFLAGS-s_cargf128.c += -fno-builtin-cargf64x
CFLAGS-s_casinf128.c += -fno-builtin-casinf64x
CFLAGS-s_casinhf128.c += -fno-builtin-casinhf64x
CFLAGS-s_catanf128.c += -fno-builtin-catanf64x
CFLAGS-s_catanhf128.c += -fno-builtin-catanhf64x
CFLAGS-s_cbrtf128.c += -fno-builtin-cbrtf64x
CFLAGS-s_ccosf128.c += -fno-builtin-ccosf64x
CFLAGS-s_ccoshf128.c += -fno-builtin-ccoshf64x
CFLAGS-s_ceilf128.c += -fno-builtin-ceilf64x
CFLAGS-s_cexpf128.c += -fno-builtin-cexpf64x
CFLAGS-s_cimagf128.c += -fno-builtin-cimagf64x
CFLAGS-s_clogf128.c += -fno-builtin-clogf64x
CFLAGS-s_clog10f128.c += -fno-builtin-clog10f64x
CFLAGS-s_conjf128.c += -fno-builtin-conjf64x
CFLAGS-s_copysignf128.c += -fno-builtin-copysignf64x
CFLAGS-s_cosf128.c += -fno-builtin-cosf64x
CFLAGS-w_coshf128.c += -fno-builtin-coshf64x
CFLAGS-s_cpowf128.c += -fno-builtin-cpowf64x
CFLAGS-s_cprojf128.c += -fno-builtin-cprojf64x
CFLAGS-s_crealf128.c += -fno-builtin-crealf64x
CFLAGS-s_csinf128.c += -fno-builtin-csinf64x
CFLAGS-s_csinhf128.c += -fno-builtin-csinhf64x
CFLAGS-s_csqrtf128.c += -fno-builtin-csqrtf64x
CFLAGS-s_ctanf128.c += -fno-builtin-ctanf64x
CFLAGS-s_ctanhf128.c += -fno-builtin-ctanhf64x
CFLAGS-s_daddf128.c += -fno-builtin-f64addf64x
CFLAGS-s_ddivf128.c += -fno-builtin-f64divf64x
CFLAGS-s_dfmaf128.c += -fno-builtin-f64fmaf64x
CFLAGS-s_dmulf128.c += -fno-builtin-f64mulf64x
CFLAGS-s_dsqrtf128.c += -fno-builtin-f64sqrtf64x
CFLAGS-s_dsubf128.c += -fno-builtin-f64subf64x
CFLAGS-s_erff128.c += -fno-builtin-erff64x
CFLAGS-s_erfcf128.c += -fno-builtin-erfcf64x
CFLAGS-e_expf128.c += -fno-builtin-expf64x
CFLAGS-w_exp10f128.c += -fno-builtin-exp10f64x
CFLAGS-e_exp2f128.c += -fno-builtin-exp2f64x
CFLAGS-s_expm1f128.c += -fno-builtin-expm1f64x
CFLAGS-s_fabsf128.c += -fno-builtin-fabsf64x
CFLAGS-s_faddf128.c += -fno-builtin-f32addf64x
CFLAGS-s_fdimf128.c += -fno-builtin-fdimf64x
CFLAGS-s_fdivf128.c += -fno-builtin-f32divf64x
CFLAGS-s_ffmaf128.c += -fno-builtin-f32fmaf64x
CFLAGS-s_floorf128.c += -fno-builtin-floorf64x
CFLAGS-s_fmaf128.c += -fno-builtin-fmaf64x
CFLAGS-s_fmaxf128.c += -fno-builtin-fmaxf64x
CFLAGS-s_fmaximumf128.c += -fno-builtin-fmaximumf64x
CFLAGS-s_fmaximum_magf128.c += -fno-builtin-fmaximum_magf64x
CFLAGS-s_fmaximum_mag_numf128.c += -fno-builtin-fmaximum_mag_numf64x
CFLAGS-s_fmaximum_numf128.c += -fno-builtin-fmaximum_numf64x
CFLAGS-s_fmaxmagf128.c += -fno-builtin-fmaxmagf64x
CFLAGS-s_fminf128.c += -fno-builtin-fminf64x
CFLAGS-s_fminimumf128.c += -fno-builtin-fminimumf64x
CFLAGS-s_fminimum_magf128.c += -fno-builtin-fminimum_magf64x
CFLAGS-s_fminimum_mag_numf128.c += -fno-builtin-fminimum_mag_numf64x
CFLAGS-s_fminimum_numf128.c += -fno-builtin-fminimum_numf64x
CFLAGS-s_fminmagf128.c += -fno-builtin-fminmagf64x
CFLAGS-w_fmodf128.c += -fno-builtin-fmodf64x
CFLAGS-s_fmulf128.c += -fno-builtin-f32mulf64x
CFLAGS-s_frexpf128.c += -fno-builtin-frexpf64x
CFLAGS-s_fromfpf128.c += -fno-builtin-fromfpf64x
CFLAGS-s_fromfpxf128.c += -fno-builtin-fromfpxf64x
CFLAGS-s_fsqrtf128.c += -fno-builtin-f32sqrtf64x
CFLAGS-s_fsubf128.c += -fno-builtin-f32subf64x
CFLAGS-s_getpayloadf128.c += -fno-builtin-getpayloadf64x
CFLAGS-w_hypotf128.c += -fno-builtin-hypotf64x
CFLAGS-w_ilogbf128.c += -fno-builtin-ilogbf64x
CFLAGS-w_j0f128.c += -fno-builtin-j0f64x
CFLAGS-w_j1f128.c += -fno-builtin-j1f64x
CFLAGS-w_jnf128.c += -fno-builtin-jnf64x
CFLAGS-s_ldexpf128.c += -fno-builtin-ldexpf64x
CFLAGS-w_lgammaf128.c += -fno-builtin-lgammaf64x
CFLAGS-w_lgammaf128_r.c += -fno-builtin-lgammaf64x_r
CFLAGS-w_llogbf128.c += -fno-builtin-llogbf64x
CFLAGS-s_llrintf128.c += -fno-builtin-llrintf64x
CFLAGS-s_llroundf128.c += -fno-builtin-llroundf64x
CFLAGS-e_logf128.c += -fno-builtin-logf64x
CFLAGS-w_log10f128.c += -fno-builtin-log10f64x
CFLAGS-w_log1pf128.c += -fno-builtin-log1pf64x
CFLAGS-e_log2f128.c += -fno-builtin-log2f64x
CFLAGS-s_logbf128.c += -fno-builtin-logbf64x
CFLAGS-s_lrintf128.c += -fno-builtin-lrintf64x
CFLAGS-s_lroundf128.c += -fno-builtin-lroundf64x
CFLAGS-s_modff128.c += -fno-builtin-modff64x
CFLAGS-s_nanf128.c += -fno-builtin-nanf64x
CFLAGS-s_nearbyintf128.c += -fno-builtin-nearbyintf64x
CFLAGS-s_nextafterf128.c += -fno-builtin-nextafterf64x
CFLAGS-s_nextdownf128.c += -fno-builtin-nextdownf64x
CFLAGS-s_nextupf128.c += -fno-builtin-nextupf64x
CFLAGS-e_powf128.c += -fno-builtin-powf64x
CFLAGS-w_remainderf128.c += -fno-builtin-remainderf64x
CFLAGS-s_remquof128.c += -fno-builtin-remquof64x
CFLAGS-s_rintf128.c += -fno-builtin-rintf64x
CFLAGS-s_roundf128.c += -fno-builtin-roundf64x
CFLAGS-s_roundevenf128.c += -fno-builtin-roundevenf64x
CFLAGS-w_scalblnf128.c += -fno-builtin-scalblnf64x
CFLAGS-s_scalbnf128.c += -fno-builtin-scalbnf64x
CFLAGS-s_setpayloadf128.c += -fno-builtin-setpayloadf64x
CFLAGS-s_setpayloadsigf128.c += -fno-builtin-setpayloadsigf64x
CFLAGS-s_sinf128.c += -fno-builtin-sinf64x
CFLAGS-s_sincosf128.c += -fno-builtin-sincosf64x
CFLAGS-w_sinhf128.c += -fno-builtin-sinhf64x
CFLAGS-w_sqrtf128.c += -fno-builtin-sqrtf64x
CFLAGS-s_tanf128.c += -fno-builtin-tanf64x
CFLAGS-s_tanhf128.c += -fno-builtin-tanhf64x
CFLAGS-w_tgammaf128.c += -fno-builtin-tgammaf64x
CFLAGS-s_totalorderf128.c += -fno-builtin-totalorderf64x
CFLAGS-s_totalordermagf128.c += -fno-builtin-totalordermagf64x
CFLAGS-s_truncf128.c += -fno-builtin-truncf64x
CFLAGS-s_ufromfpf128.c += -fno-builtin-ufromfpf64x
CFLAGS-s_ufromfpxf128.c += -fno-builtin-ufromfpxf64x
CFLAGS-s_y0f128.c += -fno-builtin-y0f64x
CFLAGS-s_y1f128.c += -fno-builtin-y1f64x
CFLAGS-s_ynf128.c += -fno-builtin-ynf64x
endif

View File

@ -1 +1,128 @@
long-double-fcts = yes
ifeq ($(subdir),math)
CFLAGS-w_acosl.c += -fno-builtin-acosf64x -fno-builtin-acosf128
CFLAGS-w_acoshl.c += -fno-builtin-acoshf64x -fno-builtin-acoshf128
CFLAGS-w_asinl.c += -fno-builtin-asinf64x -fno-builtin-asinf128
CFLAGS-s_asinhl.c += -fno-builtin-asinhf64x -fno-builtin-asinhf128
CFLAGS-s_atanl.c += -fno-builtin-atanf64x -fno-builtin-atanf128
CFLAGS-w_atan2l.c += -fno-builtin-atan2f64x -fno-builtin-atan2f128
CFLAGS-w_atanhl.c += -fno-builtin-atanhf64x -fno-builtin-atanhf128
CFLAGS-s_cabsl.c += -fno-builtin-cabsf64x -fno-builtin-cabsf128
CFLAGS-s_cacosl.c += -fno-builtin-cacosf64x -fno-builtin-cacosf128
CFLAGS-s_cacoshl.c += -fno-builtin-cacoshf64x -fno-builtin-cacoshf128
CFLAGS-s_canonicalizel.c += -fno-builtin-canonicalizef64x -fno-builtin-canonicalizef128
CFLAGS-s_cargl.c += -fno-builtin-cargf64x -fno-builtin-cargf128
CFLAGS-s_casinl.c += -fno-builtin-casinf64x -fno-builtin-casinf128
CFLAGS-s_casinhl.c += -fno-builtin-casinhf64x -fno-builtin-casinhf128
CFLAGS-s_catanl.c += -fno-builtin-catanf64x -fno-builtin-catanf128
CFLAGS-s_catanhl.c += -fno-builtin-catanhf64x -fno-builtin-catanhf128
CFLAGS-s_cbrtl.c += -fno-builtin-cbrtf64x -fno-builtin-cbrtf128
CFLAGS-s_ccosl.c += -fno-builtin-ccosf64x -fno-builtin-ccosf128
CFLAGS-s_ccoshl.c += -fno-builtin-ccoshf64x -fno-builtin-ccoshf128
CFLAGS-s_ceill.c += -fno-builtin-ceilf64x -fno-builtin-ceilf128
CFLAGS-s_cexpl.c += -fno-builtin-cexpf64x -fno-builtin-cexpf128
CFLAGS-s_cimagl.c += -fno-builtin-cimagf64x -fno-builtin-cimagf128
CFLAGS-s_clogl.c += -fno-builtin-clogf64x -fno-builtin-clogf128
CFLAGS-s_clog10l.c += -fno-builtin-clog10f64x -fno-builtin-clog10f128
CFLAGS-s_conjl.c += -fno-builtin-conjf64x -fno-builtin-conjf128
CFLAGS-s_copysignl.c += -fno-builtin-copysignf64x -fno-builtin-copysignf128
CFLAGS-s_cosl.c += -fno-builtin-cosf64x -fno-builtin-cosf128
CFLAGS-w_coshl.c += -fno-builtin-coshf64x -fno-builtin-coshf128
CFLAGS-s_cpowl.c += -fno-builtin-cpowf64x -fno-builtin-cpowf128
CFLAGS-s_cprojl.c += -fno-builtin-cprojf64x -fno-builtin-cprojf128
CFLAGS-s_creall.c += -fno-builtin-crealf64x -fno-builtin-crealf128
CFLAGS-s_csinl.c += -fno-builtin-csinf64x -fno-builtin-csinf128
CFLAGS-s_csinhl.c += -fno-builtin-csinhf64x -fno-builtin-csinhf128
CFLAGS-s_csqrtl.c += -fno-builtin-csqrtf64x -fno-builtin-csqrtf128
CFLAGS-s_ctanl.c += -fno-builtin-ctanf64x -fno-builtin-ctanf128
CFLAGS-s_ctanhl.c += -fno-builtin-ctanhf64x -fno-builtin-ctanhf128
CFLAGS-s_daddl.c += -fno-builtin-f64addf64x -fno-builtin-f64addf128
CFLAGS-s_ddivl.c += -fno-builtin-f64divf64x -fno-builtin-f64divf128
CFLAGS-s_dfmal.c += -fno-builtin-f64fmaf64x -fno-builtin-f64fmaf128
CFLAGS-s_dmull.c += -fno-builtin-f64mulf64x -fno-builtin-f64mulf128
CFLAGS-s_dsqrtl.c += -fno-builtin-f64sqrtf64x -fno-builtin-f64sqrtf128
CFLAGS-s_dsubl.c += -fno-builtin-f64subf64x -fno-builtin-f64subf128
CFLAGS-s_erfl.c += -fno-builtin-erff64x -fno-builtin-erff128
CFLAGS-s_erfcl.c += -fno-builtin-erfcf64x -fno-builtin-erfcf128
CFLAGS-e_expl.c += -fno-builtin-expf64x -fno-builtin-expf128
CFLAGS-w_exp10l.c += -fno-builtin-exp10f64x -fno-builtin-exp10f128
CFLAGS-e_exp2l.c += -fno-builtin-exp2f64x -fno-builtin-exp2f128
CFLAGS-s_expm1l.c += -fno-builtin-expm1f64x -fno-builtin-expm1f128
CFLAGS-s_fabsl.c += -fno-builtin-fabsf64x -fno-builtin-fabsf128
CFLAGS-s_faddl.c += -fno-builtin-f32addf64x -fno-builtin-f32addf128
CFLAGS-s_fdiml.c += -fno-builtin-fdimf64x -fno-builtin-fdimf128
CFLAGS-s_fdivl.c += -fno-builtin-f32divf64x -fno-builtin-f32divf128
CFLAGS-s_ffmal.c += -fno-builtin-f32fmaf64x -fno-builtin-f32fmaf128
CFLAGS-s_floorl.c += -fno-builtin-floorf64x -fno-builtin-floorf128
CFLAGS-s_fmal.c += -fno-builtin-fmaf64x -fno-builtin-fmaf128
CFLAGS-s_fmaxl.c += -fno-builtin-fmaxf64x -fno-builtin-fmaxf128
CFLAGS-s_fmaximuml.c += -fno-builtin-fmaximumf64x -fno-builtin-fmaximumf128
CFLAGS-s_fmaximum_magl.c += -fno-builtin-fmaximum_magf64x -fno-builtin-fmaximum_magf128
CFLAGS-s_fmaximum_mag_numl.c += -fno-builtin-fmaximum_mag_numf64x -fno-builtin-fmaximum_mag_numf128
CFLAGS-s_fmaximum_numl.c += -fno-builtin-fmaximum_numf64x -fno-builtin-fmaximum_numf128
CFLAGS-s_fmaxmagl.c += -fno-builtin-fmaxmagf64x -fno-builtin-fmaxmagf128
CFLAGS-s_fminl.c += -fno-builtin-fminf64x -fno-builtin-fminf128
CFLAGS-s_fminimuml.c += -fno-builtin-fminimumf64x -fno-builtin-fminimumf128
CFLAGS-s_fminimum_magl.c += -fno-builtin-fminimum_magf64x -fno-builtin-fminimum_magf128
CFLAGS-s_fminimum_mag_numl.c += -fno-builtin-fminimum_mag_numf64x -fno-builtin-fminimum_mag_numf128
CFLAGS-s_fminimum_numl.c += -fno-builtin-fminimum_numf64x -fno-builtin-fminimum_numf128
CFLAGS-s_fminmagl.c += -fno-builtin-fminmagf64x -fno-builtin-fminmagf128
CFLAGS-w_fmodl.c += -fno-builtin-fmodf64x -fno-builtin-fmodf128
CFLAGS-s_fmull.c += -fno-builtin-f32mulf64x -fno-builtin-f32mulf128
CFLAGS-s_frexpl.c += -fno-builtin-frexpf64x -fno-builtin-frexpf128
CFLAGS-s_fromfpl.c += -fno-builtin-fromfpf64x -fno-builtin-fromfpf128
CFLAGS-s_fromfpxl.c += -fno-builtin-fromfpxf64x -fno-builtin-fromfpxf128
CFLAGS-s_fsqrtl.c += -fno-builtin-f32sqrtf64x -fno-builtin-f32sqrtf128
CFLAGS-s_fsubl.c += -fno-builtin-f32subf64x -fno-builtin-f32subf128
CFLAGS-s_getpayloadl.c += -fno-builtin-getpayloadf64x -fno-builtin-getpayloadf128
CFLAGS-w_hypotl.c += -fno-builtin-hypotf64x -fno-builtin-hypotf128
CFLAGS-w_ilogbl.c += -fno-builtin-ilogbf64x -fno-builtin-ilogbf128
CFLAGS-w_j0l.c += -fno-builtin-j0f64x -fno-builtin-j0f128
CFLAGS-w_j1l.c += -fno-builtin-j1f64x -fno-builtin-j1f128
CFLAGS-w_jnl.c += -fno-builtin-jnf64x -fno-builtin-jnf128
CFLAGS-s_ldexpl.c += -fno-builtin-ldexpf64x -fno-builtin-ldexpf128
CFLAGS-w_lgammal.c += -fno-builtin-lgammaf64x -fno-builtin-lgammaf128
CFLAGS-w_lgammal_r.c += -fno-builtin-lgammaf64x_r
CFLAGS-w_llogbl.c += -fno-builtin-llogbf64x -fno-builtin-llogbf128
CFLAGS-s_llrintl.c += -fno-builtin-llrintf64x -fno-builtin-llrintf128
CFLAGS-s_llroundl.c += -fno-builtin-llroundf64x -fno-builtin-llroundf128
CFLAGS-e_logl.c += -fno-builtin-logf64x -fno-builtin-logf128
CFLAGS-w_log10l.c += -fno-builtin-log10f64x -fno-builtin-log10f128
CFLAGS-w_log1pl.c += -fno-builtin-log1pf64x -fno-builtin-log1pf128
CFLAGS-e_log2l.c += -fno-builtin-log2f64x -fno-builtin-log2f128
CFLAGS-s_logbl.c += -fno-builtin-logbf64x -fno-builtin-logbf128
CFLAGS-s_lrintl.c += -fno-builtin-lrintf64x -fno-builtin-lrintf128
CFLAGS-s_lroundl.c += -fno-builtin-lroundf64x -fno-builtin-lroundf128
CFLAGS-s_modfl.c += -fno-builtin-modff64x -fno-builtin-modff128
CFLAGS-s_nanl.c += -fno-builtin-nanf64x -fno-builtin-nanf128
CFLAGS-s_nearbyintl.c += -fno-builtin-nearbyintf64x -fno-builtin-nearbyintf128
CFLAGS-s_nextafterl.c += -fno-builtin-nextafterf64x -fno-builtin-nextafterf128
CFLAGS-s_nextdownl.c += -fno-builtin-nextdownf64x -fno-builtin-nextdownf128
CFLAGS-s_nextupl.c += -fno-builtin-nextupf64x -fno-builtin-nextupf128
CFLAGS-e_powl.c += -fno-builtin-powf64x -fno-builtin-powf128
CFLAGS-w_remainderl.c += -fno-builtin-remainderf64x -fno-builtin-remainderf128
CFLAGS-s_remquol.c += -fno-builtin-remquof64x -fno-builtin-remquof128
CFLAGS-s_rintl.c += -fno-builtin-rintf64x -fno-builtin-rintf128
CFLAGS-s_roundl.c += -fno-builtin-roundf64x -fno-builtin-roundf128
CFLAGS-s_roundevenl.c += -fno-builtin-roundevenf64x -fno-builtin-roundevenf128
CFLAGS-w_scalblnl.c += -fno-builtin-scalblnf64x -fno-builtin-scalblnf128
CFLAGS-s_scalbnl.c += -fno-builtin-scalbnf64x -fno-builtin-scalbnf128
CFLAGS-s_setpayloadl.c += -fno-builtin-setpayloadf64x -fno-builtin-setpayloadf128
CFLAGS-s_setpayloadsigl.c += -fno-builtin-setpayloadsigf64x -fno-builtin-setpayloadsigf128
CFLAGS-s_sinl.c += -fno-builtin-sinf64x -fno-builtin-sinf128
CFLAGS-s_sincosl.c += -fno-builtin-sincosf64x -fno-builtin-sincosf128
CFLAGS-w_sinhl.c += -fno-builtin-sinhf64x -fno-builtin-sinhf128
CFLAGS-w_sqrtl.c += -fno-builtin-sqrtf64x -fno-builtin-sqrtf128
CFLAGS-s_tanl.c += -fno-builtin-tanf64x -fno-builtin-tanf128
CFLAGS-s_tanhl.c += -fno-builtin-tanhf64x -fno-builtin-tanhf128
CFLAGS-w_tgammal.c += -fno-builtin-tgammaf64x -fno-builtin-tgammaf128
CFLAGS-s_totalorderl.c += -fno-builtin-totalorderf64x -fno-builtin-totalorderf128
CFLAGS-s_totalordermagl.c += -fno-builtin-totalordermagf64x -fno-builtin-totalordermagf128
CFLAGS-s_truncl.c += -fno-builtin-truncf64x -fno-builtin-truncf128
CFLAGS-s_ufromfpl.c += -fno-builtin-ufromfpf64x -fno-builtin-ufromfpf128
CFLAGS-s_ufromfpxl.c += -fno-builtin-ufromfpxf64x -fno-builtin-ufromfpxf128
CFLAGS-s_y0l.c += -fno-builtin-y0f64x -fno-builtin-y0f128
CFLAGS-s_y1l.c += -fno-builtin-y1f64x -fno-builtin-y1f128
CFLAGS-s_ynl.c += -fno-builtin-ynf64x -fno-builtin-ynf128
endif

View File

@ -21,4 +21,130 @@ tests += test-canonical-ldbl-96 test-totalorderl-ldbl-96 test-sinl-pseudo
ifeq ($(have-ssp),yes)
CFLAGS-test-sinl-pseudo.c += -fstack-protector-all
endif
CFLAGS-w_acosl.c += -fno-builtin-acosf64x
CFLAGS-w_acoshl.c += -fno-builtin-acoshf64x
CFLAGS-w_asinl.c += -fno-builtin-asinf64x
CFLAGS-s_asinhl.c += -fno-builtin-asinhf64x
CFLAGS-s_atanl.c += -fno-builtin-atanf64x
CFLAGS-w_atan2l.c += -fno-builtin-atan2f64x
CFLAGS-w_atanhl.c += -fno-builtin-atanhf64x
CFLAGS-s_cabsl.c += -fno-builtin-cabsf64x
CFLAGS-s_cacosl.c += -fno-builtin-cacosf64x
CFLAGS-s_cacoshl.c += -fno-builtin-cacoshf64x
CFLAGS-s_canonicalizel.c += -fno-builtin-canonicalizef64x
CFLAGS-s_cargl.c += -fno-builtin-cargf64x
CFLAGS-s_casinl.c += -fno-builtin-casinf64x
CFLAGS-s_casinhl.c += -fno-builtin-casinhf64x
CFLAGS-s_catanl.c += -fno-builtin-catanf64x
CFLAGS-s_catanhl.c += -fno-builtin-catanhf64x
CFLAGS-s_cbrtl.c += -fno-builtin-cbrtf64x
CFLAGS-s_ccosl.c += -fno-builtin-ccosf64x
CFLAGS-s_ccoshl.c += -fno-builtin-ccoshf64x
CFLAGS-s_ceill.c += -fno-builtin-ceilf64x
CFLAGS-s_cexpl.c += -fno-builtin-cexpf64x
CFLAGS-s_cimagl.c += -fno-builtin-cimagf64x
CFLAGS-s_clogl.c += -fno-builtin-clogf64x
CFLAGS-s_clog10l.c += -fno-builtin-clog10f64x
CFLAGS-s_conjl.c += -fno-builtin-conjf64x
CFLAGS-s_copysignl.c += -fno-builtin-copysignf64x
CFLAGS-s_cosl.c += -fno-builtin-cosf64x
CFLAGS-w_coshl.c += -fno-builtin-coshf64x
CFLAGS-s_cpowl.c += -fno-builtin-cpowf64x
CFLAGS-s_cprojl.c += -fno-builtin-cprojf64x
CFLAGS-s_creall.c += -fno-builtin-crealf64x
CFLAGS-s_csinl.c += -fno-builtin-csinf64x
CFLAGS-s_csinhl.c += -fno-builtin-csinhf64x
CFLAGS-s_csqrtl.c += -fno-builtin-csqrtf64x
CFLAGS-s_ctanl.c += -fno-builtin-ctanf64x
CFLAGS-s_ctanhl.c += -fno-builtin-ctanhf64x
CFLAGS-s_daddl.c += -fno-builtin-f64addf64x
CFLAGS-s_ddivl.c += -fno-builtin-f64divf64x
CFLAGS-s_dfmal.c += -fno-builtin-f64fmaf64x
CFLAGS-s_dmull.c += -fno-builtin-f64mulf64x
CFLAGS-s_dsqrtl.c += -fno-builtin-f64sqrtf64x
CFLAGS-s_dsubl.c += -fno-builtin-f64subf64x
CFLAGS-s_erfl.c += -fno-builtin-erff64x
CFLAGS-s_erfcl.c += -fno-builtin-erfcf64x
CFLAGS-e_expl.c += -fno-builtin-expf64x
CFLAGS-w_exp10l.c += -fno-builtin-exp10f64x
CFLAGS-e_exp2l.c += -fno-builtin-exp2f64x
CFLAGS-s_expm1l.c += -fno-builtin-expm1f64x
CFLAGS-s_fabsl.c += -fno-builtin-fabsf64x
CFLAGS-s_faddl.c += -fno-builtin-f32addf64x
CFLAGS-s_fdiml.c += -fno-builtin-fdimf64x
CFLAGS-s_fdivl.c += -fno-builtin-f32divf64x
CFLAGS-s_ffmal.c += -fno-builtin-f32fmaf64x
CFLAGS-s_floorl.c += -fno-builtin-floorf64x
CFLAGS-s_fmal.c += -fno-builtin-fmaf64x
CFLAGS-s_fmaxl.c += -fno-builtin-fmaxf64x
CFLAGS-s_fmaximuml.c += -fno-builtin-fmaximumf64x
CFLAGS-s_fmaximum_magl.c += -fno-builtin-fmaximum_magf64x
CFLAGS-s_fmaximum_mag_numl.c += -fno-builtin-fmaximum_mag_numf64x
CFLAGS-s_fmaximum_numl.c += -fno-builtin-fmaximum_numf64x
CFLAGS-s_fmaxmagl.c += -fno-builtin-fmaxmagf64x
CFLAGS-s_fminl.c += -fno-builtin-fminf64x
CFLAGS-s_fminimuml.c += -fno-builtin-fminimumf64x
CFLAGS-s_fminimum_magl.c += -fno-builtin-fminimum_magf64x
CFLAGS-s_fminimum_mag_numl.c += -fno-builtin-fminimum_mag_numf64x
CFLAGS-s_fminimum_numl.c += -fno-builtin-fminimum_numf64x
CFLAGS-s_fminmagl.c += -fno-builtin-fminmagf64x
CFLAGS-w_fmodl.c += -fno-builtin-fmodf64x
CFLAGS-s_fmull.c += -fno-builtin-f32mulf64x
CFLAGS-s_frexpl.c += -fno-builtin-frexpf64x
CFLAGS-s_fromfpl.c += -fno-builtin-fromfpf64x
CFLAGS-s_fromfpxl.c += -fno-builtin-fromfpxf64x
CFLAGS-s_fsqrtl.c += -fno-builtin-f32sqrtf64x
CFLAGS-s_fsubl.c += -fno-builtin-f32subf64x
CFLAGS-s_getpayloadl.c += -fno-builtin-getpayloadf64x
CFLAGS-w_hypotl.c += -fno-builtin-hypotf64x
CFLAGS-w_ilogbl.c += -fno-builtin-ilogbf64x
CFLAGS-w_j0l.c += -fno-builtin-j0f64x
CFLAGS-w_j1l.c += -fno-builtin-j1f64x
CFLAGS-w_jnl.c += -fno-builtin-jnf64x
CFLAGS-s_ldexpl.c += -fno-builtin-ldexpf64x
CFLAGS-w_lgammal.c += -fno-builtin-lgammaf64x
CFLAGS-w_lgammal_r.c += -fno-builtin-lgammaf64x_r
CFLAGS-w_llogbl.c += -fno-builtin-llogbf64x
CFLAGS-s_llrintl.c += -fno-builtin-llrintf64x
CFLAGS-s_llroundl.c += -fno-builtin-llroundf64x
CFLAGS-e_logl.c += -fno-builtin-logf64x
CFLAGS-w_log10l.c += -fno-builtin-log10f64x
CFLAGS-w_log1pl.c += -fno-builtin-log1pf64x
CFLAGS-e_log2l.c += -fno-builtin-log2f64x
CFLAGS-s_logbl.c += -fno-builtin-logbf64x
CFLAGS-s_lrintl.c += -fno-builtin-lrintf64x
CFLAGS-s_lroundl.c += -fno-builtin-lroundf64x
CFLAGS-s_modfl.c += -fno-builtin-modff64x
CFLAGS-s_nanl.c += -fno-builtin-nanf64x
CFLAGS-s_nearbyintl.c += -fno-builtin-nearbyintf64x
CFLAGS-s_nextafterl.c += -fno-builtin-nextafterf64x
CFLAGS-s_nextdownl.c += -fno-builtin-nextdownf64x
CFLAGS-s_nextupl.c += -fno-builtin-nextupf64x
CFLAGS-e_powl.c += -fno-builtin-powf64x
CFLAGS-w_remainderl.c += -fno-builtin-remainderf64x
CFLAGS-s_remquol.c += -fno-builtin-remquof64x
CFLAGS-s_rintl.c += -fno-builtin-rintf64x
CFLAGS-s_roundl.c += -fno-builtin-roundf64x
CFLAGS-s_roundevenl.c += -fno-builtin-roundevenf64x
CFLAGS-w_scalblnl.c += -fno-builtin-scalblnf64x
CFLAGS-s_scalbnl.c += -fno-builtin-scalbnf64x
CFLAGS-s_setpayloadl.c += -fno-builtin-setpayloadf64x
CFLAGS-s_setpayloadsigl.c += -fno-builtin-setpayloadsigf64x
CFLAGS-s_sinl.c += -fno-builtin-sinf64x
CFLAGS-s_sincosl.c += -fno-builtin-sincosf64x
CFLAGS-w_sinhl.c += -fno-builtin-sinhf64x
CFLAGS-w_sqrtl.c += -fno-builtin-sqrtf64x
CFLAGS-s_tanl.c += -fno-builtin-tanf64x
CFLAGS-s_tanhl.c += -fno-builtin-tanhf64x
CFLAGS-w_tgammal.c += -fno-builtin-tgammaf64x
CFLAGS-s_totalorderl.c += -fno-builtin-totalorderf64x
CFLAGS-s_totalordermagl.c += -fno-builtin-totalordermagf64x
CFLAGS-s_truncl.c += -fno-builtin-truncf64x
CFLAGS-s_ufromfpl.c += -fno-builtin-ufromfpf64x
CFLAGS-s_ufromfpxl.c += -fno-builtin-ufromfpxf64x
CFLAGS-s_y0l.c += -fno-builtin-y0f64x
CFLAGS-s_y1l.c += -fno-builtin-y1f64x
CFLAGS-s_ynl.c += -fno-builtin-ynf64x
endif # $(subdir) == math

View File

@ -1,8 +1,8 @@
ifeq ($(subdir),math)
# lrint is aliased to lrintf, so suppress compiler builtins to
# avoid mismatched signatures.
CFLAGS-s_lrint.c += -fno-builtin-lrintf
CFLAGS-s_lround.c += -fno-builtin-lroundf
CFLAGS-s_lrint.c += -fno-builtin-lrintf -fno-builtin-lrintf32
CFLAGS-s_lround.c += -fno-builtin-lroundf -fno-builtin-lroundf32
endif
ifeq ($(subdir),misc)

View File

@ -1,7 +1,9 @@
ifeq ($(subdir),math)
# lrintf and llrintf are aliased to llrint, so suppress compiler builtins to
# avoid mismatched signatures.
CFLAGS-s_llrint.c += -fno-builtin-lrintf -fno-builtin-llrintf
CFLAGS-s_llrint.c += -fno-builtin-lrintf -fno-builtin-llrintf \
-fno-builtin-lrintf32 -fno-builtin-llrintf32
# Same as before but for lroundf and llroundf
CFLAGS-s_llround.c += -fno-builtin-lroundf -fno-builtin-llroundf
CFLAGS-s_llround.c += -fno-builtin-lroundf -fno-builtin-llroundf \
-fno-builtin-lroundf32 -fno-builtin-llroundf32
endif

View File

@ -207,6 +207,131 @@ endef
object-suffixes-left := $(all-object-suffixes)
include $(o-iterator)
CFLAGS-w_acosf128-ifunc.c += -fno-builtin-acosf64x
CFLAGS-w_acoshf128-ifunc.c += -fno-builtin-acoshf64x
CFLAGS-w_asinf128-ifunc.c += -fno-builtin-asinf64x
CFLAGS-s_asinhf128-ifunc.c += -fno-builtin-asinhf64x
CFLAGS-s_atanf128-ifunc.c += -fno-builtin-atanf64x
CFLAGS-w_atan2f128-ifunc.c += -fno-builtin-atan2f64x
CFLAGS-w_atanhf128-ifunc.c += -fno-builtin-atanhf64x
CFLAGS-s_cabsf128-ifunc.c += -fno-builtin-cabsf64x
CFLAGS-s_cacosf128-ifunc.c += -fno-builtin-cacosf64x
CFLAGS-s_cacoshf128-ifunc.c += -fno-builtin-cacoshf64x
CFLAGS-s_canonicalizef128-ifunc.c += -fno-builtin-canonicalizef64x
CFLAGS-s_cargf128-ifunc.c += -fno-builtin-cargf64x
CFLAGS-s_casinf128-ifunc.c += -fno-builtin-casinf64x
CFLAGS-s_casinhf128-ifunc.c += -fno-builtin-casinhf64x
CFLAGS-s_catanf128-ifunc.c += -fno-builtin-catanf64x
CFLAGS-s_catanhf128-ifunc.c += -fno-builtin-catanhf64x
CFLAGS-s_cbrtf128-ifunc.c += -fno-builtin-cbrtf64x
CFLAGS-s_ccosf128-ifunc.c += -fno-builtin-ccosf64x
CFLAGS-s_ccoshf128-ifunc.c += -fno-builtin-ccoshf64x
CFLAGS-s_ceilf128-ifunc.c += -fno-builtin-ceilf64x
CFLAGS-s_cexpf128-ifunc.c += -fno-builtin-cexpf64x
CFLAGS-s_cimagf128-ifunc.c += -fno-builtin-cimagf64x
CFLAGS-s_clogf128-ifunc.c += -fno-builtin-clogf64x
CFLAGS-s_clog10f128-ifunc.c += -fno-builtin-clog10f64x
CFLAGS-s_conjf128-ifunc.c += -fno-builtin-conjf64x
CFLAGS-s_copysignf128-ifunc.c += -fno-builtin-copysignf64x
CFLAGS-s_cosf128-ifunc.c += -fno-builtin-cosf64x
CFLAGS-w_coshf128-ifunc.c += -fno-builtin-coshf64x
CFLAGS-s_cpowf128-ifunc.c += -fno-builtin-cpowf64x
CFLAGS-s_cprojf128-ifunc.c += -fno-builtin-cprojf64x
CFLAGS-s_crealf128-ifunc.c += -fno-builtin-crealf64x
CFLAGS-s_csinf128-ifunc.c += -fno-builtin-csinf64x
CFLAGS-s_csinhf128-ifunc.c += -fno-builtin-csinhf64x
CFLAGS-s_csqrtf128-ifunc.c += -fno-builtin-csqrtf64x
CFLAGS-s_ctanf128-ifunc.c += -fno-builtin-ctanf64x
CFLAGS-s_ctanhf128-ifunc.c += -fno-builtin-ctanhf64x
CFLAGS-s_daddf128-ifunc.c += -fno-builtin-f64addf64x
CFLAGS-s_ddivf128-ifunc.c += -fno-builtin-f64divf64x
CFLAGS-s_dfmaf128-ifunc.c += -fno-builtin-f64fmaf64x
CFLAGS-s_dmulf128-ifunc.c += -fno-builtin-f64mulf64x
CFLAGS-s_dsqrtf128-ifunc.c += -fno-builtin-f64sqrtf64x
CFLAGS-s_dsubf128-ifunc.c += -fno-builtin-f64subf64x
CFLAGS-s_erff128-ifunc.c += -fno-builtin-erff64x
CFLAGS-s_erfcf128-ifunc.c += -fno-builtin-erfcf64x
CFLAGS-e_expf128-ifunc.c += -fno-builtin-expf64x
CFLAGS-w_exp10f128-ifunc.c += -fno-builtin-exp10f64x
CFLAGS-e_exp2f128-ifunc.c += -fno-builtin-exp2f64x
CFLAGS-s_expm1f128-ifunc.c += -fno-builtin-expm1f64x
CFLAGS-s_fabsf128-ifunc.c += -fno-builtin-fabsf64x
CFLAGS-s_faddf128-ifunc.c += -fno-builtin-f32addf64x
CFLAGS-s_fdimf128-ifunc.c += -fno-builtin-fdimf64x
CFLAGS-s_fdivf128-ifunc.c += -fno-builtin-f32divf64x
CFLAGS-s_ffmaf128-ifunc.c += -fno-builtin-f32fmaf64x
CFLAGS-s_floorf128-ifunc.c += -fno-builtin-floorf64x
CFLAGS-s_fmaf128-ifunc.c += -fno-builtin-fmaf64x
CFLAGS-s_fmaxf128-ifunc.c += -fno-builtin-fmaxf64x
CFLAGS-s_fmaximumf128-ifunc.c += -fno-builtin-fmaximumf64x
CFLAGS-s_fmaximum_magf128-ifunc.c += -fno-builtin-fmaximum_magf64x
CFLAGS-s_fmaximum_mag_numf128-ifunc.c += -fno-builtin-fmaximum_mag_numf64x
CFLAGS-s_fmaximum_numf128-ifunc.c += -fno-builtin-fmaximum_numf64x
CFLAGS-s_fmaxmagf128-ifunc.c += -fno-builtin-fmaxmagf64x
CFLAGS-s_fminf128-ifunc.c += -fno-builtin-fminf64x
CFLAGS-s_fminimumf128-ifunc.c += -fno-builtin-fminimumf64x
CFLAGS-s_fminimum_magf128-ifunc.c += -fno-builtin-fminimum_magf64x
CFLAGS-s_fminimum_mag_numf128-ifunc.c += -fno-builtin-fminimum_mag_numf64x
CFLAGS-s_fminimum_numf128-ifunc.c += -fno-builtin-fminimum_numf64x
CFLAGS-s_fminmagf128-ifunc.c += -fno-builtin-fminmagf64x
CFLAGS-w_fmodf128-ifunc.c += -fno-builtin-fmodf64x
CFLAGS-s_fmulf128-ifunc.c += -fno-builtin-f32mulf64x
CFLAGS-s_frexpf128-ifunc.c += -fno-builtin-frexpf64x
CFLAGS-s_fromfpf128-ifunc.c += -fno-builtin-fromfpf64x
CFLAGS-s_fromfpxf128-ifunc.c += -fno-builtin-fromfpxf64x
CFLAGS-s_fsqrtf128-ifunc.c += -fno-builtin-f32sqrtf64x
CFLAGS-s_fsubf128-ifunc.c += -fno-builtin-f32subf64x
CFLAGS-s_getpayloadf128-ifunc.c += -fno-builtin-getpayloadf64x
CFLAGS-w_hypotf128-ifunc.c += -fno-builtin-hypotf64x
CFLAGS-w_ilogbf128-ifunc.c += -fno-builtin-ilogbf64x
CFLAGS-w_j0f128-ifunc.c += -fno-builtin-j0f64x
CFLAGS-w_j1f128-ifunc.c += -fno-builtin-j1f64x
CFLAGS-w_jnf128-ifunc.c += -fno-builtin-jnf64x
CFLAGS-s_ldexpf128-ifunc.c += -fno-builtin-ldexpf64x
CFLAGS-w_lgammaf128-ifunc.c += -fno-builtin-lgammaf64x
CFLAGS-w_lgammaf128_r-ifunc.c += -fno-builtin-lgammaf64x_r
CFLAGS-w_llogbf128-ifunc.c += -fno-builtin-llogbf64x
CFLAGS-s_llrintf128-ifunc.c += -fno-builtin-llrintf64x
CFLAGS-s_llroundf128-ifunc.c += -fno-builtin-llroundf64x
CFLAGS-e_logf128-ifunc.c += -fno-builtin-logf64x
CFLAGS-w_log10f128-ifunc.c += -fno-builtin-log10f64x
CFLAGS-w_log1pf128-ifunc.c += -fno-builtin-log1pf64x
CFLAGS-e_log2f128-ifunc.c += -fno-builtin-log2f64x
CFLAGS-s_logbf128-ifunc.c += -fno-builtin-logbf64x
CFLAGS-s_lrintf128-ifunc.c += -fno-builtin-lrintf64x
CFLAGS-s_lroundf128-ifunc.c += -fno-builtin-lroundf64x
CFLAGS-s_modff128-ifunc.c += -fno-builtin-modff64x
CFLAGS-s_nanf128-ifunc.c += -fno-builtin-nanf64x
CFLAGS-s_nearbyintf128-ifunc.c += -fno-builtin-nearbyintf64x
CFLAGS-s_nextafterf128-ifunc.c += -fno-builtin-nextafterf64x
CFLAGS-s_nextdownf128-ifunc.c += -fno-builtin-nextdownf64x
CFLAGS-s_nextupf128-ifunc.c += -fno-builtin-nextupf64x
CFLAGS-e_powf128-ifunc.c += -fno-builtin-powf64x
CFLAGS-w_remainderf128-ifunc.c += -fno-builtin-remainderf64x
CFLAGS-s_remquof128-ifunc.c += -fno-builtin-remquof64x
CFLAGS-s_rintf128-ifunc.c += -fno-builtin-rintf64x
CFLAGS-s_roundf128-ifunc.c += -fno-builtin-roundf64x
CFLAGS-s_roundevenf128-ifunc.c += -fno-builtin-roundevenf64x
CFLAGS-w_scalblnf128-ifunc.c += -fno-builtin-scalblnf64x
CFLAGS-s_scalbnf128-ifunc.c += -fno-builtin-scalbnf64x
CFLAGS-s_setpayloadf128-ifunc.c += -fno-builtin-setpayloadf64x
CFLAGS-s_setpayloadsigf128-ifunc.c += -fno-builtin-setpayloadsigf64x
CFLAGS-s_sinf128-ifunc.c += -fno-builtin-sinf64x
CFLAGS-s_sincosf128-ifunc.c += -fno-builtin-sincosf64x
CFLAGS-w_sinhf128-ifunc.c += -fno-builtin-sinhf64x
CFLAGS-w_sqrtf128-ifunc.c += -fno-builtin-sqrtf64x
CFLAGS-s_tanf128-ifunc.c += -fno-builtin-tanf64x
CFLAGS-s_tanhf128-ifunc.c += -fno-builtin-tanhf64x
CFLAGS-w_tgammaf128-ifunc.c += -fno-builtin-tgammaf64x
CFLAGS-s_totalorderf128-ifunc.c += -fno-builtin-totalorderf64x
CFLAGS-s_totalordermagf128-ifunc.c += -fno-builtin-totalordermagf64x
CFLAGS-s_truncf128-ifunc.c += -fno-builtin-truncf64x
CFLAGS-s_ufromfpf128-ifunc.c += -fno-builtin-ufromfpf64x
CFLAGS-s_ufromfpxf128-ifunc.c += -fno-builtin-ufromfpxf64x
CFLAGS-s_y0f128-ifunc.c += -fno-builtin-y0f64x
CFLAGS-s_y1f128-ifunc.c += -fno-builtin-y1f64x
CFLAGS-s_ynf128-ifunc.c += -fno-builtin-ynf64x
endif # do_f128_multiarch
libm-sysdep_routines += e_log-ppc64

View File

@ -2,7 +2,8 @@ ifeq ($(subdir),math)
# Since x32 returns 32-bit long int and 64-bit long long int in the
# same 64-bit register, we make the 32b-bit lround an alias of the
# 64-bit llround. Add -fno-builtin-lround to silence the compiler.
CFLAGS-s_llround.c += -fno-builtin-lround
CFLAGS-s_llround.c += -fno-builtin-lround -fno-builtin-lroundf32x \
-fno-builtin-lroundf64
endif
ifeq ($(subdir),string)