diff options
39 files changed, 165 insertions, 157 deletions
diff --git a/ChangeLog b/ChangeLog index e77d24c4ae..e7b77cef33 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,58 @@ +2017-09-13 Joseph Myers <joseph@codesourcery.com> + + * sysdeps/generic/libm-alias-double.h: New file. + * sysdeps/ieee754/ldbl-opt/libm-alias-double.h: Likewise. + * sysdeps/generic/math-type-macros-double.h: Include + <libm-alias-double.h>. + [declare_mgen_alias] (declare_mgen_alias): Define to use + libm_alias_double. + * sysdeps/generic/math-type-macros.h [!M_LIBM_NEED_COMPAT] + (M_LIBM_NEED_COMPAT): Remove macro. + [!M_LIBM_NEED_COMPAT] (declare_mgen_libm_compat): Likewise. + * sysdeps/ieee754/ldbl-opt/math-type-macros-double.h: Remove. + * math/cabs_template.c [M_LIBM_NEED_COMPAT]: Remove conditional + code. + * math/carg_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/cimag_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/conj_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/creal_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/s_cacos_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/s_cacosh_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/s_casin_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/s_casinh_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/s_catan_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/s_catanh_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/s_ccos_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/s_ccosh_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/s_cexp_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/s_clog10_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/s_clog_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/s_cpow_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/s_cproj_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/s_csin_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/s_csinh_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/s_csqrt_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/s_ctan_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/s_ctanh_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/s_fdim_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/s_fmax_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/s_fmin_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/s_nan_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * math/w_ilogb_template.c [M_LIBM_NEED_COMPAT]: Likewise. + * sysdeps/ieee754/ldbl-opt/s_clog10.c: New file. + * sysdeps/ieee754/ldbl-opt/s_ldexp.c (M_LIBM_NEED_COMPAT): Remove + macro. + (declare_mgen_alias): New macro. + * sysdeps/ieee754/ldbl-opt/w_log1p.c: New file. + * sysdeps/ieee754/ldbl-opt/w_scalbln.c: Likewise. + * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.c + (M_LIBM_NEED_COMPAT): Remove macro. + * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c + [HAVE_AS_VIS3_SUPPORT]: Include <math_ldbl_opt.h> and + <first-versions.h>. + [HAVE_AS_VIS3_SUPPORT && LONG_DOUBLE_COMPAT (libm, + FIRST_VERSION_libm_fdiml)]: Define fdiml as compat symbol. + 2017-09-12 Joseph Myers <joseph@codesourcery.com> * sysdeps/generic/math-type-macros.h [!declare_mgen_alias_2] diff --git a/math/cabs_template.c b/math/cabs_template.c index c9592c15b6..21b8506b24 100644 --- a/math/cabs_template.c +++ b/math/cabs_template.c @@ -27,7 +27,3 @@ M_DECL_FUNC (__cabs) (CFLOAT z) } declare_mgen_alias (__cabs, cabs) - -#if M_LIBM_NEED_COMPAT (cabs) -declare_mgen_libm_compat (__cabs, cabs) -#endif diff --git a/math/carg_template.c b/math/carg_template.c index 5d6066322e..9f7ad142f9 100644 --- a/math/carg_template.c +++ b/math/carg_template.c @@ -27,7 +27,3 @@ M_DECL_FUNC (__carg) (CFLOAT x) } declare_mgen_alias (__carg, carg) - -#if M_LIBM_NEED_COMPAT (carg) -declare_mgen_libm_compat (__carg, carg) -#endif diff --git a/math/cimag_template.c b/math/cimag_template.c index 6284b57e1f..b24f001773 100644 --- a/math/cimag_template.c +++ b/math/cimag_template.c @@ -26,7 +26,3 @@ M_DECL_FUNC (__cimag) (CFLOAT z) } declare_mgen_alias (__cimag, cimag) - -#if M_LIBM_NEED_COMPAT (cimag) -declare_mgen_libm_compat (__cimag, cimag) -#endif diff --git a/math/conj_template.c b/math/conj_template.c index b71f338ebe..c21a1f140d 100644 --- a/math/conj_template.c +++ b/math/conj_template.c @@ -26,7 +26,3 @@ M_DECL_FUNC (__conj) (CFLOAT z) } declare_mgen_alias (__conj, conj) - -#if M_LIBM_NEED_COMPAT (conj) -declare_mgen_libm_compat (__conj, conj) -#endif diff --git a/math/creal_template.c b/math/creal_template.c index c658966a5b..8ccbe6f349 100644 --- a/math/creal_template.c +++ b/math/creal_template.c @@ -26,7 +26,3 @@ M_DECL_FUNC (__creal) (CFLOAT z) } declare_mgen_alias (__creal, creal) - -#if M_LIBM_NEED_COMPAT (creal) -declare_mgen_libm_compat (__creal, creal) -#endif diff --git a/math/s_cacos_template.c b/math/s_cacos_template.c index 7629e55436..29cac62f10 100644 --- a/math/s_cacos_template.c +++ b/math/s_cacos_template.c @@ -53,7 +53,3 @@ M_DECL_FUNC (__cacos) (CFLOAT x) } declare_mgen_alias (__cacos, cacos); - -#if M_LIBM_NEED_COMPAT (carg) -declare_mgen_libm_compat (__cacos, cacos) -#endif diff --git a/math/s_cacosh_template.c b/math/s_cacosh_template.c index 1fe0f4f1dc..14f0b2a4e6 100644 --- a/math/s_cacosh_template.c +++ b/math/s_cacosh_template.c @@ -90,7 +90,3 @@ M_DECL_FUNC (__cacosh) (CFLOAT x) } declare_mgen_alias (__cacosh, cacosh) - -#if M_LIBM_NEED_COMPAT (cacosh) -declare_mgen_libm_compat (__cacosh, cacosh) -#endif diff --git a/math/s_casin_template.c b/math/s_casin_template.c index faa2f6beb2..c61c880a1f 100644 --- a/math/s_casin_template.c +++ b/math/s_casin_template.c @@ -61,7 +61,3 @@ M_DECL_FUNC (__casin) (CFLOAT x) } declare_mgen_alias (__casin, casin) - -#if M_LIBM_NEED_COMPAT (casin) -declare_mgen_libm_compat (__casin, casin) -#endif diff --git a/math/s_casinh_template.c b/math/s_casinh_template.c index 8d7cc5c8f4..440e639ad9 100644 --- a/math/s_casinh_template.c +++ b/math/s_casinh_template.c @@ -69,7 +69,3 @@ M_DECL_FUNC (__casinh) (CFLOAT x) } declare_mgen_alias (__casinh, casinh) - -#if M_LIBM_NEED_COMPAT (casinh) -declare_mgen_libm_compat (__casinh, casinh) -#endif diff --git a/math/s_catan_template.c b/math/s_catan_template.c index dce613f77d..2434870fc7 100644 --- a/math/s_catan_template.c +++ b/math/s_catan_template.c @@ -139,7 +139,3 @@ M_DECL_FUNC (__catan) (CFLOAT x) } declare_mgen_alias (__catan, catan) - -#if M_LIBM_NEED_COMPAT (catan) -declare_mgen_libm_compat (__catan, catan) -#endif diff --git a/math/s_catanh_template.c b/math/s_catanh_template.c index 21e06f5bae..f4f5605dba 100644 --- a/math/s_catanh_template.c +++ b/math/s_catanh_template.c @@ -133,7 +133,3 @@ M_DECL_FUNC (__catanh) (CFLOAT x) } declare_mgen_alias (__catanh, catanh) - -#if M_LIBM_NEED_COMPAT (catanh) -declare_mgen_libm_compat (__catanh, catanh) -#endif diff --git a/math/s_ccos_template.c b/math/s_ccos_template.c index 01cbae3f5c..6584450df6 100644 --- a/math/s_ccos_template.c +++ b/math/s_ccos_template.c @@ -34,7 +34,3 @@ M_DECL_FUNC (__ccos) (CFLOAT x) } declare_mgen_alias (__ccos, ccos); - -#if M_LIBM_NEED_COMPAT (carg) -declare_mgen_libm_compat (__ccos, ccos) -#endif diff --git a/math/s_ccosh_template.c b/math/s_ccosh_template.c index 1ee6014374..d3ee8fc9b5 100644 --- a/math/s_ccosh_template.c +++ b/math/s_ccosh_template.c @@ -135,7 +135,3 @@ M_DECL_FUNC (__ccosh) (CFLOAT x) } declare_mgen_alias (__ccosh, ccosh); - -#if M_LIBM_NEED_COMPAT (carg) -declare_mgen_libm_compat (__ccosh, ccosh) -#endif diff --git a/math/s_cexp_template.c b/math/s_cexp_template.c index b2c77c1774..6290aca381 100644 --- a/math/s_cexp_template.c +++ b/math/s_cexp_template.c @@ -148,7 +148,3 @@ M_DECL_FUNC (__cexp) (CFLOAT x) return retval; } declare_mgen_alias (__cexp, cexp) - -#if M_LIBM_NEED_COMPAT (cexp) -declare_mgen_libm_compat (__cexp, cexp) -#endif diff --git a/math/s_clog10_template.c b/math/s_clog10_template.c index 30d87b5a8a..1b004d1a9a 100644 --- a/math/s_clog10_template.c +++ b/math/s_clog10_template.c @@ -120,9 +120,3 @@ M_DECL_FUNC (__clog10) (CFLOAT x) } declare_mgen_alias (__clog10, clog10) - -#if M_LIBM_NEED_COMPAT (clog10) -/* __clog10 is also a public symbol. */ -declare_mgen_libm_compat (__clog10, __clog10) -declare_mgen_libm_compat (clog10, clog10) -#endif diff --git a/math/s_clog_template.c b/math/s_clog_template.c index feb801ff07..37746a04ed 100644 --- a/math/s_clog_template.c +++ b/math/s_clog_template.c @@ -113,7 +113,3 @@ M_DECL_FUNC (__clog) (CFLOAT x) } declare_mgen_alias (__clog, clog) - -#if M_LIBM_NEED_COMPAT (clog) -declare_mgen_libm_compat (__clog, clog) -#endif diff --git a/math/s_cpow_template.c b/math/s_cpow_template.c index 604d09501f..dd1d08d3eb 100644 --- a/math/s_cpow_template.c +++ b/math/s_cpow_template.c @@ -27,7 +27,3 @@ M_DECL_FUNC (__cpow) (CFLOAT x, CFLOAT c) } declare_mgen_alias (__cpow, cpow) - -#if M_LIBM_NEED_COMPAT (cpow) -declare_mgen_libm_compat (__cpow, cpow) -#endif diff --git a/math/s_cproj_template.c b/math/s_cproj_template.c index 7f9e9f0fe5..0ab2727bd2 100644 --- a/math/s_cproj_template.c +++ b/math/s_cproj_template.c @@ -39,7 +39,3 @@ M_DECL_FUNC (__cproj) (CFLOAT x) } declare_mgen_alias (__cproj, cproj) - -#if M_LIBM_NEED_COMPAT (cproj) -declare_mgen_libm_compat (__cproj, cproj) -#endif diff --git a/math/s_csin_template.c b/math/s_csin_template.c index d52beb999b..5a38bf7299 100644 --- a/math/s_csin_template.c +++ b/math/s_csin_template.c @@ -159,7 +159,3 @@ M_DECL_FUNC (__csin) (CFLOAT x) } declare_mgen_alias (__csin, csin) - -#if M_LIBM_NEED_COMPAT (csin) -declare_mgen_libm_compat (__csin, csin) -#endif diff --git a/math/s_csinh_template.c b/math/s_csinh_template.c index d5ef5ae446..ecea37cc1e 100644 --- a/math/s_csinh_template.c +++ b/math/s_csinh_template.c @@ -154,7 +154,3 @@ M_DECL_FUNC (__csinh) (CFLOAT x) } declare_mgen_alias (__csinh, csinh) - -#if M_LIBM_NEED_COMPAT (csinh) -declare_mgen_libm_compat (__csinh, csinh) -#endif diff --git a/math/s_csqrt_template.c b/math/s_csqrt_template.c index 69cf77c15c..a94195aa5f 100644 --- a/math/s_csqrt_template.c +++ b/math/s_csqrt_template.c @@ -158,7 +158,3 @@ M_DECL_FUNC (__csqrt) (CFLOAT x) return res; } declare_mgen_alias (__csqrt, csqrt) - -#if M_LIBM_NEED_COMPAT (csqrt) -declare_mgen_libm_compat (__csqrt, csqrt) -#endif diff --git a/math/s_ctan_template.c b/math/s_ctan_template.c index baf603007f..723156eed4 100644 --- a/math/s_ctan_template.c +++ b/math/s_ctan_template.c @@ -124,7 +124,3 @@ M_DECL_FUNC (__ctan) (CFLOAT x) } declare_mgen_alias (__ctan, ctan) - -#if M_LIBM_NEED_COMPAT (ctan) -declare_mgen_libm_compat (__ctan, ctan) -#endif diff --git a/math/s_ctanh_template.c b/math/s_ctanh_template.c index 1c00d14428..96873dd0a3 100644 --- a/math/s_ctanh_template.c +++ b/math/s_ctanh_template.c @@ -124,7 +124,3 @@ M_DECL_FUNC (__ctanh) (CFLOAT x) } declare_mgen_alias (__ctanh, ctanh) - -#if M_LIBM_NEED_COMPAT (ctanh) -declare_mgen_libm_compat (__ctanh, ctanh) -#endif diff --git a/math/s_fdim_template.c b/math/s_fdim_template.c index 967777aff5..1fa4b7c607 100644 --- a/math/s_fdim_template.c +++ b/math/s_fdim_template.c @@ -34,7 +34,3 @@ M_DECL_FUNC (__fdim) (FLOAT x, FLOAT y) return r; } declare_mgen_alias (__fdim, fdim); - -#if M_LIBM_NEED_COMPAT (fdim) -declare_mgen_libm_compat (__fdim, fdim) -#endif diff --git a/math/s_fmax_template.c b/math/s_fmax_template.c index 0471ab57bc..fe812c7c1f 100644 --- a/math/s_fmax_template.c +++ b/math/s_fmax_template.c @@ -33,7 +33,3 @@ M_DECL_FUNC (__fmax) (FLOAT x, FLOAT y) } declare_mgen_alias (__fmax, fmax); - -#if M_LIBM_NEED_COMPAT (fmax) -declare_mgen_libm_compat (__fmax, fmax) -#endif diff --git a/math/s_fmin_template.c b/math/s_fmin_template.c index 5f814095ce..5e8460ac5e 100644 --- a/math/s_fmin_template.c +++ b/math/s_fmin_template.c @@ -33,7 +33,3 @@ M_DECL_FUNC (__fmin) (FLOAT x, FLOAT y) return isnan (y) ? x : y; } declare_mgen_alias (__fmin, fmin); - -#if M_LIBM_NEED_COMPAT (fmin) -declare_mgen_libm_compat (__fmin, fmin) -#endif diff --git a/math/s_nan_template.c b/math/s_nan_template.c index 010dacbeee..80a9aea3b2 100644 --- a/math/s_nan_template.c +++ b/math/s_nan_template.c @@ -31,7 +31,3 @@ M_DECL_FUNC (__nan) (const char *tagp) } declare_mgen_alias (__nan, nan) - -#if M_LIBM_NEED_COMPAT (nan) -declare_mgen_libm_compat (__nan, nan) -#endif diff --git a/math/w_ilogb_template.c b/math/w_ilogb_template.c index f18dd42e05..a611f00ffe 100644 --- a/math/w_ilogb_template.c +++ b/math/w_ilogb_template.c @@ -36,7 +36,3 @@ M_DECL_FUNC (__ilogb) (FLOAT x) return r; } declare_mgen_alias (__ilogb, ilogb) - -#if M_LIBM_NEED_COMPAT (ilogb) -declare_mgen_libm_compat (__ilogb, ilogb) -#endif diff --git a/sysdeps/generic/libm-alias-double.h b/sysdeps/generic/libm-alias-double.h new file mode 100644 index 0000000000..23b5990e36 --- /dev/null +++ b/sysdeps/generic/libm-alias-double.h @@ -0,0 +1,42 @@ +/* Define aliases for libm double functions. + Copyright (C) 2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _LIBM_ALIAS_DOUBLE_H +#define _LIBM_ALIAS_DOUBLE_H + +/* Define aliases for a double libm function that has internal name + FROM ## R and public names TO ## suffix ## R for each suffix of a + supported floating-point type with the same format as double. This + should only be used for functions where such public names exist for + _FloatN types, not for implementation-namespace exported names + (where there is one name per format, not per type) or for + obsolescent functions not provided for _FloatN types. */ +#ifdef NO_LONG_DOUBLE +# define libm_alias_double_r(from, to, r) \ + weak_alias (from ## r, to ## r) \ + strong_alias (from ## r, from ## l ## r) \ + weak_alias (from ## r, to ## l ## r) +#else +# define libm_alias_double_r(from, to, r) \ + weak_alias (from ## r, to ## r) +#endif + +/* Likewise, but without the R suffix. */ +#define libm_alias_double(from, to) libm_alias_double_r (from, to, ) + +#endif diff --git a/sysdeps/generic/math-type-macros-double.h b/sysdeps/generic/math-type-macros-double.h index f2c1bb872b..e978f9090c 100644 --- a/sysdeps/generic/math-type-macros-double.h +++ b/sysdeps/generic/math-type-macros-double.h @@ -27,14 +27,10 @@ #define CFLOAT _Complex double #define M_STRTO_NAN __strtod_nan -/* Machines without a distinct long double type - alias long double functions to their double - equivalent. */ -#if defined NO_LONG_DOUBLE && !defined declare_mgen_alias -# define declare_mgen_alias(from, to) \ - weak_alias (from, to) \ - strong_alias (from, from ## l) \ - weak_alias (from, to ## l) +#include <libm-alias-double.h> + +#ifndef declare_mgen_alias +# define declare_mgen_alias(from, to) libm_alias_double (from, to) #endif /* Supply the generic macros. */ diff --git a/sysdeps/generic/math-type-macros.h b/sysdeps/generic/math-type-macros.h index 5656724f40..6aaa2335b9 100644 --- a/sysdeps/generic/math-type-macros.h +++ b/sysdeps/generic/math-type-macros.h @@ -39,16 +39,7 @@ declare_mgen_alias(from,to) This exposes the appropriate symbol(s) for a - function f of type FLOAT. - - M_LIBM_NEED_COMPAT(func) - This is utilized in macro context to indicate - whether func should declare compat symbols. - - declare_mgen_libm_compat(from,to) - This is used in conjunction with the above macro - outside of macro context to paste whatever is - required to generate a compat symbol. */ + function f of type FLOAT. */ #ifndef M_PFX # error "M_PFX must be defined." @@ -116,10 +107,4 @@ # define declare_mgen_alias(from, to) weak_alias (M_SUF (from), M_SUF (to)) #endif -/* Do not generate anything for compat symbols by default. */ -#ifndef M_LIBM_NEED_COMPAT -# define M_LIBM_NEED_COMPAT(func) 0 -# define declare_mgen_libm_compat(from, to) -#endif - #endif /* _MATH_TYPE_MACROS */ diff --git a/sysdeps/ieee754/ldbl-opt/libm-alias-double.h b/sysdeps/ieee754/ldbl-opt/libm-alias-double.h new file mode 100644 index 0000000000..5ae4c8b338 --- /dev/null +++ b/sysdeps/ieee754/ldbl-opt/libm-alias-double.h @@ -0,0 +1,44 @@ +/* Define aliases for libm double functions. ldbl-opt version. + Copyright (C) 2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _LIBM_ALIAS_DOUBLE_H +#define _LIBM_ALIAS_DOUBLE_H + +#include <math_ldbl_opt.h> +#include <first-versions.h> +#include <ldbl-compat-choose.h> + +/* Define aliases for a double libm function that has internal name + FROM ## R and public names TO ## suffix ## R for each suffix of a + supported floating-point type with the same format as double. This + should only be used for functions where such public names exist for + _FloatN types, not for implementation-namespace exported names + (where there is one name per format, not per type) or for + obsolescent functions not provided for _FloatN types. */ +#define libm_alias_double_r(from, to, r) \ + weak_alias (from ## r, to ## r) \ + LONG_DOUBLE_COMPAT_CHOOSE_libm_ ## to ## l ## r \ + (compat_symbol (libm, \ + from ## r, \ + to ## l ## r, \ + FIRST_VERSION_libm_ ## to ## l ## r), ); + +/* Likewise, but without the R suffix. */ +#define libm_alias_double(from, to) libm_alias_double_r (from, to, ) + +#endif diff --git a/sysdeps/ieee754/ldbl-opt/math-type-macros-double.h b/sysdeps/ieee754/ldbl-opt/s_clog10.c index 67b5268dc4..ec52218975 100644 --- a/sysdeps/ieee754/ldbl-opt/math-type-macros-double.h +++ b/sysdeps/ieee754/ldbl-opt/s_clog10.c @@ -1,5 +1,5 @@ -/* Overrides for ldbl-opt versioning for double types. - Copyright (C) 2016-2017 Free Software Foundation, Inc. +/* Define __clog10l compat symbol for clog10 for ldbl-opt. + Copyright (C) 2017 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,23 +16,13 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#ifndef _MATH_TYPE_MACROS_DOUBLE - #include <math_ldbl_opt.h> #include <first-versions.h> +#include <math-type-macros-double.h> -/* Define compat symbols for long double on platforms - where it was not always a distinct type. */ -#if !defined M_LIBM_NEED_COMPAT -# define M_LIBM_NEED_COMPAT(f) \ - LONG_DOUBLE_COMPAT (libm, FIRST_VERSION_libm_ ## f ## l) -#endif - -#if !defined declare_mgen_libm_compat -# define declare_mgen_libm_compat(from, to) \ - compat_symbol (libm, from, to ## l, \ - FIRST_VERSION_libm_ ## to ## l); -#endif +#include <s_clog10_template.c> -#include_next <math-type-macros-double.h> +#if LONG_DOUBLE_COMPAT (libm, FIRST_VERSION_libm___clog10l) +strong_alias (__clog10, __clog10l_alias) +compat_symbol (libm, __clog10l_alias, __clog10l, FIRST_VERSION_libm___clog10l); #endif diff --git a/sysdeps/ieee754/ldbl-opt/s_ldexp.c b/sysdeps/ieee754/ldbl-opt/s_ldexp.c index 809080a149..5a875aeac1 100644 --- a/sysdeps/ieee754/ldbl-opt/s_ldexp.c +++ b/sysdeps/ieee754/ldbl-opt/s_ldexp.c @@ -17,7 +17,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#define M_LIBM_NEED_COMPAT(f) 0 +#define declare_mgen_alias(from, to) weak_alias (from, to) #include <math-type-macros-double.h> #include <s_ldexp_template.c> diff --git a/sysdeps/ieee754/ldbl-opt/w_log1p.c b/sysdeps/ieee754/ldbl-opt/w_log1p.c new file mode 100644 index 0000000000..ad0524708e --- /dev/null +++ b/sysdeps/ieee754/ldbl-opt/w_log1p.c @@ -0,0 +1,3 @@ +#define declare_mgen_alias(from, to) weak_alias (from, to) +#include <math-type-macros-double.h> +#include <w_log1p_template.c> diff --git a/sysdeps/ieee754/ldbl-opt/w_scalbln.c b/sysdeps/ieee754/ldbl-opt/w_scalbln.c new file mode 100644 index 0000000000..495169ff37 --- /dev/null +++ b/sysdeps/ieee754/ldbl-opt/w_scalbln.c @@ -0,0 +1,3 @@ +#define declare_mgen_alias(from, to) weak_alias (from, to) +#include <math-type-macros-double.h> +#include <w_scalbln_template.c> diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.c index 8c3666da7a..daa477b87a 100644 --- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.c +++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.c @@ -20,6 +20,5 @@ #define __fdim __fdim_vis3 #define declare_mgen_alias(t, f) -#define M_LIBM_NEED_COMPAT(f) 0 #include <math/s_fdim.c> diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c index 417b8690d6..ff3acd4086 100644 --- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c +++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c @@ -17,6 +17,8 @@ <http://www.gnu.org/licenses/>. */ #ifdef HAVE_AS_VIS3_SUPPORT +# include <math_ldbl_opt.h> +# include <first-versions.h> # include <sparc-ifunc.h> # include <math.h> @@ -25,6 +27,9 @@ extern double __fdim_generic (double, double); sparc_libm_ifunc(__fdim, hwcap & HWCAP_SPARC_VIS3 ? __fdim_vis3 : __fdim_generic); weak_alias (__fdim, fdim) +# if LONG_DOUBLE_COMPAT (libm, FIRST_VERSION_libm_fdiml) +compat_symbol (libm, __fdim, fdiml, FIRST_VERSION_libm_fdiml); +# endif # define __fdim __fdim_generic # define declare_mgen_alias(t, f) |