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 # These definitions are for the SDE C library rather than newlib.
14 AC_CHECK_HEADERS([float.h inttypes.h locale.h \
15 stdint.h stdlib.h string.h unistd.h wchar.h \
16 machine/endian.h sys/ioctl.h sys/resource.h \
17 sys/stat.h sys/time.h sys/types.h sys/uio.h])
18 SECTION_FLAGS='-ffunction-sections -fdata-sections'
19 AC_SUBST(SECTION_FLAGS)
20 GLIBCXX_CHECK_COMPILER_FEATURES
21 GLIBCXX_CHECK_LINKER_FEATURES
22 GLIBCXX_CHECK_MATH_SUPPORT
23 GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
24 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
25 GLIBCXX_CHECK_STDLIB_SUPPORT
26 GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
27 AC_DEFINE(HAVE_WRITEV)
30 AC_DEFINE(HAVE_COPYSIGN)
31 AC_DEFINE(HAVE_FINITE)
36 AC_DEFINE(HAVE_LDEXPF)
42 # Darwin versions vary, but the linker should work in a cross environment,
43 # so we just check for all the features here.
44 # Check for available headers.
45 AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h machine/endian.h \
46 machine/param.h sys/machine.h fp.h locale.h float.h inttypes.h \
49 # Don't call GLIBCXX_CHECK_LINKER_FEATURES, Darwin doesn't have a GNU ld
50 GLIBCXX_CHECK_MATH_SUPPORT
51 GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
52 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
53 GLIBCXX_CHECK_STDLIB_SUPPORT
55 # For showmanyc_helper().
56 AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
58 GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
61 AC_CHECK_HEADERS(sys/uio.h)
64 AC_DEFINE(HAVE_LC_MESSAGES)
68 AC_CHECK_HEADERS([float.h ieeefp.h inttypes.h locale.h \
69 memory.h stdint.h stdlib.h strings.h string.h unistd.h \
70 wchar.h wctype.h machine/endian.h sys/ioctl.h sys/param.h \
71 sys/resource.h sys/stat.h sys/time.h sys/types.h sys/uio.h])
72 # GLIBCXX_CHECK_MATH_SUPPORT
76 AC_DEFINE(HAVE_FINITE)
77 AC_DEFINE(HAVE_COPYSIGN)
78 AC_DEFINE(HAVE_SINCOS)
80 # GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
81 AC_DEFINE(HAVE___BUILTIN_ABS)
82 AC_DEFINE(HAVE___BUILTIN_FABSF)
83 AC_DEFINE(HAVE___BUILTIN_FABS)
84 AC_DEFINE(HAVE___BUILTIN_FABSL)
85 AC_DEFINE(HAVE___BUILTIN_LABS)
86 AC_DEFINE(HAVE___BUILTIN_SQRTF)
87 AC_DEFINE(HAVE___BUILTIN_SQRT)
88 AC_DEFINE(HAVE___BUILTIN_SQRTL)
89 AC_DEFINE(HAVE___BUILTIN_SINF)
90 AC_DEFINE(HAVE___BUILTIN_SIN)
91 AC_DEFINE(HAVE___BUILTIN_SINL)
92 AC_DEFINE(HAVE___BUILTIN_COSF)
93 AC_DEFINE(HAVE___BUILTIN_COS)
94 AC_DEFINE(HAVE___BUILTIN_COSL)
95 # GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
96 # GLIBCXX_CHECK_STDLIB_SUPPORT
97 AC_DEFINE(HAVE_COPYSIGN)
98 AC_DEFINE(HAVE_COPYSIGNF)
99 # GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
100 AC_DEFINE(HAVE_S_ISREG)
101 AC_DEFINE(HAVE_S_IFREG)
102 AC_DEFINE(HAVE_WRITEV)
106 AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
107 machine/endian.h machine/param.h sys/machine.h sys/types.h \
108 fp.h locale.h float.h inttypes.h sys/resource.h sys/stat.h \
109 sys/time.h unistd.h])
110 SECTION_FLAGS='-ffunction-sections -fdata-sections'
111 AC_SUBST(SECTION_FLAGS)
112 GLIBCXX_CHECK_LINKER_FEATURES
113 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
114 AC_DEFINE(HAVE_LC_MESSAGES)
115 AC_DEFINE(HAVE_SETENV)
116 AC_DEFINE(HAVE_COPYSIGN)
117 AC_DEFINE(HAVE_COPYSIGNF)
118 AC_DEFINE(HAVE_FINITEF)
119 AC_DEFINE(HAVE_FINITE)
120 AC_DEFINE(HAVE_FREXPF)
121 AC_DEFINE(HAVE_HYPOT)
122 AC_DEFINE(HAVE_HYPOTF)
123 AC_DEFINE(HAVE_ISINF)
124 AC_DEFINE(HAVE_ISNAN)
125 AC_DEFINE(HAVE_ISNANF)
127 AC_DEFINE(HAVE_ACOSF)
128 AC_DEFINE(HAVE_ASINF)
129 AC_DEFINE(HAVE_ATAN2F)
130 AC_DEFINE(HAVE_ATANF)
131 AC_DEFINE(HAVE_CEILF)
132 AC_DEFINE(HAVE_COPYSIGN)
133 AC_DEFINE(HAVE_COPYSIGNF)
135 AC_DEFINE(HAVE_COSHF)
137 AC_DEFINE(HAVE_FABSF)
138 AC_DEFINE(HAVE_FLOORF)
139 AC_DEFINE(HAVE_FMODF)
140 AC_DEFINE(HAVE_FREXPF)
141 AC_DEFINE(HAVE_LDEXPF)
142 AC_DEFINE(HAVE_LOG10F)
144 AC_DEFINE(HAVE_MODFF)
147 AC_DEFINE(HAVE_SINHF)
148 AC_DEFINE(HAVE_SQRTF)
150 AC_DEFINE(HAVE_TANHF)
151 if test x"long_double_math_on_this_cpu" = x"yes"; then
152 AC_DEFINE(HAVE_FINITEL)
153 AC_DEFINE(HAVE_ISINFL)
154 AC_DEFINE(HAVE_ISNANL)
158 AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
159 machine/endian.h machine/param.h sys/machine.h sys/types.h \
160 fp.h locale.h float.h inttypes.h])
161 SECTION_FLAGS='-ffunction-sections -fdata-sections'
162 AC_SUBST(SECTION_FLAGS)
163 GLIBCXX_CHECK_LINKER_FEATURES
164 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
165 AC_DEFINE(HAVE_COPYSIGN)
166 AC_DEFINE(HAVE_COPYSIGNF)
167 AC_DEFINE(HAVE_FREXPF)
168 AC_DEFINE(HAVE_HYPOT)
171 AC_DEFINE(HAVE_FINITE)
172 AC_DEFINE(HAVE_FINITEF)
173 AC_DEFINE(HAVE_ISINF)
174 AC_DEFINE(HAVE_ISINFF)
175 AC_DEFINE(HAVE_ISNAN)
176 AC_DEFINE(HAVE_ISNANF)
180 *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu)
181 AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
182 machine/endian.h machine/param.h sys/machine.h sys/types.h \
183 fp.h float.h endian.h inttypes.h locale.h float.h stdint.h \
184 sys/ipc.h sys/sem.h])
185 SECTION_FLAGS='-ffunction-sections -fdata-sections'
186 AC_SUBST(SECTION_FLAGS)
187 GLIBCXX_CHECK_COMPILER_FEATURES
188 GLIBCXX_CHECK_LINKER_FEATURES
189 GLIBCXX_CHECK_MATH_SUPPORT
190 GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
191 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
192 GLIBCXX_CHECK_STDLIB_SUPPORT
197 # For showmanyc_helper().
198 AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
200 GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
203 AC_CHECK_HEADERS(sys/uio.h)
206 AC_DEFINE(_GLIBCXX_USE_RANDOM_TR1)
214 AC_CHECK_HEADERS([sys/types.h locale.h float.h])
215 AC_DEFINE(HAVE_STRTOF)
216 AC_DEFINE(HAVE_STRTOLD)
217 GLIBCXX_CHECK_LINKER_FEATURES
218 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
221 AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
222 machine/endian.h machine/param.h sys/machine.h sys/types.h \
223 fp.h locale.h float.h inttypes.h])
224 SECTION_FLAGS='-ffunction-sections -fdata-sections'
225 AC_SUBST(SECTION_FLAGS)
226 GLIBCXX_CHECK_LINKER_FEATURES
227 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
228 AC_DEFINE(HAVE_COPYSIGN)
229 AC_DEFINE(HAVE_COPYSIGNF)
230 AC_DEFINE(HAVE_FINITEF)
231 AC_DEFINE(HAVE_FINITE)
232 AC_DEFINE(HAVE_FREXPF)
233 AC_DEFINE(HAVE_HYPOTF)
234 AC_DEFINE(HAVE_ISINF)
235 AC_DEFINE(HAVE_ISINFF)
236 AC_DEFINE(HAVE_ISNAN)
237 AC_DEFINE(HAVE_ISNANF)
238 if test x"long_double_math_on_this_cpu" = x"yes"; then
239 AC_DEFINE(HAVE_FINITEL)
240 AC_DEFINE(HAVE_ISINFL)
241 AC_DEFINE(HAVE_ISNANL)
245 AC_CHECK_HEADERS([nan.h ieeefp.h sys/isa_defs.h sys/machine.h \
246 sys/types.h locale.h float.h inttypes.h])
247 SECTION_FLAGS='-ffunction-sections -fdata-sections'
248 AC_SUBST(SECTION_FLAGS)
249 GLIBCXX_CHECK_LINKER_FEATURES
250 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
251 AC_DEFINE(HAVE_HYPOT)
252 AC_DEFINE(HAVE_ISINF)
253 AC_DEFINE(HAVE_ISNAN)
255 # For showmanyc_helper().
256 AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
258 GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
261 AC_CHECK_HEADERS(sys/uio.h)
264 *-qnx6.1* | *-qnx6.2*)
265 SECTION_FLAGS='-ffunction-sections -fdata-sections'
266 AC_SUBST(SECTION_FLAGS)
267 GLIBCXX_CHECK_LINKER_FEATURES
268 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
271 AC_DEFINE(HAVE_COSHF)
272 AC_DEFINE(HAVE_COSHL)
275 AC_DEFINE(HAVE_LOG10F)
276 AC_DEFINE(HAVE_LOG10L)
279 AC_DEFINE(HAVE_SINHF)
280 AC_DEFINE(HAVE_SINHL)
284 *-solaris2.7 | *-solaris2.8 | *-solaris2.9 | *-solaris2.10)
285 GLIBCXX_CHECK_LINKER_FEATURES
286 AC_DEFINE(HAVE_MBSTATE_T)
288 AC_DEFINE(HAVE_S_ISREG)
289 AC_DEFINE(HAVE_LC_MESSAGES)
290 AC_DEFINE(HAVE_FINITE)
291 AC_DEFINE(HAVE_FPCLASS)
292 # All of the dependencies for wide character support are here, so
294 AC_DEFINE(_GLIBCXX_USE_WCHAR_T)
295 # Are these tested for even when cross?
296 AC_DEFINE(HAVE_FLOAT_H)
297 AC_DEFINE(HAVE_IEEEFP_H)
298 AC_DEFINE(HAVE_INTTYPES_H)
299 AC_DEFINE(HAVE_LOCALE_H)
300 AC_DEFINE(HAVE_NAN_H)
301 AC_DEFINE(HAVE_SYS_FILIO_H)
302 AC_DEFINE(HAVE_SYS_IOCTL_H)
303 AC_DEFINE(HAVE_SYS_ISA_DEFS_H)
304 AC_DEFINE(HAVE_SYS_RESOURCE_H)
305 AC_DEFINE(HAVE_SYS_TIME_H)
306 AC_DEFINE(HAVE_SYS_TYPES_H)
307 AC_DEFINE(HAVE_UNISTD_H)
308 AC_DEFINE(HAVE_WCHAR_H)
309 AC_DEFINE(HAVE_WCTYPE_H)
314 sparc*-*-solaris2.8 | sparc*-*-solaris2.9 | sparc*-*-solaris2.10)
315 # I saw these on sparc-sun-solaris2.8, but not 2.6, and not on i386
316 AC_DEFINE(HAVE___BUILTIN_ABS)
317 AC_DEFINE(HAVE___BUILTIN_LABS)
318 AC_DEFINE(HAVE___BUILTIN_FABS)
319 AC_DEFINE(HAVE___BUILTIN_FABSF)
320 AC_DEFINE(HAVE___BUILTIN_FABSL)
321 AC_DEFINE(HAVE___BUILTIN_COS)
322 AC_DEFINE(HAVE___BUILTIN_COSF)
323 AC_DEFINE(HAVE___BUILTIN_SIN)
324 AC_DEFINE(HAVE___BUILTIN_SINF)
329 # These two C99 functions are present only in Solaris >= 10
330 AC_DEFINE(HAVE_STRTOF)
331 AC_DEFINE(HAVE_STRTOLD)
334 AC_DEFINE(HAVE_COPYSIGN)
335 AC_DEFINE(HAVE_ISNAN)
336 AC_DEFINE(HAVE_ISNANF)
337 AC_DEFINE(HAVE_MODFF)
338 AC_DEFINE(HAVE_HYPOT)
341 AC_CHECK_HEADERS([nan.h endian.h machine/endian.h \
342 sys/param.h sys/types.h locale.h float.h inttypes.h])
343 SECTION_FLAGS='-ffunction-sections -fdata-sections'
344 AC_SUBST(SECTION_FLAGS)
345 GLIBCXX_CHECK_LINKER_FEATURES
346 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
347 AC_DEFINE(HAVE_COPYSIGN)
348 AC_DEFINE(HAVE_COPYSIGNF)
349 AC_DEFINE(HAVE_FINITE)
350 AC_DEFINE(HAVE_FINITEF)
351 AC_DEFINE(HAVE_FREXPF)
352 AC_DEFINE(HAVE_HYPOTF)
353 AC_DEFINE(HAVE_ISINF)
354 AC_DEFINE(HAVE_ISINFF)
355 AC_DEFINE(HAVE_ISNAN)
356 AC_DEFINE(HAVE_ISNANF)
357 AC_DEFINE(HAVE_SINCOS)
358 AC_DEFINE(HAVE_SINCOSF)
359 if test x"long_double_math_on_this_cpu" = x"yes"; then
360 AC_DEFINE(HAVE_FINITEL)
361 AC_DEFINE(HAVE_HYPOTL)
362 AC_DEFINE(HAVE_ISINFL)
363 AC_DEFINE(HAVE_ISNANL)
367 AC_DEFINE(HAVE_ACOSF)
368 AC_DEFINE(HAVE_ASINF)
369 AC_DEFINE(HAVE_ATAN2F)
370 AC_DEFINE(HAVE_ATANF)
371 AC_DEFINE(HAVE_CEILF)
373 AC_DEFINE(HAVE_COSHF)
375 AC_DEFINE(HAVE_FABSF)
376 AC_DEFINE(HAVE_FLOORF)
377 AC_DEFINE(HAVE_FMODF)
378 AC_DEFINE(HAVE_HYPOT)
379 AC_DEFINE(HAVE_LOG10F)
383 AC_DEFINE(HAVE_SINHF)
384 AC_DEFINE(HAVE_SQRTF)
386 AC_DEFINE(HAVE_TANHF)
389 AC_MSG_ERROR([No support for this host/target combination.])