about summary refs log tree commit diff
path: root/sysdeps/powerpc
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2016-12-01 15:53:16 -0200
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2016-12-01 15:53:16 -0200
commit5cd94e67d026fb402f127481abd28a8806098ff3 (patch)
treef8a12d98d8a93ed78da04bb5406763e74fffeb66 /sysdeps/powerpc
parent80ab6401a9bb566de940cc6a5fb7a6af650f17b9 (diff)
downloadglibc-5cd94e67d026fb402f127481abd28a8806098ff3.tar.gz
glibc-5cd94e67d026fb402f127481abd28a8806098ff3.tar.xz
glibc-5cd94e67d026fb402f127481abd28a8806098ff3.zip
powerpc: Remove stpcpy internal clash with IFUNC
Commit c7debbdfacb redirected the internal strrch to default powerpc64
implementation by redefining the weak_alias at
sysdeps/powerpc/powerpc64/multiarch/strchr-ppc64.c:

  #undef weak_alias
  #define weak_alias(name, aliasname) \
    extern __typeof (__strrchr_ppc) aliasname \
      __attribute__ ((weak, alias ("__strrchr_ppc")));

This creates a __GI_strchr alias that clashes with the IFUNC symbol in
stprchr.os.  There is not need to define the default version for internal
version, since ifunc should work internally for powerpc64.  This patch
removes the weak_alias indirection.

Checked on powerpc64le.

	* sysdeps/powerpc/powerpc64/multiarch/strrchr-ppc64.c (weak_alias):
	Remove redirection to __strrchr_ppc.
Diffstat (limited to 'sysdeps/powerpc')
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strrchr-ppc64.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strrchr-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strrchr-ppc64.c
index 151bd35ea6..937c5eadf2 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strrchr-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strrchr-ppc64.c
@@ -18,10 +18,10 @@
 #include <string.h>
 
 #define STRRCHR __strrchr_ppc
+
 #undef weak_alias
-#define weak_alias(name, aliasname) \
-  extern __typeof (__strrchr_ppc) aliasname \
-    __attribute__ ((weak, alias ("__strrchr_ppc")));
+#define weak_alias(name, aliasname)
+
 #if IS_IN (libc) && defined(SHARED)
 # undef libc_hidden_builtin_def
 # define libc_hidden_builtin_def(name) \