From 70cc6595b54a72b9b852c325ffa8d2b0952e9da5 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sat, 3 Nov 2007 16:35:53 +0100 Subject: [PATCH] New module 'frexp-nolibm'. --- ChangeLog | 5 +++++ m4/frexp.m4 | 33 ++++++++++++++++++++++++++++++++- modules/frexp-nolibm | 26 ++++++++++++++++++++++++++ 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 modules/frexp-nolibm diff --git a/ChangeLog b/ChangeLog index 6c965e410..c83dca1ec 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2007-11-03 Bruno Haible + * modules/frexp-nolibm: New file. + * m4/frexp.m4 (gl_FUNC_FREXP_NO_LIBM): New macro. + +2007-11-03 Bruno Haible + * lib/vasnprintf.c (VASNPRINTF): Don't assume that snprintf's return value is C99 compliant. Needed for OSF/1 5.1. diff --git a/m4/frexp.m4 b/m4/frexp.m4 index 8e9332235..524f6d5ca 100644 --- a/m4/frexp.m4 +++ b/m4/frexp.m4 @@ -1,4 +1,4 @@ -# frexp.m4 serial 3 +# frexp.m4 serial 4 dnl Copyright (C) 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -56,6 +56,37 @@ AC_DEFUN([gl_FUNC_FREXP], AC_SUBST([FREXP_LIBM]) ]) +AC_DEFUN([gl_FUNC_FREXP_NO_LIBM], +[ + AC_REQUIRE([gl_MATH_H_DEFAULTS]) + AC_CACHE_CHECK([whether frexp() can be used without linking with libm], + [gl_cv_func_frexp_no_libm], + [ + AC_TRY_LINK([#include + double x;], + [int e; return frexp (x, &e) > 0;], + [gl_cv_func_frexp_no_libm=yes], + [gl_cv_func_frexp_no_libm=no]) + ]) + if test $gl_cv_func_frexp_no_libm = yes; then + gl_FUNC_FREXP_WORKS + case "$gl_cv_func_frexp_works" in + *yes) gl_func_frexp_no_libm=yes ;; + *) gl_func_frexp_no_libm=no; REPLACE_FREXP=1 ;; + esac + else + gl_func_frexp_no_libm=no + dnl Set REPLACE_FREXP here because the system may have frexp in libm. + REPLACE_FREXP=1 + fi + if test $gl_func_frexp_no_libm = yes; then + AC_DEFINE([HAVE_FREXP_IN_LIBC], 1, + [Define if the frexp() function is available in libc.]) + else + AC_LIBOBJ([frexp]) + fi +]) + dnl Test whether frexp() works also on denormalized numbers (this fails e.g. on dnl NetBSD 3.0) and on infinite numbers (this fails e.g. on IRIX 6.5). AC_DEFUN([gl_FUNC_FREXP_WORKS], diff --git a/modules/frexp-nolibm b/modules/frexp-nolibm new file mode 100644 index 000000000..8026d76b7 --- /dev/null +++ b/modules/frexp-nolibm @@ -0,0 +1,26 @@ +Description: +frexp() function: split a double into its constituents, without requiring libm. + +Files: +lib/frexp.c +m4/frexp.m4 + +Depends-on: +math +isnan-nolibm + +configure.ac: +gl_FUNC_FREXP_NO_LIBM +gl_MATH_MODULE_INDICATOR([frexp]) + +Makefile.am: + +Include: + + +License: +LGPL + +Maintainer: +Bruno Haible, Paolo Bonzini + -- 2.11.0