mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-24 11:41:07 +00:00
8f2e1830f2
This patch arranges for the glibc build to generate a header first-versions.h that defines macros for the earliest symbol version in which each public symbol (GLIBC_[0-9]* symbol version, name only uses C identifier characters) is available. This is used in sysdeps/ieee754/ldbl-opt/math-type-macros-double.h to replace the manually defined LDOUBLE_*_libm_version macros for various functions defined using type-generic templates, the purpose of which is to use in LONG_DOUBLE_COMPAT tests "was this function originally added before glibc supported long double != double on this platform?". As discussed in <https://sourceware.org/ml/libc-alpha/2016-12/msg00246.html>, I expect this to be useful more generally in reducing the amount of special-case code needed in ldbl-opt and ldbl-64-128. Tested with build-many-glibcs.py that installed stripped shared libraries are unchanged by this patch. * scripts/versions.awk: Generate first-versions.h. * sysdeps/ieee754/ldbl-opt/math-type-macros-double.h: Include <first-versions.h>. (LDOUBLE_cabsl_libm_version): Remove macro. (LDOUBLE_cargl_libm_version): Likewise. (LDOUBLE_cimagl_libm_version): Likewise. (LDOUBLE_conjl_libm_version): Likewise. (LDOUBLE_creall_libm_version): Likewise. (LDOUBLE_cacosl_libm_version): Likewise. (LDOUBLE_cacoshl_libm_version): Likewise. (LDOUBLE_ccosl_libm_version): Likewise. (LDOUBLE_ccoshl_libm_version): Likewise. (LDOUBLE_casinl_libm_version): Likewise. (LDOUBLE_csinl_libm_version): Likewise. (LDOUBLE_casinhl_libm_version): Likewise. (LDOUBLE_csinhl_libm_version): Likewise. (LDOUBLE_catanl_libm_version): Likewise. (LDOUBLE_catanhl_libm_version): Likewise. (LDOUBLE_ctanl_libm_version): Likewise. (LDOUBLE_ctanhl_libm_version): Likewise. (LDOUBLE_cexpl_libm_version): Likewise. (LDOUBLE_clogl_libm_version): Likewise. (LDOUBLE_cprojl_libm_version): Likewise. (LDOUBLE_csqrtl_libm_version): Likewise. (LDOUBLE_cpowl_libm_version): Likewise. (LDOUBLE_clog10l_libm_version): Likewise. (LDOUBLE___clog10l_libm_version): Likewise. (LDOUBLE_fdiml_libm_version): Likewise. (LDOUBLE_fmaxl_libm_version): Likewise. (LDOUBLE_fminl_libm_version): Likewise. (LDOUBLE_ilogbl_libm_version): Likewise. (LDOUBLE_nanl_libm_version): Likewise. [!M_LIBM_NEED_COMPAT] (M_LIBM_NEED_COMPAT): Use FIRST_VERSION_libm_* macros. [!declare_mgen_libm_compat] (declare_mgen_libm_compat): Likewise. * Makerules [$(build-shared) = yes && !avoid-generated] (before-compile): Add $(common-objpfx)first-versions.h. [$(build-shared) = yes && !avoid-generated] ($(common-objpfx)first-versions.h): New target. ($(common-objpfx)sysd-versions): Depend on and change to rule for building $(common-objpfx)versions.stmp. |
||
---|---|---|
.. | ||
bits | ||
configure | ||
configure.ac | ||
Makefile | ||
math_ldbl_opt.c | ||
math_ldbl_opt.h | ||
math-type-macros-double.h | ||
math-type-macros-ldouble.h | ||
nldbl-acos.c | ||
nldbl-acosh.c | ||
nldbl-asin.c | ||
nldbl-asinh.c | ||
nldbl-asprintf_chk.c | ||
nldbl-asprintf.c | ||
nldbl-atan2.c | ||
nldbl-atan.c | ||
nldbl-atanh.c | ||
nldbl-cabs.c | ||
nldbl-cacos.c | ||
nldbl-cacosh.c | ||
nldbl-canonicalize.c | ||
nldbl-carg.c | ||
nldbl-casin.c | ||
nldbl-casinh.c | ||
nldbl-catan.c | ||
nldbl-catanh.c | ||
nldbl-cbrt.c | ||
nldbl-ccos.c | ||
nldbl-ccosh.c | ||
nldbl-ceil.c | ||
nldbl-cexp.c | ||
nldbl-cimag.c | ||
nldbl-clog10.c | ||
nldbl-clog.c | ||
nldbl-compat.c | ||
nldbl-compat.h | ||
nldbl-conj.c | ||
nldbl-copysign.c | ||
nldbl-cos.c | ||
nldbl-cosh.c | ||
nldbl-cpow.c | ||
nldbl-cproj.c | ||
nldbl-creal.c | ||
nldbl-csin.c | ||
nldbl-csinh.c | ||
nldbl-csqrt.c | ||
nldbl-ctan.c | ||
nldbl-ctanh.c | ||
nldbl-dprintf_chk.c | ||
nldbl-dprintf.c | ||
nldbl-erf.c | ||
nldbl-erfc.c | ||
nldbl-exp2.c | ||
nldbl-exp10.c | ||
nldbl-exp.c | ||
nldbl-expm1.c | ||
nldbl-fabs.c | ||
nldbl-fdim.c | ||
nldbl-finite.c | ||
nldbl-floor.c | ||
nldbl-fma.c | ||
nldbl-fmax.c | ||
nldbl-fmaxmag.c | ||
nldbl-fmin.c | ||
nldbl-fminmag.c | ||
nldbl-fmod.c | ||
nldbl-fprintf_chk.c | ||
nldbl-fprintf.c | ||
nldbl-frexp.c | ||
nldbl-fromfp.c | ||
nldbl-fromfpx.c | ||
nldbl-fscanf.c | ||
nldbl-fwprintf_chk.c | ||
nldbl-fwprintf.c | ||
nldbl-fwscanf.c | ||
nldbl-gamma.c | ||
nldbl-getpayload.c | ||
nldbl-hypot.c | ||
nldbl-ilogb.c | ||
nldbl-iovfscanf.c | ||
nldbl-isinf.c | ||
nldbl-isnan.c | ||
nldbl-isoc99_fscanf.c | ||
nldbl-isoc99_fwscanf.c | ||
nldbl-isoc99_scanf.c | ||
nldbl-isoc99_sscanf.c | ||
nldbl-isoc99_swscanf.c | ||
nldbl-isoc99_vfscanf.c | ||
nldbl-isoc99_vfwscanf.c | ||
nldbl-isoc99_vscanf.c | ||
nldbl-isoc99_vsscanf.c | ||
nldbl-isoc99_vswscanf.c | ||
nldbl-isoc99_vwscanf.c | ||
nldbl-isoc99_wscanf.c | ||
nldbl-j0.c | ||
nldbl-j1.c | ||
nldbl-jn.c | ||
nldbl-ldexp.c | ||
nldbl-lgamma_r.c | ||
nldbl-lgamma.c | ||
nldbl-llogb.c | ||
nldbl-llrint.c | ||
nldbl-llround.c | ||
nldbl-log1p.c | ||
nldbl-log2.c | ||
nldbl-log10.c | ||
nldbl-log.c | ||
nldbl-logb.c | ||
nldbl-lrint.c | ||
nldbl-lround.c | ||
nldbl-modf.c | ||
nldbl-nan.c | ||
nldbl-nearbyint.c | ||
nldbl-nextafter.c | ||
nldbl-nextdown.c | ||
nldbl-nexttoward.c | ||
nldbl-nexttowardf.c | ||
nldbl-nextup.c | ||
nldbl-obstack_printf_chk.c | ||
nldbl-obstack_printf.c | ||
nldbl-obstack_vprintf_chk.c | ||
nldbl-obstack_vprintf.c | ||
nldbl-pow10.c | ||
nldbl-pow.c | ||
nldbl-printf_chk.c | ||
nldbl-printf_fp.c | ||
nldbl-printf_size.c | ||
nldbl-printf.c | ||
nldbl-qecvt_r.c | ||
nldbl-qecvt.c | ||
nldbl-qfcvt_r.c | ||
nldbl-qfcvt.c | ||
nldbl-qgcvt.c | ||
nldbl-remainder.c | ||
nldbl-remquo.c | ||
nldbl-rint.c | ||
nldbl-round.c | ||
nldbl-roundeven.c | ||
nldbl-scalb.c | ||
nldbl-scalbln.c | ||
nldbl-scalbn.c | ||
nldbl-scanf.c | ||
nldbl-setpayload.c | ||
nldbl-setpayloadsig.c | ||
nldbl-signbit.c | ||
nldbl-significand.c | ||
nldbl-sin.c | ||
nldbl-sincos.c | ||
nldbl-sinh.c | ||
nldbl-snprintf_chk.c | ||
nldbl-snprintf.c | ||
nldbl-sprintf_chk.c | ||
nldbl-sprintf.c | ||
nldbl-sqrt.c | ||
nldbl-sscanf.c | ||
nldbl-strfmon_l.c | ||
nldbl-strfmon.c | ||
nldbl-strfroml.c | ||
nldbl-strtold_l.c | ||
nldbl-strtold.c | ||
nldbl-strtoldint.c | ||
nldbl-swprintf_chk.c | ||
nldbl-swprintf.c | ||
nldbl-swscanf.c | ||
nldbl-syslog_chk.c | ||
nldbl-syslog.c | ||
nldbl-tan.c | ||
nldbl-tanh.c | ||
nldbl-tgamma.c | ||
nldbl-totalorder.c | ||
nldbl-totalordermag.c | ||
nldbl-trunc.c | ||
nldbl-ufromfp.c | ||
nldbl-ufromfpx.c | ||
nldbl-vasprintf_chk.c | ||
nldbl-vasprintf.c | ||
nldbl-vdprintf_chk.c | ||
nldbl-vdprintf.c | ||
nldbl-vfprintf_chk.c | ||
nldbl-vfprintf.c | ||
nldbl-vfscanf.c | ||
nldbl-vfwprintf_chk.c | ||
nldbl-vfwprintf.c | ||
nldbl-vfwscanf.c | ||
nldbl-vprintf_chk.c | ||
nldbl-vprintf.c | ||
nldbl-vscanf.c | ||
nldbl-vsnprintf_chk.c | ||
nldbl-vsnprintf.c | ||
nldbl-vsprintf_chk.c | ||
nldbl-vsprintf.c | ||
nldbl-vsscanf.c | ||
nldbl-vswprintf_chk.c | ||
nldbl-vswprintf.c | ||
nldbl-vswscanf.c | ||
nldbl-vsyslog_chk.c | ||
nldbl-vsyslog.c | ||
nldbl-vwprintf_chk.c | ||
nldbl-vwprintf.c | ||
nldbl-vwscanf.c | ||
nldbl-wcstold_l.c | ||
nldbl-wcstold.c | ||
nldbl-wcstoldint.c | ||
nldbl-wprintf_chk.c | ||
nldbl-wprintf.c | ||
nldbl-wscanf.c | ||
nldbl-y0.c | ||
nldbl-y1.c | ||
nldbl-yn.c | ||
s_asinh.c | ||
s_atan.c | ||
s_canonicalizel.c | ||
s_cbrt.c | ||
s_ceil.c | ||
s_clog10l.c | ||
s_copysign.c | ||
s_erf.c | ||
s_expm1.c | ||
s_fabs.c | ||
s_finite.c | ||
s_floor.c | ||
s_fma.c | ||
s_fmal.c | ||
s_fmaxmagl.c | ||
s_fminmagl.c | ||
s_frexp.c | ||
s_isinf.c | ||
s_isnan.c | ||
s_ldexp.c | ||
s_ldexpl.c | ||
s_llrint.c | ||
s_llround.c | ||
s_log1p.c | ||
s_logb.c | ||
s_lrint.c | ||
s_lround.c | ||
s_modf.c | ||
s_nearbyint.c | ||
s_nextafter.c | ||
s_nextdownl.c | ||
s_nexttowardfd.c | ||
s_remquo.c | ||
s_rint.c | ||
s_round.c | ||
s_scalbln.c | ||
s_scalbn.c | ||
s_significand.c | ||
s_significandl.c | ||
s_sin.c | ||
s_sincos.c | ||
s_tan.c | ||
s_tanh.c | ||
s_trunc.c | ||
Versions | ||
w_acos_compat.c | ||
w_acosh_compat.c | ||
w_acoshl_compat.c | ||
w_acosl_compat.c | ||
w_asin_compat.c | ||
w_asinl_compat.c | ||
w_atan2_compat.c | ||
w_atan2l_compat.c | ||
w_atanh_compat.c | ||
w_atanhl_compat.c | ||
w_cosh_compat.c | ||
w_coshl_compat.c | ||
w_exp10_compat.c | ||
w_exp10l_compat.c | ||
w_exp_compat.c | ||
w_fmod_compat.c | ||
w_fmodl_compat.c | ||
w_hypot_compat.c | ||
w_hypotl_compat.c | ||
w_j0_compat.c | ||
w_j0l_compat.c | ||
w_j1_compat.c | ||
w_j1l_compat.c | ||
w_jn_compat.c | ||
w_jnl_compat.c | ||
w_lgamma_compat.c | ||
w_lgamma_compatl.c | ||
w_lgamma_r_compat.c | ||
w_lgammal_r_compat.c | ||
w_llogbl.c | ||
w_log2_compat.c | ||
w_log2l_compat.c | ||
w_log10_compat.c | ||
w_log10l_compat.c | ||
w_log_compat.c | ||
w_logl_compat.c | ||
w_pow_compat.c | ||
w_powl_compat.c | ||
w_remainder_compat.c | ||
w_remainderl_compat.c | ||
w_scalb_compat.c | ||
w_scalbl_compat.c | ||
w_sinh_compat.c | ||
w_sinhl_compat.c | ||
w_sqrt_compat.c | ||
w_sqrtl_compat.c | ||
w_tgamma_compat.c | ||
w_tgammal_compat.c |