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.22-654-g6e76c11


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  6e76c11f89e9bd0b8bb7185dc754bf6c7dac572b (commit)
       via  5d29eefd6151e1475aeb4d89041313451c02fa41 (commit)
       via  7f49b7c0200e745c5f0d3e9245a6e4590bd57b1d (commit)
      from  1f89b8d881b5dda6447b8be8ff40c1020b1f548e (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=6e76c11f89e9bd0b8bb7185dc754bf6c7dac572b

commit 6e76c11f89e9bd0b8bb7185dc754bf6c7dac572b
Author: Mike Frysinger <vapier@gentoo.org>
Date:   Thu Jan 7 17:18:09 2016 -0500

    longlong: fix sh -Wundef builds
    
    This file fails when building for SuperH as it assumes __SHMEDIA__
    is always defined.  Update the code to check if it's defined.

diff --git a/ChangeLog b/ChangeLog
index bb445a4..4db27e6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2016-01-07  Mike Frysinger  <vapier@gentoo.org>
+
+	* longlong.h: Change !__SHMEDIA__ to
+	(!defined (__SHMEDIA__) || !__SHMEDIA__).
+	Change __SHMEDIA__ to defined (__SHMEDIA__) && __SHMEDIA__.
+
 2016-01-07  Daniel Jacobowitz  <dan@codesourcery.com>
 	    Joseph Myers  <joseph@codesourcery.com>
 	    Mark Shinwell  <shinwell@codesourcery.com>
diff --git a/stdlib/longlong.h b/stdlib/longlong.h
index 4c8d131..5cbc410 100644
--- a/stdlib/longlong.h
+++ b/stdlib/longlong.h
@@ -1086,7 +1086,7 @@ extern UDItype __umulsidi3 (USItype, USItype);
   } while (0)
 #endif
 
-#if defined(__sh__) && !__SHMEDIA__ && W_TYPE_SIZE == 32
+#if defined(__sh__) && (!defined (__SHMEDIA__) || !__SHMEDIA__) && W_TYPE_SIZE == 32
 #ifndef __sh1__
 #define umul_ppmm(w1, w0, u, v) \
   __asm__ (								\
@@ -1159,7 +1159,7 @@ extern UDItype __umulsidi3 (USItype, USItype);
 
 #endif /* __sh__ */
 
-#if defined (__SH5__) && __SHMEDIA__ && W_TYPE_SIZE == 32
+#if defined (__SH5__) && defined (__SHMEDIA__) && __SHMEDIA__ && W_TYPE_SIZE == 32
 #define __umulsidi3(u,v) ((UDItype)(USItype)u*(USItype)v)
 #define count_leading_zeros(count, x) \
   do									\

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=5d29eefd6151e1475aeb4d89041313451c02fa41

commit 5d29eefd6151e1475aeb4d89041313451c02fa41
Author: Andrew Stubbs <ams@codesourcery.com>
Date:   Tue Oct 27 13:36:47 2015 +0000

    longlong: add SH FDPIC support

diff --git a/ChangeLog b/ChangeLog
index ce42df8..bb445a4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2016-01-07  Daniel Jacobowitz  <dan@codesourcery.com>
+	    Joseph Myers  <joseph@codesourcery.com>
+	    Mark Shinwell  <shinwell@codesourcery.com>
+	    Andrew Stubbs  <ams@codesourcery.com>
+	    Rich Felker <dalias@libc.org>
+
+	* longlong.h (udiv_qrnnd): Add FDPIC compatible version for SH.
+
 2016-01-07  Richard Henderson  <rth@redhat.com>
 
 	* longlong.h [__alpha] (umul_ppmm): Disable for c++.
diff --git a/stdlib/longlong.h b/stdlib/longlong.h
index 1bc3e65..4c8d131 100644
--- a/stdlib/longlong.h
+++ b/stdlib/longlong.h
@@ -1102,6 +1102,33 @@ extern UDItype __umulsidi3 (USItype, USItype);
 /* This is the same algorithm as __udiv_qrnnd_c.  */
 #define UDIV_NEEDS_NORMALIZATION 1
 
+#ifdef __FDPIC__
+/* FDPIC needs a special version of the asm fragment to extract the
+   code address from the function descriptor. __udiv_qrnnd_16 is
+   assumed to be local and not to use the GOT, so loading r12 is
+   not needed. */
+#define udiv_qrnnd(q, r, n1, n0, d) \
+  do {									\
+    extern UWtype __udiv_qrnnd_16 (UWtype, UWtype)			\
+			__attribute__ ((visibility ("hidden")));	\
+    /* r0: rn r1: qn */ /* r0: n1 r4: n0 r5: d r6: d1 */ /* r2: __m */	\
+    __asm__ (								\
+	"mov%M4	%4,r5\n"						\
+"	swap.w	%3,r4\n"						\
+"	swap.w	r5,r6\n"						\
+"	mov.l	@%5,r2\n"						\
+"	jsr	@r2\n"							\
+"	shll16	r6\n"							\
+"	swap.w	r4,r4\n"						\
+"	mov.l	@%5,r2\n"						\
+"	jsr	@r2\n"							\
+"	swap.w	r1,%0\n"						\
+"	or	r1,%0"							\
+	: "=r" (q), "=&z" (r)						\
+	: "1" (n1), "r" (n0), "rm" (d), "r" (&__udiv_qrnnd_16)		\
+	: "r1", "r2", "r4", "r5", "r6", "pr", "t");			\
+  } while (0)
+#else
 #define udiv_qrnnd(q, r, n1, n0, d) \
   do {									\
     extern UWtype __udiv_qrnnd_16 (UWtype, UWtype)			\
@@ -1121,6 +1148,7 @@ extern UDItype __umulsidi3 (USItype, USItype);
 	: "1" (n1), "r" (n0), "rm" (d), "r" (&__udiv_qrnnd_16)		\
 	: "r1", "r2", "r4", "r5", "r6", "pr", "t");			\
   } while (0)
