+2011-10-14 Bruno Haible <bruno@clisp.org>
+
+ New module 'integer_length'.
+ * lib/integer_length.h: New file.
+ * lib/integer_length.c: New file.
+ * modules/integer_length: New file.
+
+2011-10-14 Daniel Richard G. <skunk@iskunk.org> (tiny change)
+
+ popen: Fix dependency conditions.
+ * modules/popen (Depends-on, configure.ac): Fix shell syntax error.
+
+2011-10-14 Daniel Richard G. <skunk@iskunk.org> (tiny change)
+
+ perror: Fix autoconf test.
+ * m4/perror.m4 (gl_FUNC_PERROR): In the test program, include
+ <stdlib.h> and <string.h>.
+
+2011-10-14 Bruno Haible <bruno@clisp.org>
+
+ ffsl: Optimize on 64-bit platforms.
+ * lib/ffsl.h (FUNC): Omit a test from the last loop round. Do loop
+ unrolling.
+
+2011-10-13 Bruno Haible <bruno@clisp.org>
+
+ ffsl: Optimize on 32-bit platforms.
+ * lib/ffsl.h (FUNC): If TYPE has the same representation as 'int', just
+ use ffs() without a loop.
+
+ ffsl, ffsll: Optimize for GCC.
+ * lib/ffsl.h (FUNC): Use GCC_BUILTIN if defined.
+ * lib/ffsl.c (GCC_BUILTIN): New macro.
+ * lib/ffsll.c (GCC_BUILTIN): Likewise.
+
+2011-10-13 Bruno Haible <bruno@clisp.org>
+
+ ffs, bcopy, memset: Support symbol renaming via config.h.
+ * lib/ffs.c: Include <config.h>.
+ * lib/bcopy.c: Likewise.
+ * lib/memset.c: Likewise.
+
+2011-10-10 Bruno Haible <bruno@clisp.org>
+
+ atanl: Simplify for platforms where 'long double' == 'double'.
+ * lib/atanl.c (atanl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New
+ alternative implementation.
+ * m4/atanl.m4 (gl_FUNC_ATANL): Require gl_LONG_DOUBLE_VS_DOUBLE.
+ Determine ATANL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
+ * modules/atanl (Depends-on): Add atan. Update conditions.
+
+2011-10-10 Bruno Haible <bruno@clisp.org>
+
+ acosl: Simplify for platforms where 'long double' == 'double'.
+ * lib/acosl.c (acosl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New
+ alternative implementation.
+ * m4/acosl.m4 (gl_FUNC_ACOSL): Require gl_LONG_DOUBLE_VS_DOUBLE.
+ Determine ACOSL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
+ * modules/acosl (Depends-on): Add acos. Update conditions.
+
+2011-10-10 Bruno Haible <bruno@clisp.org>
+
+ asinl: Simplify for platforms where 'long double' == 'double'.
+ * lib/asinl.c (asinl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New
+ alternative implementation.
+ * m4/asinl.m4 (gl_FUNC_ASINL): Require gl_LONG_DOUBLE_VS_DOUBLE.
+ Determine ASINL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
+ * modules/asinl (Depends-on): Add asin. Update conditions.
+
+2011-10-10 Bruno Haible <bruno@clisp.org>
+
+ tanl: Simplify for platforms where 'long double' == 'double'.
+ * lib/tanl.c (tanl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New alternative
+ implementation.
+ * m4/tanl.m4 (gl_FUNC_TANL): Require gl_LONG_DOUBLE_VS_DOUBLE.
+ Determine TANL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
+ * modules/tanl (Depends-on): Add tan. Update conditions.
+ (configure.ac): Don't compile trigl.c if
+ HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
+
+2011-10-10 Bruno Haible <bruno@clisp.org>
+
+ cosl: Simplify for platforms where 'long double' == 'double'.
+ * lib/cosl.c (cosl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New alternative
+ implementation.
+ * m4/cosl.m4 (gl_FUNC_COSL): Require gl_LONG_DOUBLE_VS_DOUBLE.
+ Determine COSL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
+ * modules/cosl (Depends-on): Add cos. Update conditions.
+ (configure.ac): Don't compile sincosl.c and trigl.c if
+ HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
+
+2011-10-10 Bruno Haible <bruno@clisp.org>
+
+ sinl: Simplify for platforms where 'long double' == 'double'.
+ * lib/sinl.c (sinl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New alternative
+ implementation.
+ * m4/sinl.m4 (gl_FUNC_SINL): Require gl_LONG_DOUBLE_VS_DOUBLE.
+ Determine SINL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
+ * modules/sinl (Depends-on): Add sin. Update conditions.
+ (configure.ac): Don't compile sincosl.c and trigl.c if
+ HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
+
+2011-10-10 Bruno Haible <bruno@clisp.org>
+
+ logl: Simplify for platforms where 'long double' == 'double'.
+ * lib/logl.c (logl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New alternative
+ implementation.
+ * m4/logl.m4 (gl_FUNC_LOGL): Require gl_LONG_DOUBLE_VS_DOUBLE.
+ Determine LOGL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
+ * modules/logl (Depends-on): Add log. Update conditions.
+
+2011-10-10 Bruno Haible <bruno@clisp.org>
+
+ expl: Simplify for platforms where 'long double' == 'double'.
+ * lib/expl.c (expl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New alternative
+ implementation.
+ * m4/expl.m4 (gl_FUNC_EXPL): Require gl_LONG_DOUBLE_VS_DOUBLE.
+ Determine EXPL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
+ * modules/expl (Depends-on): Add exp. Update conditions.
+
+2011-10-10 Bruno Haible <bruno@clisp.org>
+
+ sqrtl: Simplify for platforms where 'long double' == 'double'.
+ * lib/sqrtl.c (sqrtl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New
+ alternative implementation.
+ * m4/sqrtl.m4 (gl_FUNC_SQRTL): Require gl_LONG_DOUBLE_VS_DOUBLE.
+ Determine SQRTL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
+ * modules/sqrtl (Depends-on): Update conditions.
+
+2011-10-10 Bruno Haible <bruno@clisp.org>
+
+ ldexpl: Simplify for platforms where 'long double' == 'double'.
+ * lib/ldexpl.c (ldexpl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New
+ alternative implementation.
+ * m4/ldexpl.m4 (gl_FUNC_LDEXPL): Require gl_LONG_DOUBLE_VS_DOUBLE.
+ Determine LDEXPL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
+ * modules/ldexpl (Depends-on): Add ldexp. Update conditions.
+
+2011-10-10 Tom G. Christensen <tgc@jupiterrise.com> (tiny change)
+
+ ffsll: set correct witness
+ * modules/ffsll (configure.ac): Fix typo.
+
+2011-10-10 Bruno Haible <bruno@clisp.org>
+
+ printf-frexpl: Simplify for platforms where 'long double' == 'double'.
+ * lib/printf-frexpl.c: Include <config.h>.
+ (printf_frexpl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New function.
+ * lib/printf-frexp.c [!USE_LONG_DOUBLE]: Don't include <config.h> a
+ second time.
+ * m4/printf-frexpl.m4 (gl_FUNC_PRINTF_FREXPL): Require
+ gl_LONG_DOUBLE_VS_DOUBLE.
+ * modules/printf-frexpl (Depends-on): Add printf-frexp. Update
+ conditions.
+
+2011-10-10 Bruno Haible <bruno@clisp.org>
+
+ frexpl: Simplify for platforms where 'long double' == 'double'.
+ * lib/frexpl.c: Include <config.h>.
+ (frexpl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New function.
+ * lib/frexp.c [!USE_LONG_DOUBLE]: Don't include <config.h> a second
+ time.
+ * m4/frexpl.m4 (gl_FUNC_FREXPL): Require gl_LONG_DOUBLE_VS_DOUBLE.
+ Determine FREXPL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
+ (gl_FUNC_FREXPL_NO_LIBM): Require gl_LONG_DOUBLE_VS_DOUBLE.
+ * modules/frexpl (Depends-on): Add frexp. Update conditions.
+ * modules/frexpl-nolibm (Depends-on): Add frexp-nolibm. Update
+ conditions.
+
+2011-10-10 Jim Meyering <meyering@redhat.com>
+
+ test-renameat: don't leave behind a temporary file
+ * tests/test-renameat.c (main): Don't forget to remove a temporary file.
+ ERROR: files left in build directory after distclean:
+ ./gltests/test-renameat.too
+ make[1]: *** [distcleancheck] Error 1
+ Reported by Tom G. Christensen.
+
+2011-10-09 Bruno Haible <bruno@clisp.org>
+
+ rint: Determine RINT_LIBM correctly on AIX 7.
+ * m4/mathfunc.m4 (gl_MATHFUNC): Try to invoke the function also
+ directly, not only through a function pointer. Also accept an optional
+ 4th argument with extra code.
+ * m4/rint.m4 (gl_FUNC_RINT): Pass an extra code that gets turned into a
+ rintf() call by gcc when optimizing.
+
+ mathfunc.m4: Refactor.
+ * m4/mathfunc.m4 (gl_MATHFUNC): Assign the argument list to a temporary
+ m4 variable.
+
+2011-10-09 Bruno Haible <bruno@clisp.org>
+
+ rintl: Simplify for platforms where 'long double' == 'double'.
+ * lib/rintl.c: Include <config.h>.
+ (rintl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New function.
+ * lib/rint.c [!USE_LONG_DOUBLE]: Don't include <config.h> a second
+ time.
+ * m4/rintl.m4 (gl_FUNC_RINTL): Require gl_LONG_DOUBLE_VS_DOUBLE.
+ Determine RINTL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
+ * modules/rintl (Depends-on): Add rint. Update conditions.
+
+2011-10-09 Bruno Haible <bruno@clisp.org>
+
+ roundl: Simplify for platforms where 'long double' == 'double'.
+ * lib/roundl.c: Include <config.h>.
+ (roundl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New function.
+ * lib/round.c [!USE_LONG_DOUBLE]: Don't include <config.h> a second
+ time.
+ * m4/roundl.m4 (gl_FUNC_ROUNDL): Require gl_LONG_DOUBLE_VS_DOUBLE.
+ Determine ROUNDL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
+ * modules/roundl (Depends-on): Add round. Update conditions.
+
+2011-10-09 Bruno Haible <bruno@clisp.org>
+
+ truncl: Simplify for platforms where 'long double' == 'double'.
+ * lib/truncl.c: Include <config.h>.
+ (truncl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New function.
+ * lib/trunc.c [!USE_LONG_DOUBLE]: Don't include <config.h> a second
+ time.
+ * m4/truncl.m4 (gl_FUNC_TRUNCL): Require gl_LONG_DOUBLE_VS_DOUBLE.
+ Determine TRUNCL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
+ * modules/truncl (Depends-on): Add trunc. Update conditions.
+
+2011-10-09 Bruno Haible <bruno@clisp.org>
+
+ ceill: Simplify for platforms where 'long double' == 'double'.
+ * lib/ceill.c: Include <config.h>.
+ (ceill) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New function.
+ * lib/ceil.c [!USE_LONG_DOUBLE]: Don't include <config.h> a second
+ time.
+ * m4/ceill.m4 (gl_FUNC_CEILL): Require gl_LONG_DOUBLE_VS_DOUBLE.
+ Determine CEILL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
+ * modules/ceill (Depends-on): Add ceil. Update conditions.
+
+2011-10-09 Bruno Haible <bruno@clisp.org>
+
+ floorl: Simplify for platforms where 'long double' == 'double'.
+ * lib/floorl.c: Include <config.h>.
+ (floorl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New function.
+ * lib/floor.c [!USE_LONG_DOUBLE]: Don't include <config.h> a second
+ time.
+ * m4/floorl.m4 (gl_FUNC_FLOORL): Require gl_LONG_DOUBLE_VS_DOUBLE.
+ Determine FLOORL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
+ * modules/floorl (Depends-on): Add floor. Update conditions.
+
2011-10-09 Bruno Haible <bruno@clisp.org>
rint: Fix ordering constraints.