aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/generic
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/generic')
-rw-r--r--sysdeps/generic/libm-alias-double.h42
-rw-r--r--sysdeps/generic/math-type-macros-double.h12
-rw-r--r--sysdeps/generic/math-type-macros.h17
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 */