2 dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
3 dnl This file is free software; the Free Software Foundation
4 dnl gives unlimited permission to copy and/or distribute it,
5 dnl with or without modifications, as long as this notice is preserved.
9 AC_REQUIRE([gl_MATH_H_DEFAULTS])
10 gl_CHECK_NEXT_HEADERS([math.h])
11 AC_REQUIRE([AC_C_INLINE])
13 AC_CACHE_CHECK([whether NAN macro works], [gl_cv_header_math_nan_works],
14 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <math.h>]],
15 [[/* Solaris 10 has a broken definition of NAN. Other platforms
16 fail to provide NAN, or provide it only in C99 mode; this
17 test only needs to fail when NAN is provided but wrong. */
23 [gl_cv_header_math_nan_works=yes],
24 [gl_cv_header_math_nan_works=no])])
25 if test $gl_cv_header_math_nan_works = no; then
28 AC_CACHE_CHECK([whether HUGE_VAL works], [gl_cv_header_math_huge_val_works],
29 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <math.h>]],
30 [[/* Solaris 10 has a broken definition of HUGE_VAL. */
33 [gl_cv_header_math_huge_val_works=yes],
34 [gl_cv_header_math_huge_val_works=no])])
35 if test $gl_cv_header_math_huge_val_works = no; then
39 dnl Check for declarations of anything we want to poison if the
40 dnl corresponding gnulib module is not in use.
41 gl_WARN_ON_USE_PREPARE([[#include <math.h>]],
42 [acosf acosl asinf asinl atanf atanl
43 cbrt cbrtf cbrtl ceilf ceill copysign copysignf copysignl cosf cosl coshf
44 expf expl exp2 exp2f exp2l expm1 expm1f expm1l
45 fabsf fabsl floorf floorl fma fmaf fmal
46 fmod fmodf fmodl frexpf frexpl hypotf hypotl
48 log logf logl log10 log10f log10l log1p log1pf log1pl log2 log2f log2l
51 remainder remainderf remainderl
52 rint rintf rintl round roundf roundl sinf sinl sinhf sqrtf sqrtl
53 tanf tanl tanhf trunc truncf truncl])
56 AC_DEFUN([gl_MATH_MODULE_INDICATOR],
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])
65 AC_DEFUN([gl_MATH_H_DEFAULTS],
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_ISFINITE=0; AC_SUBST([GNULIB_ISFINITE])
112 GNULIB_ISINF=0; AC_SUBST([GNULIB_ISINF])
113 GNULIB_ISNAN=0; AC_SUBST([GNULIB_ISNAN])
114 GNULIB_ISNANF=0; AC_SUBST([GNULIB_ISNANF])
115 GNULIB_ISNAND=0; AC_SUBST([GNULIB_ISNAND])
116 GNULIB_ISNANL=0; AC_SUBST([GNULIB_ISNANL])
117 GNULIB_LDEXPF=0; AC_SUBST([GNULIB_LDEXPF])
118 GNULIB_LDEXPL=0; AC_SUBST([GNULIB_LDEXPL])
119 GNULIB_LOG=0; AC_SUBST([GNULIB_LOG])
120 GNULIB_LOGF=0; AC_SUBST([GNULIB_LOGF])
121 GNULIB_LOGL=0; AC_SUBST([GNULIB_LOGL])
122 GNULIB_LOG10=0; AC_SUBST([GNULIB_LOG10])
123 GNULIB_LOG10F=0; AC_SUBST([GNULIB_LOG10F])
124 GNULIB_LOG10L=0; AC_SUBST([GNULIB_LOG10L])
125 GNULIB_LOG1P=0; AC_SUBST([GNULIB_LOG1P])
126 GNULIB_LOG1PF=0; AC_SUBST([GNULIB_LOG1PF])
127 GNULIB_LOG1PL=0; AC_SUBST([GNULIB_LOG1PL])
128 GNULIB_LOG2=0; AC_SUBST([GNULIB_LOG2])
129 GNULIB_LOG2F=0; AC_SUBST([GNULIB_LOG2F])
130 GNULIB_LOG2L=0; AC_SUBST([GNULIB_LOG2L])
131 GNULIB_LOGB=0; AC_SUBST([GNULIB_LOGB])
132 GNULIB_LOGBF=0; AC_SUBST([GNULIB_LOGBF])
133 GNULIB_LOGBL=0; AC_SUBST([GNULIB_LOGBL])
134 GNULIB_MODF=0; AC_SUBST([GNULIB_MODF])
135 GNULIB_MODFF=0; AC_SUBST([GNULIB_MODFF])
136 GNULIB_MODFL=0; AC_SUBST([GNULIB_MODFL])
137 GNULIB_POWF=0; AC_SUBST([GNULIB_POWF])
138 GNULIB_REMAINDER=0; AC_SUBST([GNULIB_REMAINDER])
139 GNULIB_REMAINDERF=0; AC_SUBST([GNULIB_REMAINDERF])
140 GNULIB_REMAINDERL=0; AC_SUBST([GNULIB_REMAINDERL])
141 GNULIB_RINT=0; AC_SUBST([GNULIB_RINT])
142 GNULIB_RINTF=0; AC_SUBST([GNULIB_RINTF])
143 GNULIB_RINTL=0; AC_SUBST([GNULIB_RINTL])
144 GNULIB_ROUND=0; AC_SUBST([GNULIB_ROUND])
145 GNULIB_ROUNDF=0; AC_SUBST([GNULIB_ROUNDF])
146 GNULIB_ROUNDL=0; AC_SUBST([GNULIB_ROUNDL])
147 GNULIB_SIGNBIT=0; AC_SUBST([GNULIB_SIGNBIT])
148 GNULIB_SINF=0; AC_SUBST([GNULIB_SINF])
149 GNULIB_SINL=0; AC_SUBST([GNULIB_SINL])
150 GNULIB_SINHF=0; AC_SUBST([GNULIB_SINHF])
151 GNULIB_SQRTF=0; AC_SUBST([GNULIB_SQRTF])
152 GNULIB_SQRTL=0; AC_SUBST([GNULIB_SQRTL])
153 GNULIB_TANF=0; AC_SUBST([GNULIB_TANF])
154 GNULIB_TANL=0; AC_SUBST([GNULIB_TANL])
155 GNULIB_TANHF=0; AC_SUBST([GNULIB_TANHF])
156 GNULIB_TRUNC=0; AC_SUBST([GNULIB_TRUNC])
157 GNULIB_TRUNCF=0; AC_SUBST([GNULIB_TRUNCF])
158 GNULIB_TRUNCL=0; AC_SUBST([GNULIB_TRUNCL])
159 dnl Assume proper GNU behavior unless another module says otherwise.
160 HAVE_ACOSF=1; AC_SUBST([HAVE_ACOSF])
161 HAVE_ACOSL=1; AC_SUBST([HAVE_ACOSL])
162 HAVE_ASINF=1; AC_SUBST([HAVE_ASINF])
163 HAVE_ASINL=1; AC_SUBST([HAVE_ASINL])
164 HAVE_ATANF=1; AC_SUBST([HAVE_ATANF])
165 HAVE_ATANL=1; AC_SUBST([HAVE_ATANL])
166 HAVE_ATAN2F=1; AC_SUBST([HAVE_ATAN2F])
167 HAVE_CBRT=1; AC_SUBST([HAVE_CBRT])
168 HAVE_CBRTF=1; AC_SUBST([HAVE_CBRTF])
169 HAVE_CBRTL=1; AC_SUBST([HAVE_CBRTL])
170 HAVE_COPYSIGN=1; AC_SUBST([HAVE_COPYSIGN])
171 HAVE_COPYSIGNL=1; AC_SUBST([HAVE_COPYSIGNL])
172 HAVE_COSF=1; AC_SUBST([HAVE_COSF])
173 HAVE_COSL=1; AC_SUBST([HAVE_COSL])
174 HAVE_COSHF=1; AC_SUBST([HAVE_COSHF])
175 HAVE_EXPF=1; AC_SUBST([HAVE_EXPF])
176 HAVE_EXPL=1; AC_SUBST([HAVE_EXPL])
177 HAVE_EXPM1=1; AC_SUBST([HAVE_EXPM1])
178 HAVE_EXPM1F=1; AC_SUBST([HAVE_EXPM1F])
179 HAVE_FABSF=1; AC_SUBST([HAVE_FABSF])
180 HAVE_FABSL=1; AC_SUBST([HAVE_FABSL])
181 HAVE_FMA=1; AC_SUBST([HAVE_FMA])
182 HAVE_FMAF=1; AC_SUBST([HAVE_FMAF])
183 HAVE_FMAL=1; AC_SUBST([HAVE_FMAL])
184 HAVE_FMODF=1; AC_SUBST([HAVE_FMODF])
185 HAVE_FMODL=1; AC_SUBST([HAVE_FMODL])
186 HAVE_FREXPF=1; AC_SUBST([HAVE_FREXPF])
187 HAVE_HYPOTF=1; AC_SUBST([HAVE_HYPOTF])
188 HAVE_HYPOTL=1; AC_SUBST([HAVE_HYPOTL])
189 HAVE_ISNANF=1; AC_SUBST([HAVE_ISNANF])
190 HAVE_ISNAND=1; AC_SUBST([HAVE_ISNAND])
191 HAVE_ISNANL=1; AC_SUBST([HAVE_ISNANL])
192 HAVE_LDEXPF=1; AC_SUBST([HAVE_LDEXPF])
193 HAVE_LOGF=1; AC_SUBST([HAVE_LOGF])
194 HAVE_LOGL=1; AC_SUBST([HAVE_LOGL])
195 HAVE_LOG10F=1; AC_SUBST([HAVE_LOG10F])
196 HAVE_LOG10L=1; AC_SUBST([HAVE_LOG10L])
197 HAVE_LOG1P=1; AC_SUBST([HAVE_LOG1P])
198 HAVE_LOG1PF=1; AC_SUBST([HAVE_LOG1PF])
199 HAVE_LOG1PL=1; AC_SUBST([HAVE_LOG1PL])
200 HAVE_LOGBF=1; AC_SUBST([HAVE_LOGBF])
201 HAVE_LOGBL=1; AC_SUBST([HAVE_LOGBL])
202 HAVE_MODFF=1; AC_SUBST([HAVE_MODFF])
203 HAVE_MODFL=1; AC_SUBST([HAVE_MODFL])
204 HAVE_POWF=1; AC_SUBST([HAVE_POWF])
205 HAVE_REMAINDER=1; AC_SUBST([HAVE_REMAINDER])
206 HAVE_REMAINDERF=1; AC_SUBST([HAVE_REMAINDERF])
207 HAVE_RINT=1; AC_SUBST([HAVE_RINT])
208 HAVE_RINTL=1; AC_SUBST([HAVE_RINTL])
209 HAVE_SINF=1; AC_SUBST([HAVE_SINF])
210 HAVE_SINL=1; AC_SUBST([HAVE_SINL])
211 HAVE_SINHF=1; AC_SUBST([HAVE_SINHF])
212 HAVE_SQRTF=1; AC_SUBST([HAVE_SQRTF])
213 HAVE_SQRTL=1; AC_SUBST([HAVE_SQRTL])
214 HAVE_TANF=1; AC_SUBST([HAVE_TANF])
215 HAVE_TANL=1; AC_SUBST([HAVE_TANL])
216 HAVE_TANHF=1; AC_SUBST([HAVE_TANHF])
217 HAVE_DECL_ACOSL=1; AC_SUBST([HAVE_DECL_ACOSL])
218 HAVE_DECL_ASINL=1; AC_SUBST([HAVE_DECL_ASINL])
219 HAVE_DECL_ATANL=1; AC_SUBST([HAVE_DECL_ATANL])
220 HAVE_DECL_CBRTF=1; AC_SUBST([HAVE_DECL_CBRTF])
221 HAVE_DECL_CBRTL=1; AC_SUBST([HAVE_DECL_CBRTL])
222 HAVE_DECL_CEILF=1; AC_SUBST([HAVE_DECL_CEILF])
223 HAVE_DECL_CEILL=1; AC_SUBST([HAVE_DECL_CEILL])
224 HAVE_DECL_COPYSIGNF=1; AC_SUBST([HAVE_DECL_COPYSIGNF])
225 HAVE_DECL_COSL=1; AC_SUBST([HAVE_DECL_COSL])
226 HAVE_DECL_EXPL=1; AC_SUBST([HAVE_DECL_EXPL])
227 HAVE_DECL_EXP2=1; AC_SUBST([HAVE_DECL_EXP2])
228 HAVE_DECL_EXP2F=1; AC_SUBST([HAVE_DECL_EXP2F])
229 HAVE_DECL_EXP2L=1; AC_SUBST([HAVE_DECL_EXP2L])
230 HAVE_DECL_EXPM1L=1; AC_SUBST([HAVE_DECL_EXPM1L])
231 HAVE_DECL_FLOORF=1; AC_SUBST([HAVE_DECL_FLOORF])
232 HAVE_DECL_FLOORL=1; AC_SUBST([HAVE_DECL_FLOORL])
233 HAVE_DECL_FREXPL=1; AC_SUBST([HAVE_DECL_FREXPL])
234 HAVE_DECL_LDEXPL=1; AC_SUBST([HAVE_DECL_LDEXPL])
235 HAVE_DECL_LOGL=1; AC_SUBST([HAVE_DECL_LOGL])
236 HAVE_DECL_LOG10L=1; AC_SUBST([HAVE_DECL_LOG10L])
237 HAVE_DECL_LOG2=1; AC_SUBST([HAVE_DECL_LOG2])
238 HAVE_DECL_LOG2F=1; AC_SUBST([HAVE_DECL_LOG2F])
239 HAVE_DECL_LOG2L=1; AC_SUBST([HAVE_DECL_LOG2L])
240 HAVE_DECL_LOGB=1; AC_SUBST([HAVE_DECL_LOGB])
241 HAVE_DECL_REMAINDER=1; AC_SUBST([HAVE_DECL_REMAINDER])
242 HAVE_DECL_REMAINDERL=1; AC_SUBST([HAVE_DECL_REMAINDERL])
243 HAVE_DECL_RINTF=1; AC_SUBST([HAVE_DECL_RINTF])
244 HAVE_DECL_ROUND=1; AC_SUBST([HAVE_DECL_ROUND])
245 HAVE_DECL_ROUNDF=1; AC_SUBST([HAVE_DECL_ROUNDF])
246 HAVE_DECL_ROUNDL=1; AC_SUBST([HAVE_DECL_ROUNDL])
247 HAVE_DECL_SINL=1; AC_SUBST([HAVE_DECL_SINL])
248 HAVE_DECL_SQRTL=1; AC_SUBST([HAVE_DECL_SQRTL])
249 HAVE_DECL_TANL=1; AC_SUBST([HAVE_DECL_TANL])
250 HAVE_DECL_TRUNC=1; AC_SUBST([HAVE_DECL_TRUNC])
251 HAVE_DECL_TRUNCF=1; AC_SUBST([HAVE_DECL_TRUNCF])
252 HAVE_DECL_TRUNCL=1; AC_SUBST([HAVE_DECL_TRUNCL])
253 REPLACE_CBRTF=0; AC_SUBST([REPLACE_CBRTF])
254 REPLACE_CBRTL=0; AC_SUBST([REPLACE_CBRTL])
255 REPLACE_CEIL=0; AC_SUBST([REPLACE_CEIL])
256 REPLACE_CEILF=0; AC_SUBST([REPLACE_CEILF])
257 REPLACE_CEILL=0; AC_SUBST([REPLACE_CEILL])
258 REPLACE_EXPM1=0; AC_SUBST([REPLACE_EXPM1])
259 REPLACE_EXPM1F=0; AC_SUBST([REPLACE_EXPM1F])
260 REPLACE_EXP2=0; AC_SUBST([REPLACE_EXP2])
261 REPLACE_EXP2L=0; AC_SUBST([REPLACE_EXP2L])
262 REPLACE_FABSL=0; AC_SUBST([REPLACE_FABSL])
263 REPLACE_FLOOR=0; AC_SUBST([REPLACE_FLOOR])
264 REPLACE_FLOORF=0; AC_SUBST([REPLACE_FLOORF])
265 REPLACE_FLOORL=0; AC_SUBST([REPLACE_FLOORL])
266 REPLACE_FMA=0; AC_SUBST([REPLACE_FMA])
267 REPLACE_FMAF=0; AC_SUBST([REPLACE_FMAF])
268 REPLACE_FMAL=0; AC_SUBST([REPLACE_FMAL])
269 REPLACE_FMOD=0; AC_SUBST([REPLACE_FMOD])
270 REPLACE_FMODF=0; AC_SUBST([REPLACE_FMODF])
271 REPLACE_FMODL=0; AC_SUBST([REPLACE_FMODL])
272 REPLACE_FREXPF=0; AC_SUBST([REPLACE_FREXPF])
273 REPLACE_FREXP=0; AC_SUBST([REPLACE_FREXP])
274 REPLACE_FREXPL=0; AC_SUBST([REPLACE_FREXPL])
275 REPLACE_HUGE_VAL=0; AC_SUBST([REPLACE_HUGE_VAL])
276 REPLACE_HYPOT=0; AC_SUBST([REPLACE_HYPOT])
277 REPLACE_HYPOTF=0; AC_SUBST([REPLACE_HYPOTF])
278 REPLACE_HYPOTL=0; AC_SUBST([REPLACE_HYPOTL])
279 REPLACE_ISFINITE=0; AC_SUBST([REPLACE_ISFINITE])
280 REPLACE_ISINF=0; AC_SUBST([REPLACE_ISINF])
281 REPLACE_ISNAN=0; AC_SUBST([REPLACE_ISNAN])
282 REPLACE_LDEXPL=0; AC_SUBST([REPLACE_LDEXPL])
283 REPLACE_LOG=0; AC_SUBST([REPLACE_LOG])
284 REPLACE_LOGF=0; AC_SUBST([REPLACE_LOGF])
285 REPLACE_LOGL=0; AC_SUBST([REPLACE_LOGL])
286 REPLACE_LOG10=0; AC_SUBST([REPLACE_LOG10])
287 REPLACE_LOG10F=0; AC_SUBST([REPLACE_LOG10F])
288 REPLACE_LOG10L=0; AC_SUBST([REPLACE_LOG10L])
289 REPLACE_LOG1P=0; AC_SUBST([REPLACE_LOG1P])
290 REPLACE_LOG1PF=0; AC_SUBST([REPLACE_LOG1PF])
291 REPLACE_LOG1PL=0; AC_SUBST([REPLACE_LOG1PL])
292 REPLACE_LOG2=0; AC_SUBST([REPLACE_LOG2])
293 REPLACE_LOG2F=0; AC_SUBST([REPLACE_LOG2F])
294 REPLACE_LOG2L=0; AC_SUBST([REPLACE_LOG2L])
295 REPLACE_LOGB=0; AC_SUBST([REPLACE_LOGB])
296 REPLACE_LOGBF=0; AC_SUBST([REPLACE_LOGBF])
297 REPLACE_LOGBL=0; AC_SUBST([REPLACE_LOGBL])
298 REPLACE_MODF=0; AC_SUBST([REPLACE_MODF])
299 REPLACE_MODFF=0; AC_SUBST([REPLACE_MODFF])
300 REPLACE_MODFL=0; AC_SUBST([REPLACE_MODFL])
301 REPLACE_NAN=0; AC_SUBST([REPLACE_NAN])
302 REPLACE_REMAINDER=0; AC_SUBST([REPLACE_REMAINDER])
303 REPLACE_REMAINDERF=0; AC_SUBST([REPLACE_REMAINDERF])
304 REPLACE_REMAINDERL=0; AC_SUBST([REPLACE_REMAINDERL])
305 REPLACE_ROUND=0; AC_SUBST([REPLACE_ROUND])
306 REPLACE_ROUNDF=0; AC_SUBST([REPLACE_ROUNDF])
307 REPLACE_ROUNDL=0; AC_SUBST([REPLACE_ROUNDL])
308 REPLACE_SIGNBIT=0; AC_SUBST([REPLACE_SIGNBIT])
309 REPLACE_SIGNBIT_USING_GCC=0; AC_SUBST([REPLACE_SIGNBIT_USING_GCC])
310 REPLACE_SQRTL=0; AC_SUBST([REPLACE_SQRTL])
311 REPLACE_TRUNC=0; AC_SUBST([REPLACE_TRUNC])
312 REPLACE_TRUNCF=0; AC_SUBST([REPLACE_TRUNCF])
313 REPLACE_TRUNCL=0; AC_SUBST([REPLACE_TRUNCL])
316 # gl_LONG_DOUBLE_VS_DOUBLE
317 # determines whether 'long double' and 'double' have the same representation.
318 # Sets variable HAVE_SAME_LONG_DOUBLE_AS_DOUBLE to 0 or 1, and defines
319 # HAVE_SAME_LONG_DOUBLE_AS_DOUBLE accordingly.
320 # The currently known platforms where this is the case are:
321 # Linux/HPPA, Minix 3.1.8, AIX 5, AIX 6 and 7 with xlc, MSVC 9.
322 AC_DEFUN([gl_LONG_DOUBLE_VS_DOUBLE],
324 AC_CACHE_CHECK([whether long double and double are the same],
325 [gl_cv_long_double_equals_double],
327 [AC_LANG_PROGRAM([[#include <float.h>]],
328 [[typedef int check[sizeof (long double) == sizeof (double)
329 && LDBL_MANT_DIG == DBL_MANT_DIG
330 && LDBL_MAX_EXP == DBL_MAX_EXP
331 && LDBL_MIN_EXP == DBL_MIN_EXP
334 [gl_cv_long_double_equals_double=yes],
335 [gl_cv_long_double_equals_double=no])
337 if test $gl_cv_long_double_equals_double = yes; then
338 AC_DEFINE([HAVE_SAME_LONG_DOUBLE_AS_DOUBLE], [1],
339 [Define to 1 if 'long double' and 'double' have the same representation.])
340 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE=1
342 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE=0
344 AC_SUBST([HAVE_SAME_LONG_DOUBLE_AS_DOUBLE])