Paolo Bonzini wrote: > The patch is fine OK. Testing revealed a few tweaks were necessary (attached below).
> There's quite some duplication in the macros Yes. There's a trade-off between duplication on one side and complexity (pushdef, popdef) that reduces the ease of understanding of the *.m4 files. Committed. --- lib/sincosl.c.orig Tue Jan 19 02:56:02 2010 +++ lib/sincosl.c Tue Jan 19 01:50:35 2010 @@ -19,7 +19,7 @@ #include <config.h> /* Specification. */ -#include "trig.h" +#include "trigl.h" #include <float.h> #include <math.h> --- m4/acosl.m4.orig Tue Jan 19 02:56:02 2010 +++ m4/acosl.m4 Tue Jan 19 02:18:12 2010 @@ -52,6 +52,9 @@ HAVE_DECL_ACOSL=0 HAVE_ACOSL=0 AC_LIBOBJ([acosl]) + AC_REQUIRE([gl_FUNC_ASINL]) + AC_REQUIRE([gl_FUNC_SQRTL]) + ACOSL_LIBM="$ASINL_LIBM $SQRTL_LIBM" fi AC_SUBST([ACOSL_LIBM]) ]) --- m4/asinl.m4.orig Tue Jan 19 02:56:02 2010 +++ m4/asinl.m4 Tue Jan 19 02:09:27 2010 @@ -52,6 +52,8 @@ HAVE_DECL_ASINL=0 HAVE_ASINL=0 AC_LIBOBJ([asinl]) + AC_REQUIRE([gl_FUNC_SQRTL]) + ASINL_LIBM="$SQRTL_LIBM" fi AC_SUBST([ASINL_LIBM]) ]) --- m4/atanl.m4.orig Tue Jan 19 02:56:02 2010 +++ m4/atanl.m4 Tue Jan 19 02:15:20 2010 @@ -52,6 +52,8 @@ HAVE_DECL_ATANL=0 HAVE_ATANL=0 AC_LIBOBJ([atanl]) + AC_REQUIRE([gl_FUNC_ISNANL]) + ATANL_LIBM="$ISNANL_LIBM" fi AC_SUBST([ATANL_LIBM]) ]) --- m4/cosl.m4.orig Tue Jan 19 02:56:02 2010 +++ m4/cosl.m4 Tue Jan 19 02:34:37 2010 @@ -54,6 +54,10 @@ AC_LIBOBJ([cosl]) AC_LIBOBJ([sincosl]) AC_LIBOBJ([trigl]) + AC_REQUIRE([gl_FUNC_ISNANL]) + AC_REQUIRE([gl_FUNC_FLOOR]) + AC_REQUIRE([gl_FUNC_FLOORL]) + COSL_LIBM="$ISNANL_LIBM $FLOOR_LIBM $FLOORL_LIBM" fi AC_SUBST([COSL_LIBM]) ]) --- m4/expl.m4.orig Tue Jan 19 02:56:02 2010 +++ m4/expl.m4 Tue Jan 19 02:11:17 2010 @@ -52,6 +52,8 @@ HAVE_DECL_EXPL=0 HAVE_EXPL=0 AC_LIBOBJ([expl]) + AC_REQUIRE([gl_FUNC_FLOORL]) + EXPL_LIBM="$FLOORL_LIBM" fi AC_SUBST([EXPL_LIBM]) ]) --- m4/logl.m4.orig Tue Jan 19 02:56:02 2010 +++ m4/logl.m4 Tue Jan 19 02:14:14 2010 @@ -52,6 +52,10 @@ HAVE_DECL_LOGL=0 HAVE_LOGL=0 AC_LIBOBJ([logl]) + AC_REQUIRE([gl_FUNC_FREXPL]) + AC_REQUIRE([gl_FUNC_ISNANL]) + AC_REQUIRE([gl_FUNC_FLOORL]) + LOGL_LIBM="$FREXPL_LIBM $ISNANL_LIBM $FLOORL_LIBM" fi AC_SUBST([LOGL_LIBM]) ]) --- m4/sinl.m4.orig Tue Jan 19 02:56:02 2010 +++ m4/sinl.m4 Tue Jan 19 02:34:37 2010 @@ -54,6 +54,10 @@ AC_LIBOBJ([sinl]) AC_LIBOBJ([sincosl]) AC_LIBOBJ([trigl]) + AC_REQUIRE([gl_FUNC_ISNANL]) + AC_REQUIRE([gl_FUNC_FLOOR]) + AC_REQUIRE([gl_FUNC_FLOORL]) + SINL_LIBM="$ISNANL_LIBM $FLOOR_LIBM $FLOORL_LIBM" fi AC_SUBST([SINL_LIBM]) ]) --- m4/sqrtl.m4.orig Tue Jan 19 02:56:02 2010 +++ m4/sqrtl.m4 Tue Jan 19 02:19:58 2010 @@ -52,6 +52,11 @@ HAVE_DECL_SQRTL=0 HAVE_SQRTL=0 AC_LIBOBJ([sqrtl]) + AC_REQUIRE([gl_FUNC_ISNANL]) + AC_REQUIRE([gl_FUNC_FREXPL]) + AC_REQUIRE([gl_FUNC_LDEXPL]) + AC_REQUIRE([gl_FUNC_SQRT]) + SQRTL_LIBM="$ISNANL_LIBM $FREXPL_LIBM $LDEXPL_LIBM $SQRT_LIBM" fi AC_SUBST([SQRTL_LIBM]) ]) --- m4/tanl.m4.orig Tue Jan 19 02:56:02 2010 +++ m4/tanl.m4 Tue Jan 19 02:34:38 2010 @@ -53,6 +53,10 @@ HAVE_TANL=0 AC_LIBOBJ([tanl]) AC_LIBOBJ([trigl]) + AC_REQUIRE([gl_FUNC_ISNANL]) + AC_REQUIRE([gl_FUNC_FLOOR]) + AC_REQUIRE([gl_FUNC_FLOORL]) + TANL_LIBM="$ISNANL_LIBM $FLOOR_LIBM $FLOORL_LIBM" fi AC_SUBST([TANL_LIBM]) ]) --- modules/cosl.orig Tue Jan 19 02:56:02 2010 +++ modules/cosl Tue Jan 19 02:33:41 2010 @@ -13,6 +13,8 @@ extensions float isnanl +floor +floorl configure.ac: gl_FUNC_COSL --- modules/sinl.orig Tue Jan 19 02:56:02 2010 +++ modules/sinl Tue Jan 19 02:33:40 2010 @@ -13,6 +13,8 @@ extensions float isnanl +floor +floorl configure.ac: gl_FUNC_SINL --- modules/sqrtl.orig Tue Jan 19 02:56:03 2010 +++ modules/sqrtl Tue Jan 19 01:50:35 2010 @@ -12,6 +12,7 @@ isnanl frexpl ldexpl +sqrt configure.ac: gl_FUNC_SQRTL --- modules/tanl.orig Tue Jan 19 02:56:03 2010 +++ modules/tanl Tue Jan 19 02:33:41 2010 @@ -12,6 +12,8 @@ extensions float isnanl +floor +floorl configure.ac: gl_FUNC_TANL