diff options
Diffstat (limited to 'sysdeps/generic')
-rw-r--r-- | sysdeps/generic/libm-alias-double.h | 42 | ||||
-rw-r--r-- | sysdeps/generic/math-type-macros-double.h | 12 | ||||
-rw-r--r-- | sysdeps/generic/math-type-macros.h | 17 |
3 files changed, 47 insertions, 24 deletions
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 */ |