mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
Support defining strtof32, wcstof32 aliases.
This patch adds support for defining strtof32, wcstof32, strtof32_l and wcstof32_l functions as aliases of the corresponding float functions when _Float32 support is enabled. Tested for x86_64; also tested with build-many-glibcs.py in conjunction with other _Float32 changes. * stdlib/strtof.c: Include <bits/floatn.h> [__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32] (strtof32): Define and later undefine as macro. Define as weak alias if [!USE_WIDE_CHAR]. [__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32] (wcstof32): Define and later undefine as macro. Define as weak alias if [USE_WIDE_CHAR]. * stdlib/strtof_l.c: Include <bits/floatn.h> [__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32] (strtof32_l): Define and later undefine as macro. Define as weak alias if [!USE_WIDE_CHAR]. [__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32] (wcstof32_l): Define and later undefine as macro. Define as weak alias if [USE_WIDE_CHAR].
This commit is contained in:
15
ChangeLog
15
ChangeLog
@ -1,5 +1,20 @@
|
|||||||
2017-12-06 Joseph Myers <joseph@codesourcery.com>
|
2017-12-06 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
* stdlib/strtof.c: Include <bits/floatn.h>
|
||||||
|
[__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32] (strtof32): Define
|
||||||
|
and later undefine as macro. Define as weak alias if
|
||||||
|
[!USE_WIDE_CHAR].
|
||||||
|
[__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32] (wcstof32): Define
|
||||||
|
and later undefine as macro. Define as weak alias if
|
||||||
|
[USE_WIDE_CHAR].
|
||||||
|
* stdlib/strtof_l.c: Include <bits/floatn.h>
|
||||||
|
[__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32] (strtof32_l): Define
|
||||||
|
and later undefine as macro. Define as weak alias if
|
||||||
|
[!USE_WIDE_CHAR].
|
||||||
|
[__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32] (wcstof32_l): Define
|
||||||
|
and later undefine as macro. Define as weak alias if
|
||||||
|
[USE_WIDE_CHAR].
|
||||||
|
|
||||||
* stdlib/strfromf.c: Include <bits/floatn.h>.
|
* stdlib/strfromf.c: Include <bits/floatn.h>.
|
||||||
[__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32] (strfromf32): Define
|
[__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32] (strfromf32): Define
|
||||||
and later undefine as macro and define as weak alias.
|
and later undefine as macro and define as weak alias.
|
||||||
|
@ -20,6 +20,13 @@
|
|||||||
/* The actual implementation for all floating point sizes is in strtod.c.
|
/* The actual implementation for all floating point sizes is in strtod.c.
|
||||||
These macros tell it to produce the `float' version, `strtof'. */
|
These macros tell it to produce the `float' version, `strtof'. */
|
||||||
|
|
||||||
|
#include <bits/floatn.h>
|
||||||
|
|
||||||
|
#if __HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32
|
||||||
|
# define strtof32 __hide_strtof32
|
||||||
|
# define wcstof32 __hide_wcstof32
|
||||||
|
#endif
|
||||||
|
|
||||||
#define FLOAT float
|
#define FLOAT float
|
||||||
#define FLT FLT
|
#define FLT FLT
|
||||||
#ifdef USE_WIDE_CHAR
|
#ifdef USE_WIDE_CHAR
|
||||||
@ -32,3 +39,13 @@
|
|||||||
|
|
||||||
|
|
||||||
#include "strtod.c"
|
#include "strtod.c"
|
||||||
|
|
||||||
|
#if __HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32
|
||||||
|
# undef strtof32
|
||||||
|
# undef wcstof32
|
||||||
|
# ifdef USE_WIDE_CHAR
|
||||||
|
weak_alias (wcstof, wcstof32)
|
||||||
|
# else
|
||||||
|
weak_alias (strtof, strtof32)
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
@ -17,6 +17,13 @@
|
|||||||
License along with the GNU C Library; if not, see
|
License along with the GNU C Library; if not, see
|
||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
#include <bits/floatn.h>
|
||||||
|
|
||||||
|
#if __HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32
|
||||||
|
# define strtof32_l __hide_strtof32_l
|
||||||
|
# define wcstof32_l __hide_wcstof32_l
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
|
|
||||||
extern float ____strtof_l_internal (const char *, char **, int, locale_t);
|
extern float ____strtof_l_internal (const char *, char **, int, locale_t);
|
||||||
@ -36,3 +43,13 @@ extern float ____strtof_l_internal (const char *, char **, int, locale_t);
|
|||||||
#define FLOAT_HUGE_VAL HUGE_VALF
|
#define FLOAT_HUGE_VAL HUGE_VALF
|
||||||
|
|
||||||
#include "strtod_l.c"
|
#include "strtod_l.c"
|
||||||
|
|
||||||
|
#if __HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32
|
||||||
|
# undef strtof32_l
|
||||||
|
# undef wcstof32_l
|
||||||
|
# ifdef USE_WIDE_CHAR
|
||||||
|
weak_alias (wcstof_l, wcstof32_l)
|
||||||
|
# else
|
||||||
|
weak_alias (strtof_l, strtof32_l)
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
Reference in New Issue
Block a user