+2014-12-31 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #17748]
+ * include/fenv.h (__fegetenv): Use libm_hidden_proto.
+ * math/fegetenv.c (__fegetenv): Use libm_hidden_def.
+ * sysdeps/aarch64/fpu/fegetenv.c (fegetenv): Rename to __fegetenv
+ and define as weak alias of __fegetenv. Use libm_hidden_weak.
+ * sysdeps/alpha/fpu/fegetenv.c (__fegetenv): Use libm_hidden_def.
+ * sysdeps/arm/fegetenv.c (fegetenv): Rename to __fegetenv and
+ define as weak alias of __fegetenv. Use libm_hidden_weak.
+ * sysdeps/hppa/fpu/fegetenv.c (fegetenv): Likewise.
+ * sysdeps/i386/fpu/fegetenv.c (__fegetenv): Use libm_hidden_def.
+ * sysdeps/ia64/fpu/fegetenv.c (fegetenv): Rename to __fegetenv and
+ define as weak alias of __fegetenv. Use libm_hidden_weak.
+ * sysdeps/m68k/fpu/fegetenv.c (__fegetenv): Use libm_hidden_def.
+ * sysdeps/mips/fpu/fegetenv.c (fegetenv): Rename to __fegetenv and
+ define as weak alias of __fegetenv. Use libm_hidden_weak.
+ * sysdeps/powerpc/fpu/fegetenv.c (__fegetenv): Use
+ libm_hidden_def.
+ * sysdeps/powerpc/nofpu/fegetenv.c (__fegetenv): Likewise.
+ * sysdeps/powerpc/powerpc32/e500/nofpu/fegetenv.c (__fegetenv):
+ Likewise.
+ * sysdeps/s390/fpu/fegetenv.c (fegetenv): Rename to __fegetenv and
+ define as weak alias of __fegetenv. Use libm_hidden_weak.
+ * sysdeps/sh/sh4/fpu/fegetenv.c (fegetenv): Likewise.
+ * sysdeps/sparc/fpu/fegetenv.c (__fegetenv): Use libm_hidden_def.
+ * sysdeps/tile/math_private.h (__fegetenv): New inline function.
+ * sysdeps/x86_64/fpu/fegetenv.c (fegetenv): Rename to __fegetenv
+ and define as weak alias of __fegetenv. Use libm_hidden_weak.
+ * sysdeps/generic/math_private.h (libc_feholdsetround_ctx): Use
+ __fegetenv instead of fegetenv.
+ (libc_feholdsetround_noex_ctx): Likewise.
+
2014-12-31 Matthew Fortune <matthew.fortune@imgtec.com>
* elf/elf.h (PT_MIPS_ABIFLAGS): Define.
libm_hidden_proto (feraiseexcept)
libm_hidden_proto (__feraiseexcept)
libm_hidden_proto (fegetenv)
+libm_hidden_proto (__fegetenv)
libm_hidden_proto (fegetround)
libm_hidden_proto (fesetenv)
libm_hidden_proto (fesetround)
strong_alias (__fegetenv, __old_fegetenv)
compat_symbol (libm, __old_fegetenv, fegetenv, GLIBC_2_1);
#endif
+libm_hidden_def (__fegetenv)
libm_hidden_ver (__fegetenv, fegetenv)
versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2);
#include <fpu_control.h>
int
-fegetenv (fenv_t *envp)
+__fegetenv (fenv_t *envp)
{
fpu_control_t fpcr;
fpu_fpsr_t fpsr;
envp->__fpsr = fpsr;
return 0;
}
-libm_hidden_def (fegetenv)
+libm_hidden_def (__fegetenv)
+weak_alias (__fegetenv, fegetenv)
+libm_hidden_weak (fegetenv)
compat_symbol (libm, __old_fegetenv, fegetenv, GLIBC_2_1);
#endif
+libm_hidden_def (__fegetenv)
versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2);
libm_hidden_ver(__fegetenv, fegetenv)
int
-fegetenv (fenv_t *envp)
+__fegetenv (fenv_t *envp)
{
fpu_control_t fpscr;
envp->__cw = fpscr;
return 0;
}
-libm_hidden_def (fegetenv)
+libm_hidden_def (__fegetenv)
+weak_alias (__fegetenv, fegetenv)
+libm_hidden_weak (fegetenv)
if (__glibc_unlikely (round != get_rounding_mode ()))
{
ctx->updated_status = true;
- fegetenv (&ctx->env);
+ __fegetenv (&ctx->env);
fesetround (round);
}
}
libc_feholdsetround_noex_ctx (struct rm_ctx *ctx, int round)
{
/* Save exception flags and rounding mode. */
- fegetenv (&ctx->env);
+ __fegetenv (&ctx->env);
/* Update rounding mode only if different. */
if (__glibc_unlikely (round != get_rounding_mode ()))
#include <string.h>
int
-fegetenv (fenv_t *envp)
+__fegetenv (fenv_t *envp)
{
unsigned long long buf[4], *bufptr = buf;
memcpy(envp, buf, sizeof (*envp));
return 0;
}
-libm_hidden_def (fegetenv)
+libm_hidden_def (__fegetenv)
+weak_alias (__fegetenv, fegetenv)
+libm_hidden_weak (fegetenv)
compat_symbol (libm, __old_fegetenv, fegetenv, GLIBC_2_1);
#endif
+libm_hidden_def (__fegetenv)
libm_hidden_ver (__fegetenv, fegetenv)
versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2);
#include <fenv.h>
int
-fegetenv (fenv_t *envp)
+__fegetenv (fenv_t *envp)
{
__asm__ __volatile__ ("mov.m %0=ar.fpsr" : "=r" (*envp));
return 0;
}
-libm_hidden_def (fegetenv)
+libm_hidden_def (__fegetenv)
+weak_alias (__fegetenv, fegetenv)
+libm_hidden_weak (fegetenv)
compat_symbol (libm, __old_fegetenv, fegetenv, GLIBC_2_1);
#endif
+libm_hidden_def (__fegetenv)
libm_hidden_ver (__fegetenv, fegetenv)
versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2);
#include <fpu_control.h>
int
-fegetenv (fenv_t *envp)
+__fegetenv (fenv_t *envp)
{
_FPU_GETCW (*envp);
/* Success. */
return 0;
}
-libm_hidden_def (fegetenv)
+libm_hidden_def (__fegetenv)
+weak_alias (__fegetenv, fegetenv)
+libm_hidden_weak (fegetenv)
compat_symbol (libm, __old_fegetenv, fegetenv, GLIBC_2_1);
#endif
+libm_hidden_def (__fegetenv)
libm_hidden_ver (__fegetenv, fegetenv)
versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2);
compat_symbol (libm, __old_fegetenv, fegetenv, GLIBC_2_1);
#endif
+libm_hidden_def (__fegetenv)
libm_hidden_ver (__fegetenv, fegetenv)
versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2);
strong_alias (__fegetenv, __old_fegetenv)
compat_symbol (libm, __old_fegetenv, fegetenv, GLIBC_2_1);
#endif
+libm_hidden_def (__fegetenv)
libm_hidden_ver (__fegetenv, fegetenv)
versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2);
#include <fpu_control.h>
int
-fegetenv (fenv_t *envp)
+__fegetenv (fenv_t *envp)
{
_FPU_GETCW (envp->__fpc);
/* Success. */
return 0;
}
-libm_hidden_def (fegetenv)
+libm_hidden_def (__fegetenv)
+weak_alias (__fegetenv, fegetenv)
+libm_hidden_weak (fegetenv)
#include <fpu_control.h>
int
-fegetenv (fenv_t *envp)
+__fegetenv (fenv_t *envp)
{
fpu_control_t temp;
_FPU_GETCW (temp);
return 0;
}
-libm_hidden_def (fegetenv)
+libm_hidden_def (__fegetenv)
+weak_alias (__fegetenv, fegetenv)
+libm_hidden_weak (fegetenv)
compat_symbol (libm, __old_fegetenv, fegetenv, GLIBC_2_1);
#endif
+libm_hidden_def (__fegetenv)
libm_hidden_ver (__fegetenv, fegetenv)
versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2);
#define feclearexcept(exc) ({ 0; })
#define fetestexcept(exc) ({ 0; })
extern inline int fegetenv (fenv_t *__e) { return 0; }
+extern inline int __fegetenv (fenv_t *__e) { return 0; }
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; }
#include <fenv.h>
int
-fegetenv (fenv_t *envp)
+__fegetenv (fenv_t *envp)
{
__asm__ ("fnstenv %0\n"
/* fnstenv changes the exception mask, so load back the
/* Success. */
return 0;
}
-libm_hidden_def (fegetenv)
+libm_hidden_def (__fegetenv)
+weak_alias (__fegetenv, fegetenv)
+libm_hidden_weak (fegetenv)