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.
This commit is contained in:
Adhemerval Zanella 2015-01-23 11:31:49 -05:00
parent 0e87343e20
commit bea5801360
3 changed files with 9 additions and 2 deletions

View File

@ -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.

2
NEWS
View File

@ -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

View File

@ -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