update.
[chise/xemacs-chise.git.1] / src / sysfloat.h
1 /*
2    Copyright (C) 1995 Free Software Foundation, Inc.
3
4 This file is part of XEmacs.
5
6 XEmacs is free software; you can redistribute it and/or modify it
7 under the terms of the GNU General Public License as published by the
8 Free Software Foundation; either version 2, or (at your option) any
9 later version.
10
11 XEmacs is distributed in the hope that it will be useful, but WITHOUT
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14 for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with XEmacs; see the file COPYING.  If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA.  */
20
21 /* Synched up with: Not really in FSF. */
22
23 #ifndef INCLUDED_sysfloat_h_
24 #define INCLUDED_sysfloat_h_
25
26 /* Work around a problem that happens because math.h on hpux 7
27    defines two static variables--which, in Emacs, are not really static,
28    because `static' is defined as nothing.  The problem is that they are
29    defined both in data.c and in floatfns.c.
30    These macros prevent the name conflict.
31
32    (Is it still necessary to define static to nothing on hpux7?
33    Removing that would be the best fix. -jwz)
34   */
35 # if defined (HPUX) && !defined (HPUX8)
36 #  define _MAXLDBL THIS_FILENAME ## _maxldbl
37 #  define _NMAXLDBL THIS_FILENAME ## _nmaxldbl
38 # endif
39
40 #if defined(LINUX) && !(defined (__GLIBC__) && (__GLIBC__ >= 2))
41 /* These are redefined (correctly, but differently) in values.h.  */
42 #undef INTBITS
43 #undef LONGBITS
44 #undef SHORTBITS
45 #endif
46
47 #include <math.h>
48
49 #ifdef WIN32_NATIVE
50 /* A quirky way to obtain logb prototype */
51 #include <float.h>
52 #define logb _logb
53 #endif
54
55 #ifdef HAVE_MATHERR
56 /* Work around symbol conflict on Linux/glibc */
57 #ifndef DOMAIN
58 /* SysV matherr is not defined if _BSD_SOURCE is used, and on Linux X11 */
59 /* is compiled with _BSD_SOURCE which can also change the size of other */
60 /* types.  The configure test for matherr is broken. */
61 /* Bah.  Good riddance to bad rubbish. */
62 #undef HAVE_MATHERR
63 #endif
64 #endif
65
66 #ifdef NO_MATHERR
67 #undef HAVE_MATHERR
68 #endif
69
70 #ifdef HAVE_MATHERR
71 # ifdef FLOAT_CHECK_ERRNO
72 #  undef FLOAT_CHECK_ERRNO
73 # endif
74 # ifdef FLOAT_CHECK_DOMAIN
75 #  undef FLOAT_CHECK_DOMAIN
76 # endif
77 #endif
78
79 #ifndef NO_FLOAT_CHECK_ERRNO
80 #define FLOAT_CHECK_ERRNO
81 #endif
82
83 #ifdef FLOAT_CHECK_ERRNO
84 # include <errno.h>
85 #endif
86
87 #ifndef isnan
88 # define isnan(x) ((x) != (x))
89 #endif
90
91 #endif /* INCLUDED_sysfloat_h_ */