aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/ieee754
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/ieee754')
-rw-r--r--sysdeps/ieee754/ldbl-opt/libm-alias-double.h44
-rw-r--r--sysdeps/ieee754/ldbl-opt/s_clog10.c (renamed from sysdeps/ieee754/ldbl-opt/math-type-macros-double.h)24
-rw-r--r--sysdeps/ieee754/ldbl-opt/s_ldexp.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/w_log1p.c3
-rw-r--r--sysdeps/ieee754/ldbl-opt/w_scalbln.c3
5 files changed, 58 insertions, 18 deletions
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>