PowerPC: Fix __fe_nomask_env missing symbol

This patch fix the missing symbol __fe_nomask_env from commit
41e8926aa4 for GLIBC_2.1.
This commit is contained in:
Adhemerval Zanella 2013-11-26 07:25:08 -06:00
parent 52bb65431f
commit bd12ab55c0
9 changed files with 31 additions and 14 deletions

View File

@ -1,3 +1,21 @@
2013-11-26 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
* sysdeps/powerpc/fpu/feenablxcpt.c (feenableexcept): Use
__fe_nomask_env_priv instead of __fe_nomask_env to avoid a PLT call.
* sysdeps/powerpc/fpu/fesetenv.c (__fesetenv): Likewise.
* sysdeps/powerpc/fpu/feupdateenv.c (__feupdateenv): Likewise.
* sysdeps/powerpc/fpu/fenv_libc.h (__fe_nomask_env): Rename to
__fe_nomask_env_priv and attribute_hidden.
* sysdeps/powerpc/fpu/fenv_private.h (libc_fesetenv_ppc): Likewise.
(libc_feupdateenv_test_ppc): Likewise.
(libc_feresetround_ppc): Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c
(__fe_nomask_env): Rename to __fe_nomask_env_priv and adjust
compat_symbol macro.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c
(__fe_nomask_env): Likewise.
* sysdeps/powerpc/fpu/fe_nomask.c (__fe_nomask_env): Likewise.
2013-11-26 Ondřej Bílka <neleai@seznam.cz>
* string/Makefile: Remove ifunc tests.

View File

@ -24,10 +24,9 @@
normally involve a syscall. */
const fenv_t *
__fe_nomask_env(void)
__fe_nomask_env_priv (void)
{
__set_errno (ENOSYS);
return FE_ENABLED_ENV;
}
libm_hidden_def (__fe_nomask_env)
stub_warning (__fe_nomask_env)
stub_warning (__fe_nomask_env_priv)

View File

@ -45,7 +45,7 @@ feenableexcept (int excepts)
new = __fegetexcept ();
if (new != 0 && result == 0)
(void)__fe_nomask_env ();
(void) __fe_nomask_env_priv ();
if ((new & excepts) != excepts)
result = -1;

View File

@ -23,7 +23,7 @@
#include <ldsodefs.h>
#include <sysdep.h>
extern const fenv_t *__fe_nomask_env (void) attribute_hidden;
extern const fenv_t *__fe_nomask_env_priv (void);
extern const fenv_t *__fe_mask_env (void) attribute_hidden;

View File

@ -96,7 +96,7 @@ libc_fesetenv_ppc (const fenv_t *envp)
hardware into "precise mode" and may cause the FPU to run slower on some
hardware. */
if ((old.l & _FPU_MASK_ALL) == 0 && (new.l & _FPU_MASK_ALL) != 0)
(void) __fe_nomask_env ();
(void) __fe_nomask_env_priv ();
/* If the old env had any enabled exceptions and the new env has no enabled
exceptions, then mask SIGFPE in the MSR FE0/FE1 bits. This may allow the
@ -123,7 +123,7 @@ libc_feupdateenv_test_ppc (fenv_t *envp, int ex)
| (new.l & _FPU_MASK_FRAC_INEX_RET_CC);
if ((old.l & _FPU_MASK_ALL) == 0 && (new.l & _FPU_MASK_ALL) != 0)
(void) __fe_nomask_env ();
(void) __fe_nomask_env_priv ();
if ((old.l & _FPU_MASK_ALL) != 0 && (new.l & _FPU_MASK_ALL) == 0)
(void) __fe_mask_env ();
@ -169,7 +169,7 @@ libc_feresetround_ppc (fenv_t *envp)
| (new.l & _FPU_MASK_FRAC_INEX_RET_CC);
if ((old.l & _FPU_MASK_ALL) == 0 && (new.l & _FPU_MASK_ALL) != 0)
(void) __fe_nomask_env ();
(void) __fe_nomask_env_priv ();
if ((old.l & _FPU_MASK_ALL) != 0 && (new.l & _FPU_MASK_ALL) == 0)
(void) __fe_mask_env ();

View File

@ -35,7 +35,7 @@ __fesetenv (const fenv_t *envp)
hardware into "precise mode" and may cause the FPU to run slower on some
hardware. */
if ((old.l & _FPU_MASK_ALL) == 0 && (new.l & _FPU_MASK_ALL) != 0)
(void)__fe_nomask_env ();
(void) __fe_nomask_env_priv ();
/* If the old env had any enabled exceptions and the new env has no enabled
exceptions, then mask SIGFPE in the MSR FE0/FE1 bits. This may allow the

View File

@ -41,7 +41,7 @@ __feupdateenv (const fenv_t *envp)
the hardware into "precise mode" and may cause the FPU to run slower on
some hardware. */
if ((old.l & _FPU_MASK_ALL) == 0 && (new.l & _FPU_MASK_ALL) != 0)
(void)__fe_nomask_env ();
(void) __fe_nomask_env_priv ();
/* If the old env had any enabled exceptions and the new env has no enabled
exceptions, then mask SIGFPE in the MSR FE0/FE1 bits. This may allow the

View File

@ -26,7 +26,7 @@
#include <shlib-compat.h>
const fenv_t *
__fe_nomask_env (void)
__fe_nomask_env_priv (void)
{
INTERNAL_SYSCALL_DECL (err);
INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC, PR_FP_EXC_PRECISE);
@ -34,5 +34,5 @@ __fe_nomask_env (void)
return FE_ENABLED_ENV;
}
#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_19)
compat_symbol (libm, __fe_nomask_env, __fe_nomask_env, GLIBC_2_1);
compat_symbol (libm, __fe_nomask_env_priv, __fe_nomask_env, GLIBC_2_1);
#endif

View File

@ -25,7 +25,7 @@
#include <shlib-compat.h>
const fenv_t *
__fe_nomask_env (void)
__fe_nomask_env_priv (void)
{
#if defined PR_SET_FPEXC && defined PR_FP_EXC_PRECISE
INTERNAL_SYSCALL_DECL (err);
@ -36,5 +36,5 @@ __fe_nomask_env (void)
return FE_ENABLED_ENV;
}
#if SHLIB_COMPAT (libm, GLIBC_2_3, GLIBC_2_19)
compat_symbol (libm, __fe_nomask_env, __fe_nomask_env, GLIBC_2_3);
compat_symbol (libm, __fe_nomask_env_priv, __fe_nomask_env, GLIBC_2_3);
#endif