[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
new module 'float'
From: |
Bruno Haible |
Subject: |
new module 'float' |
Date: |
Sat, 19 May 2007 22:21:49 +0200 |
User-agent: |
KMail/1.5.4 |
<float.h> exists on all systems. But on BeOS the LDBL_* macros are wrong,
which causes gnulib's isnanl() to consider some finite values as being NaN,
which in turn breaks the *printf routines.
This works around it.
2007-05-19 Bruno Haible <address@hidden>
* lib/float_.h: New file.
* m4/float_h.m4: New file.
* modules/float: New file.
* modules/isnanl (Dependencies): Add float.
* modules/isnanl-nolibm (Dependencies): Likewise.
* modules/mathl (Dependencies): Likewise.
* modules/printf-frexpl (Dependencies): Likewise.
* modules/signbit (Dependencies): Likewise.
* modules/vasnprintf (Dependencies): Likewise.
* doc/headers/float.texi: Update.
============================ lib/float_.h ==============================
/* A correct <float.h>.
Copyright (C) 2007 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#ifndef _GL_FLOAT_H
#define _GL_FLOAT_H
#if @HAVE_INCLUDE_NEXT@
# include_next <float.h>
#else
# include @ABSOLUTE_FLOAT_H@
#endif
/* 'long double' properties. */
#if defined __i386__ && defined __BEOS__
/* Number of mantissa units, in base FLT_RADIX. */
# undef LDBL_MANT_DIG
# define LDBL_MANT_DIG 64
/* Number of decimal digits that sufficient for representing a number. */
# undef LDBL_DIG
# define LDBL_DIG 18
/* x-1 where x is the smallest representable number > 1. */
# undef LDBL_EPSILON
# define LDBL_EPSILON 1.0842021724855044340E-19L
/* Minimum e such that FLT_RADIX^(e-1) is a normalized number. */
# undef LDBL_MIN_EXP
# define LDBL_MIN_EXP (-16381)
/* Maximum e such that FLT_RADIX^(e-1) is a representable finite number. */
# undef LDBL_MAX_EXP
# define LDBL_MAX_EXP 16384
/* Minimum positive normalized number. */
# undef LDBL_MIN
# define LDBL_MIN 3.3621031431120935063E-4932L
/* Maximum representable finite number. */
# undef LDBL_MAX
# define LDBL_MAX 1.1897314953572317650E+4932L
/* Minimum e such that 10^e is in the range of normalized numbers. */
# undef LDBL_MIN_10_EXP
# define LDBL_MIN_10_EXP (-4931)
/* Maximum e such that 10^e is in the range of representable finite numbers. */
# undef LDBL_MAX_10_EXP
# define LDBL_MAX_10_EXP 4932
#endif
#endif /* _GL_FLOAT_H */
============================ m4/float_h.m4 =============================
# float_h.m4 serial 1
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,
dnl with or without modifications, as long as this notice is preserved.
AC_DEFUN([gl_FLOAT_H],
[
AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([AC_CANONICAL_HOST])
FLOAT_H=
case "$host_os" in
beos*)
FLOAT_H=float.h
gl_ABSOLUTE_HEADER([float.h])
ABSOLUTE_FLOAT_H=\"$gl_cv_absolute_float_h\"
AC_SUBST([ABSOLUTE_FLOAT_H])
;;
esac
AC_SUBST([FLOAT_H])
])
============================ modules/float =============================
Description:
A correct <float.h>.
Files:
lib/float_.h
m4/float_h.m4
Depends-on:
absolute-header
configure.ac:
gl_FLOAT_H
Makefile.am:
BUILT_SOURCES += $(FLOAT_H)
# We need the following in order to create <float.h> when the system
# doesn't have one that works with the given compiler.
float.h: float_.h
rm -f address@hidden $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
sed -e 's|@''ABSOLUTE_FLOAT_H''@|$(ABSOLUTE_FLOAT_H)|g' \
-e 's/@''HAVE_INCLUDE_NEXT''@/$(HAVE_INCLUDE_NEXT)/g' \
< $(srcdir)/float_.h; \
} > address@hidden
mv address@hidden $@
MOSTLYCLEANFILES += float.h float.h-t
Include:
<float.h>
License:
LGPL
Maintainer:
all
========================================================================
*** modules/isnanl 6 Apr 2007 14:36:56 -0000 1.5
--- modules/isnanl 19 May 2007 20:19:40 -0000
***************
*** 9,14 ****
--- 9,15 ----
m4/isnanl.m4
Depends-on:
+ float
fpieee
configure.ac:
*** modules/isnanl-nolibm 6 Apr 2007 14:36:56 -0000 1.6
--- modules/isnanl-nolibm 19 May 2007 20:19:40 -0000
***************
*** 9,14 ****
--- 9,15 ----
m4/isnanl.m4
Depends-on:
+ float
fpieee
configure.ac:
*** modules/mathl 30 Mar 2007 00:13:24 -0000 1.9
--- modules/mathl 19 May 2007 20:19:40 -0000
***************
*** 19,24 ****
--- 19,25 ----
m4/mathl.m4
Depends-on:
+ float
math
frexpl
isnanl
*** modules/printf-frexpl 18 May 2007 17:27:31 -0000 1.8
--- modules/printf-frexpl 19 May 2007 20:19:40 -0000
***************
*** 11,16 ****
--- 11,17 ----
m4/ldexpl.m4
Depends-on:
+ float
math
fpucw
*** modules/signbit 6 Apr 2007 20:55:44 -0000 1.1
--- modules/signbit 19 May 2007 20:19:41 -0000
***************
*** 9,14 ****
--- 9,15 ----
m4/signbit.m4
Depends-on:
+ float
math
isnanf-nolibm
isnan-nolibm
*** modules/vasnprintf 18 May 2007 18:26:03 -0000 1.16
--- modules/vasnprintf 19 May 2007 20:19:41 -0000
***************
*** 21,26 ****
--- 21,27 ----
Depends-on:
alloca-opt
+ float
stdint
xsize
- new module 'float',
Bruno Haible <=