+#endif /* __FDPIC__  */
 
 #define UDIV_TIME 80
 

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=7f49b7c0200e745c5f0d3e9245a6e4590bd57b1d

commit 7f49b7c0200e745c5f0d3e9245a6e4590bd57b1d
Author: Richard Henderson <rth@redhat.com>
Date:   Tue Oct 28 13:26:24 2014 -0700

    longlong.h: Disable alpha umul_ppmm for old g++
    
    Causes "unexpected AST of kind MULT_HIGHPART" error with bootstrap from gcc 4.8.

diff --git a/ChangeLog b/ChangeLog
index a3c4d8e..ce42df8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2016-01-07  Richard Henderson  <rth@redhat.com>
+
+	* longlong.h [__alpha] (umul_ppmm): Disable for c++.
+
 2016-01-07  Mike Frysinger  <vapier@gentoo.org>
 
 	* sysdeps/unix/sysv/linux/fxstat64.c (___fxstat64): Change
diff --git a/stdlib/longlong.h b/stdlib/longlong.h
index 650ef31..1bc3e65 100644
--- a/stdlib/longlong.h
+++ b/stdlib/longlong.h
@@ -139,6 +139,9 @@ extern const UQItype __clz_tab[256] attribute_hidden;
 #endif /* __aarch64__ */
 
 #if defined (__alpha) && W_TYPE_SIZE == 64
+/* There is a bug in g++ before version 5 that
+   errors on __builtin_alpha_umulh.  */
+#if !defined(__cplusplus) || __GNUC__ >= 5
 #define umul_ppmm(ph, pl, m0, m1) \
   do {									\
     UDItype __m0 = (m0), __m1 = (m1);					\
@@ -146,6 +149,7 @@ extern const UQItype __clz_tab[256] attribute_hidden;
     (pl) = __m0 * __m1;							\
   } while (0)
 #define UMUL_TIME 46
+#endif /* !c++ */
 #ifndef LONGLONG_STANDALONE
 #define udiv_qrnnd(q, r, n1, n0, d) \
   do { UDItype __r;							\

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

Summary of changes:
 ChangeLog         |   18 ++++++++++++++++++
 stdlib/longlong.h |   36 ++++++++++++++++++++++++++++++++++--
 2 files changed, 52 insertions(+), 2 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]