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.16-ports-merge-330-g361818d


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  361818d50219bd9be2c41954a702b748f2240099 (commit)
       via  b2d36dda9b8ca4d850f3b8e3e437a38368a51519 (commit)
      from  6c9b0f68267cf365d060d4e51e7cb8f61498b875 (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://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=361818d50219bd9be2c41954a702b748f2240099

commit 361818d50219bd9be2c41954a702b748f2240099
Author: Richard Henderson <rth@twiddle.net>
Date:   Thu Sep 13 07:35:26 2012 -0700

    alpha: Add get-rounding-mode.h

diff --git a/ports/ChangeLog.alpha b/ports/ChangeLog.alpha
index 9589dd3..fbe42ac 100644
--- a/ports/ChangeLog.alpha
+++ b/ports/ChangeLog.alpha
@@ -1,3 +1,7 @@
+2012-12-13  Richard Henderson  <rth@redhat.com>
+
+	* sysdeps/alpha/fpu/get-rounding-mode.h: New file.
+
 2012-08-30  Richard Henderson  <rth@redhat.com>
 
 	* sysdeps/alpha/fpu/s_isnan.c: Define all aliases in terms of
diff --git a/ports/sysdeps/alpha/fpu/get-rounding-mode.h b/ports/sysdeps/alpha/fpu/get-rounding-mode.h
new file mode 100644
index 0000000..9d5b724
--- /dev/null
+++ b/ports/sysdeps/alpha/fpu/get-rounding-mode.h
@@ -0,0 +1,35 @@
+/* Determine floating-point rounding mode within libc.  Alpha version.
+   Copyright (C) 2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef ALPHA_GET_ROUNDING_MODE_H
+#define ALPHA_GET_ROUNDING_MODE_H	1
+
+#include <fenv.h>
+#include <fenv_libc.h>
+
+/* Return the floating-point rounding mode.  */
+
+static inline int
+get_rounding_mode (void)
+{
+  unsigned long fpcr;
+  __asm__ __volatile__("excb; mf_fpcr %0" : "=f"(fpcr));
+  return (fpcr >> FPCR_ROUND_SHIFT) & 3;
+}
+
+#endif /* get-rounding-mode.h */

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=b2d36dda9b8ca4d850f3b8e3e437a38368a51519

commit b2d36dda9b8ca4d850f3b8e3e437a38368a51519
Author: Richard Henderson <rth@twiddle.net>
Date:   Thu Aug 30 12:02:50 2012 -0700

    alpha: Work around gcc 4.8 aliasing difference/bug

diff --git a/ports/ChangeLog.alpha b/ports/ChangeLog.alpha
index 19edf6f..9589dd3 100644
--- a/ports/ChangeLog.alpha
+++ b/ports/ChangeLog.alpha
@@ -1,3 +1,8 @@
+2012-08-30  Richard Henderson  <rth@redhat.com>
+
+	* sysdeps/alpha/fpu/s_isnan.c: Define all aliases in terms of
+	the original __isnan symbol.
+
 2012-08-27  Mike Frysinger  <vapier@gentoo.org>
 
 	[BZ #5400]
diff --git a/ports/sysdeps/alpha/fpu/s_isnan.c b/ports/sysdeps/alpha/fpu/s_isnan.c
index b18c7bb..1f239ac 100644
--- a/ports/sysdeps/alpha/fpu/s_isnan.c
+++ b/ports/sysdeps/alpha/fpu/s_isnan.c
@@ -28,11 +28,6 @@
 #undef isnanf
 #undef __GI___isnanf
 
-/* The hidden_proto in include/math.h was obscured by the macro hackery.  */
-__typeof (__isnan) __isnanf;
-hidden_proto (__isnanf)
-
-
 int
 __isnan (double x)
 {
@@ -45,8 +40,11 @@ weak_alias (__isnan, isnan)
 /* It turns out that the 'double' version will also always work for
    single-precision.  */
 strong_alias (__isnan, __isnanf)
-hidden_def (__isnanf)
-weak_alias (__isnanf, isnanf)
+weak_alias (__isnan, isnanf)
+
+/* ??? GCC 4.8 fails to look through chains of aliases with asm names
+   attached.  Work around this for now.  */
+hidden_ver (__isnan, __isnanf)
 
 #ifdef NO_LONG_DOUBLE
 strong_alias (__isnan, __isnanl)

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

Summary of changes:
 ports/ChangeLog.alpha                              |    9 +++++++++
 .../sysdeps/alpha}/fpu/get-rounding-mode.h         |   14 ++++++--------
 ports/sysdeps/alpha/fpu/s_isnan.c                  |   12 +++++-------
 3 files changed, 20 insertions(+), 15 deletions(-)
 copy {sysdeps/s390 => ports/sysdeps/alpha}/fpu/get-rounding-mode.h (79%)


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]