2015-10-29 14:33:54 +00:00
|
|
|
GLIBC_2.15 GLIBC_2.15 A
|
|
|
|
GLIBC_2.15 __acos_finite F
|
|
|
|
GLIBC_2.15 __acosf_finite F
|
|
|
|
GLIBC_2.15 __acosh_finite F
|
|
|
|
GLIBC_2.15 __acoshf_finite F
|
|
|
|
GLIBC_2.15 __asin_finite F
|
|
|
|
GLIBC_2.15 __asinf_finite F
|
|
|
|
GLIBC_2.15 __atan2_finite F
|
|
|
|
GLIBC_2.15 __atan2f_finite F
|
|
|
|
GLIBC_2.15 __atanh_finite F
|
|
|
|
GLIBC_2.15 __atanhf_finite F
|
|
|
|
GLIBC_2.15 __cosh_finite F
|
|
|
|
GLIBC_2.15 __coshf_finite F
|
|
|
|
GLIBC_2.15 __exp10_finite F
|
|
|
|
GLIBC_2.15 __exp10f_finite F
|
|
|
|
GLIBC_2.15 __exp2_finite F
|
|
|
|
GLIBC_2.15 __exp2f_finite F
|
|
|
|
GLIBC_2.15 __exp_finite F
|
|
|
|
GLIBC_2.15 __expf_finite F
|
|
|
|
GLIBC_2.15 __fmod_finite F
|
|
|
|
GLIBC_2.15 __fmodf_finite F
|
|
|
|
GLIBC_2.15 __gamma_r_finite F
|
|
|
|
GLIBC_2.15 __gammaf_r_finite F
|
|
|
|
GLIBC_2.15 __hypot_finite F
|
|
|
|
GLIBC_2.15 __hypotf_finite F
|
|
|
|
GLIBC_2.15 __j0_finite F
|
|
|
|
GLIBC_2.15 __j0f_finite F
|
|
|
|
GLIBC_2.15 __j1_finite F
|
|
|
|
GLIBC_2.15 __j1f_finite F
|
|
|
|
GLIBC_2.15 __jn_finite F
|
|
|
|
GLIBC_2.15 __jnf_finite F
|
|
|
|
GLIBC_2.15 __lgamma_r_finite F
|
|
|
|
GLIBC_2.15 __lgammaf_r_finite F
|
|
|
|
GLIBC_2.15 __log10_finite F
|
|
|
|
GLIBC_2.15 __log10f_finite F
|
|
|
|
GLIBC_2.15 __log2_finite F
|
|
|
|
GLIBC_2.15 __log2f_finite F
|
|
|
|
GLIBC_2.15 __log_finite F
|
|
|
|
GLIBC_2.15 __logf_finite F
|
|
|
|
GLIBC_2.15 __pow_finite F
|
|
|
|
GLIBC_2.15 __powf_finite F
|
|
|
|
GLIBC_2.15 __remainder_finite F
|
|
|
|
GLIBC_2.15 __remainderf_finite F
|
|
|
|
GLIBC_2.15 __scalb_finite F
|
|
|
|
GLIBC_2.15 __scalbf_finite F
|
|
|
|
GLIBC_2.15 __sinh_finite F
|
|
|
|
GLIBC_2.15 __sinhf_finite F
|
|
|
|
GLIBC_2.15 __sqrt_finite F
|
|
|
|
GLIBC_2.15 __sqrtf_finite F
|
|
|
|
GLIBC_2.15 __y0_finite F
|
|
|
|
GLIBC_2.15 __y0f_finite F
|
|
|
|
GLIBC_2.15 __y1_finite F
|
|
|
|
GLIBC_2.15 __y1f_finite F
|
|
|
|
GLIBC_2.15 __yn_finite F
|
|
|
|
GLIBC_2.15 __ynf_finite F
|
|
|
|
GLIBC_2.18 GLIBC_2.18 A
|
|
|
|
GLIBC_2.18 __issignaling F
|
|
|
|
GLIBC_2.18 __issignalingf F
|
|
|
|
GLIBC_2.2 GLIBC_2.2 A
|
|
|
|
GLIBC_2.2 _LIB_VERSION D 0x4
|
|
|
|
GLIBC_2.2 __clog10 F
|
|
|
|
GLIBC_2.2 __clog10f F
|
|
|
|
GLIBC_2.2 __clog10l F
|
|
|
|
GLIBC_2.2 __finite F
|
|
|
|
GLIBC_2.2 __finitef F
|
|
|
|
GLIBC_2.2 __fpclassify F
|
|
|
|
GLIBC_2.2 __fpclassifyf F
|
|
|
|
GLIBC_2.2 __signbit F
|
|
|
|
GLIBC_2.2 __signbitf F
|
|
|
|
GLIBC_2.2 __signbitl F
|
|
|
|
GLIBC_2.2 acos F
|
|
|
|
GLIBC_2.2 acosf F
|
|
|
|
GLIBC_2.2 acosh F
|
|
|
|
GLIBC_2.2 acoshf F
|
|
|
|
GLIBC_2.2 acoshl F
|
|
|
|
GLIBC_2.2 acosl F
|
|
|
|
GLIBC_2.2 asin F
|
|
|
|
GLIBC_2.2 asinf F
|
|
|
|
GLIBC_2.2 asinh F
|
|
|
|
GLIBC_2.2 asinhf F
|
|
|
|
GLIBC_2.2 asinhl F
|
|
|
|
GLIBC_2.2 asinl F
|
|
|
|
GLIBC_2.2 atan F
|
|
|
|
GLIBC_2.2 atan2 F
|
|
|
|
GLIBC_2.2 atan2f F
|
|
|
|
GLIBC_2.2 atan2l F
|
|
|
|
GLIBC_2.2 atanf F
|
|
|
|
GLIBC_2.2 atanh F
|
|
|
|
GLIBC_2.2 atanhf F
|
|
|
|
GLIBC_2.2 atanhl F
|
|
|
|
GLIBC_2.2 atanl F
|
|
|
|
GLIBC_2.2 cabs F
|
|
|
|
GLIBC_2.2 cabsf F
|
|
|
|
GLIBC_2.2 cabsl F
|
|
|
|
GLIBC_2.2 cacos F
|
|
|
|
GLIBC_2.2 cacosf F
|
|
|
|
GLIBC_2.2 cacosh F
|
|
|
|
GLIBC_2.2 cacoshf F
|
|
|
|
GLIBC_2.2 cacoshl F
|
|
|
|
GLIBC_2.2 cacosl F
|
|
|
|
GLIBC_2.2 carg F
|
|
|
|
GLIBC_2.2 cargf F
|
|
|
|
GLIBC_2.2 cargl F
|
|
|
|
GLIBC_2.2 casin F
|
|
|
|
GLIBC_2.2 casinf F
|
|
|
|
GLIBC_2.2 casinh F
|
|
|
|
GLIBC_2.2 casinhf F
|
|
|
|
GLIBC_2.2 casinhl F
|
|
|
|
GLIBC_2.2 casinl F
|
|
|
|
GLIBC_2.2 catan F
|
|
|
|
GLIBC_2.2 catanf F
|
|
|
|
GLIBC_2.2 catanh F
|
|
|
|
GLIBC_2.2 catanhf F
|
|
|
|
GLIBC_2.2 catanhl F
|
|
|
|
GLIBC_2.2 catanl F
|
|
|
|
GLIBC_2.2 cbrt F
|
|
|
|
GLIBC_2.2 cbrtf F
|
|
|
|
GLIBC_2.2 cbrtl F
|
|
|
|
GLIBC_2.2 ccos F
|
|
|
|
GLIBC_2.2 ccosf F
|
|
|
|
GLIBC_2.2 ccosh F
|
|
|
|
GLIBC_2.2 ccoshf F
|
|
|
|
GLIBC_2.2 ccoshl F
|
|
|
|
GLIBC_2.2 ccosl F
|
|
|
|
GLIBC_2.2 ceil F
|
|
|
|
GLIBC_2.2 ceilf F
|
|
|
|
GLIBC_2.2 ceill F
|
|
|
|
GLIBC_2.2 cexp F
|
|
|
|
GLIBC_2.2 cexpf F
|
|
|
|
GLIBC_2.2 cexpl F
|
|
|
|
GLIBC_2.2 cimag F
|
|
|
|
GLIBC_2.2 cimagf F
|
|
|
|
GLIBC_2.2 cimagl F
|
|
|
|
GLIBC_2.2 clog F
|
|
|
|
GLIBC_2.2 clog10 F
|
|
|
|
GLIBC_2.2 clog10f F
|
|
|
|
GLIBC_2.2 clog10l F
|
|
|
|
GLIBC_2.2 clogf F
|
|
|
|
GLIBC_2.2 clogl F
|
|
|
|
GLIBC_2.2 conj F
|
|
|
|
GLIBC_2.2 conjf F
|
|
|
|
GLIBC_2.2 conjl F
|
|
|
|
GLIBC_2.2 copysign F
|
|
|
|
GLIBC_2.2 copysignf F
|
|
|
|
GLIBC_2.2 copysignl F
|
|
|
|
GLIBC_2.2 cos F
|
|
|
|
GLIBC_2.2 cosf F
|
|
|
|
GLIBC_2.2 cosh F
|
|
|
|
GLIBC_2.2 coshf F
|
|
|
|
GLIBC_2.2 coshl F
|
|
|
|
GLIBC_2.2 cosl F
|
|
|
|
GLIBC_2.2 cpow F
|
|
|
|
GLIBC_2.2 cpowf F
|
|
|
|
GLIBC_2.2 cpowl F
|
|
|
|
GLIBC_2.2 cproj F
|
|
|
|
GLIBC_2.2 cprojf F
|
|
|
|
GLIBC_2.2 cprojl F
|
|
|
|
GLIBC_2.2 creal F
|
|
|
|
GLIBC_2.2 crealf F
|
|
|
|
GLIBC_2.2 creall F
|
|
|
|
GLIBC_2.2 csin F
|
|
|
|
GLIBC_2.2 csinf F
|
|
|
|
GLIBC_2.2 csinh F
|
|
|
|
GLIBC_2.2 csinhf F
|
|
|
|
GLIBC_2.2 csinhl F
|
|
|
|
GLIBC_2.2 csinl F
|
|
|
|
GLIBC_2.2 csqrt F
|
|
|
|
GLIBC_2.2 csqrtf F
|
|
|
|
GLIBC_2.2 csqrtl F
|
|
|
|
GLIBC_2.2 ctan F
|
|
|
|
GLIBC_2.2 ctanf F
|
|
|
|
GLIBC_2.2 ctanh F
|
|
|
|
GLIBC_2.2 ctanhf F
|
|
|
|
GLIBC_2.2 ctanhl F
|
|
|
|
GLIBC_2.2 ctanl F
|
|
|
|
GLIBC_2.2 drem F
|
|
|
|
GLIBC_2.2 dremf F
|
|
|
|
GLIBC_2.2 dreml F
|
|
|
|
GLIBC_2.2 erf F
|
|
|
|
GLIBC_2.2 erfc F
|
|
|
|
GLIBC_2.2 erfcf F
|
|
|
|
GLIBC_2.2 erfcl F
|
|
|
|
GLIBC_2.2 erff F
|
|
|
|
GLIBC_2.2 erfl F
|
|
|
|
GLIBC_2.2 exp F
|
|
|
|
GLIBC_2.2 exp10 F
|
|
|
|
GLIBC_2.2 exp10f F
|
|
|
|
GLIBC_2.2 exp10l F
|
|
|
|
GLIBC_2.2 exp2 F
|
|
|
|
GLIBC_2.2 exp2f F
|
|
|
|
GLIBC_2.2 expf F
|
|
|
|
GLIBC_2.2 expl F
|
|
|
|
GLIBC_2.2 expm1 F
|
|
|
|
GLIBC_2.2 expm1f F
|
|
|
|
GLIBC_2.2 expm1l F
|
|
|
|
GLIBC_2.2 fabs F
|
|
|
|
GLIBC_2.2 fabsf F
|
|
|
|
GLIBC_2.2 fabsl F
|
|
|
|
GLIBC_2.2 fdim F
|
|
|
|
GLIBC_2.2 fdimf F
|
|
|
|
GLIBC_2.2 fdiml F
|
|
|
|
GLIBC_2.2 feclearexcept F
|
|
|
|
GLIBC_2.2 fedisableexcept F
|
|
|
|
GLIBC_2.2 feenableexcept F
|
|
|
|
GLIBC_2.2 fegetenv F
|
|
|
|
GLIBC_2.2 fegetexcept F
|
|
|
|
GLIBC_2.2 fegetexceptflag F
|
|
|
|
GLIBC_2.2 fegetround F
|
|
|
|
GLIBC_2.2 feholdexcept F
|
|
|
|
GLIBC_2.2 feraiseexcept F
|
|
|
|
GLIBC_2.2 fesetenv F
|
|
|
|
GLIBC_2.2 fesetexceptflag F
|
|
|
|
GLIBC_2.2 fesetround F
|
|
|
|
GLIBC_2.2 fetestexcept F
|
|
|
|
GLIBC_2.2 feupdateenv F
|
|
|
|
GLIBC_2.2 finite F
|
|
|
|
GLIBC_2.2 finitef F
|
|
|
|
GLIBC_2.2 finitel F
|
|
|
|
GLIBC_2.2 floor F
|
|
|
|
GLIBC_2.2 floorf F
|
|
|
|
GLIBC_2.2 floorl F
|
|
|
|
GLIBC_2.2 fma F
|
|
|
|
GLIBC_2.2 fmaf F
|
|
|
|
GLIBC_2.2 fmal F
|
|
|
|
GLIBC_2.2 fmax F
|
|
|
|
GLIBC_2.2 fmaxf F
|
|
|
|
GLIBC_2.2 fmaxl F
|
|
|
|
GLIBC_2.2 fmin F
|
|
|
|
GLIBC_2.2 fminf F
|
|
|
|
GLIBC_2.2 fminl F
|
|
|
|
GLIBC_2.2 fmod F
|
|
|
|
GLIBC_2.2 fmodf F
|
|
|
|
GLIBC_2.2 fmodl F
|
|
|
|
GLIBC_2.2 frexp F
|
|
|
|
GLIBC_2.2 frexpf F
|
|
|
|
GLIBC_2.2 frexpl F
|
|
|
|
GLIBC_2.2 gamma F
|
|
|
|
GLIBC_2.2 gammaf F
|
|
|
|
GLIBC_2.2 gammal F
|
|
|
|
GLIBC_2.2 hypot F
|
|
|
|
GLIBC_2.2 hypotf F
|
|
|
|
GLIBC_2.2 hypotl F
|
|
|
|
GLIBC_2.2 ilogb F
|
|
|
|
GLIBC_2.2 ilogbf F
|
|
|
|
GLIBC_2.2 ilogbl F
|
|
|
|
GLIBC_2.2 j0 F
|
|
|
|
GLIBC_2.2 j0f F
|
|
|
|
GLIBC_2.2 j0l F
|
|
|
|
GLIBC_2.2 j1 F
|
|
|
|
GLIBC_2.2 j1f F
|
|
|
|
GLIBC_2.2 j1l F
|
|
|
|
GLIBC_2.2 jn F
|
|
|
|
GLIBC_2.2 jnf F
|
|
|
|
GLIBC_2.2 jnl F
|
|
|
|
GLIBC_2.2 ldexp F
|
|
|
|
GLIBC_2.2 ldexpf F
|
|
|
|
GLIBC_2.2 ldexpl F
|
|
|
|
GLIBC_2.2 lgamma F
|
|
|
|
GLIBC_2.2 lgamma_r F
|
|
|
|
GLIBC_2.2 lgammaf F
|
|
|
|
GLIBC_2.2 lgammaf_r F
|
|
|
|
GLIBC_2.2 lgammal F
|
|
|
|
GLIBC_2.2 lgammal_r F
|
|
|
|
GLIBC_2.2 llrint F
|
|
|
|
GLIBC_2.2 llrintf F
|
|
|
|
GLIBC_2.2 llrintl F
|
|
|
|
GLIBC_2.2 llround F
|
|
|
|
GLIBC_2.2 llroundf F
|
|
|
|
GLIBC_2.2 llroundl F
|
|
|
|
GLIBC_2.2 log F
|
|
|
|
GLIBC_2.2 log10 F
|
|
|
|
GLIBC_2.2 log10f F
|
|
|
|
GLIBC_2.2 log10l F
|
|
|
|
GLIBC_2.2 log1p F
|
|
|
|
GLIBC_2.2 log1pf F
|
|
|
|
GLIBC_2.2 log1pl F
|
|
|
|
GLIBC_2.2 log2 F
|
|
|
|
GLIBC_2.2 log2f F
|
|
|
|
GLIBC_2.2 log2l F
|
|
|
|
GLIBC_2.2 logb F
|
|
|
|
GLIBC_2.2 logbf F
|
|
|
|
GLIBC_2.2 logbl F
|
|
|
|
GLIBC_2.2 logf F
|
|
|
|
GLIBC_2.2 logl F
|
|
|
|
GLIBC_2.2 lrint F
|
|
|
|
GLIBC_2.2 lrintf F
|
|
|
|
GLIBC_2.2 lrintl F
|
|
|
|
GLIBC_2.2 lround F
|
|
|
|
GLIBC_2.2 lroundf F
|
|
|
|
GLIBC_2.2 lroundl F
|
|
|
|
GLIBC_2.2 matherr F
|
|
|
|
GLIBC_2.2 modf F
|
|
|
|
GLIBC_2.2 modff F
|
|
|
|
GLIBC_2.2 modfl F
|
|
|
|
GLIBC_2.2 nan F
|
|
|
|
GLIBC_2.2 nanf F
|
|
|
|
GLIBC_2.2 nanl F
|
|
|
|
GLIBC_2.2 nearbyint F
|
|
|
|
GLIBC_2.2 nearbyintf F
|
|
|
|
GLIBC_2.2 nearbyintl F
|
|
|
|
GLIBC_2.2 nextafter F
|
|
|
|
GLIBC_2.2 nextafterf F
|
|
|
|
GLIBC_2.2 nextafterl F
|
|
|
|
GLIBC_2.2 nexttoward F
|
|
|
|
GLIBC_2.2 nexttowardf F
|
|
|
|
GLIBC_2.2 nexttowardl F
|
|
|
|
GLIBC_2.2 pow F
|
|
|
|
GLIBC_2.2 pow10 F
|
|
|
|
GLIBC_2.2 pow10f F
|
|
|
|
GLIBC_2.2 pow10l F
|
|
|
|
GLIBC_2.2 powf F
|
|
|
|
GLIBC_2.2 powl F
|
|
|
|
GLIBC_2.2 remainder F
|
|
|
|
GLIBC_2.2 remainderf F
|
|
|
|
GLIBC_2.2 remainderl F
|
|
|
|
GLIBC_2.2 remquo F
|
|
|
|
GLIBC_2.2 remquof F
|
|
|
|
GLIBC_2.2 remquol F
|
|
|
|
GLIBC_2.2 rint F
|
|
|
|
GLIBC_2.2 rintf F
|
|
|
|
GLIBC_2.2 rintl F
|
|
|
|
GLIBC_2.2 round F
|
|
|
|
GLIBC_2.2 roundf F
|
|
|
|
GLIBC_2.2 roundl F
|
|
|
|
GLIBC_2.2 scalb F
|
|
|
|
GLIBC_2.2 scalbf F
|
|
|
|
GLIBC_2.2 scalbl F
|
|
|
|
GLIBC_2.2 scalbln F
|
|
|
|
GLIBC_2.2 scalblnf F
|
|
|
|
GLIBC_2.2 scalblnl F
|
|
|
|
GLIBC_2.2 scalbn F
|
|
|
|
GLIBC_2.2 scalbnf F
|
|
|
|
GLIBC_2.2 scalbnl F
|
|
|
|
GLIBC_2.2 signgam D 0x4
|
|
|
|
GLIBC_2.2 significand F
|
|
|
|
GLIBC_2.2 significandf F
|
|
|
|
GLIBC_2.2 significandl F
|
|
|
|
GLIBC_2.2 sin F
|
|
|
|
GLIBC_2.2 sincos F
|
|
|
|
GLIBC_2.2 sincosf F
|
|
|
|
GLIBC_2.2 sincosl F
|
|
|
|
GLIBC_2.2 sinf F
|
|
|
|
GLIBC_2.2 sinh F
|
|
|
|
GLIBC_2.2 sinhf F
|
|
|
|
GLIBC_2.2 sinhl F
|
|
|
|
GLIBC_2.2 sinl F
|
|
|
|
GLIBC_2.2 sqrt F
|
|
|
|
GLIBC_2.2 sqrtf F
|
|
|
|
GLIBC_2.2 sqrtl F
|
|
|
|
GLIBC_2.2 tan F
|
|
|
|
GLIBC_2.2 tanf F
|
|
|
|
GLIBC_2.2 tanh F
|
|
|
|
GLIBC_2.2 tanhf F
|
|
|
|
GLIBC_2.2 tanhl F
|
|
|
|
GLIBC_2.2 tanl F
|
|
|
|
GLIBC_2.2 tgamma F
|
|
|
|
GLIBC_2.2 tgammaf F
|
|
|
|
GLIBC_2.2 tgammal F
|
|
|
|
GLIBC_2.2 trunc F
|
|
|
|
GLIBC_2.2 truncf F
|
|
|
|
GLIBC_2.2 truncl F
|
|
|
|
GLIBC_2.2 y0 F
|
|
|
|
GLIBC_2.2 y0f F
|
|
|
|
GLIBC_2.2 y0l F
|
|
|
|
GLIBC_2.2 y1 F
|
|
|
|
GLIBC_2.2 y1f F
|
|
|
|
GLIBC_2.2 y1l F
|
|
|
|
GLIBC_2.2 yn F
|
|
|
|
GLIBC_2.2 ynf F
|
|
|
|
GLIBC_2.2 ynl F
|
Fix lgamma setting signgam for ISO C (bug 15421).
The lgamma (and likewise lgammaf, lgammal) function wrongly sets the
signgam variable even when building for strict ISO C conformance
(-std=c99 / -std=c11), although the user may define such a variable
and it's only in the implementation namespace for POSIX with XSI
extensions enabled.
Following discussions starting at
<https://sourceware.org/ml/libc-alpha/2013-04/msg00767.html> and
<https://sourceware.org/ml/libc-alpha/2015-10/msg00844.html>, it seems
that the safest approach for fixing this particular issue is for
signgam to become a weak alias for a newly exported symbol __signgam,
with the library functions only setting __signgam, at which point
static linker magic will preserve the alias for newly linked binaries
that refer to the library's signgam rather than defining their own,
while breaking the alias for programs that define their own signgam,
with new symbol versions for lgamma functions and with compat symbols
for existing binaries that set both signgam and __signgam.
This patch implements that approach for the fix. signgam is made into
a weak alias. The four symbols __signgam, lgamma, lgammaf, lgammal
get new symbol versions at version GLIBC_2.23, with the existing
versions of lgamma, lgammaf and lgammal becoming compat symbols.
When the compat versions are built, gamma, gammaf and gammal are
aliases for the compat versions (i.e. always set signgam); this is OK
as they are not ISO C functions, and avoids adding new symbol versions
for them unnecessarily. When the compat versions are not built
(i.e. for static linking and for future glibc ports), gamma, gammaf
and gammal are aliases for the new versions that set __signgam. The
ldbl-opt versions are updated accordingly.
The lgamma wrappers are adjusted so that the same source files,
included from different files with different definitions of
USE_AS_COMPAT, can build either the new versions or the compat
versions. Similar changes are made to the ia64 versions (untested).
Tests are added that the lgamma functions do not interfere with a user
variable called signgam for ISO C, with various choices for the size
of that variable, whether it is initialized, and for static and
dynamic linking. The conformtest whitelist entry is removed as well.
Tested for x86_64, x86, mips64 and powerpc, including looking at
objdump --dynamic-syms output to make sure the expected sets of
symbols were aliases. Also spot-tested that a binary built with old
glibc works properly (i.e. gets signgam set) when run with new glibc.
[BZ #15421]
* sysdeps/ieee754/s_signgam.c (signgam): Rename to __signgam,
initialize with 0 and define as weak alias of __signgam.
* include/math.h [!_ISOMAC] (__signgam): Declare.
* math/Makefile (libm-calls): Add w_lgamma_compat.
(tests): Add test-signgam-uchar, test-signgam-uchar-init,
test-signgam-uint, test-signgam-uint-init, test-signgam-ullong and
test-signgam-ullong-init.
(tests-static): Add test-signgam-uchar-static,
test-signgam-uchar-init-static, test-signgam-uint-static,
test-signgam-uint-init-static, test-signgam-ullong-static and
test-signgam-ullong-init-static.
(CFLAGS-test-signgam-uchar.c): New variable.
(CFLAGS-test-signgam-uchar-init.c): Likewise.
(CFLAGS-test-signgam-uchar-static.c): Likewise.
(CFLAGS-test-signgam-uchar-init-static.c): Likewise.
(CFLAGS-test-signgam-uint.c): Likewise.
(CFLAGS-test-signgam-uint-init.c): Likewise.
(CFLAGS-test-signgam-uint-static.c): Likewise.
(CFLAGS-test-signgam-uint-init-static.c): Likewise.
(CFLAGS-test-signgam-ullong.c): Likewise.
(CFLAGS-test-signgam-ullong-init.c): Likewise.
(CFLAGS-test-signgam-ullong-static.c): Likewise.
(CFLAGS-test-signgam-ullong-init-static.c): Likewise.
* math/Versions (libm): Add GLIBC_2.23.
* math/lgamma-compat.h: New file.
* math/test-signgam-main.c: Likewise.
* math/test-signgam-uchar-init-static.c: Likewise.
* math/test-signgam-uchar-init.c: Likewise.
* math/test-signgam-uchar-static.c: Likewise.
* math/test-signgam-uchar.c: Likewise.
* math/test-signgam-uint-init-static.c: Likewise.
* math/test-signgam-uint-init.c: Likewise.
* math/test-signgam-uint-static.c: Likewise.
* math/test-signgam-uint.c: Likewise.
* math/test-signgam-ullong-init-static.c: Likewise.
* math/test-signgam-ullong-init.c: Likewise.
* math/test-signgam-ullong-static.c: Likewise.
* math/test-signgam-ullong.c: Likewise.
* math/w_lgamma.c: Rename to w_lgamma_main.c and replace by
wrapper of w_lgamma_main.c.
* math/w_lgamma_compat.c: New file.
* math/w_lgamma_compatf.c: Likewise.
* math/w_lgamma_compatl.c: Likewise.
* math/w_lgamma_main.c: New file. Based on w_lgamma.c. Include
<lgamma-compat.h>. Condition contents on [BUILD_LGAMMA]. Support
defining compatibility symbols.
(__lgamma): Change to LGFUNC (__lgamma). Use CALL_LGAMMA.
* math/w_lgammaf.c: Rename to w_lgammaf_main.c and replace by
wrapper of w_lgammaf_main.c.
* math/w_lgammaf_main.c: New file. Based on w_lgammaf.c. Include
<lgamma-compat.h>. Condition contents on [BUILD_LGAMMA]. Support
defining compatibility symbols.
(__lgammaf): Change to LGFUNC (__lgammaf). Use CALL_LGAMMA.
* math/w_lgammal.c: Rename to w_lgammal_main.c and replace by
wrapper of w_lgammal_main.c.
* math/w_lgammal_main.c: New file. Based on w_lgammal.c. Include
<lgamma-compat.h>. Condition contents on [BUILD_LGAMMA]. Support
defining compatibility symbols.
(__lgammal): Change to LGFUNC (__lgammal). Use CALL_LGAMMA.
* sysdeps/ia64/fpu/lgamma-compat.h: New file.
* sysdeps/ia64/fpu/w_lgamma.c: Move to ....
* sysdeps/ia64/fpu/w_lgamma_main.c: ...here. Include
<lgamma-compat.h>.
(__ieee754_lgamma): Change to LGFUNC (lgamma). Use CALL_LGAMMA.
(__ieee754_gamma): Define as alias.
* sysdeps/ia64/fpu/w_lgammaf.c: Move to ....
* sysdeps/ia64/fpu/w_lgammaf_main.c: ...here. Include
<lgamma-compat.h>.
(__ieee754_lgammaf): Change to LGFUNC (lgammaf). Use CALL_LGAMMA.
(__ieee754_gammaf): Define as alias.
* sysdeps/ia64/fpu/w_lgammal.c: Move to ....
* sysdeps/ia64/fpu/w_lgammal_main.c: ...here. Include
<lgamma-compat.h>.
(__ieee754_lgammal): Change to LGFUNC (lgammal). Use CALL_LGAMMA.
(__ieee754_gammal): Define as alias.
* sysdeps/ieee754/ldbl-opt/w_lgamma.c: Move to ....
* sysdeps/ieee754/ldbl-opt/w_lgamma_compat.c: ...here. Include
<math/w_lgamma_compat.c>.
[LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)] (__lgammal_dbl_compat):
Define as alias of __lgamma_compat and use in defining lgammal.
* sysdeps/ieee754/ldbl-opt/w_lgammal.c: Move to ....
* sysdeps/ieee754/ldbl-opt/w_lgamma_compatl.c: ...here. Include
<math/lgamma-compat.h> and <math/w_lgamma_compatl.c>.
(USE_AS_COMPAT): New macro.
(LGAMMA_OLD_VER): Undefine and redefine.
(lgammal): Do not define here.
(gammal): Only define here if [GAMMA_ALIAS].
* conform/linknamespace.pl (@whitelist): Remove signgam.
* sysdeps/nacl/libm.abilist: Update.
* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2015-11-20 22:49:59 +00:00
|
|
|
GLIBC_2.23 GLIBC_2.23 A
|
|
|
|
GLIBC_2.23 __signgam D 0x4
|
|
|
|
GLIBC_2.23 lgamma F
|
|
|
|
GLIBC_2.23 lgammaf F
|
|
|
|
GLIBC_2.23 lgammal F
|
2016-06-16 15:51:26 +00:00
|
|
|
GLIBC_2.24 GLIBC_2.24 A
|
|
|
|
GLIBC_2.24 nextdown F
|
|
|
|
GLIBC_2.24 nextdownf F
|
|
|
|
GLIBC_2.24 nextdownl F
|
|
|
|
GLIBC_2.24 nextup F
|
|
|
|
GLIBC_2.24 nextupf F
|
|
|
|
GLIBC_2.24 nextupl F
|
Add fesetexcept.
TS 18661-1 defines an fesetexcept function for setting floating-point
exception flags without the side-effect of causing enabled traps to be
taken.
This patch series implements this function for glibc. The present
patch adds the fallback stub implementation, x86 and x86_64
implementations, documentation, tests and ABI baseline updates. The
remaining patches, some of them untested, add implementations for
other architectures. The implementations generally follow those of
the fesetexceptflag function.
As for fesetexceptflag, the approach taken for architectures where
setting flags causes enabled traps to be taken is to set the flags
(and potentially cause traps) rather than refusing to set the flags
and returning an error. Since ISO C and TS 18661 provide no way to
enable traps, this is formally in accordance with the standards.
The NEWS entry should be considered a placeholder, since this patch
series is intended to be followed by further such series adding other
TS 18661-1 features, so that the NEWS entry would end up looking more
like
* New <fenv.h> features from TS 18661-1:2014 are added to libm: the
fesetexcept, fetestexceptflag, fegetmode and fesetmode functions,
the femode_t type and the FE_DFL_MODE macro.
with hopefully more such entries for other features, rather than
having an entry for a single function in the end.
I believe we have consensus for adding TS 18661-1 interfaces as per
<https://sourceware.org/ml/libc-alpha/2016-06/msg00421.html>.
Tested for x86_64, x86, mips64 (hard float, and soft float to test the
fallback version), arm (hard float) and powerpc (hard float, soft
float and e500).
* math/fesetexcept.c: New file.
* sysdeps/i386/fpu/fesetexcept.c: Likewise.
* sysdeps/x86_64/fpu/fesetexcept.c: Likewise.
* math/fenv.h: Define
__GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION and include
<bits/libc-header-start.h> instead of including <features.h>.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (fesetexcept): New function
declaration.
* manual/arith.texi (fesetexcept): Document function.
* math/Versions (fesetexcept): New libm symbol at version
GLIBC_2.25.
* math/Makefile (libm-support): Add fesetexcept.
(tests): Add test-fesetexcept and test-fesetexcept-traps.
* math/test-fesetexcept.c: New file.
* math/test-fesetexcept-traps.c: Likewise.
* sysdeps/nacl/libm.abilist: Update.
* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2016-08-16 16:16:10 +00:00
|
|
|
GLIBC_2.25 GLIBC_2.25 A
|
Add iseqsig.
TS 18661-1 adds an iseqsig type-generic comparison macro to <math.h>.
This macro is like the == operator except that unordered operands
result in the "invalid" exception and errno being set to EDOM.
This patch implements this macro for glibc. Given the need to set
errno, this is implemented with out-of-line functions __iseqsigf,
__iseqsig and __iseqsigl (of which the last only exists at all if long
double is ABI-distinct from double, so no function aliases or compat
support are needed). The present patch ignores excess precision
issues; I intend to deal with those in a followup patch. (Like
comparison operators, type-generic comparison macros should *not*
convert operands to their semantic types but should preserve excess
range and precision, meaning that for some argument types and values
of FLT_EVAL_METHOD, an underlying function should be called for a
wider type than that of the arguments.)
The underlying functions are implemented with the type-generic
template machinery. Comparing x <= y && x >= y is sufficient in ISO C
to achieve an equality comparison with "invalid" raised for unordered
operands (and the results of those two comparisons can also be used to
tell whether errno needs to be set). However, some architectures have
GCC bugs meaning that unordered comparison instructions are used
instead of ordered ones. Thus, a mechanism is provided for
architectures to use an explicit call to feraiseexcept to raise
exceptions if required. If your architecture has such a bug you
should add a fix-fp-int-compare-invalid.h header for it, with a
comment pointing to the relevant GCC bug report; if such a GCC bug is
fixed, that header's contents should have a __GNUC_PREREQ conditional
added so that the workaround can eventually be removed for that
architecture.
Tested for x86_64, x86, mips64, arm and powerpc.
* math/math.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (iseqsig): New
macro.
* math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(__iseqsig): New declaration.
* math/s_iseqsig_template.c: New file.
* math/Versions (__iseqsigf): New libm symbol at version
GLIBC_2.25.
(__iseqsig): Likewise.
(__iseqsigl): Likewise.
* math/libm-test.inc (iseqsig_test_data): New array.
(iseqsig_test): New function.
(main): Call iseqsig_test.
* math/Makefile (gen-libm-calls): Add s_iseqsigF.
* manual/arith.texi (FP Comparison Functions): Document iseqsig.
* manual/libm-err-tab.pl: Update comment on interfaces without
ulps tabulated.
* sysdeps/generic/fix-fp-int-compare-invalid.h: New file.
* sysdeps/powerpc/fpu/fix-fp-int-compare-invalid.h: Likewise.
* sysdeps/x86/fpu/fix-fp-int-compare-invalid.h: Likewise.
* sysdeps/nacl/libm.abilist: Update.
* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2016-10-06 22:19:38 +00:00
|
|
|
GLIBC_2.25 __iseqsig F
|
|
|
|
GLIBC_2.25 __iseqsigf F
|
Add femode_t functions.
TS 18661-1 defines a type femode_t to represent the set of dynamic
floating-point control modes (such as the rounding mode and trap
enablement modes), and functions fegetmode and fesetmode to manipulate
those modes (without affecting other state such as the raised
exception flags) and a corresponding macro FE_DFL_MODE.
This patch series implements those interfaces for glibc. This first
patch adds the architecture-independent pieces, the x86 and x86_64
implementations, and the <bits/fenv.h> and ABI baseline updates for
all architectures so glibc keeps building and passing the ABI tests on
all architectures. Subsequent patches add the fegetmode and fesetmode
implementations for other architectures.
femode_t is generally an integer type - the same type as fenv_t, or as
the single element of fenv_t where fenv_t is a structure containing a
single integer (or the single relevant element, where it has elements
for both status and control registers) - except where architecture
properties or consistency with the fenv_t implementation indicate
otherwise. FE_DFL_MODE follows FE_DFL_ENV in whether it's a magic
pointer value (-1 cast to const femode_t *), a value that can be
distinguished from valid pointers by its high bits but otherwise
contains a representation of the desired register contents, or a
pointer to a constant variable (the powerpc case; __fe_dfl_mode is
added as an exported constant object, an alias to __fe_dfl_env).
Note that where architectures (that share a register between control
and status bits) gain definitions of new floating-point control or
status bits in future, the implementations of fesetmode for those
architectures may need updating (depending on whether the new bits are
control or status bits and what the implementation does with
previously unknown bits), just like existing implementations of
<fenv.h> functions that take care not to touch reserved bits may need
updating when the set of reserved bits changes. (As any new bits are
outside the scope of ISO C, that's just a quality-of-implementation
issue for supporting them, not a conformance issue.)
As with fenv_t, femode_t should properly include any software DFP
rounding mode (and for both fenv_t and femode_t I'd consider that
fragment of DFP support appropriate for inclusion in glibc even in the
absence of the rest of libdfp; hardware DFP rounding modes should
already be included if the definitions of which bits are status /
control bits are correct).
Tested for x86_64, x86, mips64 (hard float, and soft float to test the
fallback version), arm (hard float) and powerpc (hard float, soft
float and e500). Other architecture versions are untested.
* math/fegetmode.c: New file.
* math/fesetmode.c: Likewise.
* sysdeps/i386/fpu/fegetmode.c: Likewise.
* sysdeps/i386/fpu/fesetmode.c: Likewise.
* sysdeps/x86_64/fpu/fegetmode.c: Likewise.
* sysdeps/x86_64/fpu/fesetmode.c: Likewise.
* math/fenv.h: Update comment on inclusion of <bits/fenv.h>.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (fegetmode): New function
declaration.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (fesetmode): Likewise.
* bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (femode_t): New
typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/aarch64/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/alpha/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/arm/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/hppa/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/ia64/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/m68k/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/microblaze/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/mips/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/nios2/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/powerpc/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (__fe_dfl_mode): New variable
declaration.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/s390/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/sh/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/sparc/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/tile/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/x86/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* manual/arith.texi (FE_DFL_MODE): Document macro.
(fegetmode): Document function.
(fesetmode): Likewise.
* math/Versions (fegetmode): New libm symbol at version
GLIBC_2.25.
(fesetmode): Likewise.
* math/Makefile (libm-support): Add fegetmode and fesetmode.
(tests): Add test-femode and test-femode-traps.
* math/test-femode-traps.c: New file.
* math/test-femode.c: Likewise.
* sysdeps/powerpc/fpu/fenv_const.c (__fe_dfl_mode): Declare as
alias for __fe_dfl_env.
* sysdeps/powerpc/nofpu/fenv_const.c (__fe_dfl_mode): Likewise.
* sysdeps/powerpc/powerpc32/e500/nofpu/fenv_const.c
(__fe_dfl_mode): Likewise.
* sysdeps/powerpc/Versions (__fe_dfl_mode): New libm symbol at
version GLIBC_2.25.
* sysdeps/nacl/libm.abilist: Update.
* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2016-09-07 16:40:09 +00:00
|
|
|
GLIBC_2.25 fegetmode F
|
Add fesetexcept.
TS 18661-1 defines an fesetexcept function for setting floating-point
exception flags without the side-effect of causing enabled traps to be
taken.
This patch series implements this function for glibc. The present
patch adds the fallback stub implementation, x86 and x86_64
implementations, documentation, tests and ABI baseline updates. The
remaining patches, some of them untested, add implementations for
other architectures. The implementations generally follow those of
the fesetexceptflag function.
As for fesetexceptflag, the approach taken for architectures where
setting flags causes enabled traps to be taken is to set the flags
(and potentially cause traps) rather than refusing to set the flags
and returning an error. Since ISO C and TS 18661 provide no way to
enable traps, this is formally in accordance with the standards.
The NEWS entry should be considered a placeholder, since this patch
series is intended to be followed by further such series adding other
TS 18661-1 features, so that the NEWS entry would end up looking more
like
* New <fenv.h> features from TS 18661-1:2014 are added to libm: the
fesetexcept, fetestexceptflag, fegetmode and fesetmode functions,
the femode_t type and the FE_DFL_MODE macro.
with hopefully more such entries for other features, rather than
having an entry for a single function in the end.
I believe we have consensus for adding TS 18661-1 interfaces as per
<https://sourceware.org/ml/libc-alpha/2016-06/msg00421.html>.
Tested for x86_64, x86, mips64 (hard float, and soft float to test the
fallback version), arm (hard float) and powerpc (hard float, soft
float and e500).
* math/fesetexcept.c: New file.
* sysdeps/i386/fpu/fesetexcept.c: Likewise.
* sysdeps/x86_64/fpu/fesetexcept.c: Likewise.
* math/fenv.h: Define
__GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION and include
<bits/libc-header-start.h> instead of including <features.h>.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (fesetexcept): New function
declaration.
* manual/arith.texi (fesetexcept): Document function.
* math/Versions (fesetexcept): New libm symbol at version
GLIBC_2.25.
* math/Makefile (libm-support): Add fesetexcept.
(tests): Add test-fesetexcept and test-fesetexcept-traps.
* math/test-fesetexcept.c: New file.
* math/test-fesetexcept-traps.c: Likewise.
* sysdeps/nacl/libm.abilist: Update.
* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2016-08-16 16:16:10 +00:00
|
|
|
GLIBC_2.25 fesetexcept F
|
Add femode_t functions.
TS 18661-1 defines a type femode_t to represent the set of dynamic
floating-point control modes (such as the rounding mode and trap
enablement modes), and functions fegetmode and fesetmode to manipulate
those modes (without affecting other state such as the raised
exception flags) and a corresponding macro FE_DFL_MODE.
This patch series implements those interfaces for glibc. This first
patch adds the architecture-independent pieces, the x86 and x86_64
implementations, and the <bits/fenv.h> and ABI baseline updates for
all architectures so glibc keeps building and passing the ABI tests on
all architectures. Subsequent patches add the fegetmode and fesetmode
implementations for other architectures.
femode_t is generally an integer type - the same type as fenv_t, or as
the single element of fenv_t where fenv_t is a structure containing a
single integer (or the single relevant element, where it has elements
for both status and control registers) - except where architecture
properties or consistency with the fenv_t implementation indicate
otherwise. FE_DFL_MODE follows FE_DFL_ENV in whether it's a magic
pointer value (-1 cast to const femode_t *), a value that can be
distinguished from valid pointers by its high bits but otherwise
contains a representation of the desired register contents, or a
pointer to a constant variable (the powerpc case; __fe_dfl_mode is
added as an exported constant object, an alias to __fe_dfl_env).
Note that where architectures (that share a register between control
and status bits) gain definitions of new floating-point control or
status bits in future, the implementations of fesetmode for those
architectures may need updating (depending on whether the new bits are
control or status bits and what the implementation does with
previously unknown bits), just like existing implementations of
<fenv.h> functions that take care not to touch reserved bits may need
updating when the set of reserved bits changes. (As any new bits are
outside the scope of ISO C, that's just a quality-of-implementation
issue for supporting them, not a conformance issue.)
As with fenv_t, femode_t should properly include any software DFP
rounding mode (and for both fenv_t and femode_t I'd consider that
fragment of DFP support appropriate for inclusion in glibc even in the
absence of the rest of libdfp; hardware DFP rounding modes should
already be included if the definitions of which bits are status /
control bits are correct).
Tested for x86_64, x86, mips64 (hard float, and soft float to test the
fallback version), arm (hard float) and powerpc (hard float, soft
float and e500). Other architecture versions are untested.
* math/fegetmode.c: New file.
* math/fesetmode.c: Likewise.
* sysdeps/i386/fpu/fegetmode.c: Likewise.
* sysdeps/i386/fpu/fesetmode.c: Likewise.
* sysdeps/x86_64/fpu/fegetmode.c: Likewise.
* sysdeps/x86_64/fpu/fesetmode.c: Likewise.
* math/fenv.h: Update comment on inclusion of <bits/fenv.h>.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (fegetmode): New function
declaration.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (fesetmode): Likewise.
* bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (femode_t): New
typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/aarch64/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/alpha/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/arm/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/hppa/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/ia64/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/m68k/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/microblaze/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/mips/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/nios2/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/powerpc/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (__fe_dfl_mode): New variable
declaration.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/s390/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/sh/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/sparc/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/tile/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* sysdeps/x86/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(femode_t): New typedef.
[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
* manual/arith.texi (FE_DFL_MODE): Document macro.
(fegetmode): Document function.
(fesetmode): Likewise.
* math/Versions (fegetmode): New libm symbol at version
GLIBC_2.25.
(fesetmode): Likewise.
* math/Makefile (libm-support): Add fegetmode and fesetmode.
(tests): Add test-femode and test-femode-traps.
* math/test-femode-traps.c: New file.
* math/test-femode.c: Likewise.
* sysdeps/powerpc/fpu/fenv_const.c (__fe_dfl_mode): Declare as
alias for __fe_dfl_env.
* sysdeps/powerpc/nofpu/fenv_const.c (__fe_dfl_mode): Likewise.
* sysdeps/powerpc/powerpc32/e500/nofpu/fenv_const.c
(__fe_dfl_mode): Likewise.
* sysdeps/powerpc/Versions (__fe_dfl_mode): New libm symbol at
version GLIBC_2.25.
* sysdeps/nacl/libm.abilist: Update.
* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2016-09-07 16:40:09 +00:00
|
|
|
GLIBC_2.25 fesetmode F
|
2016-08-29 11:47:21 +00:00
|
|
|
GLIBC_2.25 fetestexceptflag F
|
2016-10-19 01:49:09 +00:00
|
|
|
GLIBC_2.25 getpayload F
|
|
|
|
GLIBC_2.25 getpayloadf F
|
|
|
|
GLIBC_2.25 getpayloadl F
|
Add totalorder, totalorderf, totalorderl.
TS 18661-1 defines totalorder functions implementing the totalOrder
comparison operation from IEEE 754-2008. This patch implements these
functions for glibc, including the type-generic macro in <tgmath.h>.
(The totalordermag functions will be added in a separate patch.)
The description of the totalOrder operation is complicated. However,
for IEEE interchange binary formats and the preferred quiet NaN
convention, what that complicated description means is that you
interpret the representation as a sign-magnitude integer (with -0
coming before +0) and do a <= comparison on that interpretation. For
finite values and infinities the ordering of the sign-magnitude
integers is just the same as the ordering of floating-point values, so
this extends that to all representations. (Different representations
of the same floating-point value - which includes same quantum in the
decimal case - must still be considered equal by this operation, but
that issue doesn't arise for IEEE interchange binary formats.) So the
complications are:
* When MIPS quiet NaN conventions are in use, the representation of
NaNs needs adjusting before making such an integer comparison. This
patch does this adjustment only when both arguments are NaNs, as
there's no need for it if only one is a NaN, and as long as both are
NaNs you can just flip the relevant bits without any problems from
this turning a NaN into an infinity.
* For the m68k version of ldbl-96, where the high mantissa bit is
"don't care" for infinities and NaNs, representations where it
differs must compare the same. Note: although the testcase for this
compiles, I have not actually tested on m68k.
* For ldbl-128ibm, the low part must be ignored when the high part is
NaN, and low parts of +0 and -0 must be considered the same whatever
the high part.
The new tests in libm-test.inc are the first tests there specifying
particular payloads for input NaNs. Separate tests are also added for
the ldbl-96 and ldbl-128ibm special cases where there are different
representations of the same value that must compare equal (which can't
be covered in libm-test.inc as that only specifies values, not
representations).
Tested for x86_64, x86, mips64 and powerpc.
* math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
(totalorder): New declaration.
* math/tgmath.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (totalorder):
New macro.
* math/Versions (totalorder): New libm symbol at version
GLIBC_2.25.
(totalorderf): Likewise.
(totalorderl): Likewise.
* math/Makefile (libm-calls): Add s_totalorderF.
* math/gen-libm-test.pl (parse_args): Escape quotes in test name
string.
* math/libm-test.inc (PAYLOAD_DIG): New macro.
(qnan_value_pl): Likewise.
(snan_value_pl): Likewise.
(qnan_value): Define using qnan_value_pl.
(snan_value): Define using snan_value_pl.
(struct test_ff_i_data): Add comment about which tests use this
structure.
(RUN_TEST_ff_b): New macro.
(RUN_TEST_LOOP_ff_b): Likewise.
(totalorder_test_data): New array.
(totalorder_test): New function.
(main): Call totalorder_test.
* math/test-tgmath.c (NCALLS): Increase to 122.
(F(compile_test)): Call totalorder.
(F(totalorder)): New function.
* manual/arith.texi (FP Comparison Functions): Document
totalorder, totalorderf and totalorderl.
* manual/libm-err-tab.pl: Update comment on interfaces without
ulps tabulated.
* sysdeps/ieee754/dbl-64/s_totalorder.c: New file.
* sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c: Likewise.
* sysdeps/ieee754/flt-32/s_totalorderf.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_totalorderl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c: Likewise.
* sysdeps/ieee754/ldbl-96/s_totalorderl.c: Likewise.
* sysdeps/ieee754/ldbl-opt/nldbl-totalorder.c: Likewise.
* sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add
totalorder.
(CFLAGS-nldbl-totalorder.c): New variable.
* sysdeps/ieee754/ldbl-128ibm/test-totalorderl-ldbl-128ibm.c: New
file.
* sysdeps/ieee754/ldbl-128ibm/Makefile [$(subdir) = math] (tests):
Add test-totalorderl-ldbl-128ibm.
* sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c: New file.
* sysdeps/ieee754/ldbl-96/Makefile [$(subdir) = math] (tests): Add
test-totalorderl-ldbl-96.
* sysdeps/nacl/libm.abilist: Update.
* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
Likewise.
* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2016-10-12 01:20:30 +00:00
|
|
|
GLIBC_2.25 totalorder F
|
|
|
|
GLIBC_2.25 totalorderf F
|
|
|
|
GLIBC_2.25 totalorderl F
|
2016-10-15 00:36:48 +00:00
|
|
|
GLIBC_2.25 totalordermag F
|
|
|
|
GLIBC_2.25 totalordermagf F
|
|
|
|
GLIBC_2.25 totalordermagl F
|
2015-10-29 14:33:54 +00:00
|
|
|
GLIBC_2.4 GLIBC_2.4 A
|
|
|
|
GLIBC_2.4 exp2l F
|