mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-12 16:20:06 +00:00
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:
parent
52bb65431f
commit
bd12ab55c0
18
ChangeLog
18
ChangeLog
@ -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>
|
2013-11-26 Ondřej Bílka <neleai@seznam.cz>
|
||||||
|
|
||||||
* string/Makefile: Remove ifunc tests.
|
* string/Makefile: Remove ifunc tests.
|
||||||
|
@ -24,10 +24,9 @@
|
|||||||
normally involve a syscall. */
|
normally involve a syscall. */
|
||||||
|
|
||||||
const fenv_t *
|
const fenv_t *
|
||||||
__fe_nomask_env(void)
|
__fe_nomask_env_priv (void)
|
||||||
{
|
{
|
||||||
__set_errno (ENOSYS);
|
__set_errno (ENOSYS);
|
||||||
return FE_ENABLED_ENV;
|
return FE_ENABLED_ENV;
|
||||||
}
|
}
|
||||||
libm_hidden_def (__fe_nomask_env)
|
stub_warning (__fe_nomask_env_priv)
|
||||||
stub_warning (__fe_nomask_env)
|
|
||||||
|
@ -45,7 +45,7 @@ feenableexcept (int excepts)
|
|||||||
|
|
||||||
new = __fegetexcept ();
|
new = __fegetexcept ();
|
||||||
if (new != 0 && result == 0)
|
if (new != 0 && result == 0)
|
||||||
(void)__fe_nomask_env ();
|
(void) __fe_nomask_env_priv ();
|
||||||
|
|
||||||
if ((new & excepts) != excepts)
|
if ((new & excepts) != excepts)
|
||||||
result = -1;
|
result = -1;
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
#include <ldsodefs.h>
|
#include <ldsodefs.h>
|
||||||
#include <sysdep.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;
|
extern const fenv_t *__fe_mask_env (void) attribute_hidden;
|
||||||
|
|
||||||
|
@ -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 into "precise mode" and may cause the FPU to run slower on some
|
||||||
hardware. */
|
hardware. */
|
||||||
if ((old.l & _FPU_MASK_ALL) == 0 && (new.l & _FPU_MASK_ALL) != 0)
|
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
|
/* 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
|
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);
|
| (new.l & _FPU_MASK_FRAC_INEX_RET_CC);
|
||||||
|
|
||||||
if ((old.l & _FPU_MASK_ALL) == 0 && (new.l & _FPU_MASK_ALL) != 0)
|
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)
|
if ((old.l & _FPU_MASK_ALL) != 0 && (new.l & _FPU_MASK_ALL) == 0)
|
||||||
(void) __fe_mask_env ();
|
(void) __fe_mask_env ();
|
||||||
@ -169,7 +169,7 @@ libc_feresetround_ppc (fenv_t *envp)
|
|||||||
| (new.l & _FPU_MASK_FRAC_INEX_RET_CC);
|
| (new.l & _FPU_MASK_FRAC_INEX_RET_CC);
|
||||||
|
|
||||||
if ((old.l & _FPU_MASK_ALL) == 0 && (new.l & _FPU_MASK_ALL) != 0)
|
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)
|
if ((old.l & _FPU_MASK_ALL) != 0 && (new.l & _FPU_MASK_ALL) == 0)
|
||||||
(void) __fe_mask_env ();
|
(void) __fe_mask_env ();
|
||||||
|
@ -35,7 +35,7 @@ __fesetenv (const fenv_t *envp)
|
|||||||
hardware into "precise mode" and may cause the FPU to run slower on some
|
hardware into "precise mode" and may cause the FPU to run slower on some
|
||||||
hardware. */
|
hardware. */
|
||||||
if ((old.l & _FPU_MASK_ALL) == 0 && (new.l & _FPU_MASK_ALL) != 0)
|
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
|
/* 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
|
exceptions, then mask SIGFPE in the MSR FE0/FE1 bits. This may allow the
|
||||||
|
@ -41,7 +41,7 @@ __feupdateenv (const fenv_t *envp)
|
|||||||
the hardware into "precise mode" and may cause the FPU to run slower on
|
the hardware into "precise mode" and may cause the FPU to run slower on
|
||||||
some hardware. */
|
some hardware. */
|
||||||
if ((old.l & _FPU_MASK_ALL) == 0 && (new.l & _FPU_MASK_ALL) != 0)
|
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
|
/* 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
|
exceptions, then mask SIGFPE in the MSR FE0/FE1 bits. This may allow the
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
#include <shlib-compat.h>
|
#include <shlib-compat.h>
|
||||||
|
|
||||||
const fenv_t *
|
const fenv_t *
|
||||||
__fe_nomask_env (void)
|
__fe_nomask_env_priv (void)
|
||||||
{
|
{
|
||||||
INTERNAL_SYSCALL_DECL (err);
|
INTERNAL_SYSCALL_DECL (err);
|
||||||
INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC, PR_FP_EXC_PRECISE);
|
INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC, PR_FP_EXC_PRECISE);
|
||||||
@ -34,5 +34,5 @@ __fe_nomask_env (void)
|
|||||||
return FE_ENABLED_ENV;
|
return FE_ENABLED_ENV;
|
||||||
}
|
}
|
||||||
#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_19)
|
#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
|
#endif
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
#include <shlib-compat.h>
|
#include <shlib-compat.h>
|
||||||
|
|
||||||
const fenv_t *
|
const fenv_t *
|
||||||
__fe_nomask_env (void)
|
__fe_nomask_env_priv (void)
|
||||||
{
|
{
|
||||||
#if defined PR_SET_FPEXC && defined PR_FP_EXC_PRECISE
|
#if defined PR_SET_FPEXC && defined PR_FP_EXC_PRECISE
|
||||||
INTERNAL_SYSCALL_DECL (err);
|
INTERNAL_SYSCALL_DECL (err);
|
||||||
@ -36,5 +36,5 @@ __fe_nomask_env (void)
|
|||||||
return FE_ENABLED_ENV;
|
return FE_ENABLED_ENV;
|
||||||
}
|
}
|
||||||
#if SHLIB_COMPAT (libm, GLIBC_2_3, GLIBC_2_19)
|
#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
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user