about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAdhemerval Zanella <azanella@linux.vnet.ibm.com>2013-11-13 06:45:19 -0600
committerAdhemerval Zanella <azanella@linux.vnet.ibm.com>2013-11-13 06:45:19 -0600
commit7a2ad8cf392acfcaef319e722dda9101d4d8b6bd (patch)
treec525169182b6b1d21663865c26224974f4541aa1
parent50727aa76b42c3b989a8c0612eb7f63e29aa7fec (diff)
downloadglibc-7a2ad8cf392acfcaef319e722dda9101d4d8b6bd.tar.gz
glibc-7a2ad8cf392acfcaef319e722dda9101d4d8b6bd.tar.xz
glibc-7a2ad8cf392acfcaef319e722dda9101d4d8b6bd.zip
PowerPC: Fix __fe_mask_env export
This patch does not export __fe_mask_env anymore, only providing a
compatibility symbol. It fixes BZ#14143.
-rw-r--r--ChangeLog15
-rw-r--r--NEWS16
-rw-r--r--sysdeps/powerpc/bits/fenv.h6
-rw-r--r--sysdeps/powerpc/fpu/fenv_libc.h4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c5
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c3
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c8
7 files changed, 36 insertions, 21 deletions
diff --git a/ChangeLog b/ChangeLog
index 67c0c38c43..f1e09b1a7e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2013-11-13  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
+
+	[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.
+
 2013-11-13  Marcus Shawcroft  <marcus.shawcroft@linaro.org>
 
         * elf/dl-lookup.c (_dl_lookup_symbol_x): If UNDEF_MAP is false
diff --git a/NEWS b/NEWS
index a6f25e19b9..3b441241d6 100644
--- a/NEWS
+++ b/NEWS
@@ -10,14 +10,14 @@ Version 2.19
 * The following bugs are resolved with this release:
 
   156, 387, 431, 832, 2801, 7003, 9954, 10278, 11087, 13028, 13982, 13985,
-  14029, 14155, 14547, 14699, 14752, 14876, 14910, 15048, 15218, 15277,
-  15308, 15362, 15374, 15400, 15427, 15522, 15531, 15532, 15608, 15609,
-  15610, 15632, 15640, 15670, 15672, 15680, 15681, 15723, 15734, 15735,
-  15736, 15748, 15749, 15754, 15760, 15763, 15764, 15797, 15799, 15825,
-  15844, 15847, 15849, 15855, 15856, 15857, 15859, 15867, 15886, 15887,
-  15890, 15892, 15893, 15895, 15897, 15905, 15909, 15917, 15919, 15921,
-  15923, 15939, 15948, 15963, 15966, 15985, 15988, 16032, 16034, 16036,
-  16037, 16041, 16071, 16072, 16074, 16078, 16112, 16150, 16153.
+  14029, 14143, 14155, 14547, 14699, 14752, 14876, 14910, 15048, 15218,
+  15277, 15308, 15362, 15374, 15400, 15427, 15522, 15531, 15532, 15608,
+  15609, 15610, 15632, 15640, 15670, 15672, 15680, 15681, 15723, 15734,
+  15735, 15736, 15748, 15749, 15754, 15760, 15763, 15764, 15797, 15799,
+  15825, 15844, 15847, 15849, 15855, 15856, 15857, 15859, 15867, 15886,
+  15887, 15890, 15892, 15893, 15895, 15897, 15905, 15909, 15917, 15919,
+  15921, 15923, 15939, 15948, 15963, 15966, 15985, 15988, 16032, 16034,
+  16036, 16037, 16041, 16071, 16072, 16074, 16078, 16112, 16150, 16153.
 
 * CVE-2012-4412 The strcoll implementation caches indices and rules for
   large collation sequences to optimize multiple passes.  This cache
diff --git a/sysdeps/powerpc/bits/fenv.h b/sysdeps/powerpc/bits/fenv.h
index 122edd3dc3..86bf94e8fd 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 baa2a7d39a..cb15c1cecb 100644
--- a/sysdeps/powerpc/fpu/fenv_libc.h
+++ b/sysdeps/powerpc/fpu/fenv_libc.h
@@ -23,7 +23,9 @@
 #include <ldsodefs.h>
 #include <sysdep.h>
 
-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 94db79f8e7..dd3ec46b56 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 <sysdep.h>
 #include <sys/prctl.h>
 #include <kernel-features.h>
+#include <shlib-compat.h>
 
 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 2ab5855005..1d579bfcca 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 fd2ffb14f0..5172f6587e 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 <sys/syscall.h>
 #include <sys/prctl.h>
 #include <kernel-features.h>
+#include <shlib-compat.h>
 
 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