powerpc: Fix PPC64/POWER7 conform tests
Commit Message
When building with --disable-multi-arch the memmove and strstr POWER7
optimization create and uses symbols that conflict with expect conform
tests.
Checked on powerpc64.
--
* sysdeps/powerpc/powerpc64/power7/memmove.S (bcopy): Changing to
__bcopy and add a weak_alias to bcopy.
* sysdeps/powerpc/powerpc64/power7/strstr.S (strstr): Use __strnlen
for static build.
--
Comments
Adhemerval Zanella <adhemerval.zanella@linaro.org> writes:
> When building with --disable-multi-arch the memmove and strstr POWER7
> optimization create and uses symbols that conflict with expect conform
> tests.
>
> Checked on powerpc64.
>
> --
>
> * sysdeps/powerpc/powerpc64/power7/memmove.S (bcopy): Changing to
> __bcopy and add a weak_alias to bcopy.
> * sysdeps/powerpc/powerpc64/power7/strstr.S (strstr): Use __strnlen
> for static build.
LGTM.
Thanks for catching this!
On Fri, 2015-07-31 at 11:40 -0300, Adhemerval Zanella wrote:
> When building with --disable-multi-arch the memmove and strstr POWER7
> optimization create and uses symbols that conflict with expect conform
> tests.
>
> Checked on powerpc64.
>
> --
>
> * sysdeps/powerpc/powerpc64/power7/memmove.S (bcopy): Changing to
> __bcopy and add a weak_alias to bcopy.
> * sysdeps/powerpc/powerpc64/power7/strstr.S (strstr): Use __strnlen
> for static build.
>
> --
>
> diff --git a/sysdeps/powerpc/powerpc64/power7/memmove.S b/sysdeps/powerpc/powerpc64/power7/memmove.S
> index 3bd4b4b..43f0a48 100644
> --- a/sysdeps/powerpc/powerpc64/power7/memmove.S
> +++ b/sysdeps/powerpc/powerpc64/power7/memmove.S
> @@ -823,9 +823,10 @@ libc_hidden_builtin_def (memmove)
> /* void bcopy(const void *src [r3], void *dest [r4], size_t n [r5])
> Implemented in this file to avoid linker create a stub function call
> in the branch to '_memmove'. */
> -ENTRY (bcopy)
> +ENTRY (__bcopy)
> mr r6,r3
> mr r3,r4
> mr r4,r6
> b L(_memmove)
> -END (bcopy)
> +END (__bcopy)
> +weak_alias (__bcopy, bcopy)
> diff --git a/sysdeps/powerpc/powerpc64/power7/strstr.S b/sysdeps/powerpc/powerpc64/power7/strstr.S
> index 8dca31c..bfb0c49 100644
> --- a/sysdeps/powerpc/powerpc64/power7/strstr.S
> +++ b/sysdeps/powerpc/powerpc64/power7/strstr.S
> @@ -39,7 +39,7 @@
> # ifdef SHARED
> # define STRNLEN __GI_strnlen
> # else
> -# define STRNLEN strnlen
> +# define STRNLEN __strnlen
> # endif
> #endif
>
Ok
Pushed upstream as 6f714aa4ad5af2745ae2d185821d20ce8fabc2c5
On 05-08-2015 14:42, Tulio Magno Quites Machado Filho wrote:
> Adhemerval Zanella <adhemerval.zanella@linaro.org> writes:
>
>> When building with --disable-multi-arch the memmove and strstr POWER7
>> optimization create and uses symbols that conflict with expect conform
>> tests.
>>
>> Checked on powerpc64.
>>
>> --
>>
>> * sysdeps/powerpc/powerpc64/power7/memmove.S (bcopy): Changing to
>> __bcopy and add a weak_alias to bcopy.
>> * sysdeps/powerpc/powerpc64/power7/strstr.S (strstr): Use __strnlen
>> for static build.
>
> LGTM.
>
> Thanks for catching this!
>
@@ -823,9 +823,10 @@ libc_hidden_builtin_def (memmove)
/* void bcopy(const void *src [r3], void *dest [r4], size_t n [r5])
Implemented in this file to avoid linker create a stub function call
in the branch to '_memmove'. */
-ENTRY (bcopy)
+ENTRY (__bcopy)
mr r6,r3
mr r3,r4
mr r4,r6
b L(_memmove)
-END (bcopy)
+END (__bcopy)
+weak_alias (__bcopy, bcopy)
@@ -39,7 +39,7 @@
# ifdef SHARED
# define STRNLEN __GI_strnlen
# else
-# define STRNLEN strnlen
+# define STRNLEN __strnlen
# endif
#endif