mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-12 16:20:06 +00:00
RFC: powerpc64le: Enable support for IEEE long double
Not for glibc-2.31 - Do not commit! No changes since v3. Changes since v2: - Added definition of LDBL_IBM128_COMPAT_VERSION and LDBL_IBM128_VERSION (moved from a previous commit). Changes since v1: - Use __LONG_DOUBLE_USES_FLOAT128 directly. -- 8< -- On platforms where long double may have two different formats, i.e.: the same format as double (64-bits) or something else (128-bits), building with -mlong-double-128 is the default and function calls in the user program match the name of the function in Glibc. When building with -mlong-double-64, Glibc installed headers redirect such calls to the appropriate function. This patch adds similar redirections to be used by user code builds in IEEE long double mode (-mabi=ieeelongdouble). It also skips some uses of libc_hidden_proto in internal headers, because they also produce redirections, causing a redirection conflict. PS: Missing NEWS entry.
This commit is contained in:
parent
b851fea5c8
commit
39a7b82283
@ -554,7 +554,8 @@ __NTH (__option_is_end (const struct argp_option *__opt))
|
||||
# endif
|
||||
#endif /* Use extern inlines. */
|
||||
|
||||
#ifdef __LDBL_COMPAT
|
||||
#include <bits/floatn.h>
|
||||
#if defined __LDBL_COMPAT || __LONG_DOUBLE_USES_FLOAT128 == 1
|
||||
# include <bits/argp-ldbl.h>
|
||||
#endif
|
||||
|
||||
|
@ -27,9 +27,17 @@ __LDBL_REDIR_DECL (vfprintf)
|
||||
__LDBL_REDIR_DECL (vprintf)
|
||||
__LDBL_REDIR_DECL (vsprintf)
|
||||
#if !__GLIBC_USE (DEPRECATED_SCANF)
|
||||
# if defined __LDBL_COMPAT
|
||||
__LDBL_REDIR1_DECL (fscanf, __nldbl___isoc99_fscanf)
|
||||
__LDBL_REDIR1_DECL (scanf, __nldbl___isoc99_scanf)
|
||||
__LDBL_REDIR1_DECL (sscanf, __nldbl___isoc99_sscanf)
|
||||
# elif __LONG_DOUBLE_USES_FLOAT128 == 1
|
||||
__LDBL_REDIR1_DECL (fscanf, __isoc99_fscanfieee128)
|
||||
__LDBL_REDIR1_DECL (scanf, __isoc99_scanfieee128)
|
||||
__LDBL_REDIR1_DECL (sscanf, __isoc99_sscanfieee128)
|
||||
# else
|
||||
# error bits/stdlib-ldbl.h included when no ldbl redirections are required.
|
||||
# endif
|
||||
#else
|
||||
__LDBL_REDIR_DECL (fscanf)
|
||||
__LDBL_REDIR_DECL (scanf)
|
||||
@ -43,9 +51,17 @@ __LDBL_REDIR_DECL (vsnprintf)
|
||||
|
||||
#ifdef __USE_ISOC99
|
||||
# if !__GLIBC_USE (DEPRECATED_SCANF)
|
||||
# if defined __LDBL_COMPAT
|
||||
__LDBL_REDIR1_DECL (vfscanf, __nldbl___isoc99_vfscanf)
|
||||
__LDBL_REDIR1_DECL (vscanf, __nldbl___isoc99_vscanf)
|
||||
__LDBL_REDIR1_DECL (vsscanf, __nldbl___isoc99_vsscanf)
|
||||
# elif __LONG_DOUBLE_USES_FLOAT128 == 1
|
||||
__LDBL_REDIR1_DECL (vfscanf, __isoc99_vfscanfieee128)
|
||||
__LDBL_REDIR1_DECL (vscanf, __isoc99_vscanfieee128)
|
||||
__LDBL_REDIR1_DECL (vsscanf, __isoc99_vsscanfieee128)
|
||||
# else
|
||||
# error bits/stdlib-ldbl.h included when no ldbl redirections are required.
|
||||
# endif
|
||||
# else
|
||||
__LDBL_REDIR_DECL (vfscanf)
|
||||
__LDBL_REDIR_DECL (vsscanf)
|
||||
@ -60,33 +76,33 @@ __LDBL_REDIR_DECL (dprintf)
|
||||
|
||||
#ifdef __USE_GNU
|
||||
__LDBL_REDIR_DECL (vasprintf)
|
||||
__LDBL_REDIR_DECL (__asprintf)
|
||||
__LDBL_REDIR2_DECL (asprintf)
|
||||
__LDBL_REDIR_DECL (asprintf)
|
||||
__LDBL_REDIR_DECL (obstack_printf)
|
||||
__LDBL_REDIR_DECL (obstack_vprintf)
|
||||
#endif
|
||||
|
||||
#if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function
|
||||
__LDBL_REDIR_DECL (__sprintf_chk)
|
||||
__LDBL_REDIR_DECL (__vsprintf_chk)
|
||||
__LDBL_REDIR2_DECL (sprintf_chk)
|
||||
__LDBL_REDIR2_DECL (vsprintf_chk)
|
||||
# if defined __USE_ISOC99 || defined __USE_UNIX98
|
||||
__LDBL_REDIR_DECL (__snprintf_chk)
|
||||
__LDBL_REDIR_DECL (__vsnprintf_chk)
|
||||
__LDBL_REDIR2_DECL (snprintf_chk)
|
||||
__LDBL_REDIR2_DECL (vsnprintf_chk)
|
||||
# endif
|
||||
# if __USE_FORTIFY_LEVEL > 1
|
||||
__LDBL_REDIR_DECL (__fprintf_chk)
|
||||
__LDBL_REDIR_DECL (__printf_chk)
|
||||
__LDBL_REDIR_DECL (__vfprintf_chk)
|
||||
__LDBL_REDIR_DECL (__vprintf_chk)
|
||||
__LDBL_REDIR2_DECL (fprintf_chk)
|
||||
__LDBL_REDIR2_DECL (printf_chk)
|
||||
__LDBL_REDIR2_DECL (vfprintf_chk)
|
||||
__LDBL_REDIR2_DECL (vprintf_chk)
|
||||
# ifdef __USE_XOPEN2K8
|
||||
__LDBL_REDIR_DECL (__dprintf_chk)
|
||||
__LDBL_REDIR_DECL (__vdprintf_chk)
|
||||
__LDBL_REDIR2_DECL (dprintf_chk)
|
||||
__LDBL_REDIR2_DECL (vdprintf_chk)
|
||||
# endif
|
||||
# ifdef __USE_GNU
|
||||
__LDBL_REDIR_DECL (__asprintf_chk)
|
||||
__LDBL_REDIR_DECL (__vasprintf_chk)
|
||||
__LDBL_REDIR_DECL (__obstack_printf_chk)
|
||||
__LDBL_REDIR_DECL (__obstack_vprintf_chk)
|
||||
__LDBL_REDIR2_DECL (asprintf_chk)
|
||||
__LDBL_REDIR2_DECL (vasprintf_chk)
|
||||
__LDBL_REDIR2_DECL (obstack_printf_chk)
|
||||
__LDBL_REDIR2_DECL (obstack_vprintf_chk)
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
@ -400,9 +400,12 @@ extern int sscanf (const char *__restrict __s,
|
||||
const char *__restrict __format, ...) __THROW;
|
||||
|
||||
/* For historical reasons, the C99-compliant versions of the scanf
|
||||
functions are at alternative names. When __LDBL_COMPAT is in
|
||||
effect, this is handled in bits/stdio-ldbl.h. */
|
||||
#if !__GLIBC_USE (DEPRECATED_SCANF) && !defined __LDBL_COMPAT
|
||||
functions are at alternative names. When __LDBL_COMPAT or
|
||||
__LONG_DOUBLE_USES_FLOAT128 are in effect, this is handled in
|
||||
bits/stdio-ldbl.h. */
|
||||
#include <bits/floatn.h>
|
||||
#if !__GLIBC_USE (DEPRECATED_SCANF) && !defined __LDBL_COMPAT \
|
||||
&& __LONG_DOUBLE_USES_FLOAT128 == 0
|
||||
# ifdef __REDIRECT
|
||||
extern int __REDIRECT (fscanf, (FILE *__restrict __stream,
|
||||
const char *__restrict __format, ...),
|
||||
@ -447,7 +450,8 @@ extern int vsscanf (const char *__restrict __s,
|
||||
|
||||
/* Same redirection as above for the v*scanf family. */
|
||||
# if !__GLIBC_USE (DEPRECATED_SCANF)
|
||||
# if defined __REDIRECT && !defined __LDBL_COMPAT
|
||||
# if defined __REDIRECT && !defined __LDBL_COMPAT \
|
||||
&& __LONG_DOUBLE_USES_FLOAT128 == 0
|
||||
extern int __REDIRECT (vfscanf,
|
||||
(FILE *__restrict __s,
|
||||
const char *__restrict __format, __gnuc_va_list __arg),
|
||||
@ -866,7 +870,9 @@ extern int __overflow (FILE *, int);
|
||||
#if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function
|
||||
# include <bits/stdio2.h>
|
||||
#endif
|
||||
#ifdef __LDBL_COMPAT
|
||||
|
||||
#include <bits/floatn.h>
|
||||
#if defined __LDBL_COMPAT || __LONG_DOUBLE_USES_FLOAT128 == 1
|
||||
# include <bits/stdio-ldbl.h>
|
||||
#endif
|
||||
|
||||
|
@ -27,9 +27,9 @@ __LDBL_REDIR_DECL (vsyslog)
|
||||
#endif
|
||||
|
||||
#if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function
|
||||
__LDBL_REDIR_DECL (__syslog_chk)
|
||||
__LDBL_REDIR2_DECL (syslog_chk)
|
||||
|
||||
# ifdef __USE_MISC
|
||||
__LDBL_REDIR_DECL (__vsyslog_chk)
|
||||
__LDBL_REDIR2_DECL (vsyslog_chk)
|
||||
# endif
|
||||
#endif
|
||||
|
@ -52,7 +52,8 @@ extern void errx (int __status, const char *__format, ...)
|
||||
extern void verrx (int __status, const char *, __gnuc_va_list)
|
||||
__attribute__ ((__noreturn__, __format__ (__printf__, 2, 0)));
|
||||
|
||||
#ifdef __LDBL_COMPAT
|
||||
#include <bits/floatn.h>
|
||||
#if defined __LDBL_COMPAT || __LONG_DOUBLE_USES_FLOAT128 == 1
|
||||
# include <bits/err-ldbl.h>
|
||||
#endif
|
||||
|
||||
|
@ -47,11 +47,13 @@ extern unsigned int error_message_count;
|
||||
variable controls whether this mode is selected or not. */
|
||||
extern int error_one_per_line;
|
||||
|
||||
#ifdef __LDBL_COMPAT
|
||||
#include <bits/floatn.h>
|
||||
#if defined __LDBL_COMPAT || __LONG_DOUBLE_USES_FLOAT128 == 1
|
||||
# include <bits/error-ldbl.h>
|
||||
#else
|
||||
/* Do not inline error and error_at_line when long double has the same
|
||||
size of double, because that would invalidate the redirections to the
|
||||
size of double, nor when long double reuses the float128
|
||||
implementation, because that would invalidate the redirections to the
|
||||
compatibility functions. */
|
||||
# if defined __extern_always_inline && defined __va_arg_pack
|
||||
# include <bits/error.h>
|
||||
|
@ -452,7 +452,37 @@
|
||||
#include <bits/wordsize.h>
|
||||
#include <bits/long-double.h>
|
||||
|
||||
#if defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH
|
||||
#if __LONG_DOUBLE_USES_FLOAT128 == 1
|
||||
# ifdef __REDIRECT
|
||||
|
||||
/* Alias name defined automatically. */
|
||||
# define __LDBL_REDIR(name, proto) ... unused__ldbl_redir
|
||||
# define __LDBL_REDIR_DECL(name) \
|
||||
extern __typeof (name) name __asm (__ASMNAME ("__" #name "ieee128"));
|
||||
|
||||
/* Alias name defined automatically, with leading underscores. */
|
||||
# define __LDBL_REDIR2_DECL(name) \
|
||||
extern __typeof (__##name) __##name \
|
||||
__asm (__ASMNAME ("__" #name "ieee128"));
|
||||
|
||||
/* Alias name defined manually. */
|
||||
# define __LDBL_REDIR1(name, proto, alias) ... unused__ldbl_redir1
|
||||
# define __LDBL_REDIR1_DECL(name, alias) \
|
||||
extern __typeof (name) name __asm (__ASMNAME (#alias));
|
||||
|
||||
# define __LDBL_REDIR1_NTH(name, proto, alias) \
|
||||
__REDIRECT_NTH (name, proto, alias)
|
||||
# define __REDIRECT_NTH_LDBL(name, proto, alias) \
|
||||
__LDBL_REDIR1_NTH (name, proto, __##alias##ieee128)
|
||||
|
||||
/* Unused. */
|
||||
# define __REDIRECT_LDBL(name, proto, alias) ... unused__redirect_ldbl
|
||||
# define __LDBL_REDIR_NTH(name, proto) ... unused__ldbl_redir_nth
|
||||
|
||||
# else
|
||||
_Static_assert (0, "IEEE 128-bits long double requires redirection on this platform");
|
||||
# endif
|
||||
#elif defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH
|
||||
# define __LDBL_COMPAT 1
|
||||
# ifdef __REDIRECT
|
||||
# define __LDBL_REDIR1(name, proto, alias) __REDIRECT (name, proto, alias)
|
||||
@ -461,6 +491,8 @@
|
||||
# define __LDBL_REDIR1_NTH(name, proto, alias) __REDIRECT_NTH (name, proto, alias)
|
||||
# define __LDBL_REDIR_NTH(name, proto) \
|
||||
__LDBL_REDIR1_NTH (name, proto, __nldbl_##name)
|
||||
# define __LDBL_REDIR2_DECL(name) \
|
||||
extern __typeof (__##name) __##name __asm (__ASMNAME ("__nldbl___" #name));
|
||||
# define __LDBL_REDIR1_DECL(name, alias) \
|
||||
extern __typeof (name) name __asm (__ASMNAME (#alias));
|
||||
# define __LDBL_REDIR_DECL(name) \
|
||||
@ -471,11 +503,13 @@
|
||||
__LDBL_REDIR1_NTH (name, proto, __nldbl_##alias)
|
||||
# endif
|
||||
#endif
|
||||
#if !defined __LDBL_COMPAT || !defined __REDIRECT
|
||||
#if (!defined __LDBL_COMPAT && __LONG_DOUBLE_USES_FLOAT128 == 0) \
|
||||
|| !defined __REDIRECT
|
||||
# define __LDBL_REDIR1(name, proto, alias) name proto
|
||||
# define __LDBL_REDIR(name, proto) name proto
|
||||
# define __LDBL_REDIR1_NTH(name, proto, alias) name proto __THROW
|
||||
# define __LDBL_REDIR_NTH(name, proto) name proto __THROW
|
||||
# define __LDBL_REDIR2_DECL(name)
|
||||
# define __LDBL_REDIR_DECL(name)
|
||||
# ifdef __REDIRECT
|
||||
# define __REDIRECT_LDBL(name, proto, alias) __REDIRECT (name, proto, alias)
|
||||
|
@ -206,7 +206,9 @@ extern void vsyslog (int __pri, const char *__fmt, __gnuc_va_list __ap)
|
||||
#if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function
|
||||
# include <bits/syslog.h>
|
||||
#endif
|
||||
#ifdef __LDBL_COMPAT
|
||||
|
||||
#include <bits/floatn.h>
|
||||
#if defined __LDBL_COMPAT || __LONG_DOUBLE_USES_FLOAT128 == 1
|
||||
# include <bits/syslog-ldbl.h>
|
||||
#endif
|
||||
|
||||
|
@ -182,7 +182,8 @@ extern int printf_size_info (const struct printf_info *__restrict
|
||||
__info, size_t __n, int *__restrict __argtypes)
|
||||
__THROW;
|
||||
|
||||
#ifdef __LDBL_COMPAT
|
||||
#include <bits/floatn.h>
|
||||
#if defined __LDBL_COMPAT || __LONG_DOUBLE_USES_FLOAT128 == 1
|
||||
# include <bits/printf-ldbl.h>
|
||||
#endif
|
||||
|
||||
|
@ -21,21 +21,43 @@
|
||||
#endif
|
||||
|
||||
#ifdef __USE_ISOC99
|
||||
# ifdef __LDBL_COMPAT
|
||||
__LDBL_REDIR1_DECL (strtold, strtod)
|
||||
# else
|
||||
__LDBL_REDIR1_DECL (strtold, __strtoieee128)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef __USE_GNU
|
||||
# ifdef __LDBL_COMPAT
|
||||
__LDBL_REDIR1_DECL (strtold_l, strtod_l)
|
||||
# else
|
||||
__LDBL_REDIR1_DECL (strtold_l, __strtoieee128_l)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||
# ifdef __LDBL_COMPAT
|
||||
__LDBL_REDIR1_DECL (strfroml, strfromd)
|
||||
# else
|
||||
__LDBL_REDIR1_DECL (strfroml, __strfromieee128)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef __USE_MISC
|
||||
# if defined __LDBL_COMPAT
|
||||
__LDBL_REDIR1_DECL (qecvt, ecvt)
|
||||
__LDBL_REDIR1_DECL (qfcvt, fcvt)
|
||||
__LDBL_REDIR1_DECL (qgcvt, gcvt)
|
||||
__LDBL_REDIR1_DECL (qecvt_r, ecvt_r)
|
||||
__LDBL_REDIR1_DECL (qfcvt_r, fcvt_r)
|
||||
# elif __LONG_DOUBLE_USES_FLOAT128 == 1
|
||||
__LDBL_REDIR1_DECL (qecvt, __qecvtieee128)
|
||||
__LDBL_REDIR1_DECL (qfcvt, __qfcvtieee128)
|
||||
__LDBL_REDIR1_DECL (qgcvt, __qgcvtieee128)
|
||||
__LDBL_REDIR1_DECL (qecvt_r, __qecvtieee128_r)
|
||||
__LDBL_REDIR1_DECL (qfcvt_r, __qfcvtieee128_r)
|
||||
# else
|
||||
# error bits/stdlib-ldbl.h included when no ldbl redirections are required.
|
||||
# endif
|
||||
#endif
|
||||
|
@ -50,7 +50,8 @@ extern ssize_t strfmon_l (char *__restrict __s, size_t __maxsize,
|
||||
__THROW __attribute_format_strfmon__ (4, 5);
|
||||
#endif
|
||||
|
||||
#ifdef __LDBL_COMPAT
|
||||
#include <bits/floatn.h>
|
||||
#if defined __LDBL_COMPAT || __LONG_DOUBLE_USES_FLOAT128 == 1
|
||||
# include <bits/monetary-ldbl.h>
|
||||
#endif
|
||||
|
||||
|
@ -1016,7 +1016,9 @@ extern int ttyslot (void) __THROW;
|
||||
#if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function
|
||||
# include <bits/stdlib.h>
|
||||
#endif
|
||||
#ifdef __LDBL_COMPAT
|
||||
|
||||
#include <bits/floatn.h>
|
||||
#if defined __LDBL_COMPAT || __LONG_DOUBLE_USES_FLOAT128 == 1
|
||||
# include <bits/stdlib-ldbl.h>
|
||||
#endif
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
# On PowerPC we use the IBM extended long double format.
|
||||
ieee754/ldbl-128ibm-compat
|
||||
ieee754/ldbl-128ibm
|
||||
ieee754/ldbl-opt
|
||||
ieee754/dbl-64
|
||||
|
@ -0,0 +1,8 @@
|
||||
/* ABI version for long double switch to IEEE 128-bit floating point..
|
||||
This is used by the Versions and math_ldbl_opt.h files in
|
||||
sysdeps/ieee754/ldbl-128ibm-compat/. It gives the ABI version where
|
||||
long double == ibm128 was replaced with long double == _Float128
|
||||
for libm *l functions and libc functions using long double. */
|
||||
|
||||
#define LDBL_IBM128_VERSION GLIBC_2.31
|
||||
#define LDBL_IBM128_COMPAT_VERSION GLIBC_2_31
|
@ -2247,3 +2247,96 @@ GLIBC_2.30 getdents64 F
|
||||
GLIBC_2.30 gettid F
|
||||
GLIBC_2.30 tgkill F
|
||||
GLIBC_2.30 twalk_r F
|
||||
GLIBC_2.31 __argp_errorieee128 F
|
||||
GLIBC_2.31 __argp_failureieee128 F
|
||||
GLIBC_2.31 __asprintf_chkieee128 F
|
||||
GLIBC_2.31 __asprintfieee128 F
|
||||
GLIBC_2.31 __dprintf_chkieee128 F
|
||||
GLIBC_2.31 __dprintfieee128 F
|
||||
GLIBC_2.31 __errieee128 F
|
||||
GLIBC_2.31 __error_at_lineieee128 F
|
||||
GLIBC_2.31 __errorieee128 F
|
||||
GLIBC_2.31 __errxieee128 F
|
||||
GLIBC_2.31 __fprintf_chkieee128 F
|
||||
GLIBC_2.31 __fprintfieee128 F
|
||||
GLIBC_2.31 __fscanfieee128 F
|
||||
GLIBC_2.31 __fwprintf_chkieee128 F
|
||||
GLIBC_2.31 __fwprintfieee128 F
|
||||
GLIBC_2.31 __fwscanfieee128 F
|
||||
GLIBC_2.31 __isoc99_fscanfieee128 F
|
||||
GLIBC_2.31 __isoc99_fwscanfieee128 F
|
||||
GLIBC_2.31 __isoc99_scanfieee128 F
|
||||
GLIBC_2.31 __isoc99_sscanfieee128 F
|
||||
GLIBC_2.31 __isoc99_swscanfieee128 F
|
||||
GLIBC_2.31 __isoc99_vfscanfieee128 F
|
||||
GLIBC_2.31 __isoc99_vfwscanfieee128 F
|
||||
GLIBC_2.31 __isoc99_vscanfieee128 F
|
||||
GLIBC_2.31 __isoc99_vsscanfieee128 F
|
||||
GLIBC_2.31 __isoc99_vswscanfieee128 F
|
||||
GLIBC_2.31 __isoc99_vwscanfieee128 F
|
||||
GLIBC_2.31 __isoc99_wscanfieee128 F
|
||||
GLIBC_2.31 __obstack_printf_chkieee128 F
|
||||
GLIBC_2.31 __obstack_printfieee128 F
|
||||
GLIBC_2.31 __obstack_vprintf_chkieee128 F
|
||||
GLIBC_2.31 __obstack_vprintfieee128 F
|
||||
GLIBC_2.31 __printf_chkieee128 F
|
||||
GLIBC_2.31 __printf_sizeieee128 F
|
||||
GLIBC_2.31 __printfieee128 F
|
||||
GLIBC_2.31 __qecvtieee128 F
|
||||
GLIBC_2.31 __qecvtieee128_r F
|
||||
GLIBC_2.31 __qfcvtieee128 F
|
||||
GLIBC_2.31 __qfcvtieee128_r F
|
||||
GLIBC_2.31 __qgcvtieee128 F
|
||||
GLIBC_2.31 __scanfieee128 F
|
||||
GLIBC_2.31 __snprintf_chkieee128 F
|
||||
GLIBC_2.31 __snprintfieee128 F
|
||||
GLIBC_2.31 __sprintf_chkieee128 F
|
||||
GLIBC_2.31 __sprintfieee128 F
|
||||
GLIBC_2.31 __sscanfieee128 F
|
||||
GLIBC_2.31 __strfmon_lieee128 F
|
||||
GLIBC_2.31 __strfmonieee128 F
|
||||
GLIBC_2.31 __strfromieee128 F
|
||||
GLIBC_2.31 __strtoieee128 F
|
||||
GLIBC_2.31 __strtoieee128_l F
|
||||
GLIBC_2.31 __swprintf_chkieee128 F
|
||||
GLIBC_2.31 __swprintfieee128 F
|
||||
GLIBC_2.31 __swscanfieee128 F
|
||||
GLIBC_2.31 __syslog_chkieee128 F
|
||||
GLIBC_2.31 __syslogieee128 F
|
||||
GLIBC_2.31 __vasprintf_chkieee128 F
|
||||
GLIBC_2.31 __vasprintfieee128 F
|
||||
GLIBC_2.31 __vdprintf_chkieee128 F
|
||||
GLIBC_2.31 __vdprintfieee128 F
|
||||
GLIBC_2.31 __verrieee128 F
|
||||
GLIBC_2.31 __verrxieee128 F
|
||||
GLIBC_2.31 __vfprintf_chkieee128 F
|
||||
GLIBC_2.31 __vfprintfieee128 F
|
||||
GLIBC_2.31 __vfscanfieee128 F
|
||||
GLIBC_2.31 __vfwprintf_chkieee128 F
|
||||
GLIBC_2.31 __vfwprintfieee128 F
|
||||
GLIBC_2.31 __vfwscanfieee128 F
|
||||
GLIBC_2.31 __vprintf_chkieee128 F
|
||||
GLIBC_2.31 __vprintfieee128 F
|
||||
GLIBC_2.31 __vscanfieee128 F
|
||||
GLIBC_2.31 __vsnprintf_chkieee128 F
|
||||
GLIBC_2.31 __vsnprintfieee128 F
|
||||
GLIBC_2.31 __vsprintf_chkieee128 F
|
||||
GLIBC_2.31 __vsprintfieee128 F
|
||||
GLIBC_2.31 __vsscanfieee128 F
|
||||
GLIBC_2.31 __vswprintf_chkieee128 F
|
||||
GLIBC_2.31 __vswprintfieee128 F
|
||||
GLIBC_2.31 __vswscanfieee128 F
|
||||
GLIBC_2.31 __vsyslog_chkieee128 F
|
||||
GLIBC_2.31 __vsyslogieee128 F
|
||||
GLIBC_2.31 __vwarnieee128 F
|
||||
GLIBC_2.31 __vwarnxieee128 F
|
||||
GLIBC_2.31 __vwprintf_chkieee128 F
|
||||
GLIBC_2.31 __vwprintfieee128 F
|
||||
GLIBC_2.31 __vwscanfieee128 F
|
||||
GLIBC_2.31 __warnieee128 F
|
||||
GLIBC_2.31 __warnxieee128 F
|
||||
GLIBC_2.31 __wcstoieee128 F
|
||||
GLIBC_2.31 __wcstoieee128_l F
|
||||
GLIBC_2.31 __wprintf_chkieee128 F
|
||||
GLIBC_2.31 __wprintfieee128 F
|
||||
GLIBC_2.31 __wscanfieee128 F
|
||||
|
@ -1081,6 +1081,110 @@ GLIBC_2.29 exp2 F
|
||||
GLIBC_2.29 log F
|
||||
GLIBC_2.29 log2 F
|
||||
GLIBC_2.29 pow F
|
||||
GLIBC_2.31 __acoshieee128 F
|
||||
GLIBC_2.31 __acosieee128 F
|
||||
GLIBC_2.31 __asinhieee128 F
|
||||
GLIBC_2.31 __asinieee128 F
|
||||
GLIBC_2.31 __atan2ieee128 F
|
||||
GLIBC_2.31 __atanhieee128 F
|
||||
GLIBC_2.31 __atanieee128 F
|
||||
GLIBC_2.31 __cabsieee128 F
|
||||
GLIBC_2.31 __cacoshieee128 F
|
||||
GLIBC_2.31 __cacosieee128 F
|
||||
GLIBC_2.31 __canonicalizeieee128 F
|
||||
GLIBC_2.31 __cargieee128 F
|
||||
GLIBC_2.31 __casinhieee128 F
|
||||
GLIBC_2.31 __casinieee128 F
|
||||
GLIBC_2.31 __catanhieee128 F
|
||||
GLIBC_2.31 __catanieee128 F
|
||||
GLIBC_2.31 __cbrtieee128 F
|
||||
GLIBC_2.31 __ccoshieee128 F
|
||||
GLIBC_2.31 __ccosieee128 F
|
||||
GLIBC_2.31 __ceilieee128 F
|
||||
GLIBC_2.31 __cexpieee128 F
|
||||
GLIBC_2.31 __cimagieee128 F
|
||||
GLIBC_2.31 __clog10ieee128 F
|
||||
GLIBC_2.31 __clogieee128 F
|
||||
GLIBC_2.31 __conjieee128 F
|
||||
GLIBC_2.31 __copysignieee128 F
|
||||
GLIBC_2.31 __coshieee128 F
|
||||
GLIBC_2.31 __cosieee128 F
|
||||
GLIBC_2.31 __cpowieee128 F
|
||||
GLIBC_2.31 __cprojieee128 F
|
||||
GLIBC_2.31 __crealieee128 F
|
||||
GLIBC_2.31 __csinhieee128 F
|
||||
GLIBC_2.31 __csinieee128 F
|
||||
GLIBC_2.31 __csqrtieee128 F
|
||||
GLIBC_2.31 __ctanhieee128 F
|
||||
GLIBC_2.31 __ctanieee128 F
|
||||
GLIBC_2.31 __erfcieee128 F
|
||||
GLIBC_2.31 __erfieee128 F
|
||||
GLIBC_2.31 __exp10ieee128 F
|
||||
GLIBC_2.31 __exp2ieee128 F
|
||||
GLIBC_2.31 __expieee128 F
|
||||
GLIBC_2.31 __expm1ieee128 F
|
||||
GLIBC_2.31 __fabsieee128 F
|
||||
GLIBC_2.31 __fdimieee128 F
|
||||
GLIBC_2.31 __floorieee128 F
|
||||
GLIBC_2.31 __fmaieee128 F
|
||||
GLIBC_2.31 __fmaxieee128 F
|
||||
GLIBC_2.31 __fmaxmagieee128 F
|
||||
GLIBC_2.31 __fminieee128 F
|
||||
GLIBC_2.31 __fminmagieee128 F
|
||||
GLIBC_2.31 __fmodieee128 F
|
||||
GLIBC_2.31 __frexpieee128 F
|
||||
GLIBC_2.31 __fromfpieee128 F
|
||||
GLIBC_2.31 __fromfpxieee128 F
|
||||
GLIBC_2.31 __getpayloadieee128 F
|
||||
GLIBC_2.31 __hypotieee128 F
|
||||
GLIBC_2.31 __ilogbieee128 F
|
||||
GLIBC_2.31 __j0ieee128 F
|
||||
GLIBC_2.31 __j1ieee128 F
|
||||
GLIBC_2.31 __jnieee128 F
|
||||
GLIBC_2.31 __ldexpieee128 F
|
||||
GLIBC_2.31 __lgammaieee128 F
|
||||
GLIBC_2.31 __lgammaieee128_r F
|
||||
GLIBC_2.31 __llogbieee128 F
|
||||
GLIBC_2.31 __llrintieee128 F
|
||||
GLIBC_2.31 __llroundieee128 F
|
||||
GLIBC_2.31 __log10ieee128 F
|
||||
GLIBC_2.31 __log1pieee128 F
|
||||
GLIBC_2.31 __log2ieee128 F
|
||||
GLIBC_2.31 __logbieee128 F
|
||||
GLIBC_2.31 __logieee128 F
|
||||
GLIBC_2.31 __lrintieee128 F
|
||||
GLIBC_2.31 __lroundieee128 F
|
||||
GLIBC_2.31 __modfieee128 F
|
||||
GLIBC_2.31 __nanieee128 F
|
||||
GLIBC_2.31 __nearbyintieee128 F
|
||||
GLIBC_2.31 __nextafterieee128 F
|
||||
GLIBC_2.31 __nextdownieee128 F
|
||||
GLIBC_2.31 __nextupieee128 F
|
||||
GLIBC_2.31 __powieee128 F
|
||||
GLIBC_2.31 __remainderieee128 F
|
||||
GLIBC_2.31 __remquoieee128 F
|
||||
GLIBC_2.31 __rintieee128 F
|
||||
GLIBC_2.31 __roundevenieee128 F
|
||||
GLIBC_2.31 __roundieee128 F
|
||||
GLIBC_2.31 __scalblnieee128 F
|
||||
GLIBC_2.31 __scalbnieee128 F
|
||||
GLIBC_2.31 __setpayloadieee128 F
|
||||
GLIBC_2.31 __setpayloadsigieee128 F
|
||||
GLIBC_2.31 __sincosieee128 F
|
||||
GLIBC_2.31 __sinhieee128 F
|
||||
GLIBC_2.31 __sinieee128 F
|
||||
GLIBC_2.31 __sqrtieee128 F
|
||||
GLIBC_2.31 __tanhieee128 F
|
||||
GLIBC_2.31 __tanieee128 F
|
||||
GLIBC_2.31 __tgammaieee128 F
|
||||
GLIBC_2.31 __totalorderieee128 F
|
||||
GLIBC_2.31 __totalordermagieee128 F
|
||||
GLIBC_2.31 __truncieee128 F
|
||||
GLIBC_2.31 __ufromfpieee128 F
|
||||
GLIBC_2.31 __ufromfpxieee128 F
|
||||
GLIBC_2.31 __y0ieee128 F
|
||||
GLIBC_2.31 __y1ieee128 F
|
||||
GLIBC_2.31 __ynieee128 F
|
||||
GLIBC_2.31 totalorder F
|
||||
GLIBC_2.31 totalorderf F
|
||||
GLIBC_2.31 totalorderf128 F
|
||||
|
@ -28,9 +28,17 @@ __LDBL_REDIR_DECL (vfwprintf);
|
||||
__LDBL_REDIR_DECL (vwprintf);
|
||||
__LDBL_REDIR_DECL (vswprintf);
|
||||
# if !__GLIBC_USE (DEPRECATED_SCANF)
|
||||
# if defined __LDBL_COMPAT
|
||||
__LDBL_REDIR1_DECL (fwscanf, __nldbl___isoc99_fwscanf)
|
||||
__LDBL_REDIR1_DECL (wscanf, __nldbl___isoc99_wscanf)
|
||||
__LDBL_REDIR1_DECL (swscanf, __nldbl___isoc99_swscanf)
|
||||
# elif __LONG_DOUBLE_USES_FLOAT128 == 1
|
||||
__LDBL_REDIR1_DECL (fwscanf, __isoc99_fwscanfieee128)
|
||||
__LDBL_REDIR1_DECL (wscanf, __isoc99_wscanfieee128)
|
||||
__LDBL_REDIR1_DECL (swscanf, __isoc99_swscanfieee128)
|
||||
# else
|
||||
# error bits/stdlib-ldbl.h included when no ldbl redirections are required.
|
||||
# endif
|
||||
# else
|
||||
__LDBL_REDIR_DECL (fwscanf);
|
||||
__LDBL_REDIR_DECL (wscanf);
|
||||
@ -39,11 +47,23 @@ __LDBL_REDIR_DECL (swscanf);
|
||||
#endif
|
||||
|
||||
#ifdef __USE_ISOC99
|
||||
# ifdef __LDBL_COMPAT
|
||||
__LDBL_REDIR1_DECL (wcstold, wcstod);
|
||||
# else
|
||||
__LDBL_REDIR1_DECL (wcstold, __wcstoieee128)
|
||||
# endif
|
||||
# if !__GLIBC_USE (DEPRECATED_SCANF)
|
||||
# if defined __LDBL_COMPAT
|
||||
__LDBL_REDIR1_DECL (vfwscanf, __nldbl___isoc99_vfwscanf)
|
||||
__LDBL_REDIR1_DECL (vwscanf, __nldbl___isoc99_vwscanf)
|
||||
__LDBL_REDIR1_DECL (vswscanf, __nldbl___isoc99_vswscanf)
|
||||
# elif __LONG_DOUBLE_USES_FLOAT128 == 1
|
||||
__LDBL_REDIR1_DECL (vfwscanf, __isoc99_vfwscanfieee128)
|
||||
__LDBL_REDIR1_DECL (vwscanf, __isoc99_vwscanfieee128)
|
||||
__LDBL_REDIR1_DECL (vswscanf, __isoc99_vswscanfieee128)
|
||||
# else
|
||||
# error bits/stdlib-ldbl.h included when no ldbl redirections are required.
|
||||
# endif
|
||||
# else
|
||||
__LDBL_REDIR_DECL (vfwscanf);
|
||||
__LDBL_REDIR_DECL (vwscanf);
|
||||
@ -52,16 +72,20 @@ __LDBL_REDIR_DECL (vswscanf);
|
||||
#endif
|
||||
|
||||
#ifdef __USE_GNU
|
||||
# ifdef __LDBL_COMPAT
|
||||
__LDBL_REDIR1_DECL (wcstold_l, wcstod_l);
|
||||
# else
|
||||
__LDBL_REDIR1_DECL (wcstold_l, __wcstoieee128_l)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function
|
||||
__LDBL_REDIR_DECL (__swprintf_chk)
|
||||
__LDBL_REDIR_DECL (__vswprintf_chk)
|
||||
__LDBL_REDIR2_DECL (swprintf_chk)
|
||||
__LDBL_REDIR2_DECL (vswprintf_chk)
|
||||
# if __USE_FORTIFY_LEVEL > 1
|
||||
__LDBL_REDIR_DECL (__fwprintf_chk)
|
||||
__LDBL_REDIR_DECL (__wprintf_chk)
|
||||
__LDBL_REDIR_DECL (__vfwprintf_chk)
|
||||
__LDBL_REDIR_DECL (__vwprintf_chk)
|
||||
__LDBL_REDIR2_DECL (fwprintf_chk)
|
||||
__LDBL_REDIR2_DECL (wprintf_chk)
|
||||
__LDBL_REDIR2_DECL (vfwprintf_chk)
|
||||
__LDBL_REDIR2_DECL (vwprintf_chk)
|
||||
# endif
|
||||
#endif
|
||||
|
@ -633,9 +633,11 @@ extern int swscanf (const wchar_t *__restrict __s,
|
||||
__THROW /* __attribute__ ((__format__ (__wscanf__, 2, 3))) */;
|
||||
|
||||
/* For historical reasons, the C99-compliant versions of the scanf
|
||||
functions are at alternative names. When __LDBL_COMPAT is in
|
||||
effect, this is handled in bits/wchar-ldbl.h. */
|
||||
#if !__GLIBC_USE (DEPRECATED_SCANF) && !defined __LDBL_COMPAT
|
||||
functions are at alternative names. When __LDBL_COMPAT or
|
||||
__LONG_DOUBLE_USES_FLOAT128 are in effect, this is handled in
|
||||
bits/wchar-ldbl.h. */
|
||||
#if !__GLIBC_USE (DEPRECATED_SCANF) && !defined __LDBL_COMPAT \
|
||||
&& __LONG_DOUBLE_USES_FLOAT128 == 0
|
||||
# ifdef __REDIRECT
|
||||
extern int __REDIRECT (fwscanf, (__FILE *__restrict __stream,
|
||||
const wchar_t *__restrict __format, ...),
|
||||
@ -688,7 +690,8 @@ extern int vswscanf (const wchar_t *__restrict __s,
|
||||
/* Same redirection as above for the v*wscanf family. */
|
||||
# if !__GLIBC_USE (DEPRECATED_SCANF) \
|
||||
&& (!defined __LDBL_COMPAT || !defined __REDIRECT) \
|
||||
&& (defined __STRICT_ANSI__ || defined __USE_XOPEN2K)
|
||||
&& (defined __STRICT_ANSI__ || defined __USE_XOPEN2K) \
|
||||
&& __LONG_DOUBLE_USES_FLOAT128 == 0
|
||||
# ifdef __REDIRECT
|
||||
extern int __REDIRECT (vfwscanf, (__FILE *__restrict __s,
|
||||
const wchar_t *__restrict __format,
|
||||
@ -849,7 +852,8 @@ extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize,
|
||||
# include <bits/wchar2.h>
|
||||
#endif
|
||||
|
||||
#ifdef __LDBL_COMPAT
|
||||
#include <bits/floatn.h>
|
||||
#if defined __LDBL_COMPAT || __LONG_DOUBLE_USES_FLOAT128 == 1
|
||||
# include <bits/wchar-ldbl.h>
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user