1# The`long double' type is a distinct type we support if 2# -mlong-double-128 option is used (or when it becomes a default 3# when -mlong-double-64 is not used). 4long-double-fcts = yes 5ifeq (,$(filter -mlong-double-128,$(sysdep-CFLAGS))) 6sysdep-CFLAGS += -mlong-double-128 7endif 8 9ifeq ($(subdir),math) 10libm-routines += s_nexttowardfd 11routines += nldbl-compat 12 13extra-libs += libnldbl 14libnldbl-calls = asprintf dprintf fprintf fscanf fwprintf fwscanf iovfscanf \ 15 obstack_printf obstack_vprintf printf scanf snprintf \ 16 sprintf sscanf swprintf swscanf vasprintf vdprintf vfprintf \ 17 vfscanf vfwprintf vfwscanf vprintf vscanf vsnprintf \ 18 vsprintf vsscanf vswprintf vswscanf vwprintf vwscanf \ 19 wprintf wscanf printf_fp printf_size \ 20 fprintf_chk fwprintf_chk printf_chk snprintf_chk sprintf_chk \ 21 swprintf_chk vfprintf_chk vfwprintf_chk vprintf_chk \ 22 vsnprintf_chk vsprintf_chk vswprintf_chk vwprintf_chk \ 23 wprintf_chk asprintf_chk vasprintf_chk dprintf_chk \ 24 vdprintf_chk obstack_printf_chk obstack_vprintf_chk \ 25 syslog syslog_chk vsyslog vsyslog_chk \ 26 strfmon strfmon_l \ 27 strfroml \ 28 strtold strtold_l strtoldint wcstold wcstold_l wcstoldint \ 29 qecvt qfcvt qgcvt qecvt_r qfcvt_r \ 30 isinf isnan finite signbit scalb log2 lgamma_r ceil \ 31 significand acos asin atan atan2 cos sin tan cosh sinh \ 32 tanh acosh asinh atanh exp log log10 exp10 expm1 \ 33 log1p logb exp2 sqrt cbrt fabs floor j0 j1 y0 y1 erf erfc \ 34 lgamma tgamma gamma rint nearbyint round trunc \ 35 copysign fdim fmax fmin nextafter pow hypot fmod \ 36 remainder ldexp scalbn frexp modf scalbln fma nan sincos \ 37 jn yn ilogb remquo lrint lround llrint llround nexttowardf \ 38 nexttoward conj cacos cacosh casin catan catanh ccos ccosh \ 39 casinh cexp clog cproj csin csinh csqrt ctan ctanh cpow \ 40 cabs carg cimag creal clog10 \ 41 isoc99_scanf isoc99_fscanf isoc99_sscanf \ 42 isoc99_vscanf isoc99_vfscanf isoc99_vsscanf \ 43 isoc99_wscanf isoc99_fwscanf isoc99_swscanf \ 44 isoc99_vwscanf isoc99_vfwscanf isoc99_vswscanf \ 45 nextup nextdown totalorder totalordermag getpayload \ 46 canonicalize setpayload setpayloadsig llogb fmaxmag fminmag \ 47 roundeven fromfp ufromfp fromfpx ufromfpx fadd dadd \ 48 fdiv ddiv ffma dfma fmul dmul fsqrt dsqrt fsub dsub \ 49 fmaximum fmaximum_mag fmaximum_num fmaximum_mag_num \ 50 fminimum fminimum_mag fminimum_num fminimum_mag_num 51libnldbl-routines = $(libnldbl-calls:%=nldbl-%) 52libnldbl-inhibit-o = $(object-suffixes) 53libnldbl-static-only-routines = $(libnldbl-routines) 54extra-objs += $(addsuffix .oS, $(libnldbl-routines)) 55 56CFLAGS-nldbl-acos.c = -fno-builtin-acosl 57CFLAGS-nldbl-acosh.c = -fno-builtin-acoshl 58CFLAGS-nldbl-asin.c = -fno-builtin-asinl 59CFLAGS-nldbl-asinh.c = -fno-builtin-asinhl 60CFLAGS-nldbl-atan.c = -fno-builtin-atanl 61CFLAGS-nldbl-atan2.c = -fno-builtin-atan2l 62CFLAGS-nldbl-atanh.c = -fno-builtin-atanhl 63CFLAGS-nldbl-cabs.c = -fno-builtin-cabsl 64CFLAGS-nldbl-cacos.c = -fno-builtin-cacosl 65CFLAGS-nldbl-cacosh.c = -fno-builtin-cacoshl 66CFLAGS-nldbl-canonicalize.c = -fno-builtin-canonicalizel 67CFLAGS-nldbl-carg.c = -fno-builtin-cargl 68CFLAGS-nldbl-casin.c = -fno-builtin-casinl 69CFLAGS-nldbl-casinh.c = -fno-builtin-casinhl 70CFLAGS-nldbl-catan.c = -fno-builtin-catanl 71CFLAGS-nldbl-catanh.c = -fno-builtin-catanhl 72CFLAGS-nldbl-cbrt.c = -fno-builtin-cbrtl 73CFLAGS-nldbl-ccos.c = -fno-builtin-ccosl 74CFLAGS-nldbl-ccosh.c = -fno-builtin-ccoshl 75CFLAGS-nldbl-ceil.c = -fno-builtin-ceill 76CFLAGS-nldbl-cexp.c = -fno-builtin-cexpl 77CFLAGS-nldbl-cimag.c = -fno-builtin-cimagl 78CFLAGS-nldbl-clog.c = -fno-builtin-clogl 79CFLAGS-nldbl-clog10.c = -fno-builtin-clog10l 80CFLAGS-nldbl-conj.c = -fno-builtin-conjl 81CFLAGS-nldbl-copysign.c = -fno-builtin-copysignl 82CFLAGS-nldbl-cos.c = -fno-builtin-cosl 83CFLAGS-nldbl-cosh.c = -fno-builtin-coshl 84CFLAGS-nldbl-cpow.c = -fno-builtin-cpowl 85CFLAGS-nldbl-cproj.c = -fno-builtin-cprojl 86CFLAGS-nldbl-creal.c = -fno-builtin-creall 87CFLAGS-nldbl-csin.c = -fno-builtin-csinl 88CFLAGS-nldbl-csinh.c = -fno-builtin-csinhl 89CFLAGS-nldbl-csqrt.c = -fno-builtin-csqrtl 90CFLAGS-nldbl-ctan.c = -fno-builtin-ctanl 91CFLAGS-nldbl-ctanh.c = -fno-builtin-ctanhl 92CFLAGS-nldbl-dadd.c = -fno-builtin-daddl 93CFLAGS-nldbl-ddiv.c = -fno-builtin-ddivl 94CFLAGS-nldbl-dfma.c = -fno-builtin-dfmal 95CFLAGS-nldbl-dmul.c = -fno-builtin-dmull 96CFLAGS-nldbl-dsqrt.c = -fno-builtin-dsqrtl 97CFLAGS-nldbl-dsub.c = -fno-builtin-dsubl 98CFLAGS-nldbl-erf.c = -fno-builtin-erfl 99CFLAGS-nldbl-erfc.c = -fno-builtin-erfcl 100CFLAGS-nldbl-exp.c = -fno-builtin-expl 101CFLAGS-nldbl-exp10.c = -fno-builtin-exp10l 102CFLAGS-nldbl-exp2.c = -fno-builtin-exp2l 103CFLAGS-nldbl-expm1.c = -fno-builtin-expm1l 104CFLAGS-nldbl-fabs.c = -fno-builtin-fabsl 105CFLAGS-nldbl-fadd.c = -fno-builtin-faddl 106CFLAGS-nldbl-fdim.c = -fno-builtin-fdiml 107CFLAGS-nldbl-fdiv.c = -fno-builtin-fdivl 108CFLAGS-nldbl-ffma.c = -fno-builtin-ffmal 109CFLAGS-nldbl-finite.c = -fno-builtin-finitel 110CFLAGS-nldbl-floor.c = -fno-builtin-floorl 111CFLAGS-nldbl-fma.c = -fno-builtin-fmal 112CFLAGS-nldbl-fmax.c = -fno-builtin-fmaxl 113CFLAGS-nldbl-fmaximum.c += -fno-builtin-fmaximuml 114CFLAGS-nldbl-fmaximum_mag.c += -fno-builtin-fmaximum_magl 115CFLAGS-nldbl-fmaximum_mag_num.c += -fno-builtin-fmaximum_mag_numl 116CFLAGS-nldbl-fmaximum_num.c += -fno-builtin-fmaximum_numl 117CFLAGS-nldbl-fmaxmag.c = -fno-builtin-fmaxmagl 118CFLAGS-nldbl-fmin.c = -fno-builtin-fminl 119CFLAGS-nldbl-fminimum.c += -fno-builtin-fminimuml 120CFLAGS-nldbl-fminimum_mag.c += -fno-builtin-fminimum_magl 121CFLAGS-nldbl-fminimum_mag_num.c += -fno-builtin-fminimum_mag_numl 122CFLAGS-nldbl-fminimum_num.c += -fno-builtin-fminimum_numl 123CFLAGS-nldbl-fminmag.c = -fno-builtin-fminmagl 124CFLAGS-nldbl-fmod.c = -fno-builtin-fmodl 125CFLAGS-nldbl-fmul.c = -fno-builtin-fmull 126CFLAGS-nldbl-frexp.c = -fno-builtin-frexpl 127CFLAGS-nldbl-fromfp.c = -fno-builtin-fromfpl 128CFLAGS-nldbl-fromfpx.c = -fno-builtin-fromfpxl 129CFLAGS-nldbl-fsqrt.c = -fno-builtin-fsqrtl 130CFLAGS-nldbl-fsub.c = -fno-builtin-fsubl 131CFLAGS-nldbl-gamma.c = -fno-builtin-gammal 132CFLAGS-nldbl-getpayload.c = -fno-builtin-getpayloadl 133CFLAGS-nldbl-hypot.c = -fno-builtin-hypotl 134CFLAGS-nldbl-ilogb.c = -fno-builtin-ilogbl 135CFLAGS-nldbl-isinf.c = -fno-builtin-isinfl 136CFLAGS-nldbl-isnan.c = -fno-builtin-isnanl 137CFLAGS-nldbl-j0.c = -fno-builtin-j0l 138CFLAGS-nldbl-j1.c = -fno-builtin-j1l 139CFLAGS-nldbl-jn.c = -fno-builtin-jnl 140CFLAGS-nldbl-ldexp.c = -fno-builtin-ldexpl 141CFLAGS-nldbl-lgamma.c = -fno-builtin-lgammal 142CFLAGS-nldbl-lgamma_r.c = -fno-builtin-lgammal_r 143CFLAGS-nldbl-llogb.c = -fno-builtin-llogbl 144CFLAGS-nldbl-llrint.c = -fno-builtin-llrintl 145CFLAGS-nldbl-llround.c = -fno-builtin-llroundl 146CFLAGS-nldbl-log.c = -fno-builtin-logl 147CFLAGS-nldbl-log10.c = -fno-builtin-log10l 148CFLAGS-nldbl-log1p.c = -fno-builtin-log1pl 149CFLAGS-nldbl-log2.c = -fno-builtin-log2l 150CFLAGS-nldbl-logb.c = -fno-builtin-logbl 151CFLAGS-nldbl-lrint.c = -fno-builtin-lrintl 152CFLAGS-nldbl-lround.c = -fno-builtin-lroundl 153CFLAGS-nldbl-modf.c = -fno-builtin-modfl 154CFLAGS-nldbl-nan.c = -fno-builtin-nanl 155CFLAGS-nldbl-nearbyint.c = -fno-builtin-nearbyintl 156CFLAGS-nldbl-nextafter.c = -fno-builtin-nextafterl 157CFLAGS-nldbl-nextdown.c = -fno-builtin-nextdownl 158CFLAGS-nldbl-nexttoward.c = -fno-builtin-nexttoward -fno-builtin-nexttowardl 159CFLAGS-nldbl-nexttowardf.c = -fno-builtin-nexttowardf 160CFLAGS-nldbl-nextup.c = -fno-builtin-nextupl 161CFLAGS-nldbl-pow.c = -fno-builtin-powl 162CFLAGS-nldbl-remainder.c = -fno-builtin-remainderl -fno-builtin-dreml 163CFLAGS-nldbl-remquo.c = -fno-builtin-remquol 164CFLAGS-nldbl-rint.c = -fno-builtin-rintl 165CFLAGS-nldbl-round.c = -fno-builtin-roundl 166CFLAGS-nldbl-roundeven.c = -fno-builtin-roundevenl 167CFLAGS-nldbl-scalb.c = -fno-builtin-scalbl 168CFLAGS-nldbl-scalbln.c = -fno-builtin-scalblnl 169CFLAGS-nldbl-scalbn.c = -fno-builtin-scalbnl 170CFLAGS-nldbl-setpayload.c = -fno-builtin-setpayloadl 171CFLAGS-nldbl-setpayloadsig.c = -fno-builtin-setpayloadsigl 172CFLAGS-nldbl-significand.c = -fno-builtin-significandl 173CFLAGS-nldbl-sin.c = -fno-builtin-sinl 174CFLAGS-nldbl-sincos.c = -fno-builtin-sincosl 175CFLAGS-nldbl-sinh.c = -fno-builtin-sinhl 176CFLAGS-nldbl-sqrt.c = -fno-builtin-sqrtl 177CFLAGS-nldbl-tan.c = -fno-builtin-tanl 178CFLAGS-nldbl-tanh.c = -fno-builtin-tanhl 179CFLAGS-nldbl-tgamma.c = -fno-builtin-tgammal 180CFLAGS-nldbl-totalorder.c = -fno-builtin-totalorderl 181CFLAGS-nldbl-totalordermag.c = -fno-builtin-totalordermagl 182CFLAGS-nldbl-trunc.c = -fno-builtin-truncl 183CFLAGS-nldbl-ufromfp.c = -fno-builtin-ufromfpl 184CFLAGS-nldbl-ufromfpx.c = -fno-builtin-ufromfpxl 185CFLAGS-nldbl-y0.c = -fno-builtin-y0l 186CFLAGS-nldbl-y1.c = -fno-builtin-y1l 187CFLAGS-nldbl-yn.c = -fno-builtin-ynl 188 189tests += test-narrow-macros-ldbl-64 test-nldbl-redirect \ 190 test-redirection-ldbl-64 191CFLAGS-test-narrow-macros-ldbl-64.c += -mlong-double-64 192CFLAGS-test-nldbl-redirect.c += -mlong-double-64 193CFLAGS-test-redirection-ldbl-64.c += -mlong-double-64 194 195$(objpfx)test-nldbl-redirect: $(objpfx)libnldbl_nonshared.a 196 197endif 198 199# Tests for argp.h functions (reusing the relevant tests from argp/) 200ifeq ($(subdir),argp) 201tests-internal += tst-nldbl-argp 202 203$(objpfx)tst-nldbl-argp.c: tst-ldbl-argp.c 204 cp $< $@ 205 206CFLAGS-tst-nldbl-argp.c += -mlong-double-64 207endif 208 209# Tests for err.h and error.h functions (reusing the relevant tests from 210# misc/). 211ifeq ($(subdir), misc) 212tests-internal += tst-nldbl-warn 213tests-internal += tst-nldbl-error 214 215$(objpfx)tst-nldbl-warn.c: tst-ldbl-warn.c 216 cp $< $@ 217 218$(objpfx)tst-nldbl-error.c: tst-ldbl-error.c 219 cp $< $@ 220 221CFLAGS-tst-nldbl-warn.c += -mlong-double-64 222CFLAGS-tst-nldbl-error.c += -mlong-double-64 223endif 224