* math/math.h: Unconditionally include bits/mathdef.h.  Declare
	long double functions only if __NO_LONG_DOUBLE_MATH is not
	defined.
	* sysdeps/generic/bits/mathdef.h: Define only if __USE_ISOC9X.
	Define __NO_LONG_DOUBLE_MATH.
	* sysdeps/m68k/fpu/bits/mathdef.h: Define only if __USE_ISOC9X.
	* sysdeps/i386/fpu/bits/mathdef.h: Likewise.
This commit is contained in:
Ulrich Drepper 1998-11-05 18:07:15 +00:00
parent 9a821cf90b
commit d76bd17ff9
6 changed files with 55 additions and 30 deletions

View File

@ -1,5 +1,13 @@
1998-11-05 Ulrich Drepper <drepper@cygnus.com>
* math/math.h: Unconditionally include bits/mathdef.h. Declare
long double functions only if __NO_LONG_DOUBLE_MATH is not
defined.
* sysdeps/generic/bits/mathdef.h: Define only if __USE_ISOC9X.
Define __NO_LONG_DOUBLE_MATH.
* sysdeps/m68k/fpu/bits/mathdef.h: Define only if __USE_ISOC9X.
* sysdeps/i386/fpu/bits/mathdef.h: Likewise.
* elf/rtld.c: Add a few __builtin_expects where they will improve
a lot.

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1997 Free Software Foundation, Inc.
/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -20,7 +20,7 @@
# error "Never use <bits/mathdef.h> directly; include <math.h> instead"
#endif
#ifdef __USE_ISOC9X
/* Normally, there is no long double type and the `float' and `double'
expressions are evaluated as `double'. */
typedef double float_t; /* `float' expressions are evaluated as
@ -29,15 +29,21 @@ typedef double double_t; /* `double' expressions are evaluated as
`double'. */
/* Signal that both types are `double'. */
#define FLT_EVAL_METHOD 1
# define FLT_EVAL_METHOD 1
/* Define `INFINITY' as value of type `float'. */
#define INFINITY HUGE_VALF
# define INFINITY HUGE_VALF
/* The values returned by `ilogb' for 0 and NaN respectively. */
#define FP_ILOGB0 0x80000001
#define FP_ILOGBNAN 0x7fffffff
# define FP_ILOGB0 0x80000001
# define FP_ILOGBNAN 0x7fffffff
/* Number of decimal digits for the `double' type. */
#define DECIMAL_DIG 15
# define DECIMAL_DIG 15
#endif /* ISO C 9X */
/* Signal that we do not really have a `long double'. The disables the
declaration of all the `long double' function variants. */
#define __NO_LONG_DOUBLE_MATH 1

View File

@ -36,6 +36,8 @@ __BEGIN_DECLS
#ifdef __USE_ISOC9X
# include <bits/nan.h>
#endif
/* Get general and ISO C 9X specific information. */
#include <bits/mathdef.h>
/* The file <bits/mathcalls.h> contains the prototypes for all the
@ -81,7 +83,7 @@ __BEGIN_DECLS
# undef _Mdouble_
# undef __MATH_PRECNAME
# if __STDC__ - 0 || __GNUC__ - 0
# if __STDC__ - 0 || __GNUC__ - 0 && !defined __NO_LONG_DOUBLE_MATH
/* Include the file of declarations again, this time using `long double'
instead of `double' and appending l to each function name. */
@ -147,7 +149,6 @@ extern int signgam;
decimal and all internal floating-point formats.
*/
# include <bits/mathdef.h>
/* All floating-point numbers can be put in one of these categories. */
enum

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1997 Free Software Foundation, Inc.
/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -20,7 +20,7 @@
# error "Never use <bits/mathdef.h> directly; include <math.h> instead"
#endif
#ifdef __USE_ISOC9X
/* Normally, there is no long double type and the `float' and `double'
expressions are evaluated as `double'. */
typedef double float_t; /* `float' expressions are evaluated as
@ -29,15 +29,21 @@ typedef double double_t; /* `double' expressions are evaluated as
`double'. */
/* Signal that both types are `double'. */
#define FLT_EVAL_METHOD 1
# define FLT_EVAL_METHOD 1
/* Define `INFINITY' as value of type `float'. */
#define INFINITY HUGE_VALF
# define INFINITY HUGE_VALF
/* The values returned by `ilogb' for 0 and NaN respectively. */
#define FP_ILOGB0 0x80000001
#define FP_ILOGBNAN 0x7fffffff
# define FP_ILOGB0 0x80000001
# define FP_ILOGBNAN 0x7fffffff
/* Number of decimal digits for the `double' type. */
#define DECIMAL_DIG 15
# define DECIMAL_DIG 15
#endif /* ISO C 9X */
/* Signal that we do not really have a `long double'. The disables the
declaration of all the `long double' function variants. */
#define __NO_LONG_DOUBLE_MATH 1

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1997 Free Software Foundation, Inc.
/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -20,7 +20,7 @@
# error "Never use <bits/mathdef.h> directly; include <math.h> instead"
#endif
#ifdef __USE_ISOC9X
/* The ix87 FPUs evaluate all values in the 80 bit floating-point format
which is also available for the user as `long double'. Therefore we
define: */
@ -30,14 +30,16 @@ typedef long double double_t; /* `double' expressions are evaluated as
`long double'. */
/* Signal that both types are `long double'. */
#define FLT_EVAL_METHOD 2
# define FLT_EVAL_METHOD 2
/* Define `INFINITY' as value of type `float'. */
#define INFINITY HUGE_VALF
# define INFINITY HUGE_VALF
/* The values returned by `ilogb' for 0 and NaN respectively. */
#define FP_ILOGB0 0x80000000
#define FP_ILOGBNAN 0x80000000
# define FP_ILOGB0 0x80000000
# define FP_ILOGBNAN 0x80000000
/* Number of decimal digits for the `long double' type. */
#define DECIMAL_DIG 18
# define DECIMAL_DIG 18
#endif /* ISO C 9X */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1997 Free Software Foundation, Inc.
/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -20,7 +20,7 @@
# error "Never use <bits/mathdef.h> directly; include <math.h> instead"
#endif
#ifdef __USE_ISOC9X
/* The m68k FPUs evaluate all values in the 96 bit floating-point format
which is also available for the user as `long double'. Therefore we
define: */
@ -30,14 +30,16 @@ typedef long double double_t; /* `double' expressions are evaluated as
`long double'. */
/* Signal that both types are `long double'. */
#define FLT_EVAL_METHOD 2
# define FLT_EVAL_METHOD 2
/* Define `INFINITY' as value of type `float'. */
#define INFINITY HUGE_VALF
# define INFINITY HUGE_VALF
/* The values returned by `ilogb' for 0 and NaN respectively. */
#define FP_ILOGB0 0x80000000
#define FP_ILOGBNAN 0x7fffffff
# define FP_ILOGB0 0x80000000
# define FP_ILOGBNAN 0x7fffffff
/* Number of decimal digits for the `long double' type. */
#define DECIMAL_DIG 18
# define DECIMAL_DIG 18
#endif /* ISO C 9X */