glibc/math/Versions
Szabolcs Nagy 72d3d28108 New symbol version for logf, log2f and powf without SVID compat
This patch changes the logf, log2f and powf error handling semantics
to only set errno accoring to POSIX rules. New symbol version is
introduced at GLIBC_2.27.

The old wrappers are kept for compat symbols.

ia64 needed assembly change to have the new and compat versioned
symbol map to the same function.

All linux libm abilists are updated.

	* math/Versions (logf): New libm symbol at GLIBC_2.27.
	(log2f): Likewise.
	(powf): Likewise.
	* math/w_log2f.c: New file.
	* math/w_logf.c: New file.
	* math/w_powf.c: New file.
	* math/w_log2f_compat.c (__log2f_compat): For compat symbol only.
	* math/w_logf_compat.c (__logf_compat): Likewise.
	* math/w_powf_compat.c (__powf_compat): Likewise.
	* sysdeps/ia64/fpu/e_log2f.S: Add versioned symbols.
	* sysdeps/ia64/fpu/e_logf.S: Likewise.
	* sysdeps/ia64/fpu/e_powf.S: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Update.
	* 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.
2017-10-02 14:38:03 +01:00

236 lines
6.9 KiB
Plaintext

libc {
GLIBC_2.0 {
# functions used in inline functions or macros
__isnan; __isnanf; __isnanl; __finite; __finitef; __finitel;
__isinf; __isinff; __isinfl;
# global variables
__fpu_control;
# c*
copysign; copysignf; copysignl;
# f*
finite; finitef; finitel; frexp; frexpf; frexpl;
# i*
isinf; isinff; isinfl; isnan; isnanf; isnanl; ldexp; ldexpf; ldexpl;
# m*
modf; modff; modfl;
# s*
scalbn; scalbnf; scalbnl;
}
GLIBC_2.1 {
# functions used in inline functions or macros
__signbit; __signbitf; __signbitl;
# s*
scalbln; scalblnf; scalblnl;
}
GLIBC_2.20 {
}
}
libm {
GLIBC_2.0 {
# mathematical functions
acos; acosf; acosl;
acosh; acoshf; acoshl;
asin; asinf; asinl;
asinh; asinhf; asinhl;
atan2; atan2f; atan2l;
atan; atanf; atanl;
atanh; atanhf; atanhl;
cbrt; cbrtf; cbrtl;
ceil; ceilf; ceill;
copysign; copysignf; copysignl;
cos; cosf; cosl;
coshf; cosh; coshl;
drem; dremf; dreml;
erf; erff; erfl;
erfc; erfcf; erfcl;
exp; expf; expl;
expm1; expm1f; expm1l;
fabs; fabsf; fabsl;
finite; finitef; finitel;
floor; floorf; floorl;
fmod; fmodf; fmodl;
frexp; frexpf; frexpl;
gamma; gammaf; gammal;
gamma_r; gammaf_r; gammal_r;
hypot; hypotf; hypotl;
ilogb; ilogbf; ilogbl;
j0; j0f; j0l;
j1; j1f; j1l;
jn; jnf; jnl;
ldexp; ldexpf; ldexpl;
lgamma; lgammaf; lgammal;
lgamma_r; lgammaf_r; lgammal_r;
log10; log10f; log10l;
log1p; log1pf; log1pl;
log; logf; logl;
logb; logbf; logbl;
matherr;
modf; modff; modfl;
nextafter; nextafterf; nextafterl;
pow; powf; powl;
remainder; remainderf; remainderl;
rint; rintf; rintl;
scalb; scalbf; scalbl;
scalbn; scalbnf; scalbnl;
significand; significandf; significandl;
sin; sinf; sinl;
sinh; sinhf; sinhl;
sqrt; sqrtf; sqrtl;
tan; tanf; tanl;
tanh; tanhf; tanhl;
y0; y0f; y0l;
y1; y1f; y1l;
yn; ynf; ynl;
# global variables
_LIB_VERSION; signgam;
}
GLIBC_2.1 {
# mathematical functions
exp2; exp2f; # exp2l; -- bug omitted this until GLIBC_2.4 (below)
exp10; exp10f; exp10l;
fdim; fdimf; fdiml;
fma; fmaf; fmal;
fmax; fmaxf; fmaxl;
fmin; fminf; fminl;
log2; log2f; log2l;
nan; nanf; nanl;
nearbyint; nearbyintf; nearbyintl;
nexttoward; nexttowardf; nexttowardl;
pow10; pow10f; pow10l;
remquo; remquof; remquol;
lrint; lrintf; lrintl;
llrint; llrintf; llrintl;
round; roundf; roundl;
lround; lroundf; lroundl;
llround; llroundf; llroundl;
scalbln; scalblnf; scalblnl;
sincos; sincosf; sincosl;
trunc; truncf; truncl;
tgamma; tgammaf; tgammal;
# complex functions
cabs; cabsf; cabsl;
cacos; cacosf; cacosl;
cacosh; cacoshf; cacoshl;
carg; cargf; cargl;
casin; casinf; casinl;
casinh; casinhf; casinhl;
catan; catanf; catanl;
catanh; catanhf; catanhl;
ccos; ccosf; ccosl;
ccosh; ccoshf; ccoshl;
cexp; cexpf; cexpl;
cimag; cimagf; cimagl;
clog; clogf; clogl;
clog10; clog10f; clog10l;
__clog10; __clog10f; __clog10l;
conj; conjf; conjl;
cpow; cpowf; cpowl;
cproj; cprojf; cprojl;
creal; crealf; creall;
csin; csinf; csinl;
csinh; csinhf; csinhl;
csqrt; csqrtf; csqrtl;
ctan; ctanf; ctanl;
ctanh; ctanhf; ctanhl;
# fp environment functions
feclearexcept; fegetenv; fegetexceptflag;
fegetround; feholdexcept; feraiseexcept;
fesetenv; fesetexceptflag; fesetround;
fetestexcept; feupdateenv;
# functions used in inline functions or macros
__finite; __finitef; __finitel;
__fpclassify; __fpclassifyf; __fpclassifyl;
__signbit; __signbitf; __signbitl;
}
GLIBC_2.2 {
# fp environment functions changes from ISO C99 TR1
feclearexcept; fegetenv; fegetexceptflag; feraiseexcept;
fesetenv; fesetexceptflag; feupdateenv;
# fp environment function
feenableexcept; fedisableexcept; fegetexcept;
}
GLIBC_2.4 {
# A bug in sysdeps/generic/w_exp2.c kept this from appearing
# in GLIBC_2.1 as it should have on platforms using that
# implementation file. On others, sysdeps/CPU/Versions now
# puts exp2l in GLIBC_2.1, which will override this entry.
exp2l;
}
GLIBC_2.15 {
# Optimized -ffinite-math-only entry points
__acos_finite; __acosf_finite; __acosl_finite;
__acosh_finite; __acoshf_finite; __acoshl_finite;
__asin_finite; __asinf_finite; __asinl_finite;
__atan2_finite; __atan2f_finite; __atan2l_finite;
__atanh_finite; __atanhf_finite; __atanhl_finite;
__cosh_finite; __coshf_finite; __coshl_finite;
__exp10_finite; __exp10f_finite; __exp10l_finite;
__exp2_finite; __exp2f_finite; __exp2l_finite;
__fmod_finite; __fmodf_finite; __fmodl_finite;
__hypot_finite; __hypotf_finite; __hypotl_finite;
__j0_finite; __j0f_finite; __j0l_finite;
__y0_finite; __y0f_finite; __y0l_finite;
__j1_finite; __j1f_finite; __j1l_finite;
__y1_finite; __y1f_finite; __y1l_finite;
__jn_finite; __jnf_finite; __jnl_finite;
__yn_finite; __ynf_finite; __ynl_finite;
__lgamma_r_finite; __lgammaf_r_finite; __lgammal_r_finite;
__log_finite; __logf_finite; __logl_finite;
__log10_finite; __log10f_finite; __log10l_finite;
__log2_finite; __log2f_finite; __log2l_finite;
__pow_finite; __powf_finite; __powl_finite;
__remainder_finite; __remainderf_finite; __remainderl_finite;
__scalb_finite; __scalbf_finite; __scalbl_finite;
__sinh_finite; __sinhf_finite; __sinhl_finite;
__sqrt_finite; __sqrtf_finite; __sqrtl_finite;
__gamma_r_finite; __gammaf_r_finite; __gammal_r_finite;
__exp_finite; __expf_finite; __expl_finite;
}
GLIBC_2.18 {
__issignaling; __issignalingf; __issignalingl;
}
GLIBC_2.23 {
# The __signgam name must be exported for the signgam weak alias
# to work. New symbol versions of lgamma* that set __signgam are
# needed to preserve compatibility with old binaries that have a
# dynamic symbol for signgam but not __signgam.
lgamma; lgammaf; lgammal; __signgam;
}
GLIBC_2.24 {
nextup; nextupf; nextupl;
nextdown; nextdownf; nextdownl;
}
GLIBC_2.25 {
fesetexcept; fetestexceptflag; fegetmode; fesetmode;
__iscanonicall; __iseqsigf; __iseqsig; __iseqsigl;
totalorder; totalorderf; totalorderl;
totalordermag; totalordermagf; totalordermagl;
getpayload; getpayloadf; getpayloadl;
canonicalize; canonicalizef; canonicalizel;
setpayload; setpayloadf; setpayloadl;
setpayloadsig; setpayloadsigf; setpayloadsigl;
llogb; llogbf; llogbl;
fmaxmag; fmaxmagf; fmaxmagl; fminmag; fminmagf; fminmagl;
roundeven; roundevenf; roundevenl;
fromfp; fromfpf; fromfpl; ufromfp; ufromfpf; ufromfpl;
fromfpx; fromfpxf; fromfpxl; ufromfpx; ufromfpxf; ufromfpxl;
}
GLIBC_2.27 {
expf; exp2f; logf; log2f; powf;
}
}