powerpc64le/multiarch: don't generate strong aliases for fmaf128-ppc64

Message ID 20200403160307.32477-1-murphyp@linux.vnet.ibm.com
State New
Headers show
Series
  • powerpc64le/multiarch: don't generate strong aliases for fmaf128-ppc64
Related show

Commit Message

Sergei Trofimovich via Libc-alpha April 3, 2020, 4:03 p.m.
This prevents generating a second alias for __fmaieee128 when
compiling with ldouble == ieee128 redirects.
---
 sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-ppc64.c | 2 ++
 1 file changed, 2 insertions(+)

-- 
2.21.1

Comments

Sergei Trofimovich via Libc-alpha April 3, 2020, 7:04 p.m. | #1
On 03/04/2020 13:03, Paul E. Murphy via Libc-alpha wrote:
> This prevents generating a second alias for __fmaieee128 when

> compiling with ldouble == ieee128 redirects.


I trying to pinpoint where exactly this strong_alias is being
issued, but fix make sense (since the idea is to just provide
a unique function to ifunc selection).+

> ---

>  sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-ppc64.c | 2 ++

>  1 file changed, 2 insertions(+)

> 

> diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-ppc64.c b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-ppc64.c

> index 7374a799af..ab0c4d03a8 100644

> --- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-ppc64.c

> +++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-ppc64.c

> @@ -18,6 +18,8 @@

>  

>  #undef weak_alias

>  #define weak_alias(a, b)

> +#undef strong_alias

> +#define strong_alias(a, b)

>  

>  #define __fmaf128 __fmaf128_ppc64

>  

>
Sergei Trofimovich via Libc-alpha April 3, 2020, 8:04 p.m. | #2
On 4/3/20 2:04 PM, Adhemerval Zanella via Libc-alpha wrote:
> 

> 

> On 03/04/2020 13:03, Paul E. Murphy via Libc-alpha wrote:

>> This prevents generating a second alias for __fmaieee128 when

>> compiling with ldouble == ieee128 redirects.

> 

> I trying to pinpoint where exactly this strong_alias is being

> issued, but fix make sense (since the idea is to just provide

> a unique function to ifunc selection).+


The aliasing macros for float128 are buried in indirection.  Ultimately, 
the macro libm_alias_float128_other_r_ldbl in 
ldbl-128ibm-compat/libm-alias-float.h uses strong_alias.

> 

>> ---

>>   sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-ppc64.c | 2 ++

>>   1 file changed, 2 insertions(+)

>>

>> diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-ppc64.c b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-ppc64.c

>> index 7374a799af..ab0c4d03a8 100644

>> --- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-ppc64.c

>> +++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-ppc64.c

>> @@ -18,6 +18,8 @@

>>   

>>   #undef weak_alias

>>   #define weak_alias(a, b)

>> +#undef strong_alias

>> +#define strong_alias(a, b)

>>   

>>   #define __fmaf128 __fmaf128_ppc64

>>   

>>
Sergei Trofimovich via Libc-alpha April 3, 2020, 8:10 p.m. | #3
On 03/04/2020 17:04, Paul E Murphy wrote:
> 

> 

> On 4/3/20 2:04 PM, Adhemerval Zanella via Libc-alpha wrote:

>>

>>

>> On 03/04/2020 13:03, Paul E. Murphy via Libc-alpha wrote:

>>> This prevents generating a second alias for __fmaieee128 when

>>> compiling with ldouble == ieee128 redirects.

>>

>> I trying to pinpoint where exactly this strong_alias is being

>> issued, but fix make sense (since the idea is to just provide

>> a unique function to ifunc selection).+

> 

> The aliasing macros for float128 are buried in indirection.  Ultimately, the macro libm_alias_float128_other_r_ldbl in ldbl-128ibm-compat/libm-alias-float.h uses strong_alias.


Alright, LGTM then.

> 

>>

>>> ---

>>>   sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-ppc64.c | 2 ++

>>>   1 file changed, 2 insertions(+)

>>>

>>> diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-ppc64.c b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-ppc64.c

>>> index 7374a799af..ab0c4d03a8 100644

>>> --- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-ppc64.c

>>> +++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-ppc64.c

>>> @@ -18,6 +18,8 @@

>>>     #undef weak_alias

>>>   #define weak_alias(a, b)

>>> +#undef strong_alias

>>> +#define strong_alias(a, b)

>>>     #define __fmaf128 __fmaf128_ppc64

>>>

Patch

diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-ppc64.c b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-ppc64.c
index 7374a799af..ab0c4d03a8 100644
--- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-ppc64.c
@@ -18,6 +18,8 @@ 
 
 #undef weak_alias
 #define weak_alias(a, b)
+#undef strong_alias
+#define strong_alias(a, b)
 
 #define __fmaf128 __fmaf128_ppc64