xref: /netbsd-src/external/gpl3/gdb/dist/gnulib/import/m4/math_h.m4 (revision 73d56d5b0be8704e4f0a7e8221a2c7309572c9a1)
1# math_h.m4 serial 119
2dnl Copyright (C) 2007-2020 Free Software Foundation, Inc.
3dnl This file is free software; the Free Software Foundation
4dnl gives unlimited permission to copy and/or distribute it,
5dnl with or without modifications, as long as this notice is preserved.
6
7AC_DEFUN([gl_MATH_H],
8[
9  AC_REQUIRE([gl_MATH_H_DEFAULTS])
10  gl_CHECK_NEXT_HEADERS([math.h])
11
12  AC_CACHE_CHECK([whether NAN macro works], [gl_cv_header_math_nan_works],
13    [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <math.h>]],
14      [[/* Solaris 10 has a broken definition of NAN.  Other platforms
15        fail to provide NAN, or provide it only in C99 mode; this
16        test only needs to fail when NAN is provided but wrong.  */
17         float f = 1.0f;
18#ifdef NAN
19         f = NAN;
20#endif
21         return f == 0;]])],
22      [gl_cv_header_math_nan_works=yes],
23      [gl_cv_header_math_nan_works=no])])
24  if test $gl_cv_header_math_nan_works = no; then
25    REPLACE_NAN=1
26  fi
27  AC_CACHE_CHECK([whether HUGE_VAL works], [gl_cv_header_math_huge_val_works],
28    [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <math.h>]],
29      [[/* Solaris 10 has a broken definition of HUGE_VAL.  */
30         double d = HUGE_VAL;
31         return d == 0;]])],
32      [gl_cv_header_math_huge_val_works=yes],
33      [gl_cv_header_math_huge_val_works=no])])
34  if test $gl_cv_header_math_huge_val_works = no; then
35    REPLACE_HUGE_VAL=1
36  fi
37
38  dnl Check for declarations of anything we want to poison if the
39  dnl corresponding gnulib module is not in use.
40  gl_WARN_ON_USE_PREPARE([[#include <math.h>]],
41    [acosf acosl asinf asinl atanf atanl
42     cbrt cbrtf cbrtl ceilf ceill copysign copysignf copysignl cosf cosl coshf
43     expf expl exp2 exp2f exp2l expm1 expm1f expm1l
44     fabsf fabsl floorf floorl fma fmaf fmal
45     fmod fmodf fmodl frexpf frexpl hypotf hypotl
46     ilogb ilogbf ilogbl
47     ldexpf ldexpl
48     log logf logl log10 log10f log10l log1p log1pf log1pl log2 log2f log2l
49     logb logbf logbl
50     modf modff modfl powf
51     remainder remainderf remainderl
52     rint rintf rintl round roundf roundl sinf sinl sinhf sqrtf sqrtl
53     tanf tanl tanhf trunc truncf truncl])
54])
55
56AC_DEFUN([gl_MATH_MODULE_INDICATOR],
57[
58  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
59  AC_REQUIRE([gl_MATH_H_DEFAULTS])
60  gl_MODULE_INDICATOR_SET_VARIABLE([$1])
61  dnl Define it also as a C macro, for the benefit of the unit tests.
62  gl_MODULE_INDICATOR_FOR_TESTS([$1])
63])
64
65AC_DEFUN([gl_MATH_H_DEFAULTS],
66[
67  GNULIB_ACOSF=0;      AC_SUBST([GNULIB_ACOSF])
68  GNULIB_ACOSL=0;      AC_SUBST([GNULIB_ACOSL])
69  GNULIB_ASINF=0;      AC_SUBST([GNULIB_ASINF])
70  GNULIB_ASINL=0;      AC_SUBST([GNULIB_ASINL])
71  GNULIB_ATANF=0;      AC_SUBST([GNULIB_ATANF])
72  GNULIB_ATANL=0;      AC_SUBST([GNULIB_ATANL])
73  GNULIB_ATAN2F=0;     AC_SUBST([GNULIB_ATAN2F])
74  GNULIB_CBRT=0;       AC_SUBST([GNULIB_CBRT])
75  GNULIB_CBRTF=0;      AC_SUBST([GNULIB_CBRTF])
76  GNULIB_CBRTL=0;      AC_SUBST([GNULIB_CBRTL])
77  GNULIB_CEIL=0;       AC_SUBST([GNULIB_CEIL])
78  GNULIB_CEILF=0;      AC_SUBST([GNULIB_CEILF])
79  GNULIB_CEILL=0;      AC_SUBST([GNULIB_CEILL])
80  GNULIB_COPYSIGN=0;   AC_SUBST([GNULIB_COPYSIGN])
81  GNULIB_COPYSIGNF=0;  AC_SUBST([GNULIB_COPYSIGNF])
82  GNULIB_COPYSIGNL=0;  AC_SUBST([GNULIB_COPYSIGNL])
83  GNULIB_COSF=0;       AC_SUBST([GNULIB_COSF])
84  GNULIB_COSL=0;       AC_SUBST([GNULIB_COSL])
85  GNULIB_COSHF=0;      AC_SUBST([GNULIB_COSHF])
86  GNULIB_EXPF=0;       AC_SUBST([GNULIB_EXPF])
87  GNULIB_EXPL=0;       AC_SUBST([GNULIB_EXPL])
88  GNULIB_EXP2=0;       AC_SUBST([GNULIB_EXP2])
89  GNULIB_EXP2F=0;      AC_SUBST([GNULIB_EXP2F])
90  GNULIB_EXP2L=0;      AC_SUBST([GNULIB_EXP2L])
91  GNULIB_EXPM1=0;      AC_SUBST([GNULIB_EXPM1])
92  GNULIB_EXPM1F=0;     AC_SUBST([GNULIB_EXPM1F])
93  GNULIB_EXPM1L=0;     AC_SUBST([GNULIB_EXPM1L])
94  GNULIB_FABSF=0;      AC_SUBST([GNULIB_FABSF])
95  GNULIB_FABSL=0;      AC_SUBST([GNULIB_FABSL])
96  GNULIB_FLOOR=0;      AC_SUBST([GNULIB_FLOOR])
97  GNULIB_FLOORF=0;     AC_SUBST([GNULIB_FLOORF])
98  GNULIB_FLOORL=0;     AC_SUBST([GNULIB_FLOORL])
99  GNULIB_FMA=0;        AC_SUBST([GNULIB_FMA])
100  GNULIB_FMAF=0;       AC_SUBST([GNULIB_FMAF])
101  GNULIB_FMAL=0;       AC_SUBST([GNULIB_FMAL])
102  GNULIB_FMOD=0;       AC_SUBST([GNULIB_FMOD])
103  GNULIB_FMODF=0;      AC_SUBST([GNULIB_FMODF])
104  GNULIB_FMODL=0;      AC_SUBST([GNULIB_FMODL])
105  GNULIB_FREXPF=0;     AC_SUBST([GNULIB_FREXPF])
106  GNULIB_FREXP=0;      AC_SUBST([GNULIB_FREXP])
107  GNULIB_FREXPL=0;     AC_SUBST([GNULIB_FREXPL])
108  GNULIB_HYPOT=0;      AC_SUBST([GNULIB_HYPOT])
109  GNULIB_HYPOTF=0;     AC_SUBST([GNULIB_HYPOTF])
110  GNULIB_HYPOTL=0;     AC_SUBST([GNULIB_HYPOTL])
111  GNULIB_ILOGB=0;      AC_SUBST([GNULIB_ILOGB])
112  GNULIB_ILOGBF=0;     AC_SUBST([GNULIB_ILOGBF])
113  GNULIB_ILOGBL=0;     AC_SUBST([GNULIB_ILOGBL])
114  GNULIB_ISFINITE=0;   AC_SUBST([GNULIB_ISFINITE])
115  GNULIB_ISINF=0;      AC_SUBST([GNULIB_ISINF])
116  GNULIB_ISNAN=0;      AC_SUBST([GNULIB_ISNAN])
117  GNULIB_ISNANF=0;     AC_SUBST([GNULIB_ISNANF])
118  GNULIB_ISNAND=0;     AC_SUBST([GNULIB_ISNAND])
119  GNULIB_ISNANL=0;     AC_SUBST([GNULIB_ISNANL])
120  GNULIB_LDEXPF=0;     AC_SUBST([GNULIB_LDEXPF])
121  GNULIB_LDEXPL=0;     AC_SUBST([GNULIB_LDEXPL])
122  GNULIB_LOG=0;        AC_SUBST([GNULIB_LOG])
123  GNULIB_LOGF=0;       AC_SUBST([GNULIB_LOGF])
124  GNULIB_LOGL=0;       AC_SUBST([GNULIB_LOGL])
125  GNULIB_LOG10=0;      AC_SUBST([GNULIB_LOG10])
126  GNULIB_LOG10F=0;     AC_SUBST([GNULIB_LOG10F])
127  GNULIB_LOG10L=0;     AC_SUBST([GNULIB_LOG10L])
128  GNULIB_LOG1P=0;      AC_SUBST([GNULIB_LOG1P])
129  GNULIB_LOG1PF=0;     AC_SUBST([GNULIB_LOG1PF])
130  GNULIB_LOG1PL=0;     AC_SUBST([GNULIB_LOG1PL])
131  GNULIB_LOG2=0;       AC_SUBST([GNULIB_LOG2])
132  GNULIB_LOG2F=0;      AC_SUBST([GNULIB_LOG2F])
133  GNULIB_LOG2L=0;      AC_SUBST([GNULIB_LOG2L])
134  GNULIB_LOGB=0;       AC_SUBST([GNULIB_LOGB])
135  GNULIB_LOGBF=0;      AC_SUBST([GNULIB_LOGBF])
136  GNULIB_LOGBL=0;      AC_SUBST([GNULIB_LOGBL])
137  GNULIB_MODF=0;       AC_SUBST([GNULIB_MODF])
138  GNULIB_MODFF=0;      AC_SUBST([GNULIB_MODFF])
139  GNULIB_MODFL=0;      AC_SUBST([GNULIB_MODFL])
140  GNULIB_POWF=0;       AC_SUBST([GNULIB_POWF])
141  GNULIB_REMAINDER=0;  AC_SUBST([GNULIB_REMAINDER])
142  GNULIB_REMAINDERF=0; AC_SUBST([GNULIB_REMAINDERF])
143  GNULIB_REMAINDERL=0; AC_SUBST([GNULIB_REMAINDERL])
144  GNULIB_RINT=0;       AC_SUBST([GNULIB_RINT])
145  GNULIB_RINTF=0;      AC_SUBST([GNULIB_RINTF])
146  GNULIB_RINTL=0;      AC_SUBST([GNULIB_RINTL])
147  GNULIB_ROUND=0;      AC_SUBST([GNULIB_ROUND])
148  GNULIB_ROUNDF=0;     AC_SUBST([GNULIB_ROUNDF])
149  GNULIB_ROUNDL=0;     AC_SUBST([GNULIB_ROUNDL])
150  GNULIB_SIGNBIT=0;    AC_SUBST([GNULIB_SIGNBIT])
151  GNULIB_SINF=0;       AC_SUBST([GNULIB_SINF])
152  GNULIB_SINL=0;       AC_SUBST([GNULIB_SINL])
153  GNULIB_SINHF=0;      AC_SUBST([GNULIB_SINHF])
154  GNULIB_SQRTF=0;      AC_SUBST([GNULIB_SQRTF])
155  GNULIB_SQRTL=0;      AC_SUBST([GNULIB_SQRTL])
156  GNULIB_TANF=0;       AC_SUBST([GNULIB_TANF])
157  GNULIB_TANL=0;       AC_SUBST([GNULIB_TANL])
158  GNULIB_TANHF=0;      AC_SUBST([GNULIB_TANHF])
159  GNULIB_TRUNC=0;      AC_SUBST([GNULIB_TRUNC])
160  GNULIB_TRUNCF=0;     AC_SUBST([GNULIB_TRUNCF])
161  GNULIB_TRUNCL=0;     AC_SUBST([GNULIB_TRUNCL])
162  dnl Assume proper GNU behavior unless another module says otherwise.
163  HAVE_ACOSF=1;                AC_SUBST([HAVE_ACOSF])
164  HAVE_ACOSL=1;                AC_SUBST([HAVE_ACOSL])
165  HAVE_ASINF=1;                AC_SUBST([HAVE_ASINF])
166  HAVE_ASINL=1;                AC_SUBST([HAVE_ASINL])
167  HAVE_ATANF=1;                AC_SUBST([HAVE_ATANF])
168  HAVE_ATANL=1;                AC_SUBST([HAVE_ATANL])
169  HAVE_ATAN2F=1;               AC_SUBST([HAVE_ATAN2F])
170  HAVE_CBRT=1;                 AC_SUBST([HAVE_CBRT])
171  HAVE_CBRTF=1;                AC_SUBST([HAVE_CBRTF])
172  HAVE_CBRTL=1;                AC_SUBST([HAVE_CBRTL])
173  HAVE_COPYSIGN=1;             AC_SUBST([HAVE_COPYSIGN])
174  HAVE_COPYSIGNL=1;            AC_SUBST([HAVE_COPYSIGNL])
175  HAVE_COSF=1;                 AC_SUBST([HAVE_COSF])
176  HAVE_COSL=1;                 AC_SUBST([HAVE_COSL])
177  HAVE_COSHF=1;                AC_SUBST([HAVE_COSHF])
178  HAVE_EXPF=1;                 AC_SUBST([HAVE_EXPF])
179  HAVE_EXPL=1;                 AC_SUBST([HAVE_EXPL])
180  HAVE_EXPM1=1;                AC_SUBST([HAVE_EXPM1])
181  HAVE_EXPM1F=1;               AC_SUBST([HAVE_EXPM1F])
182  HAVE_FABSF=1;                AC_SUBST([HAVE_FABSF])
183  HAVE_FABSL=1;                AC_SUBST([HAVE_FABSL])
184  HAVE_FMA=1;                  AC_SUBST([HAVE_FMA])
185  HAVE_FMAF=1;                 AC_SUBST([HAVE_FMAF])
186  HAVE_FMAL=1;                 AC_SUBST([HAVE_FMAL])
187  HAVE_FMODF=1;                AC_SUBST([HAVE_FMODF])
188  HAVE_FMODL=1;                AC_SUBST([HAVE_FMODL])
189  HAVE_FREXPF=1;               AC_SUBST([HAVE_FREXPF])
190  HAVE_HYPOTF=1;               AC_SUBST([HAVE_HYPOTF])
191  HAVE_HYPOTL=1;               AC_SUBST([HAVE_HYPOTL])
192  HAVE_ILOGB=1;                AC_SUBST([HAVE_ILOGB])
193  HAVE_ILOGBF=1;               AC_SUBST([HAVE_ILOGBF])
194  HAVE_ILOGBL=1;               AC_SUBST([HAVE_ILOGBL])
195  HAVE_ISNANF=1;               AC_SUBST([HAVE_ISNANF])
196  HAVE_ISNAND=1;               AC_SUBST([HAVE_ISNAND])
197  HAVE_ISNANL=1;               AC_SUBST([HAVE_ISNANL])
198  HAVE_LDEXPF=1;               AC_SUBST([HAVE_LDEXPF])
199  HAVE_LOGF=1;                 AC_SUBST([HAVE_LOGF])
200  HAVE_LOGL=1;                 AC_SUBST([HAVE_LOGL])
201  HAVE_LOG10F=1;               AC_SUBST([HAVE_LOG10F])
202  HAVE_LOG10L=1;               AC_SUBST([HAVE_LOG10L])
203  HAVE_LOG1P=1;                AC_SUBST([HAVE_LOG1P])
204  HAVE_LOG1PF=1;               AC_SUBST([HAVE_LOG1PF])
205  HAVE_LOG1PL=1;               AC_SUBST([HAVE_LOG1PL])
206  HAVE_LOGBF=1;                AC_SUBST([HAVE_LOGBF])
207  HAVE_LOGBL=1;                AC_SUBST([HAVE_LOGBL])
208  HAVE_MODFF=1;                AC_SUBST([HAVE_MODFF])
209  HAVE_MODFL=1;                AC_SUBST([HAVE_MODFL])
210  HAVE_POWF=1;                 AC_SUBST([HAVE_POWF])
211  HAVE_REMAINDER=1;            AC_SUBST([HAVE_REMAINDER])
212  HAVE_REMAINDERF=1;           AC_SUBST([HAVE_REMAINDERF])
213  HAVE_RINT=1;                 AC_SUBST([HAVE_RINT])
214  HAVE_RINTL=1;                AC_SUBST([HAVE_RINTL])
215  HAVE_SINF=1;                 AC_SUBST([HAVE_SINF])
216  HAVE_SINL=1;                 AC_SUBST([HAVE_SINL])
217  HAVE_SINHF=1;                AC_SUBST([HAVE_SINHF])
218  HAVE_SQRTF=1;                AC_SUBST([HAVE_SQRTF])
219  HAVE_SQRTL=1;                AC_SUBST([HAVE_SQRTL])
220  HAVE_TANF=1;                 AC_SUBST([HAVE_TANF])
221  HAVE_TANL=1;                 AC_SUBST([HAVE_TANL])
222  HAVE_TANHF=1;                AC_SUBST([HAVE_TANHF])
223  HAVE_DECL_ACOSL=1;           AC_SUBST([HAVE_DECL_ACOSL])
224  HAVE_DECL_ASINL=1;           AC_SUBST([HAVE_DECL_ASINL])
225  HAVE_DECL_ATANL=1;           AC_SUBST([HAVE_DECL_ATANL])
226  HAVE_DECL_CBRTF=1;           AC_SUBST([HAVE_DECL_CBRTF])
227  HAVE_DECL_CBRTL=1;           AC_SUBST([HAVE_DECL_CBRTL])
228  HAVE_DECL_CEILF=1;           AC_SUBST([HAVE_DECL_CEILF])
229  HAVE_DECL_CEILL=1;           AC_SUBST([HAVE_DECL_CEILL])
230  HAVE_DECL_COPYSIGNF=1;       AC_SUBST([HAVE_DECL_COPYSIGNF])
231  HAVE_DECL_COSL=1;            AC_SUBST([HAVE_DECL_COSL])
232  HAVE_DECL_EXPL=1;            AC_SUBST([HAVE_DECL_EXPL])
233  HAVE_DECL_EXP2=1;            AC_SUBST([HAVE_DECL_EXP2])
234  HAVE_DECL_EXP2F=1;           AC_SUBST([HAVE_DECL_EXP2F])
235  HAVE_DECL_EXP2L=1;           AC_SUBST([HAVE_DECL_EXP2L])
236  HAVE_DECL_EXPM1L=1;          AC_SUBST([HAVE_DECL_EXPM1L])
237  HAVE_DECL_FLOORF=1;          AC_SUBST([HAVE_DECL_FLOORF])
238  HAVE_DECL_FLOORL=1;          AC_SUBST([HAVE_DECL_FLOORL])
239  HAVE_DECL_FREXPL=1;          AC_SUBST([HAVE_DECL_FREXPL])
240  HAVE_DECL_LDEXPL=1;          AC_SUBST([HAVE_DECL_LDEXPL])
241  HAVE_DECL_LOGL=1;            AC_SUBST([HAVE_DECL_LOGL])
242  HAVE_DECL_LOG10L=1;          AC_SUBST([HAVE_DECL_LOG10L])
243  HAVE_DECL_LOG2=1;            AC_SUBST([HAVE_DECL_LOG2])
244  HAVE_DECL_LOG2F=1;           AC_SUBST([HAVE_DECL_LOG2F])
245  HAVE_DECL_LOG2L=1;           AC_SUBST([HAVE_DECL_LOG2L])
246  HAVE_DECL_LOGB=1;            AC_SUBST([HAVE_DECL_LOGB])
247  HAVE_DECL_REMAINDER=1;       AC_SUBST([HAVE_DECL_REMAINDER])
248  HAVE_DECL_REMAINDERL=1;      AC_SUBST([HAVE_DECL_REMAINDERL])
249  HAVE_DECL_RINTF=1;           AC_SUBST([HAVE_DECL_RINTF])
250  HAVE_DECL_ROUND=1;           AC_SUBST([HAVE_DECL_ROUND])
251  HAVE_DECL_ROUNDF=1;          AC_SUBST([HAVE_DECL_ROUNDF])
252  HAVE_DECL_ROUNDL=1;          AC_SUBST([HAVE_DECL_ROUNDL])
253  HAVE_DECL_SINL=1;            AC_SUBST([HAVE_DECL_SINL])
254  HAVE_DECL_SQRTL=1;           AC_SUBST([HAVE_DECL_SQRTL])
255  HAVE_DECL_TANL=1;            AC_SUBST([HAVE_DECL_TANL])
256  HAVE_DECL_TRUNC=1;           AC_SUBST([HAVE_DECL_TRUNC])
257  HAVE_DECL_TRUNCF=1;          AC_SUBST([HAVE_DECL_TRUNCF])
258  HAVE_DECL_TRUNCL=1;          AC_SUBST([HAVE_DECL_TRUNCL])
259  REPLACE_ACOSF=0;             AC_SUBST([REPLACE_ACOSF])
260  REPLACE_ASINF=0;             AC_SUBST([REPLACE_ASINF])
261  REPLACE_ATANF=0;             AC_SUBST([REPLACE_ATANF])
262  REPLACE_ATAN2F=0;            AC_SUBST([REPLACE_ATAN2F])
263  REPLACE_CBRTF=0;             AC_SUBST([REPLACE_CBRTF])
264  REPLACE_CBRTL=0;             AC_SUBST([REPLACE_CBRTL])
265  REPLACE_CEIL=0;              AC_SUBST([REPLACE_CEIL])
266  REPLACE_CEILF=0;             AC_SUBST([REPLACE_CEILF])
267  REPLACE_CEILL=0;             AC_SUBST([REPLACE_CEILL])
268  REPLACE_COSF=0;              AC_SUBST([REPLACE_COSF])
269  REPLACE_COSHF=0;             AC_SUBST([REPLACE_COSHF])
270  REPLACE_EXPF=0;              AC_SUBST([REPLACE_EXPF])
271  REPLACE_EXPL=0;              AC_SUBST([REPLACE_EXPL])
272  REPLACE_EXPM1=0;             AC_SUBST([REPLACE_EXPM1])
273  REPLACE_EXPM1F=0;            AC_SUBST([REPLACE_EXPM1F])
274  REPLACE_EXPM1L=0;            AC_SUBST([REPLACE_EXPM1L])
275  REPLACE_EXP2=0;              AC_SUBST([REPLACE_EXP2])
276  REPLACE_EXP2L=0;             AC_SUBST([REPLACE_EXP2L])
277  REPLACE_FABSL=0;             AC_SUBST([REPLACE_FABSL])
278  REPLACE_FLOOR=0;             AC_SUBST([REPLACE_FLOOR])
279  REPLACE_FLOORF=0;            AC_SUBST([REPLACE_FLOORF])
280  REPLACE_FLOORL=0;            AC_SUBST([REPLACE_FLOORL])
281  REPLACE_FMA=0;               AC_SUBST([REPLACE_FMA])
282  REPLACE_FMAF=0;              AC_SUBST([REPLACE_FMAF])
283  REPLACE_FMAL=0;              AC_SUBST([REPLACE_FMAL])
284  REPLACE_FMOD=0;              AC_SUBST([REPLACE_FMOD])
285  REPLACE_FMODF=0;             AC_SUBST([REPLACE_FMODF])
286  REPLACE_FMODL=0;             AC_SUBST([REPLACE_FMODL])
287  REPLACE_FREXPF=0;            AC_SUBST([REPLACE_FREXPF])
288  REPLACE_FREXP=0;             AC_SUBST([REPLACE_FREXP])
289  REPLACE_FREXPL=0;            AC_SUBST([REPLACE_FREXPL])
290  REPLACE_HUGE_VAL=0;          AC_SUBST([REPLACE_HUGE_VAL])
291  REPLACE_HYPOT=0;             AC_SUBST([REPLACE_HYPOT])
292  REPLACE_HYPOTF=0;            AC_SUBST([REPLACE_HYPOTF])
293  REPLACE_HYPOTL=0;            AC_SUBST([REPLACE_HYPOTL])
294  REPLACE_ILOGB=0;             AC_SUBST([REPLACE_ILOGB])
295  REPLACE_ILOGBF=0;            AC_SUBST([REPLACE_ILOGBF])
296  REPLACE_ILOGBL=0;            AC_SUBST([REPLACE_ILOGBL])
297  REPLACE_ISFINITE=0;          AC_SUBST([REPLACE_ISFINITE])
298  REPLACE_ISINF=0;             AC_SUBST([REPLACE_ISINF])
299  REPLACE_ISNAN=0;             AC_SUBST([REPLACE_ISNAN])
300  REPLACE_LDEXPL=0;            AC_SUBST([REPLACE_LDEXPL])
301  REPLACE_LOG=0;               AC_SUBST([REPLACE_LOG])
302  REPLACE_LOGF=0;              AC_SUBST([REPLACE_LOGF])
303  REPLACE_LOGL=0;              AC_SUBST([REPLACE_LOGL])
304  REPLACE_LOG10=0;             AC_SUBST([REPLACE_LOG10])
305  REPLACE_LOG10F=0;            AC_SUBST([REPLACE_LOG10F])
306  REPLACE_LOG10L=0;            AC_SUBST([REPLACE_LOG10L])
307  REPLACE_LOG1P=0;             AC_SUBST([REPLACE_LOG1P])
308  REPLACE_LOG1PF=0;            AC_SUBST([REPLACE_LOG1PF])
309  REPLACE_LOG1PL=0;            AC_SUBST([REPLACE_LOG1PL])
310  REPLACE_LOG2=0;              AC_SUBST([REPLACE_LOG2])
311  REPLACE_LOG2F=0;             AC_SUBST([REPLACE_LOG2F])
312  REPLACE_LOG2L=0;             AC_SUBST([REPLACE_LOG2L])
313  REPLACE_LOGB=0;              AC_SUBST([REPLACE_LOGB])
314  REPLACE_LOGBF=0;             AC_SUBST([REPLACE_LOGBF])
315  REPLACE_LOGBL=0;             AC_SUBST([REPLACE_LOGBL])
316  REPLACE_MODF=0;              AC_SUBST([REPLACE_MODF])
317  REPLACE_MODFF=0;             AC_SUBST([REPLACE_MODFF])
318  REPLACE_MODFL=0;             AC_SUBST([REPLACE_MODFL])
319  REPLACE_NAN=0;               AC_SUBST([REPLACE_NAN])
320  REPLACE_REMAINDER=0;         AC_SUBST([REPLACE_REMAINDER])
321  REPLACE_REMAINDERF=0;        AC_SUBST([REPLACE_REMAINDERF])
322  REPLACE_REMAINDERL=0;        AC_SUBST([REPLACE_REMAINDERL])
323  REPLACE_RINTL=0;             AC_SUBST([REPLACE_RINTL])
324  REPLACE_ROUND=0;             AC_SUBST([REPLACE_ROUND])
325  REPLACE_ROUNDF=0;            AC_SUBST([REPLACE_ROUNDF])
326  REPLACE_ROUNDL=0;            AC_SUBST([REPLACE_ROUNDL])
327  REPLACE_SIGNBIT=0;           AC_SUBST([REPLACE_SIGNBIT])
328  REPLACE_SIGNBIT_USING_GCC=0; AC_SUBST([REPLACE_SIGNBIT_USING_GCC])
329  REPLACE_SINF=0;              AC_SUBST([REPLACE_SINF])
330  REPLACE_SINHF=0;             AC_SUBST([REPLACE_SINHF])
331  REPLACE_SQRTF=0;             AC_SUBST([REPLACE_SQRTF])
332  REPLACE_SQRTL=0;             AC_SUBST([REPLACE_SQRTL])
333  REPLACE_TANF=0;              AC_SUBST([REPLACE_TANF])
334  REPLACE_TANHF=0;             AC_SUBST([REPLACE_TANHF])
335  REPLACE_TRUNC=0;             AC_SUBST([REPLACE_TRUNC])
336  REPLACE_TRUNCF=0;            AC_SUBST([REPLACE_TRUNCF])
337  REPLACE_TRUNCL=0;            AC_SUBST([REPLACE_TRUNCL])
338])
339
340# gl_LONG_DOUBLE_VS_DOUBLE
341# determines whether 'long double' and 'double' have the same representation.
342# Sets variable HAVE_SAME_LONG_DOUBLE_AS_DOUBLE to 0 or 1, and defines
343# HAVE_SAME_LONG_DOUBLE_AS_DOUBLE accordingly.
344# The currently known platforms where this is the case are:
345# Linux/HPPA, Minix 3.1.8, AIX 5, AIX 6 and 7 with xlc, MSVC 9.
346AC_DEFUN([gl_LONG_DOUBLE_VS_DOUBLE],
347[
348  AC_CACHE_CHECK([whether long double and double are the same],
349    [gl_cv_long_double_equals_double],
350    [AC_COMPILE_IFELSE(
351       [AC_LANG_PROGRAM([[#include <float.h>]],
352          [[typedef int check[sizeof (long double) == sizeof (double)
353                              && LDBL_MANT_DIG == DBL_MANT_DIG
354                              && LDBL_MAX_EXP == DBL_MAX_EXP
355                              && LDBL_MIN_EXP == DBL_MIN_EXP
356                              ? 1 : -1];
357          ]])],
358       [gl_cv_long_double_equals_double=yes],
359       [gl_cv_long_double_equals_double=no])
360    ])
361  if test $gl_cv_long_double_equals_double = yes; then
362    AC_DEFINE([HAVE_SAME_LONG_DOUBLE_AS_DOUBLE], [1],
363      [Define to 1 if 'long double' and 'double' have the same representation.])
364    HAVE_SAME_LONG_DOUBLE_AS_DOUBLE=1
365  else
366    HAVE_SAME_LONG_DOUBLE_AS_DOUBLE=0
367  fi
368  AC_SUBST([HAVE_SAME_LONG_DOUBLE_AS_DOUBLE])
369])
370