From: Adhemerval Zanella Date: Thu, 23 Jan 2014 17:04:51 +0000 (-0600) Subject: PowerPC: Fix __fe_mask_env export X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4af3a9fb312d9fbbc5050f4a8cf70c70a86a050f;p=thirdparty%2Fglibc.git PowerPC: Fix __fe_mask_env export This patch does not export __fe_mask_env anymore, only providing a compatibility symbol. It fixes BZ#14143. --- diff --git a/ChangeLog b/ChangeLog index 0992488a6a9..d8393677a54 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,18 @@ +2014-01-23 Adhemerval Zanella + + [BZ #14143] + * sysdeps/powerpc/bits/fenv.h (__fe_nomask_env): Remove declaration. + (__fe_mask_env): Likewise. + * sysdeps/powerpc/fpu/fenv_libc.h (__fe_nomask_env): Remove + libm_hidden_proto and add function prototype. + (__fe_mask_env): Add function prototype. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c + (__fe_nomask_env): Add compat symbol for GLIBC_2.1. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c + (__fe_mask_env): Remove compiler warnings regarding ununsed variables. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c + (__fe_nomask_env): Add compat symbol for GLIBC_2.3. + 2014-01-16 Adhemerval Zanella [BZ#16430] diff --git a/NEWS b/NEWS index db471a4ee81..28b77555b28 100644 --- a/NEWS +++ b/NEWS @@ -9,8 +9,8 @@ Version 2.18.1 * The following bugs are resolved with this release: - 14155, 14547, 14699, 15532, 15427, 15522, 15680, 15723, 15734, 15735, - 15797, 15892, 15895, 15909, 15917, 15996, 16072, 16150, 16430. + 14143, 14155, 14547, 14699, 15532, 15427, 15522, 15680, 15723, 15734, + 15735, 15797, 15892, 15895, 15909, 15917, 15996, 16072, 16150, 16430. * Support for powerpc64le has been added. diff --git a/sysdeps/powerpc/bits/fenv.h b/sysdeps/powerpc/bits/fenv.h index 122edd3dc3d..86bf94e8fd4 100644 --- a/sysdeps/powerpc/bits/fenv.h +++ b/sysdeps/powerpc/bits/fenv.h @@ -153,15 +153,12 @@ extern const fenv_t __fe_enabled_env; extern const fenv_t __fe_nonieee_env; # define FE_NONIEEE_ENV (&__fe_nonieee_env) -__BEGIN_DECLS - /* Floating-point environment with all exceptions enabled. Note that just evaluating this value does not change the processor exception mode. Passing this mask to fesetenv will result in a prctl syscall to change the MSR FE0/FE1 bits to "Precise Mode". On some processors this will result in slower floating point execution. This will last until an fenv or exception mask is installed that disables all FP exceptions. */ -extern const fenv_t *__fe_nomask_env (void); # define FE_NOMASK_ENV FE_ENABLED_ENV /* Floating-point environment with all exceptions disabled. Note that @@ -169,9 +166,6 @@ extern const fenv_t *__fe_nomask_env (void); Passing this mask to fesetenv will result in a prctl syscall to change the MSR FE0/FE1 bits to "Ignore Exceptions Mode". On most processors this allows the fastest possible floating point execution.*/ -extern const fenv_t *__fe_mask_env (void); # define FE_MASK_ENV FE_DFL_ENV -__END_DECLS - #endif diff --git a/sysdeps/powerpc/fpu/fenv_libc.h b/sysdeps/powerpc/fpu/fenv_libc.h index baa2a7d39a4..cb15c1cecbd 100644 --- a/sysdeps/powerpc/fpu/fenv_libc.h +++ b/sysdeps/powerpc/fpu/fenv_libc.h @@ -23,7 +23,9 @@ #include #include -libm_hidden_proto (__fe_nomask_env) +extern const fenv_t *__fe_nomask_env (void); + +extern const fenv_t *__fe_mask_env (void); /* The sticky bits in the FPSCR indicating exceptions have occurred. */ #define FPSCR_STICKY_BITS ((FE_ALL_EXCEPT | FE_ALL_INVALID) & ~FE_INVALID) diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c index 94db79f8e7e..dd3ec46b561 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c @@ -23,6 +23,7 @@ #include #include #include +#include const fenv_t * __fe_nomask_env (void) @@ -32,4 +33,6 @@ __fe_nomask_env (void) return FE_ENABLED_ENV; } -libm_hidden_def (__fe_nomask_env) +#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_18) +compat_symbol (libm, __fe_nomask_env, __fe_nomask_env, GLIBC_2_1); +#endif diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c index 2ab58550051..1d579bfccae 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c @@ -27,9 +27,8 @@ const fenv_t * __fe_mask_env (void) { #if defined PR_SET_FPEXC && defined PR_FP_EXC_DISABLED - int result; INTERNAL_SYSCALL_DECL (err); - result = INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC, PR_FP_EXC_DISABLED); + INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC, PR_FP_EXC_DISABLED); #else __set_errno (ENOSYS); #endif diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c index fd2ffb14f05..5172f6587e3 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c @@ -22,17 +22,19 @@ #include #include #include +#include const fenv_t * __fe_nomask_env (void) { #if defined PR_SET_FPEXC && defined PR_FP_EXC_PRECISE - int result; INTERNAL_SYSCALL_DECL (err); - result = INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC, PR_FP_EXC_PRECISE); + INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC, PR_FP_EXC_PRECISE); #else __set_errno (ENOSYS); #endif return FE_ENABLED_ENV; } -libm_hidden_def (__fe_nomask_env) +#if SHLIB_COMPAT (libm, GLIBC_2_3, GLIBC_2_18) +compat_symbol (libm, __fe_nomask_env, __fe_nomask_env, GLIBC_2_3); +#endif