about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/stpcpy.c7
2 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 4a7f5a4781..af87ce2ace 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2015-08-10  Ondrej Bilka  <neleai@seznam.cz>
+
+	* sysdeps/powerpc/powerpc64/multiarch/stpcpy.c: Fix ifunc.
+
 2015-08-10  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
 
 	* sysdeps/powerpc/powerpc64/power7/memmove.S (bcopy): Changing to
diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpcpy.c b/sysdeps/powerpc/powerpc64/multiarch/stpcpy.c
index c809f99982..8ff0dbe194 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/stpcpy.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/stpcpy.c
@@ -24,10 +24,13 @@
 
 extern __typeof (__stpcpy) __stpcpy_ppc attribute_hidden;
 extern __typeof (__stpcpy) __stpcpy_power7 attribute_hidden;
+extern __typeof (__stpcpy) __stpcpy_power8 attribute_hidden;
 
 libc_ifunc (__stpcpy,
-            (hwcap & PPC_FEATURE_HAS_VSX)
-            ? __stpcpy_power7
+            (hwcap2 & PPC_FEATURE2_ARCH_2_07)
+            ? __stpcpy_power8 :
+              (hwcap & PPC_FEATURE_HAS_VSX)
+              ? __stpcpy_power7
             : __stpcpy_ppc);
 
 weak_alias (__stpcpy, stpcpy)