]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
powerpc: Fix powerpc64 build failure with binutils 2.22
authorAdhemerval Zanella <azanella@linux.vnet.ibm.com>
Fri, 23 Jan 2015 16:31:49 +0000 (11:31 -0500)
committerAdhemerval Zanella <azanella@linux.vnet.ibm.com>
Sat, 24 Jan 2015 13:40:04 +0000 (08:40 -0500)
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.

ChangeLog
NEWS
sysdeps/powerpc/powerpc64/power8/memset.S

index cd093808ff4c79d3d5d9c4136bd4d344b1062045..3c5ed3c1d55e447c2bc526bf608aea6bdbd3cbc7 100644 (file)
--- 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 f9ea7cf697e3b3982afa82fb0a1297ffc0116f65..5ca959ee155d5c1ca680f72dccfacc4321366c1d 100644 (file)
--- 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
index 459692670995e20acb688b9f5b40135eec35547e..eaff0e6b8152c67b14090a2d66975e7b8eada9af 100644 (file)
 /* __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