glibc/sysdeps/ieee754/ldbl-opt
Joseph Myers 8f2e1830f2 Create and use first-versions.h with macros for function symbol versions.
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.
2017-05-19 11:26:00 +00:00
..
bits Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
configure rename configure.in to configure.ac 2013-10-30 17:32:08 +10:00
configure.ac rename configure.in to configure.ac 2013-10-30 17:32:08 +10:00
Makefile Add fromfp functions. 2016-12-31 00:40:59 +00:00
math_ldbl_opt.c
math_ldbl_opt.h Remove --disable-versioning. 2013-09-04 15:25:42 +00:00
math-type-macros-double.h Create and use first-versions.h with macros for function symbol versions. 2017-05-19 11:26:00 +00:00
math-type-macros-ldouble.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
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 Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
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 Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-compat.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-conj.c
nldbl-copysign.c Use __copysign rather than copysign. 2015-04-22 12:07:56 +00:00
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 Replace finite with isfinite. 2015-06-03 16:35:44 +01:00
nldbl-floor.c
nldbl-fma.c
nldbl-fmax.c
nldbl-fmaxmag.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-fmin.c
nldbl-fminmag.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-fmod.c
nldbl-fprintf_chk.c
nldbl-fprintf.c
nldbl-frexp.c
nldbl-fromfp.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-fromfpx.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-fscanf.c
nldbl-fwprintf_chk.c
nldbl-fwprintf.c
nldbl-fwscanf.c
nldbl-gamma.c
nldbl-getpayload.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-hypot.c
nldbl-ilogb.c
nldbl-iovfscanf.c
nldbl-isinf.c This patch renames all uses of __isinf*, __isnan*, __finite* and __signbit* to use standard C99 macros. This has no effect on generated code. 2015-06-03 15:41:36 +01:00
nldbl-isnan.c This patch renames all uses of __isinf*, __isnan*, __finite* and __signbit* to use standard C99 macros. This has no effect on generated code. 2015-06-03 15:41:36 +01:00
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 Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
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 Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-nexttoward.c
nldbl-nexttowardf.c
nldbl-nextup.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
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 Make drem an alias of remainder (bug 16171). 2015-10-29 22:29:21 +00:00
nldbl-remquo.c
nldbl-rint.c
nldbl-round.c
nldbl-roundeven.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-scalb.c
nldbl-scalbln.c
nldbl-scalbn.c
nldbl-scanf.c
nldbl-setpayload.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-setpayloadsig.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-signbit.c This patch renames all uses of __isinf*, __isnan*, __finite* and __signbit* to use standard C99 macros. This has no effect on generated code. 2015-06-03 15:41:36 +01:00
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 Add strfromd, strfromf, and strfroml functions 2016-10-25 17:03:54 -02:00
nldbl-strtold_l.c Remove pre-ISO C support 2012-01-07 23:57:22 -05:00
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 Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-totalordermag.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-trunc.c
nldbl-ufromfp.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-ufromfpx.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
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 Add canonicalize, canonicalizef, canonicalizel. 2016-10-26 23:14:31 +00:00
s_cbrt.c
s_ceil.c
s_clog10l.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
s_copysign.c Remove IS_IN_libm 2014-11-24 11:41:47 +05:30
s_erf.c
s_expm1.c
s_fabs.c
s_finite.c Remove IS_IN_libm 2014-11-24 11:41:47 +05:30
s_floor.c
s_fma.c
s_fmal.c
s_fmaxmagl.c Add fmaxmag, fminmag functions. 2016-12-20 00:46:53 +00:00
s_fminmagl.c Add fmaxmag, fminmag functions. 2016-12-20 00:46:53 +00:00
s_frexp.c Remove IS_IN_libm 2014-11-24 11:41:47 +05:30
s_isinf.c Remove IS_IN_libm 2014-11-24 11:41:47 +05:30
s_isnan.c Remove IS_IN_libm 2014-11-24 11:41:47 +05:30
s_ldexp.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
s_ldexpl.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
s_llrint.c
s_llround.c
s_log1p.c
s_logb.c
s_lrint.c
s_lround.c
s_modf.c Remove IS_IN_libm 2014-11-24 11:41:47 +05:30
s_nearbyint.c
s_nextafter.c
s_nextdownl.c Make common nextdown implementation generic. 2016-09-01 09:31:03 -05:00
s_nexttowardfd.c Make nextafter, nexttoward set errno (bug 6799). 2015-11-02 18:54:19 +00:00
s_remquo.c
s_rint.c
s_round.c
s_scalbln.c Remove IS_IN_libm 2014-11-24 11:41:47 +05:30
s_scalbn.c Remove IS_IN_libm 2014-11-24 11:41:47 +05:30
s_significand.c
s_significandl.c
s_sin.c float128: Add private _Float128 declarations for libm. 2017-05-15 10:23:28 -03:00
s_sincos.c
s_tan.c
s_tanh.c
s_trunc.c
Versions
w_acos_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_acosh_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_acoshl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_acosl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_asin_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_asinl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_atan2_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_atan2l_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_atanh_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_atanhl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_cosh_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_coshl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_exp10_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_exp10l_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_exp_compat.c Move w_exp to libm-compat-call-auto 2017-02-08 17:44:20 -02:00
w_fmod_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_fmodl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_hypot_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_hypotl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_j0_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_j0l_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_j1_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_j1l_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_jn_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_jnl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_lgamma_compat.c Fix lgamma setting signgam for ISO C (bug 15421). 2015-11-20 22:49:59 +00:00
w_lgamma_compatl.c Fix lgamma setting signgam for ISO C (bug 15421). 2015-11-20 22:49:59 +00:00
w_lgamma_r_compat.c Move w_lgamma_r to libm-compat-calls-auto 2017-02-08 17:36:09 -02:00
w_lgammal_r_compat.c Move w_lgamma_r to libm-compat-calls-auto 2017-02-08 17:36:09 -02:00
w_llogbl.c Add llogb, llogbf, llogbl. 2016-12-02 01:42:49 +00:00
w_log2_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_log2l_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_log10_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_log10l_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_log_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_logl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_pow_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_powl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_remainder_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_remainderl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_scalb_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_scalbl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_sinh_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_sinhl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_sqrt_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_sqrtl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_tgamma_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_tgammal_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00