From: Adhemerval Zanella Date: Wed, 30 Nov 2016 13:31:41 +0000 (-0200) Subject: powerpc: Remove stpcpy internal clash with IFUNC X-Git-Tag: glibc-2.25~249 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8072373ea96cb95a0d1cbe97a41a352439b92ea9;p=thirdparty%2Fglibc.git powerpc: Remove stpcpy internal clash with IFUNC Commit 142e0a99530 redirected the internal stpcpy to default powerpc64 implementation by redefining the weak_alias at sysdeps/powerpc/powerpc64/multiarch/stpcpy-ppc64.c: #undef weak_alias #define weak_alias(name, aliasname) \ extern __typeof (__stpcpy_ppc) aliasname \ __attribute__ ((weak, alias ("__stpcpy_ppc"))); This creates a __GI_stpcpy alias that clashes with the IFUNC symbol in stpcpy.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/stpcpy-ppc64.c (weak_alias): Remove redirection to __stpcpy_ppc. --- diff --git a/ChangeLog b/ChangeLog index 09c2e52afd2..e6e48e7cc79 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2016-11-30 Adhemerval Zanella + + * sysdeps/powerpc/powerpc64/multiarch/stpcpy-ppc64.c (weak_alias): + Remove redirection to __stpcpy_ppc. + 2016-11-30 Florian Weimer Remove __libc_memalign from ld.so because it is unused. diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpcpy-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/stpcpy-ppc64.c index d607d8a6ded..37a23251d0a 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/stpcpy-ppc64.c +++ b/sysdeps/powerpc/powerpc64/multiarch/stpcpy-ppc64.c @@ -27,9 +27,7 @@ extern __typeof (stpcpy) __stpcpy_ppc attribute_hidden; #define strlen __strlen_ppc #undef weak_alias -#define weak_alias(name, aliasname) \ - extern __typeof (__stpcpy_ppc) aliasname \ - __attribute__ ((weak, alias ("__stpcpy_ppc"))); +#define weak_alias(name, aliasname) #undef libc_hidden_def #define libc_hidden_def(name)