Message ID | 20240402140644.2172819-8-adhemerval.zanella@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | Fix some libm static issues | expand |
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).
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); #endif