This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Support strfromf64x alias [committed]
- From: Joseph Myers <joseph at codesourcery dot com>
- To: <libc-alpha at sourceware dot org>
- Date: Fri, 24 Nov 2017 23:13:31 +0000
- Subject: Support strfromf64x alias [committed]
- Authentication-results: sourceware.org; auth=none
This patch adds support for defining strfromf64x as a function alias
(of strfroml or strfromf128, as appropriate) when _Float64x is
supported.
Tested for x86_64, including in conjunction with _Float64x support
patches, and also tested build for other configurations (in
conjunction with _Float64x support patches) with build-many-glibcs.py
to cover the various different files needing updating to define these
aliases. Committed.
2017-11-24 Joseph Myers <joseph@codesourcery.com>
* stdlib/strfroml.c: Always include <stdlib.h>.
[__HAVE_FLOAT64X_LONG_DOUBLE] (strfromf64x): Define and later
undefine as macro and define as weak alias.
* sysdeps/ieee754/float128/strfromf128.c: Include <bits/floatn.h>.
[__HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE]: Include
<stdlib.h>.
[__HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE] (strfromf64x):
Define and later undefine as macro and define as weak alias.
diff --git a/stdlib/strfroml.c b/stdlib/strfroml.c
index bd6ebca..3d1b6bf 100644
--- a/stdlib/strfroml.c
+++ b/stdlib/strfroml.c
@@ -23,12 +23,25 @@
#if __HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128
# define strfromf128 __hide_strfromf128
-# include <stdlib.h>
+#endif
+#if __HAVE_FLOAT64X_LONG_DOUBLE
+# define strfromf64x __hide_strfromf64x
+#endif
+
+#include <stdlib.h>
+
+#if __HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128
# undef strfromf128
#endif
+#if __HAVE_FLOAT64X_LONG_DOUBLE
+# undef strfromf64x
+#endif
#include "strfrom-skeleton.c"
#if __HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128
weak_alias (strfroml, strfromf128)
#endif
+#if __HAVE_FLOAT64X_LONG_DOUBLE
+weak_alias (strfroml, strfromf64x)
+#endif
diff --git a/sysdeps/ieee754/float128/strfromf128.c b/sysdeps/ieee754/float128/strfromf128.c
index 597c7e6..c3183cd 100644
--- a/sysdeps/ieee754/float128/strfromf128.c
+++ b/sysdeps/ieee754/float128/strfromf128.c
@@ -16,10 +16,21 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <bits/floatn.h>
+
#define FLOAT _Float128
#define STRFROM strfromf128
-#include <bits/floatn.h>
+#if __HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE
+# define strfromf64x __hide_strfromf64x
+# include <stdlib.h>
+# undef strfromf64x
+#endif
+
#include <float128_private.h>
#include <stdlib/strfrom-skeleton.c>
+
+#if __HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE
+weak_alias (strfromf128, strfromf64x)
+#endif
--
Joseph S. Myers
joseph@codesourcery.com