[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
new module 'frexp-nolibm'
From: |
Bruno Haible |
Subject: |
new module 'frexp-nolibm' |
Date: |
Sat, 3 Nov 2007 16:35:32 +0100 |
User-agent: |
KMail/1.5.4 |
For the next patch to the *printf facilities, it is necessary to have a frexp()
function that does not require linking with libm. This module provides it.
2007-11-03 Bruno Haible <address@hidden>
* modules/frexp-nolibm: New file.
* m4/frexp.m4 (gl_FUNC_FREXP_NO_LIBM): New macro.
=========================== modules/frexp-nolibm =============================
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:
<math.h>
License:
LGPL
Maintainer:
Bruno Haible, Paolo Bonzini
=============================================================================
*** m4/frexp.m4.orig 2007-11-03 16:32:30.000000000 +0100
--- m4/frexp.m4 2007-11-03 05:16:32.000000000 +0100
***************
*** 1,4 ****
! # frexp.m4 serial 3
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,
--- 1,4 ----
! # 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,61 ****
--- 56,92 ----
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 <math.h>
+ 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],
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- new module 'frexp-nolibm',
Bruno Haible <=