2015-01-02 Joseph Myers <joseph@codesourcery.com>
+ [BZ #17748]
+ * include/fenv.h (__fegetround): Declare. Use libm_hidden_proto.
+ * math/fegetround.c (fegetround): Rename to __fegetround and
+ define as weak alias of __fegetround. Use libm_hidden_weak.
+ * sysdeps/aarch64/fpu/fegetround.c (fegetround): Likewise.
+ * sysdeps/alpha/fpu/fegetround.c (fegetround): Likewise.
+ * sysdeps/arm/fegetround.c (fegetround): Likewise.
+ * sysdeps/hppa/fpu/fegetround.c (fegetround): Likewise.
+ * sysdeps/i386/fpu/fegetround.c (fegetround): Likewise.
+ * sysdeps/ia64/fpu/fegetround.c (fegetround): Likewise.
+ * sysdeps/m68k/fpu/fegetround.c (fegetround): Likewise.
+ * sysdeps/mips/fpu/fegetround.c (fegetround): Likewise.
+ * sysdeps/powerpc/fpu/fegetround.c (fegetround): Likewise.
+ Undefine after rather than before function definition; use
+ parentheses around function name in definition.
+ (__fegetround): Also undefine macro after function definition.
+ * sysdeps/powerpc/nofpu/fegetround.c (fegetround): Rename to
+ __fegetround and define as weak alias of __fegetround. Use
+ libm_hidden_weak. Do not undefine as macro.
+ * sysdeps/powerpc/powerpc32/e500/nofpu/fegetround.c (fegetround):
+ Likewise.
+ * sysdeps/s390/fpu/fegetround.c (fegetround): Rename to
+ __fegetround and define as weak alias of __fegetround. Use
+ libm_hidden_weak.
+ * sysdeps/sh/sh4/fpu/fegetround.c (fegetround): Likewise.
+ * sysdeps/sparc/fpu/fegetround.c (fegetround): Likewise.
+ * sysdeps/tile/math_private.h (__fegetround): New inline function.
+ * sysdeps/x86_64/fpu/fegetround.c (fegetround): Rename to
+ __fegetround and define as weak alias of __fegetround. Use
+ libm_hidden_weak.
+ * sysdeps/ieee754/dbl-64/e_sqrt.c (__ieee754_sqrt): Use
+ __fegetround instead of fegetround.
+
[BZ #17782]
* sysdeps/unix/sysv/linux/mips/bits/termios.h (TIOCSER_TEMT):
Condition macro definition on [__USE_MISC].
extern int __fegetenv (fenv_t *__envp);
extern int __fesetenv (const fenv_t *__envp);
extern int __feupdateenv (const fenv_t *__envp);
+extern __typeof (fegetround) __fegetround;
libm_hidden_proto (feraiseexcept)
libm_hidden_proto (__feraiseexcept)
libm_hidden_proto (fegetenv)
libm_hidden_proto (__fegetenv)
libm_hidden_proto (fegetround)
+libm_hidden_proto (__fegetround)
libm_hidden_proto (fesetenv)
libm_hidden_proto (fesetround)
libm_hidden_proto (feholdexcept)
#include <fenv.h>
int
-fegetround (void)
+__fegetround (void)
{
#ifdef FE_TONEAREST
return FE_TONEAREST;
return 0;
#endif
}
-libm_hidden_def (fegetround)
+libm_hidden_def (__fegetround)
+weak_alias (__fegetround, fegetround)
+libm_hidden_weak (fegetround)
stub_warning (fegetround)
#include <get-rounding-mode.h>
int
-fegetround (void)
+__fegetround (void)
{
return get_rounding_mode ();
}
-libm_hidden_def (fegetround)
+libm_hidden_def (__fegetround)
+weak_alias (__fegetround, fegetround)
+libm_hidden_weak (fegetround)
#include <fenv_libc.h>
int
-fegetround (void)
+__fegetround (void)
{
unsigned long fpcr;
return (fpcr >> FPCR_ROUND_SHIFT) & 3;
}
-libm_hidden_def (fegetround)
+libm_hidden_def (__fegetround)
+weak_alias (__fegetround, fegetround)
+libm_hidden_weak (fegetround)
int
-fegetround (void)
+__fegetround (void)
{
return get_rounding_mode ();
}
-libm_hidden_def (fegetround)
+libm_hidden_def (__fegetround)
+weak_alias (__fegetround, fegetround)
+libm_hidden_weak (fegetround)
#include <get-rounding-mode.h>
int
-fegetround (void)
+__fegetround (void)
{
return get_rounding_mode ();
}
-libm_hidden_def (fegetround)
+libm_hidden_def (__fegetround)
+weak_alias (__fegetround, fegetround)
+libm_hidden_weak (fegetround)
#include <fenv.h>
int
-fegetround (void)
+__fegetround (void)
{
int cw;
return cw & 0xc00;
}
-libm_hidden_def (fegetround)
+libm_hidden_def (__fegetround)
+weak_alias (__fegetround, fegetround)
+libm_hidden_weak (fegetround)
#include <get-rounding-mode.h>
int
-fegetround (void)
+__fegetround (void)
{
return get_rounding_mode ();
}
-libm_hidden_def (fegetround)
+libm_hidden_def (__fegetround)
+weak_alias (__fegetround, fegetround)
+libm_hidden_weak (fegetround)
/*----------------- 2^-1022 <= | x |< 2^1024 -----------------*/
if (k > 0x000fffff && k < 0x7ff00000)
{
- int rm = fegetround ();
+ int rm = __fegetround ();
fenv_t env;
libc_feholdexcept_setround (&env, FE_TONEAREST);
double ret;
#include <fenv.h>
int
-fegetround (void)
+__fegetround (void)
{
int fpcr;
return fpcr & FE_UPWARD;
}
-libm_hidden_def (fegetround)
+libm_hidden_def (__fegetround)
+weak_alias (__fegetround, fegetround)
+libm_hidden_weak (fegetround)
#include <fpu_control.h>
int
-fegetround (void)
+__fegetround (void)
{
int cw;
return cw & _FPU_RC_MASK;
}
-libm_hidden_def (fegetround)
+libm_hidden_def (__fegetround)
+weak_alias (__fegetround, fegetround)
+libm_hidden_weak (fegetround)
#include <fenv_libc.h>
-#undef fegetround
int
-fegetround (void)
+(__fegetround) (void)
{
return __fegetround();
}
-libm_hidden_def (fegetround)
+#undef fegetround
+#undef __fegetround
+libm_hidden_def (__fegetround)
+weak_alias (__fegetround, fegetround)
+libm_hidden_weak (fegetround)
#include "soft-fp.h"
#include "soft-supp.h"
-#undef fegetround
int
-fegetround (void)
+__fegetround (void)
{
return __sim_round_mode_thread;
}
-libm_hidden_def (fegetround)
+libm_hidden_def (__fegetround)
+weak_alias (__fegetround, fegetround)
+libm_hidden_weak (fegetround)
#include <fenv_libc.h>
-#undef fegetround
int
-fegetround (void)
+__fegetround (void)
{
unsigned long fpescr;
fpescr = fegetenv_register ();
return fpescr & 3;
}
-libm_hidden_def (fegetround)
+libm_hidden_def (__fegetround)
+weak_alias (__fegetround, fegetround)
+libm_hidden_weak (fegetround)
#include <fpu_control.h>
int
-fegetround (void)
+__fegetround (void)
{
fexcept_t cw;
return cw & FPC_RM_MASK;
}
-libm_hidden_def (fegetround)
+libm_hidden_def (__fegetround)
+weak_alias (__fegetround, fegetround)
+libm_hidden_weak (fegetround)
#include <fpu_control.h>
int
-fegetround (void)
+__fegetround (void)
{
fpu_control_t cw;
return cw & 0x1;
}
-libm_hidden_def (fegetround)
+libm_hidden_def (__fegetround)
+weak_alias (__fegetround, fegetround)
+libm_hidden_weak (fegetround)
#include <fenv.h>
int
-fegetround (void)
+__fegetround (void)
{
fenv_t tmp;
return tmp & __FE_ROUND_MASK;
}
-libm_hidden_def (fegetround)
+libm_hidden_def (__fegetround)
+weak_alias (__fegetround, fegetround)
+libm_hidden_weak (fegetround)
extern inline int fesetenv (const fenv_t *__e) { return 0; }
extern inline int feupdateenv (const fenv_t *__e) { return 0; }
extern inline int fegetround (void) { return FE_TONEAREST; }
+extern inline int __fegetround (void) { return FE_TONEAREST; }
extern inline int fesetround (int __d) { return 0; }
#endif
#include <fenv.h>
int
-fegetround (void)
+__fegetround (void)
{
int cw;
/* We only check the x87 FPU unit. The SSE unit should be the same
return cw & 0xc00;
}
-libm_hidden_def (fegetround)
+libm_hidden_def (__fegetround)
+weak_alias (__fegetround, fegetround)
+libm_hidden_weak (fegetround)