2 dnl This file contains details for non-native builds.
5 AC_DEFUN([GLIBCXX_CROSSCONFIG],[
6 # Base decisions on target environment.
9 # This is a freestanding configuration; there is nothing to do here.
13 # Darwin versions vary, but the linker should work in a cross environment,
14 # so we just check for all the features here.
15 # Check for available headers.
16 AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h machine/endian.h \
17 machine/param.h sys/machine.h fp.h locale.h float.h inttypes.h gconv.h \
20 # Don't call GLIBCXX_CHECK_LINKER_FEATURES, Darwin doesn't have a GNU ld
21 GLIBCXX_CHECK_MATH_SUPPORT
22 GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
23 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
24 GLIBCXX_CHECK_STDLIB_SUPPORT
26 # For showmanyc_helper().
27 AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
29 GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
32 AC_CHECK_HEADERS(sys/uio.h)
35 AC_DEFINE(HAVE_LC_MESSAGES)
38 [#include <setjmp.h>],
40 while (! sigsetjmp (env, 1))
43 [AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available.])])
49 AC_CHECK_HEADERS([float.h ieeefp.h inttypes.h locale.h \
50 memory.h stdint.h stdlib.h strings.h string.h unistd.h \
51 wchar.h wctype.h machine/endian.h sys/ioctl.h sys/param.h \
52 sys/resource.h sys/stat.h sys/time.h sys/types.h sys/uio.h])
57 AC_DEFINE(HAVE_FINITE)
58 AC_DEFINE(HAVE_COPYSIGN)
59 AC_DEFINE(HAVE_SINCOS)
61 AC_DEFINE(HAVE____BUILTIN_ABS)
62 AC_DEFINE(HAVE____BUILTIN_FABSF)
63 AC_DEFINE(HAVE____BUILTIN_FABS)
64 AC_DEFINE(HAVE____BUILTIN_FABSL)
65 AC_DEFINE(HAVE____BUILTIN_LABS)
66 AC_DEFINE(HAVE____BUILTIN_SQRTF)
67 AC_DEFINE(HAVE____BUILTIN_SQRT)
68 AC_DEFINE(HAVE____BUILTIN_SQRTL)
69 AC_DEFINE(HAVE____BUILTIN_SINF)
70 AC_DEFINE(HAVE____BUILTIN_SIN)
71 AC_DEFINE(HAVE____BUILTIN_SINL)
72 AC_DEFINE(HAVE____BUILTIN_COSF)
73 AC_DEFINE(HAVE____BUILTIN_COS)
74 AC_DEFINE(HAVE____BUILTIN_COSL)
75 AC_DEFINE(HAVE_COPYSIGN)
76 AC_DEFINE(HAVE_COPYSIGNF)
77 AC_DEFINE(HAVE_S_ISREG)
78 AC_DEFINE(HAVE_S_IFREG)
79 AC_DEFINE(HAVE_WRITEV)
83 AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
84 machine/endian.h machine/param.h sys/machine.h sys/types.h \
85 fp.h locale.h float.h inttypes.h sys/resource.h sys/stat.h \
87 SECTION_FLAGS='-ffunction-sections -fdata-sections'
88 AC_SUBST(SECTION_FLAGS)
89 GLIBCXX_CHECK_LINKER_FEATURES
90 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
91 AC_DEFINE(HAVE_LC_MESSAGES)
92 AC_DEFINE(HAVE_GETPAGESIZE)
93 AC_DEFINE(HAVE_SETENV)
94 AC_DEFINE(HAVE_SIGSETJMP)
95 AC_DEFINE(HAVE_COPYSIGN)
96 AC_DEFINE(HAVE_COPYSIGNF)
97 AC_DEFINE(HAVE_FINITEF)
98 AC_DEFINE(HAVE_FINITE)
99 AC_DEFINE(HAVE_FREXPF)
100 AC_DEFINE(HAVE_HYPOT)
101 AC_DEFINE(HAVE_HYPOTF)
102 AC_DEFINE(HAVE_ISINF)
103 AC_DEFINE(HAVE_ISNAN)
104 AC_DEFINE(HAVE_ISNANF)
107 AC_DEFINE(HAVE_ACOSF)
108 AC_DEFINE(HAVE_ASINF)
109 AC_DEFINE(HAVE_ATAN2F)
110 AC_DEFINE(HAVE_ATANF)
111 AC_DEFINE(HAVE_CEILF)
112 AC_DEFINE(HAVE_COPYSIGN)
113 AC_DEFINE(HAVE_COPYSIGNF)
115 AC_DEFINE(HAVE_COSHF)
117 AC_DEFINE(HAVE_FABSF)
118 AC_DEFINE(HAVE_FLOORF)
119 AC_DEFINE(HAVE_FMODF)
120 AC_DEFINE(HAVE_FREXPF)
121 AC_DEFINE(HAVE_LDEXPF)
122 AC_DEFINE(HAVE_LOG10F)
124 AC_DEFINE(HAVE_MODFF)
127 AC_DEFINE(HAVE_SINHF)
128 AC_DEFINE(HAVE_SQRTF)
130 AC_DEFINE(HAVE_TANHF)
131 if test x"long_double_math_on_this_cpu" = x"yes"; then
132 AC_DEFINE(HAVE_FINITEL)
133 AC_DEFINE(HAVE_ISINFL)
134 AC_DEFINE(HAVE_ISNANL)
138 AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
139 machine/endian.h machine/param.h sys/machine.h sys/types.h \
140 fp.h locale.h float.h inttypes.h])
141 SECTION_FLAGS='-ffunction-sections -fdata-sections'
142 AC_SUBST(SECTION_FLAGS)
143 GLIBCXX_CHECK_LINKER_FEATURES
144 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
145 AC_DEFINE(HAVE_COPYSIGN)
146 AC_DEFINE(HAVE_COPYSIGNF)
147 AC_DEFINE(HAVE_FREXPF)
148 AC_DEFINE(HAVE_HYPOT)
151 AC_DEFINE(HAVE_FINITE)
152 AC_DEFINE(HAVE_FINITEF)
153 AC_DEFINE(HAVE_ISINF)
154 AC_DEFINE(HAVE_ISINFF)
155 AC_DEFINE(HAVE_ISNAN)
156 AC_DEFINE(HAVE_ISNANF)
160 *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu)
161 AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
162 machine/endian.h machine/param.h sys/machine.h sys/types.h \
163 fp.h float.h endian.h inttypes.h locale.h float.h stdint.h])
164 SECTION_FLAGS='-ffunction-sections -fdata-sections'
165 AC_SUBST(SECTION_FLAGS)
166 GLIBCXX_CHECK_COMPILER_FEATURES
167 GLIBCXX_CHECK_LINKER_FEATURES
168 GLIBCXX_CHECK_MATH_SUPPORT
169 GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
170 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
171 GLIBCXX_CHECK_STDLIB_SUPPORT
174 AC_DEFINE(HAVE_INT64_T)
177 # For showmanyc_helper().
178 AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
180 GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
183 AC_CHECK_HEADERS(sys/uio.h)
187 AC_CHECK_HEADERS([sys/types.h locale.h float.h])
188 GLIBCXX_CHECK_LINKER_FEATURES
189 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
192 AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
193 machine/endian.h machine/param.h sys/machine.h sys/types.h \
194 fp.h locale.h float.h inttypes.h])
195 SECTION_FLAGS='-ffunction-sections -fdata-sections'
196 AC_SUBST(SECTION_FLAGS)
197 GLIBCXX_CHECK_LINKER_FEATURES
198 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
199 AC_DEFINE(HAVE_COPYSIGN)
200 AC_DEFINE(HAVE_COPYSIGNF)
201 AC_DEFINE(HAVE_FINITEF)
202 AC_DEFINE(HAVE_FINITE)
203 AC_DEFINE(HAVE_FREXPF)
204 AC_DEFINE(HAVE_HYPOTF)
205 AC_DEFINE(HAVE_ISINF)
206 AC_DEFINE(HAVE_ISINFF)
207 AC_DEFINE(HAVE_ISNAN)
208 AC_DEFINE(HAVE_ISNANF)
209 if test x"long_double_math_on_this_cpu" = x"yes"; then
210 AC_DEFINE(HAVE_FINITEL)
211 AC_DEFINE(HAVE_ISINFL)
212 AC_DEFINE(HAVE_ISNANL)
216 AC_CHECK_HEADERS([nan.h ieeefp.h sys/isa_defs.h sys/machine.h \
217 sys/types.h locale.h float.h inttypes.h])
218 SECTION_FLAGS='-ffunction-sections -fdata-sections'
219 AC_SUBST(SECTION_FLAGS)
220 GLIBCXX_CHECK_LINKER_FEATURES
221 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
222 AC_DEFINE(HAVE_HYPOT)
223 AC_DEFINE(HAVE_ISINF)
224 AC_DEFINE(HAVE_ISNAN)
226 # For showmanyc_helper().
227 AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
229 GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
232 AC_CHECK_HEADERS(sys/uio.h)
235 *-qnx6.1* | *-qnx6.2*)
236 SECTION_FLAGS='-ffunction-sections -fdata-sections'
237 AC_SUBST(SECTION_FLAGS)
238 GLIBCXX_CHECK_LINKER_FEATURES
239 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
242 AC_DEFINE(HAVE_COSHF)
243 AC_DEFINE(HAVE_COSHL)
246 AC_DEFINE(HAVE_LOG10F)
247 AC_DEFINE(HAVE_LOG10L)
250 AC_DEFINE(HAVE_SINHF)
251 AC_DEFINE(HAVE_SINHL)
256 # os_include_dir="os/solaris/solaris2.5"
259 # os_include_dir="os/solaris/solaris2.6"
261 *-solaris2.7 | *-solaris2.8 | *-solaris2.9 | *-solaris2.10)
262 GLIBCXX_CHECK_LINKER_FEATURES
263 AC_DEFINE(HAVE_GETPAGESIZE)
264 AC_DEFINE(HAVE_SIGSETJMP)
265 AC_DEFINE(HAVE_MBSTATE_T)
267 AC_DEFINE(HAVE_S_ISREG)
268 AC_DEFINE(HAVE_LC_MESSAGES)
269 AC_DEFINE(HAVE_FINITE)
270 AC_DEFINE(HAVE_FPCLASS)
271 AC_DEFINE(HAVE_GETPAGESIZE)
272 # All of the dependencies for wide character support are here, so
274 AC_DEFINE(_GLIBCXX_USE_WCHAR_T)
275 # Are these tested for even when cross?
276 AC_DEFINE(HAVE_FLOAT_H)
277 AC_DEFINE(HAVE_IEEEFP_H)
278 AC_DEFINE(HAVE_INTTYPES_H)
279 AC_DEFINE(HAVE_LOCALE_H)
280 AC_DEFINE(HAVE_NAN_H)
281 AC_DEFINE(HAVE_SYS_FILIO_H)
282 AC_DEFINE(HAVE_SYS_IOCTL_H)
283 AC_DEFINE(HAVE_SYS_ISA_DEFS_H)
284 AC_DEFINE(HAVE_SYS_RESOURCE_H)
285 AC_DEFINE(HAVE_SYS_TIME_H)
286 AC_DEFINE(HAVE_SYS_TYPES_H)
287 AC_DEFINE(HAVE_UNISTD_H)
288 AC_DEFINE(HAVE_WCHAR_H)
289 AC_DEFINE(HAVE_WCTYPE_H)
294 sparc*-*-solaris2.8 | sparc*-*-solaris2.9 | sparc*-*-solaris2.10)
295 # I saw these on sparc-sun-solaris2.8, but not 2.6, and not on i386
296 AC_DEFINE(HAVE___BUILTIN_ABS)
297 AC_DEFINE(HAVE___BUILTIN_LABS)
298 AC_DEFINE(HAVE___BUILTIN_FABS)
299 AC_DEFINE(HAVE___BUILTIN_FABSF)
300 AC_DEFINE(HAVE___BUILTIN_FABSL)
301 AC_DEFINE(HAVE___BUILTIN_COS)
302 AC_DEFINE(HAVE___BUILTIN_COSF)
303 AC_DEFINE(HAVE___BUILTIN_SIN)
304 AC_DEFINE(HAVE___BUILTIN_SINF)
309 # These two C99 functions are present only in Solaris >= 10
310 AC_DEFINE(HAVE_STRTOF)
311 AC_DEFINE(HAVE_STRTOLD)
315 AC_DEFINE(HAVE_COPYSIGN)
316 AC_DEFINE(HAVE_ISNAN)
317 AC_DEFINE(HAVE_ISNANF)
318 AC_DEFINE(HAVE_MODFF)
319 AC_DEFINE(HAVE_HYPOT)
322 AC_CHECK_HEADERS([nan.h endian.h machine/endian.h \
323 sys/param.h sys/types.h locale.h float.h inttypes.h])
324 SECTION_FLAGS='-ffunction-sections -fdata-sections'
325 AC_SUBST(SECTION_FLAGS)
326 GLIBCXX_CHECK_LINKER_FEATURES
327 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
328 AC_DEFINE(HAVE_COPYSIGN)
329 AC_DEFINE(HAVE_COPYSIGNF)
330 AC_DEFINE(HAVE_FINITE)
331 AC_DEFINE(HAVE_FINITEF)
332 AC_DEFINE(HAVE_FREXPF)
333 AC_DEFINE(HAVE_HYPOTF)
334 AC_DEFINE(HAVE_ISINF)
335 AC_DEFINE(HAVE_ISINFF)
336 AC_DEFINE(HAVE_ISNAN)
337 AC_DEFINE(HAVE_ISNANF)
338 AC_DEFINE(HAVE_SINCOS)
339 AC_DEFINE(HAVE_SINCOSF)
340 if test x"long_double_math_on_this_cpu" = x"yes"; then
341 AC_DEFINE(HAVE_FINITEL)
342 AC_DEFINE(HAVE_HYPOTL)
343 AC_DEFINE(HAVE_ISINFL)
344 AC_DEFINE(HAVE_ISNANL)
349 AC_DEFINE(HAVE_ACOSF)
350 AC_DEFINE(HAVE_ASINF)
351 AC_DEFINE(HAVE_ATAN2F)
352 AC_DEFINE(HAVE_ATANF)
353 AC_DEFINE(HAVE_CEILF)
355 AC_DEFINE(HAVE_COSHF)
357 AC_DEFINE(HAVE_FABSF)
358 AC_DEFINE(HAVE_FLOORF)
359 AC_DEFINE(HAVE_FMODF)
360 AC_DEFINE(HAVE_HYPOT)
361 AC_DEFINE(HAVE_LOG10F)
365 AC_DEFINE(HAVE_SINHF)
366 AC_DEFINE(HAVE_SQRTF)
368 AC_DEFINE(HAVE_TANHF)
371 AC_DEFINE(HAVE_ACOSF)
372 AC_DEFINE(HAVE_ACOSL)
373 AC_DEFINE(HAVE_ASINF)
374 AC_DEFINE(HAVE_ASINL)
375 AC_DEFINE(HAVE_ATAN2F)
376 AC_DEFINE(HAVE_ATAN2L)
377 AC_DEFINE(HAVE_ATANF)
378 AC_DEFINE(HAVE_ATANL)
379 AC_DEFINE(HAVE_CEILF)
380 AC_DEFINE(HAVE_CEILL)
381 AC_DEFINE(HAVE_COPYSIGN)
382 AC_DEFINE(HAVE_COPYSIGNF)
385 AC_DEFINE(HAVE_COSHF)
386 AC_DEFINE(HAVE_COSHL)
389 AC_DEFINE(HAVE_FABSF)
390 AC_DEFINE(HAVE_FABSL)
391 AC_DEFINE(HAVE_FLOORF)
392 AC_DEFINE(HAVE_FLOORL)
393 AC_DEFINE(HAVE_FMODF)
394 AC_DEFINE(HAVE_FMODL)
395 AC_DEFINE(HAVE_FREXPF)
396 AC_DEFINE(HAVE_FREXPL)
397 AC_DEFINE(HAVE_LDEXPF)
398 AC_DEFINE(HAVE_LDEXPL)
399 AC_DEFINE(HAVE_LOG10F)
400 AC_DEFINE(HAVE_LOG10L)
402 AC_DEFINE(HAVE_MODFF)
403 AC_DEFINE(HAVE_MODFL)
408 AC_DEFINE(HAVE_SINHF)
409 AC_DEFINE(HAVE_SINHL)
410 AC_DEFINE(HAVE_SQRTF)
411 AC_DEFINE(HAVE_SQRTL)
414 AC_DEFINE(HAVE_TANHF)
415 AC_DEFINE(HAVE_TANHL)
418 AC_MSG_ERROR([No support for this host/target combination.])