diff mbox

powerpc: Fix PPC64/POWER7 conform tests

Message ID 55BB88D6.4080601@linaro.org
State New
Headers show

Commit Message

Adhemerval Zanella Netto July 31, 2015, 2:40 p.m. UTC
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

Tulio Magno Quites Machado Filho Aug. 5, 2015, 5:42 p.m. UTC | #1
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!
Steven Munroe Aug. 5, 2015, 6:19 p.m. UTC | #2
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
Adhemerval Zanella Netto Aug. 11, 2015, 1:12 p.m. UTC | #3
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!
>
diff mbox

Patch

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