2002-04-14 Ulrich Drepper <drepper@redhat.com>
+ * include/math.h: Declare __isinf_internal, __isinfl_internal,
+ __isnan_internal, and __isnanl_internal.
+ * stdio-common/printf_fp.c: Use INTUSE for calls to __isinf, __isinfl,
+ __isnan, and __isnanl.
+ * stdio-common/printf_size.c: Likewise.
+ * sysdeps/generic/printf_fphex.c: Likewise.
+ * sysdeps/i386/fpu/s_isinfl.c: Also define _internal alias.
+ * sysdeps/i386/fpu/s_isnanl.c: Likewise.
+ * sysdeps/ia64/fpu/s_isinf.S: Likewise.
+ * sysdeps/ia64/fpu/s_isnan.S: Likewise.
+ * sysdeps/ieee754/dbl-64/s_isinf.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_isnan.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_isinff.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_isnanf.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_isinfl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_isnanl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_isinfl.c: Likewise.
+ * sysdeps/m68k/s_isinfl.c: Likewise.
+ * sysdeps/m68k/fpu/s_isinf.c: Likewise.
+ * sysdeps/powerpc/fpu/s_isnan.c: Likewise.
+
* include/sys/time.h: Declare __gettimeofday_internal and define
__gettimeofday macro if not NOT_IN_libc.
* sysdeps/generic/gettimeofday.c: Use INTEDEF for __gettimeofday.
extern int __finitel_internal (long double __value)
__attribute__ ((__const__)) attribute_hidden;
+extern int __isinf_internal (double __value)
+ __attribute__ ((__const__)) attribute_hidden;
+extern int __isinfl_internal (long double __value)
+ __attribute__ ((__const__)) attribute_hidden;
+extern int __isnan_internal (double __value)
+ __attribute__ ((__const__)) attribute_hidden;
+extern int __isnanl_internal (long double __value)
+ __attribute__ ((__const__)) attribute_hidden;
+
#if !defined NOT_IN_libc || defined IS_IN_libm
# undef isfinite
# ifdef __NO_LONG_DOUBLE_MATH
extern int __mknod (__const char *__path,
__mode_t __mode, __dev_t __dev);
extern int __fxstat_internal (int __ver, int __fildes,
- struct stat *__stat_buf);
+ struct stat *__stat_buf) attribute_hidden;
extern int __fxstat64_internal (int __ver, int __fildes,
- struct stat64 *__stat_buf) ;
+ struct stat64 *__stat_buf) attribute_hidden;
extern __inline__ int __stat (__const char *__path, struct stat *__statbuf)
{
return __xstat (_STAT_VER, __path, __statbuf);
extern int __gettimeofday (struct timeval *__tv,
struct timezone *__tz);
extern int __gettimeofday_internal (struct timeval *__tv,
- struct timezone *__tz);
+ struct timezone *__tz) attribute_hidden;
extern int __settimeofday (__const struct timeval *__tv,
__const struct timezone *__tz);
extern int __adjtime (__const struct timeval *__delta,
char *__canonicalize_directory_name_internal (__const char *__thisdir,
char *__buf,
- size_t __size);
+ size_t __size) attribute_hidden;
extern int __dup (int __fd);
extern int __dup2 (int __fd, int __fd2);
extern long int __fpathconf (int __fd, int __name);
extern long int __sysconf (int __name);
extern __pid_t __getpid (void);
-extern __pid_t __getpid_internal (void);
+extern __pid_t __getpid_internal (void) attribute_hidden;
extern __pid_t __getppid (void);
extern __pid_t __setsid (void);
extern __uid_t __getuid (void);
extern __gid_t __getgid (void);
extern __gid_t __getegid (void);
extern int __getgroups (int __size, __gid_t __list[]);
-extern __pid_t __getpgid_internal (__pid_t __pid);
+extern __pid_t __getpgid_internal (__pid_t __pid) attribute_hidden;
extern int __group_member (__gid_t __gid);
extern int __setuid (__uid_t __uid);
extern int __setreuid (__uid_t __ruid, __uid_t __euid);
extern __pid_t __fork (void);
extern __pid_t __fork_internal (void) attribute_hidden;
extern int __getpagesize (void) __attribute__ ((__const__));
-extern int __getpagesize_internal (void) __attribute__ ((__const__));
+extern int __getpagesize_internal (void)
+ __attribute__ ((__const__)) attribute_hidden;
extern int __ftruncate (int __fd, __off_t __length);
extern int __ftruncate64 (int __fd, __off64_t __length);
extern void *__sbrk (intptr_t __delta);
#define MPN_GE(u,v) \
(u##size > v##size || (u##size == v##size && __mpn_cmp (u, v, u##size) >= 0))
-extern int __isinfl (long double), __isnanl (long double);
+extern int __isinfl_internal (long double) attribute_hidden;
+extern int __isnanl_internal (long double) attribute_hidden;
extern mp_size_t __mpn_extract_double (mp_ptr res_ptr, mp_size_t size,
int *expt, int *is_neg,
fpnum.ldbl = *(const long double *) args[0];
/* Check for special values: not a number or infinity. */
- if (__isnanl (fpnum.ldbl))
+ if (INTUSE(__isnanl) (fpnum.ldbl))
{
if (isupper (info->spec))
{
}
is_neg = 0;
}
- else if (__isinfl (fpnum.ldbl))
+ else if (INTUSE(__isinfl) (fpnum.ldbl))
{
if (isupper (info->spec))
{
fpnum.dbl = *(const double *) args[0];
/* Check for special values: not a number or infinity. */
- if (__isnan (fpnum.dbl))
+ if (INTUSE(__isnan) (fpnum.dbl))
{
if (isupper (info->spec))
{
}
is_neg = 0;
}
- else if (__isinf (fpnum.dbl))
+ else if (INTUSE(__isinf) (fpnum.dbl))
{
if (isupper (info->spec))
{
fpnum.ldbl.d = *(const long double *) args[0];
/* Check for special values: not a number or infinity. */
- if (__isnanl (fpnum.ldbl.d))
+ if (INTUSE(__isnanl) (fpnum.ldbl.d))
{
special = "nan";
wspecial = L"nan";
negative = 0;
}
- else if (__isinfl (fpnum.ldbl.d))
+ else if (INTUSE(__isinfl) (fpnum.ldbl.d))
{
special = "inf";
wspecial = L"inf";
fpnum.dbl.d = *(const double *) args[0];
/* Check for special values: not a number or infinity. */
- if (__isnan (fpnum.dbl.d))
+ if (INTUSE(__isnan) (fpnum.dbl.d))
{
special = "nan";
wspecial = L"nan";
negative = 0;
}
- else if (__isinf (fpnum.dbl.d))
+ else if (INTUSE(__isinf) (fpnum.dbl.d))
{
special = "inf";
wspecial = L"inf";
-/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1995, 1996, 1997, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
#include <stddef.h>
#include <sys/stat.h>
+#undef __fxstat
+
/* Get information about the file descriptor FD in BUF. */
int
__fxstat (int vers, int fd, struct stat *buf)
}
stub_warning (fstat)
+INTDEF(__fxstat)
weak_alias (__fxstat, _fxstat)
#include <stub-tag.h>
fpnum.ldbl.d = *(const long double *) args[0];
/* Check for special values: not a number or infinity. */
- if (__isnanl (fpnum.ldbl.d))
+ if (INTUSE(__isnanl) (fpnum.ldbl.d))
{
if (isupper (info->spec))
{
}
else
{
- if (__isinfl (fpnum.ldbl.d))
+ if (INTUSE(__isinfl) (fpnum.ldbl.d))
{
if (isupper (info->spec))
{
fpnum.dbl.d = *(const double *) args[0];
/* Check for special values: not a number or infinity. */
- if (__isnan (fpnum.dbl.d))
+ if (INTUSE(__isnan) (fpnum.dbl.d))
{
if (isupper (info->spec))
{
}
else
{
- if (__isinf (fpnum.dbl.d))
+ if (INTUSE(__isinf) (fpnum.dbl.d))
{
if (isupper (info->spec))
{
se &= 0x8000;
return ~(lx >> 31) & (1 - (se >> 14));
}
+INTDEF(__isinfl)
weak_alias (__isinfl, isinfl)
se = 0xfffe - se;
return (int)((u_int32_t)(se))>>16;
}
+INTDEF(__isnanl)
weak_alias (__isnanl, isnanl)
/* Test for inf/-inf
- Copyright (C) 2000 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jes Sorensen <jes@linuxcare.com>, October 2000.
(p7) mov ret0 = -1
(p8) mov ret0 = 0
br.ret.sptk.many rp
-}
+}
END (__isinf)
+strong_alias (__isinf)
strong_alias (__isinf, __isinff)
+strong_alias (__isinff)
strong_alias (__isinf, __isinfl)
+strong_alias (__isinfl)
weak_alias (__isinf, isinf)
weak_alias (__isinff, isinff)
/* Test for NaN
- Copyright (C) 2000 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jes Sorensen <jes@linuxcare.com>, October 2000.
(p6) mov ret0 = 1
(p7) mov ret0 = 0
br.ret.sptk.many rp
-}
+}
END (__isnan)
+strong_alias (__isnan, __isnan_internal)
strong_alias (__isnan, __isnanf)
+strong_alias (__isnanf, __isnanf_internal)
strong_alias (__isnan, __isnanl)
+strong_alias (__isnanl, __isnanl_internal)
weak_alias (__isnan, isnan)
weak_alias (__isnanf, isnanf)
lx |= -lx;
return ~(lx >> 31) & (hx >> 30);
}
+INTDEF(__isinf)
weak_alias (__isinf, isinf)
#ifdef NO_LONG_DOUBLE
strong_alias (__isinf, __isinfl)
+INTDEF(__isinfl)
weak_alias (__isinf, isinfl)
#endif
hx = 0x7ff00000 - hx;
return (int)(((u_int32_t)hx)>>31);
}
+INTDEF(__isnan)
weak_alias (__isnan, isnan)
#ifdef NO_LONG_DOUBLE
strong_alias (__isnan, __isnanl)
+INTDEF(__isnanl)
weak_alias (__isnan, isnanl)
#endif
t |= -t;
return ~(t >> 31) & (ix >> 30);
}
+INTDEF(__isinff)
weak_alias (__isinff, isinff)
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
ix = 0x7f800000 - ix;
return (int)(((u_int32_t)(ix))>>31);
}
+INTDEF(__isnanf)
weak_alias (__isnanf, isnanf)
lx |= -lx;
return ~(lx >> 63) & (hx >> 62);
}
+INTDEF(__isinfl)
weak_alias (__isinfl, isinfl)
hx = 0x7fff000000000000LL - hx;
return (int)((u_int64_t)hx>>63);
}
+INTDEF(__isnanl)
weak_alias (__isnanl, isnanl)
se &= 0x8000;
return ~(lx >> 31) & (1 - (se >> 14));
}
+INTDEF(__isinfl)
weak_alias (__isinfl, isinfl)
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
return __m81_u(__CONCATX(__,FUNC))(x);
}
+INTDEF(__CONCATX(__,FUNC))
#define weak_aliasx(a,b) weak_alias(a,b)
weak_aliasx (__CONCATX(__,FUNC), FUNC)
-/* Copyright (C) 1991, 1992, 1995, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1992, 1995, 1997, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
return 0;
}
+INTDEF(__isinfl)
weak_alias (__isinfl, isinfl);
/* Return 1 if argument is a NaN, else 0.
- Copyright (C) 1997, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1997, 2000, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
fesetenv_register (savedstate);
return result;
}
+INTDEF(__isnan)
weak_alias (__isnan, isnan)
/* It turns out that the 'double' version will also always work for
#undef __isnanf
#undef isnanf
strong_alias (__isnan, __isnanf)
+INTDEF(__isnanf)
weak_alias (__isnanf, isnanf)
#ifdef NO_LONG_DOUBLE
strong_alias (__isnan, __isnanl)
+INTDEF(__isnanl)
weak_alias (__isnan, isnanl)
#endif