[v3,7/7] math: Provide modf128 for static libm on alpha, s390, and sparcv9
Checks
Context |
Check |
Description |
redhat-pt-bot/TryBot-apply_patch |
success
|
Patch applied to master at the time it was sent
|
linaro-tcwg-bot/tcwg_glibc_build--master-arm |
success
|
Testing passed
|
redhat-pt-bot/TryBot-32bit |
success
|
Build for i686
|
linaro-tcwg-bot/tcwg_glibc_check--master-arm |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_glibc_build--master-aarch64 |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_glibc_check--master-aarch64 |
success
|
Testing passed
|
Commit Message
Checked with a build for the affected ABIs
---
sysdeps/ieee754/ldbl-64-128/s_modfl.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Comments
On Tue, Apr 2, 2024 at 7:07 AM Adhemerval Zanella
<adhemerval.zanella@linaro.org> wrote:
>
> Checked with a build for the affected ABIs
> ---
> sysdeps/ieee754/ldbl-64-128/s_modfl.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/sysdeps/ieee754/ldbl-64-128/s_modfl.c b/sysdeps/ieee754/ldbl-64-128/s_modfl.c
> index 7d7aeae111..ba3d31334a 100644
> --- a/sysdeps/ieee754/ldbl-64-128/s_modfl.c
> +++ b/sysdeps/ieee754/ldbl-64-128/s_modfl.c
> @@ -1,10 +1,10 @@
> #include <math_ldbl_opt.h>
> #include <libm-alias-ldouble.h>
> -#if IS_IN (libc)
> +#if IS_IN (libc) && defined SHARED
> # undef libm_alias_ldouble
> # define libm_alias_ldouble(from, to)
> #endif
> #include <sysdeps/ieee754/ldbl-128/s_modfl.c>
> -#if IS_IN (libc)
> +#if IS_IN (libc) && defined SHARED
> long_double_symbol (libc, __modfl, modfl);
Doesn't this remove modfl from static library?
> #endif
> --
> 2.34.1
>
On 20/05/24 13:59, H.J. Lu wrote:
> On Tue, Apr 2, 2024 at 7:07 AM Adhemerval Zanella
> <adhemerval.zanella@linaro.org> wrote:
>>
>> Checked with a build for the affected ABIs
>> ---
>> sysdeps/ieee754/ldbl-64-128/s_modfl.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/sysdeps/ieee754/ldbl-64-128/s_modfl.c b/sysdeps/ieee754/ldbl-64-128/s_modfl.c
>> index 7d7aeae111..ba3d31334a 100644
>> --- a/sysdeps/ieee754/ldbl-64-128/s_modfl.c
>> +++ b/sysdeps/ieee754/ldbl-64-128/s_modfl.c
>> @@ -1,10 +1,10 @@
>> #include <math_ldbl_opt.h>
>> #include <libm-alias-ldouble.h>
>> -#if IS_IN (libc)
>> +#if IS_IN (libc) && defined SHARED
>> # undef libm_alias_ldouble
>> # define libm_alias_ldouble(from, to)
>> #endif
>> #include <sysdeps/ieee754/ldbl-128/s_modfl.c>
>> -#if IS_IN (libc)
>> +#if IS_IN (libc) && defined SHARED
>> long_double_symbol (libc, __modfl, modfl);
>
> Doesn't this remove modfl from static library?
As for copysignf128 and frexp128, this symbol is also provided by libc.a.
Before this patch:
alpha-linux-gnu$ readelf -sW libc.a | grep -w modf.*
19: 0000000000000000 572 FUNC WEAK DEFAULT [STD GPLOAD] 1 modfl
17: 0000000000000000 304 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff32x
18: 0000000000000000 304 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff64
19: 0000000000000000 304 FUNC WEAK DEFAULT [STD GPLOAD] 1 modf
17: 0000000000000000 244 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff32
18: 0000000000000000 244 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff
After this patch:
alpha-linux-gnu$ readelf -sW libc.a | grep -w modf.*
19: 0000000000000000 572 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff64x
20: 0000000000000000 572 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff128
21: 0000000000000000 572 FUNC WEAK DEFAULT [STD GPLOAD] 1 modfl
17: 0000000000000000 304 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff32x
18: 0000000000000000 304 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff64
19: 0000000000000000 304 FUNC WEAK DEFAULT [STD GPLOAD] 1 modf
17: 0000000000000000 244 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff32
18: 0000000000000000 244 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff
>
>> #endif
>> --
>> 2.34.1
>>
>
>
On Mon, May 20, 2024 at 12:07 PM Adhemerval Zanella Netto
<adhemerval.zanella@linaro.org> wrote:
>
>
>
> On 20/05/24 13:59, H.J. Lu wrote:
> > On Tue, Apr 2, 2024 at 7:07 AM Adhemerval Zanella
> > <adhemerval.zanella@linaro.org> wrote:
> >>
> >> Checked with a build for the affected ABIs
> >> ---
> >> sysdeps/ieee754/ldbl-64-128/s_modfl.c | 4 ++--
> >> 1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/sysdeps/ieee754/ldbl-64-128/s_modfl.c b/sysdeps/ieee754/ldbl-64-128/s_modfl.c
> >> index 7d7aeae111..ba3d31334a 100644
> >> --- a/sysdeps/ieee754/ldbl-64-128/s_modfl.c
> >> +++ b/sysdeps/ieee754/ldbl-64-128/s_modfl.c
> >> @@ -1,10 +1,10 @@
> >> #include <math_ldbl_opt.h>
> >> #include <libm-alias-ldouble.h>
> >> -#if IS_IN (libc)
> >> +#if IS_IN (libc) && defined SHARED
> >> # undef libm_alias_ldouble
> >> # define libm_alias_ldouble(from, to)
> >> #endif
> >> #include <sysdeps/ieee754/ldbl-128/s_modfl.c>
> >> -#if IS_IN (libc)
> >> +#if IS_IN (libc) && defined SHARED
> >> long_double_symbol (libc, __modfl, modfl);
> >
> > Doesn't this remove modfl from static library?
>
> As for copysignf128 and frexp128, this symbol is also provided by libc.a.
> Before this patch:
>
> alpha-linux-gnu$ readelf -sW libc.a | grep -w modf.*
> 19: 0000000000000000 572 FUNC WEAK DEFAULT [STD GPLOAD] 1 modfl
> 17: 0000000000000000 304 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff32x
> 18: 0000000000000000 304 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff64
> 19: 0000000000000000 304 FUNC WEAK DEFAULT [STD GPLOAD] 1 modf
> 17: 0000000000000000 244 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff32
> 18: 0000000000000000 244 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff
>
> After this patch:
>
> alpha-linux-gnu$ readelf -sW libc.a | grep -w modf.*
> 19: 0000000000000000 572 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff64x
> 20: 0000000000000000 572 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff128
> 21: 0000000000000000 572 FUNC WEAK DEFAULT [STD GPLOAD] 1 modfl
> 17: 0000000000000000 304 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff32x
> 18: 0000000000000000 304 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff64
> 19: 0000000000000000 304 FUNC WEAK DEFAULT [STD GPLOAD] 1 modf
> 17: 0000000000000000 244 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff32
> 18: 0000000000000000 244 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff
>
>
I am working on a patch to check missing symbols in static libraries.
I opened:
https://sourceware.org/bugzilla/show_bug.cgi?id=31781
scalbnf128 seems also missing in alpha libm.a.
On 21/05/24 12:40, H.J. Lu wrote:
> On Mon, May 20, 2024 at 12:07 PM Adhemerval Zanella Netto
> <adhemerval.zanella@linaro.org> wrote:
>>
>>
>>
>> On 20/05/24 13:59, H.J. Lu wrote:
>>> On Tue, Apr 2, 2024 at 7:07 AM Adhemerval Zanella
>>> <adhemerval.zanella@linaro.org> wrote:
>>>>
>>>> Checked with a build for the affected ABIs
>>>> ---
>>>> sysdeps/ieee754/ldbl-64-128/s_modfl.c | 4 ++--
>>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/sysdeps/ieee754/ldbl-64-128/s_modfl.c b/sysdeps/ieee754/ldbl-64-128/s_modfl.c
>>>> index 7d7aeae111..ba3d31334a 100644
>>>> --- a/sysdeps/ieee754/ldbl-64-128/s_modfl.c
>>>> +++ b/sysdeps/ieee754/ldbl-64-128/s_modfl.c
>>>> @@ -1,10 +1,10 @@
>>>> #include <math_ldbl_opt.h>
>>>> #include <libm-alias-ldouble.h>
>>>> -#if IS_IN (libc)
>>>> +#if IS_IN (libc) && defined SHARED
>>>> # undef libm_alias_ldouble
>>>> # define libm_alias_ldouble(from, to)
>>>> #endif
>>>> #include <sysdeps/ieee754/ldbl-128/s_modfl.c>
>>>> -#if IS_IN (libc)
>>>> +#if IS_IN (libc) && defined SHARED
>>>> long_double_symbol (libc, __modfl, modfl);
>>>
>>> Doesn't this remove modfl from static library?
>>
>> As for copysignf128 and frexp128, this symbol is also provided by libc.a.
>> Before this patch:
>>
>> alpha-linux-gnu$ readelf -sW libc.a | grep -w modf.*
>> 19: 0000000000000000 572 FUNC WEAK DEFAULT [STD GPLOAD] 1 modfl
>> 17: 0000000000000000 304 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff32x
>> 18: 0000000000000000 304 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff64
>> 19: 0000000000000000 304 FUNC WEAK DEFAULT [STD GPLOAD] 1 modf
>> 17: 0000000000000000 244 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff32
>> 18: 0000000000000000 244 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff
>>
>> After this patch:
>>
>> alpha-linux-gnu$ readelf -sW libc.a | grep -w modf.*
>> 19: 0000000000000000 572 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff64x
>> 20: 0000000000000000 572 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff128
>> 21: 0000000000000000 572 FUNC WEAK DEFAULT [STD GPLOAD] 1 modfl
>> 17: 0000000000000000 304 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff32x
>> 18: 0000000000000000 304 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff64
>> 19: 0000000000000000 304 FUNC WEAK DEFAULT [STD GPLOAD] 1 modf
>> 17: 0000000000000000 244 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff32
>> 18: 0000000000000000 244 FUNC WEAK DEFAULT [STD GPLOAD] 1 modff
>>
>>
>
> I am working on a patch to check missing symbols in static libraries.
> I opened:
>
> https://sourceware.org/bugzilla/show_bug.cgi?id=31781
>
> scalbnf128 seems also missing in alpha libm.a.
>
It seems so, the static tests I have added only cover for the auto-generated
function from the libm-test-funcs-auto, libm-test-funcs-noauto, and
libm-test-funcs-narrow; and the are some function that are not covered by
these (scalbn for instance).
@@ -1,10 +1,10 @@
#include <math_ldbl_opt.h>
#include <libm-alias-ldouble.h>
-#if IS_IN (libc)
+#if IS_IN (libc) && defined SHARED
# undef libm_alias_ldouble
# define libm_alias_ldouble(from, to)
#endif
#include <sysdeps/ieee754/ldbl-128/s_modfl.c>
-#if IS_IN (libc)
+#if IS_IN (libc) && defined SHARED
long_double_symbol (libc, __modfl, modfl);
#endif