mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-21 01:12:26 +08:00
72d3d28108
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.
236 lines
6.9 KiB
Plaintext
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;
|
|
}
|
|
}
|