[PATCH v2 05/10] math: Fix i386 and m68k exp10 on static build

H.J. Lu hjl.tools@gmail.com
Wed Mar 27 19:57:51 GMT 2024


On Wed, Mar 27, 2024 at 12:40 PM Adhemerval Zanella
<adhemerval.zanella@linaro.org> wrote:
>
> The commit 08ddd26814 removed the static exp10 on i386 and m68k with an
> empty w_exp10.c (required for the ABIs that uses the newly
> implementation).  This patch fixes by adding the required symbols on the
> arch-specific w_exp{f}_compat.c implementation.
>
> Checked on i686-linux-gnu and with a build for m68k-linux-gnu.
> ---
>  math/Makefile                            | 4 +++-
>  sysdeps/i386/fpu/w_exp10_compat.c        | 9 +++++++--
>  sysdeps/m68k/m680x0/fpu/w_exp10_compat.c | 9 +++++++--
>  3 files changed, 17 insertions(+), 5 deletions(-)
>
> diff --git a/math/Makefile b/math/Makefile
> index 964bf2be71..f1d210797d 100644
> --- a/math/Makefile
> +++ b/math/Makefile
> @@ -367,7 +367,9 @@ $(libm-test-c-narrow-obj): $(objpfx)libm-test%.c: libm-test%.inc \
>         $(PYTHON) gen-libm-test.py -c $< -a auto-libm-test-out$* -C $@
>
>
> -libm-test-funcs-auto-static =
> +libm-test-funcs-auto-static = \
> +  exp10 \
> +  # libm-test-funcs-auto-static

This doesn't provide confidence that static libm issues are fixed.
I think we should add a configure option to enable static tests for
all libm functions.

>  libm-test-funcs-noauto-static = \
>    fmod \
>    # libm-test-funcs-noauto-static
> diff --git a/sysdeps/i386/fpu/w_exp10_compat.c b/sysdeps/i386/fpu/w_exp10_compat.c
> index b53455386e..49a0e03385 100644
> --- a/sysdeps/i386/fpu/w_exp10_compat.c
> +++ b/sysdeps/i386/fpu/w_exp10_compat.c
> @@ -1,3 +1,8 @@
>  /* i386 provides an optimized __ieee754_exp10.  */
> -#define NO_COMPAT_NEEDED 1
> -#include <math/w_exp10_compat.c>
> +#ifdef SHARED
> +# define NO_COMPAT_NEEDED 1
> +# include <math/w_exp10_compat.c>
> +#else
> +# include <math-type-macros-double.h>
> +# include <w_exp10_template.c>
> +#endif
> diff --git a/sysdeps/m68k/m680x0/fpu/w_exp10_compat.c b/sysdeps/m68k/m680x0/fpu/w_exp10_compat.c
> index 0d3e718626..350f2e4b4d 100644
> --- a/sysdeps/m68k/m680x0/fpu/w_exp10_compat.c
> +++ b/sysdeps/m68k/m680x0/fpu/w_exp10_compat.c
> @@ -1,3 +1,8 @@
>  /* m68k provides an optimized __ieee754_exp10.  */
> -#define NO_COMPAT_NEEDED 1
> -#include <math/w_exp10_compat.c>
> +#ifdef SHARED
> +# define NO_COMPAT_NEEDED 1
> +# include <math/w_exp10_compat.c>
> +#else
> +# include <math-type-macros-double.h>
> +# include <w_exp10_template.c>
> +#endif
> --
> 2.34.1
>


-- 
H.J.


More information about the Libc-alpha mailing list