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.20-561-gbea5801


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  bea58013607c6507108bc73744a0bf63d735f259 (commit)
       via  0e87343e204b44468ffad0ec5dc8c8d6068f1227 (commit)
      from  972af9e8ddd870cabf8aad39b28a6e352c9cc79c (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=bea58013607c6507108bc73744a0bf63d735f259

commit bea58013607c6507108bc73744a0bf63d735f259
Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
Date:   Fri Jan 23 11:31:49 2015 -0500

    powerpc: Fix powerpc64 build failure with binutils 2.22
    
    GLIBC memset optimization for POWER8 uses the '.machine power8'
    directive, which is only supported officially on binutils 2.24+.  This
    causes a build failure on older binutils.
    
    Since the requirement of .machine power8 is to correctly assembly the
    'mtvsrd' instruction and it is already handled by the MTVSRD_V1_R4
    macro, there is no really needed of using it.
    
    The patch replaces the power8 with power7 for .machine directive.
    
    It fixes BZ#17869.

diff --git a/ChangeLog b/ChangeLog
index cd09380..3c5ed3c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2015-01-24  Adhemerval Zanellla  <azanella@linux.vnet.ibm.com>
 
+	[BZ #17869]
+	* sysdeps/powerpc/powerpc64/power8/memset.S: Use power7 instead of
+	power8 in .machine directive.
+
 	[BZ #17868]
 	* sysdeps/powerpc/powerpc64/dl-machine.h (resolve_ifunc): Force value
 	set dependency from opd value.
diff --git a/NEWS b/NEWS
index f9ea7cf..5ca959e 100644
--- a/NEWS
+++ b/NEWS
@@ -18,7 +18,7 @@ Version 2.21
   17664, 17665, 17668, 17682, 17702, 17717, 17719, 17722, 17723, 17724,
   17725, 17732, 17733, 17744, 17745, 17746, 17747, 17748, 17775, 17777,
   17780, 17781, 17782, 17791, 17793, 17796, 17797, 17803, 17806, 17834,
-  17844, 17848, 17868, 17870
+  17844, 17848, 17868, 17869, 17870
 
 * A new semaphore algorithm has been implemented in generic C code for all
   machines. Previous custom assembly implementations of semaphore were
diff --git a/sysdeps/powerpc/powerpc64/power8/memset.S b/sysdeps/powerpc/powerpc64/power8/memset.S
index 4596926..eaff0e6 100644
--- a/sysdeps/powerpc/powerpc64/power8/memset.S
+++ b/sysdeps/powerpc/powerpc64/power8/memset.S
@@ -23,7 +23,10 @@
 /* __ptr_t [r3] memset (__ptr_t s [r3], int c [r4], size_t n [r5]));
    Returns 's'.  */
 
-	.machine power8
+	/* No need to use .machine power8 since mtvsrd is already
+	   handled by the define.  It avoid breakage on binutils
+	   that does not support this machine specifier.  */
+	.machine power7
 EALIGN (memset, 5, 0)
 	CALL_MCOUNT 3
 

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

commit 0e87343e204b44468ffad0ec5dc8c8d6068f1227
Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
Date:   Fri Jan 23 11:16:49 2015 -0500

    powerpc: Fix ifuncmain6pie failure with GCC 4.9
    
    This patch fix the elf/ifuncmain6pie failure when building with GCC
    4.9+.  For some reason, the compiler removes the branch taken code at
    resolve_ifunc (sysdeps/powerpc/powerpc64/dl-machine.h) as dead-code
    and thus the testcase fails because the ifunc resolves branches to an
    invalid memory location.  It fixes by explicit adding a dependency of
    value based on odp variable to avoid compiler optimization.
    
    It fixes BZ#17868.

diff --git a/ChangeLog b/ChangeLog
index d746e18..cd09380 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2015-01-24  Adhemerval Zanellla  <azanella@linux.vnet.ibm.com>
+
+	[BZ #17868]
+	* sysdeps/powerpc/powerpc64/dl-machine.h (resolve_ifunc): Force value
+	set dependency from opd value.
+
 2015-01-23  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features):
diff --git a/NEWS b/NEWS
index 0ce4352..f9ea7cf 100644
--- a/NEWS
+++ b/NEWS
@@ -18,7 +18,7 @@ Version 2.21
   17664, 17665, 17668, 17682, 17702, 17717, 17719, 17722, 17723, 17724,
   17725, 17732, 17733, 17744, 17745, 17746, 17747, 17748, 17775, 17777,
   17780, 17781, 17782, 17791, 17793, 17796, 17797, 17803, 17806, 17834,
-  17844, 17848, 17870
+  17844, 17848, 17868, 17870
 
 * A new semaphore algorithm has been implemented in generic C code for all
   machines. Previous custom assembly implementations of semaphore were
diff --git a/sysdeps/powerpc/powerpc64/dl-machine.h b/sysdeps/powerpc/powerpc64/dl-machine.h
index 9448712..47bb5a7 100644
--- a/sysdeps/powerpc/powerpc64/dl-machine.h
+++ b/sysdeps/powerpc/powerpc64/dl-machine.h
@@ -623,7 +623,9 @@ resolve_ifunc (Elf64_Addr value,
       opd.fd_func = func->fd_func + sym_map->l_addr;
       opd.fd_toc = func->fd_toc + sym_map->l_addr;
       opd.fd_aux = func->fd_aux;
-      value = (Elf64_Addr) &opd;
+      /* GCC 4.9+ eliminates the branch as dead code, force the odp set
+         dependency.  */
+      asm ("" : "=r" (value) : "0" (&opd), "X" (opd));
     }
 #endif
 #endif

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

Summary of changes:
 ChangeLog                                 |   10 ++++++++++
 NEWS                                      |    2 +-
 sysdeps/powerpc/powerpc64/dl-machine.h    |    4 +++-
 sysdeps/powerpc/powerpc64/power8/memset.S |    5 ++++-
 4 files changed, 18 insertions(+), 3 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]