diff options
author | Joseph Myers <joseph@codesourcery.com> | 2017-11-24 23:12:30 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2017-11-24 23:12:30 +0000 |
commit | df2806cdb57cb765aca169d17308eb4f0e89369f (patch) | |
tree | 6df49a8eeed9c3a32f4b48922779da6a265c4d0e | |
parent | 0df4fe3557bfbc7fc64a05601311da0365ba88b2 (diff) | |
download | glibc-df2806cdb57cb765aca169d17308eb4f0e89369f.tar.gz glibc-df2806cdb57cb765aca169d17308eb4f0e89369f.tar.xz glibc-df2806cdb57cb765aca169d17308eb4f0e89369f.zip |
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 <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.
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | stdlib/strfroml.c | 15 | ||||
-rw-r--r-- | sysdeps/ieee754/float128/strfromf128.c | 13 |
3 files changed, 35 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index b58c4e21ba..abcbfe1d61 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,14 @@ 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. + * 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 bd6ebca0ad..3d1b6bf3dc 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 597c7e62f9..c3183cd7ef 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 |