From df2806cdb57cb765aca169d17308eb4f0e89369f Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Fri, 24 Nov 2017 23:12:30 +0000 Subject: Support strfromf64x alias. 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. * stdlib/strfroml.c: Always include . [__HAVE_FLOAT64X_LONG_DOUBLE] (strfromf64x): Define and later undefine as macro and define as weak alias. * sysdeps/ieee754/float128/strfromf128.c: Include . [__HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE]: Include . [__HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE] (strfromf64x): Define and later undefine as macro and define as weak alias. --- ChangeLog | 9 +++++++++ stdlib/strfroml.c | 15 ++++++++++++++- sysdeps/ieee754/float128/strfromf128.c | 13 ++++++++++++- 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index b58c4e2..abcbfe1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,14 @@ 2017-11-24 Joseph Myers + * stdlib/strfroml.c: Always include . + [__HAVE_FLOAT64X_LONG_DOUBLE] (strfromf64x): Define and later + undefine as macro and define as weak alias. + * sysdeps/ieee754/float128/strfromf128.c: Include . + [__HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE]: Include + . + [__HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE] (strfromf64x): + Define and later undefine as macro and define as weak alias. + * stdlib/strtold.c [__HAVE_FLOAT64X_LONG_DOUBLE] (strtof64x): Define and later undefine as macro. Define as weak alias if [!USE_WIDE_CHAR]. 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 +#endif +#if __HAVE_FLOAT64X_LONG_DOUBLE +# define strfromf64x __hide_strfromf64x +#endif + +#include + +#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 . */ +#include + #define FLOAT _Float128 #define STRFROM strfromf128 -#include +#if __HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE +# define strfromf64x __hide_strfromf64x +# include +# undef strfromf64x +#endif + #include #include + +#if __HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE +weak_alias (strfromf128, strfromf64x) +#endif -- cgit v1.1