This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.19-867-g27bb6dc


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  27bb6dc0db1d0da548a0be3ec1aa33e2c25565cd (commit)
      from  d3f364d3c79cc6cbeb0bf6f8cec90c9e4465db0f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=27bb6dc0db1d0da548a0be3ec1aa33e2c25565cd

commit 27bb6dc0db1d0da548a0be3ec1aa33e2c25565cd
Author: Richard Henderson <rth@twiddle.net>
Date:   Tue Aug 5 13:36:36 2014 -0700

    alpha: Fix exception raising from soft-fp
    
    Use the SSI_IEEE_RAISE_EXCEPTION function as from feraiseexcept,
    instead of __ieee_get+set_fp_status.  Always raise the FP exceptions
    from float-to-integer conversion.

diff --git a/ChangeLog b/ChangeLog
index d94f255..e02d51c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2014-08-05  Richard Henderson  <rth@redhat.com>
 
+	* sysdeps/alpha/soft-fp/ots_cvtxq.c (_OtsCvtXQ): Always raise
+	exceptions.
+	* sysdeps/alpha/soft-fp/Makefile [soft-fp] (sysdep_routines):
+	Add fraiseexcpt.
+	* sysdeps/alpha/soft-fp/sfp-machine.h (FP_HANDLE_EXCEPTIONS):
+	Use __feraiseexcept.
+	* sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S (feraiseexcept):
+	Protect libm symbols with IS_IN_libm.
+
 	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Remove file.
 
 2014-08-04  Bernard Ogden  <bernie.ogden@linaro.org>
diff --git a/sysdeps/alpha/soft-fp/Makefile b/sysdeps/alpha/soft-fp/Makefile
index 5410a78..83baa7c 100644
--- a/sysdeps/alpha/soft-fp/Makefile
+++ b/sysdeps/alpha/soft-fp/Makefile
@@ -2,7 +2,8 @@
 
 ifeq ($(subdir),soft-fp)
 sysdep_routines += ots_add ots_sub ots_mul ots_div ots_cmp ots_cmpe	\
-	ots_cvtxq ots_cvtqx ots_cvtqux ots_cvttx ots_cvtxt ots_nintxq
+	ots_cvtxq ots_cvtqx ots_cvtqux ots_cvttx ots_cvtxt ots_nintxq	\
+	fraiseexcpt
 endif
 
 ifeq ($(subdir),math)
diff --git a/sysdeps/alpha/soft-fp/ots_cvtxq.c b/sysdeps/alpha/soft-fp/ots_cvtxq.c
index 1eef949..2447a38 100644
--- a/sysdeps/alpha/soft-fp/ots_cvtxq.c
+++ b/sysdeps/alpha/soft-fp/ots_cvtxq.c
@@ -35,9 +35,7 @@ _OtsCvtXQ (long al, long ah, long _round)
   FP_INIT_ROUNDMODE;
   FP_UNPACK_RAW_Q(A, a);
   FP_TO_INT_Q(r, A, 64, s);
-
-  if (s > 0 && (_fex &= FP_EX_INVALID))
-    FP_HANDLE_EXCEPTIONS;
+  FP_HANDLE_EXCEPTIONS;
 
   return r;
 }
diff --git a/sysdeps/alpha/soft-fp/sfp-machine.h b/sysdeps/alpha/soft-fp/sfp-machine.h
index e11a8dd..bd78534 100644
--- a/sysdeps/alpha/soft-fp/sfp-machine.h
+++ b/sysdeps/alpha/soft-fp/sfp-machine.h
@@ -86,13 +86,13 @@ do {								\
     }								\
 } while (0)
 
+/* We copy the libm function into libc for soft-fp.  */
+extern int __feraiseexcept (int __excepts) attribute_hidden;
+
 #define FP_HANDLE_EXCEPTIONS					\
 do {								\
   if (__builtin_expect (_fex, 0))				\
-    {								\
-      unsigned long t = __ieee_get_fp_control ();		\
-      __ieee_set_fp_control (t | _fex);				\
-    }								\
+    __feraiseexcept (_fex);					\
 } while (0)
 
 #define FP_TRAPPING_EXCEPTIONS					\
diff --git a/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S b/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S
index 3db92d5..c5fa62b 100644
--- a/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S
+++ b/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S
@@ -46,11 +46,12 @@ ENTRY(__feraiseexcept)
 END(__feraiseexcept)
 	cfi_endproc
 
-#include <shlib-compat.h>
-#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
+#ifdef IS_IN_libm
+# include <shlib-compat.h>
+# if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__feraiseexcept, __old_feraiseexcept)
 compat_symbol (libm, __old_feraiseexcept, feraiseexcept, GLIBC_2_1);
-#endif
-
+# endif
 libm_hidden_ver (__feraiseexcept, feraiseexcept)
 versioned_symbol (libm, __feraiseexcept, feraiseexcept, GLIBC_2_2);
+#endif

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                   |    9 +++++++++
 sysdeps/alpha/soft-fp/Makefile              |    3 ++-
 sysdeps/alpha/soft-fp/ots_cvtxq.c           |    4 +---
 sysdeps/alpha/soft-fp/sfp-machine.h         |    8 ++++----
 sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S |    9 +++++----
 5 files changed, 21 insertions(+), 12 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]