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

Message ID 20200403160307.32477-1-murphyp@linux.vnet.ibm.com
State Committed
Delegated to: Adhemerval Zanella Netto
Headers
Series powerpc64le/multiarch: don't generate strong aliases for fmaf128-ppc64 |

Commit Message

Paul E. Murphy April 3, 2020, 4:03 p.m. UTC
  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(+)
  

Comments

Adhemerval Zanella Netto April 3, 2020, 7:04 p.m. UTC | #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
>  
>
  
Paul E Murphy April 3, 2020, 8:04 p.m. UTC | #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
>>   
>>
  
Adhemerval Zanella Netto April 3, 2020, 8:10 p.m. UTC | #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