Merged with mainline at revision 128810.
[official-gcc.git] / libstdc++-v3 / crossconfig.m4
blob27df06069b5e77d75fda1427cf323ce5f8b5dc58
1 dnl
2 dnl This file contains details for non-native builds.
3 dnl
5 AC_DEFUN([GLIBCXX_CROSSCONFIG],[
6 # Base decisions on target environment.
7 case "${host}" in
8   arm*-*-symbianelf*)
9     # This is a freestanding configuration; there is nothing to do here.
10     ;;
12   mips*-sde-elf*)
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_SIGSETJMP)
28     AC_DEFINE(HAVE_GETPAGESIZE)
29     AC_DEFINE(HAVE_WRITEV)
30     AC_DEFINE(HAVE_INT64_T)
32     AC_DEFINE(HAVE_LIBM)
33     AC_DEFINE(HAVE_COPYSIGN)
34     AC_DEFINE(HAVE_FINITE)
35     AC_DEFINE(HAVE_HYPOT)
36     AC_DEFINE(HAVE_ISNAN)
37     AC_DEFINE(HAVE_ISINF)
39     AC_DEFINE(HAVE_LDEXPF)
40     AC_DEFINE(HAVE_MODF)
41     AC_DEFINE(HAVE_SQRTF)
42     ;;
44   *-darwin*)
45     # Darwin versions vary, but the linker should work in a cross environment,
46     # so we just check for all the features here.
47     # Check for available headers.
48     AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h machine/endian.h \
49     machine/param.h sys/machine.h fp.h locale.h float.h inttypes.h gconv.h \
50     sys/types.h])
52     # Don't call GLIBCXX_CHECK_LINKER_FEATURES, Darwin doesn't have a GNU ld
53     GLIBCXX_CHECK_MATH_SUPPORT
54     GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
55     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
56     GLIBCXX_CHECK_STDLIB_SUPPORT
58     # For showmanyc_helper().
59     AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
60     GLIBCXX_CHECK_POLL
61     GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
63     # For xsputn_2().
64     AC_CHECK_HEADERS(sys/uio.h)
65     GLIBCXX_CHECK_WRITEV
67     AC_DEFINE(HAVE_LC_MESSAGES)
69     AC_TRY_COMPILE(
70       [#include <setjmp.h>],
71       [sigjmp_buf env;
72        while (! sigsetjmp (env, 1))
73          siglongjmp (env, 1);
74     ],
75     [AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available.])])
77     AC_DEFINE(HAVE_MMAP)
78     ;;
80   *djgpp)
81     AC_CHECK_HEADERS([float.h ieeefp.h inttypes.h locale.h \
82       memory.h stdint.h stdlib.h strings.h string.h unistd.h \
83       wchar.h wctype.h machine/endian.h sys/ioctl.h sys/param.h \
84       sys/resource.h sys/stat.h sys/time.h sys/types.h sys/uio.h])
85     # GLIBCXX_CHECK_MATH_SUPPORT
86     AC_DEFINE(HAVE_LIBM)
87     AC_DEFINE(HAVE_ISINF)
88     AC_DEFINE(HAVE_ISNAN)
89     AC_DEFINE(HAVE_FINITE)
90     AC_DEFINE(HAVE_COPYSIGN)
91     AC_DEFINE(HAVE_SINCOS)
92     AC_DEFINE(HAVE_HYPOT)
93     # GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
94     AC_DEFINE(HAVE___BUILTIN_ABS)
95     AC_DEFINE(HAVE___BUILTIN_FABSF)
96     AC_DEFINE(HAVE___BUILTIN_FABS)
97     AC_DEFINE(HAVE___BUILTIN_FABSL)
98     AC_DEFINE(HAVE___BUILTIN_LABS)
99     AC_DEFINE(HAVE___BUILTIN_SQRTF)
100     AC_DEFINE(HAVE___BUILTIN_SQRT)
101     AC_DEFINE(HAVE___BUILTIN_SQRTL)
102     AC_DEFINE(HAVE___BUILTIN_SINF)
103     AC_DEFINE(HAVE___BUILTIN_SIN)
104     AC_DEFINE(HAVE___BUILTIN_SINL)
105     AC_DEFINE(HAVE___BUILTIN_COSF)
106     AC_DEFINE(HAVE___BUILTIN_COS)
107     AC_DEFINE(HAVE___BUILTIN_COSL)
108     # GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
109     # GLIBCXX_CHECK_STDLIB_SUPPORT
110     AC_DEFINE(HAVE_COPYSIGN)
111     AC_DEFINE(HAVE_COPYSIGNF)
112     # GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
113     AC_DEFINE(HAVE_S_ISREG)
114     AC_DEFINE(HAVE_S_IFREG)
115     AC_DEFINE(HAVE_WRITEV)
116     ;;
118   *-freebsd*)
119     AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
120       machine/endian.h machine/param.h sys/machine.h sys/types.h \
121       fp.h locale.h float.h inttypes.h sys/resource.h sys/stat.h \
122       sys/time.h unistd.h])
123     SECTION_FLAGS='-ffunction-sections -fdata-sections'
124     AC_SUBST(SECTION_FLAGS) 
125     GLIBCXX_CHECK_LINKER_FEATURES
126     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
127     AC_DEFINE(HAVE_LC_MESSAGES)
128     AC_DEFINE(HAVE_GETPAGESIZE)
129     AC_DEFINE(HAVE_SETENV)
130     AC_DEFINE(HAVE_SIGSETJMP)
131     AC_DEFINE(HAVE_COPYSIGN)
132     AC_DEFINE(HAVE_COPYSIGNF)
133     AC_DEFINE(HAVE_FINITEF)
134     AC_DEFINE(HAVE_FINITE)
135     AC_DEFINE(HAVE_FREXPF)
136     AC_DEFINE(HAVE_HYPOT)
137     AC_DEFINE(HAVE_HYPOTF)
138     AC_DEFINE(HAVE_ISINF)
139     AC_DEFINE(HAVE_ISNAN)
140     AC_DEFINE(HAVE_ISNANF)
142     AC_DEFINE(HAVE_MMAP)
143     AC_DEFINE(HAVE_ACOSF)
144     AC_DEFINE(HAVE_ASINF)
145     AC_DEFINE(HAVE_ATAN2F)
146     AC_DEFINE(HAVE_ATANF)
147     AC_DEFINE(HAVE_CEILF)
148     AC_DEFINE(HAVE_COPYSIGN)
149     AC_DEFINE(HAVE_COPYSIGNF)
150     AC_DEFINE(HAVE_COSF)
151     AC_DEFINE(HAVE_COSHF)
152     AC_DEFINE(HAVE_EXPF)
153     AC_DEFINE(HAVE_FABSF)
154     AC_DEFINE(HAVE_FLOORF)
155     AC_DEFINE(HAVE_FMODF)
156     AC_DEFINE(HAVE_FREXPF)
157     AC_DEFINE(HAVE_LDEXPF)
158     AC_DEFINE(HAVE_LOG10F)
159     AC_DEFINE(HAVE_LOGF)
160     AC_DEFINE(HAVE_MODFF)
161     AC_DEFINE(HAVE_POWF)
162     AC_DEFINE(HAVE_SINF)
163     AC_DEFINE(HAVE_SINHF)
164     AC_DEFINE(HAVE_SQRTF)
165     AC_DEFINE(HAVE_TANF)
166     AC_DEFINE(HAVE_TANHF)
167     if test x"long_double_math_on_this_cpu" = x"yes"; then
168       AC_DEFINE(HAVE_FINITEL)
169       AC_DEFINE(HAVE_ISINFL)
170       AC_DEFINE(HAVE_ISNANL)
171     fi
172     ;;
173   *-hpux*)
174     AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
175       machine/endian.h machine/param.h sys/machine.h sys/types.h \
176       fp.h locale.h float.h inttypes.h])
177     SECTION_FLAGS='-ffunction-sections -fdata-sections'
178     AC_SUBST(SECTION_FLAGS)
179     GLIBCXX_CHECK_LINKER_FEATURES
180     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
181     AC_DEFINE(HAVE_COPYSIGN)
182     AC_DEFINE(HAVE_COPYSIGNF)
183     AC_DEFINE(HAVE_FREXPF)
184     AC_DEFINE(HAVE_HYPOT)
185     case "$target" in
186       *-hpux10*)
187         AC_DEFINE(HAVE_FINITE)
188         AC_DEFINE(HAVE_FINITEF)
189         AC_DEFINE(HAVE_ISINF)
190         AC_DEFINE(HAVE_ISINFF)
191         AC_DEFINE(HAVE_ISNAN)
192         AC_DEFINE(HAVE_ISNANF)
193         ;;
194     esac
195     ;;
196   *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu)
197     AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
198       machine/endian.h machine/param.h sys/machine.h sys/types.h \
199       fp.h float.h endian.h inttypes.h locale.h float.h stdint.h])
200     SECTION_FLAGS='-ffunction-sections -fdata-sections'
201     AC_SUBST(SECTION_FLAGS)
202     GLIBCXX_CHECK_COMPILER_FEATURES
203     GLIBCXX_CHECK_LINKER_FEATURES
204     GLIBCXX_CHECK_MATH_SUPPORT
205     GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
206     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
207     GLIBCXX_CHECK_STDLIB_SUPPORT
209     # For LFS.
210     AC_DEFINE(HAVE_INT64_T)
211     GLIBCXX_CHECK_LFS
213     # For showmanyc_helper().
214     AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
215     GLIBCXX_CHECK_POLL
216     GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
218     # For xsputn_2().
219     AC_CHECK_HEADERS(sys/uio.h)
220     GLIBCXX_CHECK_WRITEV
221     ;;
222   *-mingw32*)
223     AC_CHECK_HEADERS([sys/types.h locale.h float.h])
224     GLIBCXX_CHECK_LINKER_FEATURES
225     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
226     ;;
227   *-netbsd*)
228     AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
229       machine/endian.h machine/param.h sys/machine.h sys/types.h \
230       fp.h locale.h float.h inttypes.h])
231     SECTION_FLAGS='-ffunction-sections -fdata-sections'
232     AC_SUBST(SECTION_FLAGS) 
233     GLIBCXX_CHECK_LINKER_FEATURES
234     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
235     AC_DEFINE(HAVE_COPYSIGN)
236     AC_DEFINE(HAVE_COPYSIGNF)
237     AC_DEFINE(HAVE_FINITEF)
238     AC_DEFINE(HAVE_FINITE)
239     AC_DEFINE(HAVE_FREXPF)
240     AC_DEFINE(HAVE_HYPOTF)
241     AC_DEFINE(HAVE_ISINF)
242     AC_DEFINE(HAVE_ISINFF)
243     AC_DEFINE(HAVE_ISNAN)
244     AC_DEFINE(HAVE_ISNANF)
245     if test x"long_double_math_on_this_cpu" = x"yes"; then
246       AC_DEFINE(HAVE_FINITEL)
247       AC_DEFINE(HAVE_ISINFL)
248       AC_DEFINE(HAVE_ISNANL)
249     fi
250     ;;
251   *-netware)
252     AC_CHECK_HEADERS([nan.h ieeefp.h sys/isa_defs.h sys/machine.h \
253       sys/types.h locale.h float.h inttypes.h])
254     SECTION_FLAGS='-ffunction-sections -fdata-sections'
255     AC_SUBST(SECTION_FLAGS)
256     GLIBCXX_CHECK_LINKER_FEATURES
257     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
258     AC_DEFINE(HAVE_HYPOT)
259     AC_DEFINE(HAVE_ISINF)
260     AC_DEFINE(HAVE_ISNAN)
262     # For showmanyc_helper().
263     AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
264     GLIBCXX_CHECK_POLL
265     GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
267     # For xsputn_2().
268     AC_CHECK_HEADERS(sys/uio.h)
269     GLIBCXX_CHECK_WRITEV
270     ;;
271   *-qnx6.1* | *-qnx6.2*)
272     SECTION_FLAGS='-ffunction-sections -fdata-sections'
273     AC_SUBST(SECTION_FLAGS) 
274     GLIBCXX_CHECK_LINKER_FEATURES
275     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
276     AC_DEFINE(HAVE_COSF)
277     AC_DEFINE(HAVE_COSL)
278     AC_DEFINE(HAVE_COSHF)
279     AC_DEFINE(HAVE_COSHL)
280     AC_DEFINE(HAVE_LOGF)
281     AC_DEFINE(HAVE_LOGL)
282     AC_DEFINE(HAVE_LOG10F)
283     AC_DEFINE(HAVE_LOG10L)
284     AC_DEFINE(HAVE_SINF)
285     AC_DEFINE(HAVE_SINL)
286     AC_DEFINE(HAVE_SINHF)
287     AC_DEFINE(HAVE_SINHL)
288     ;;
289   *-solaris*)
290     case "$target" in
291     #  *-solaris2.5)
292     #    os_include_dir="os/solaris/solaris2.5"
293     #    ;;
294     #  *-solaris2.6)
295     #    os_include_dir="os/solaris/solaris2.6"
296     #    ;;
297       *-solaris2.7 | *-solaris2.8 | *-solaris2.9 | *-solaris2.10)
298          GLIBCXX_CHECK_LINKER_FEATURES
299          AC_DEFINE(HAVE_GETPAGESIZE)
300          AC_DEFINE(HAVE_SIGSETJMP)
301          AC_DEFINE(HAVE_MBSTATE_T)
302          AC_DEFINE(HAVE_POLL)
303          AC_DEFINE(HAVE_S_ISREG)
304          AC_DEFINE(HAVE_LC_MESSAGES)
305          AC_DEFINE(HAVE_FINITE)
306          AC_DEFINE(HAVE_FPCLASS)
307          AC_DEFINE(HAVE_GETPAGESIZE)
308          # All of the dependencies for wide character support are here, so
309          # turn it on. 
310          AC_DEFINE(_GLIBCXX_USE_WCHAR_T) 
311          # Are these tested for even when cross?
312          AC_DEFINE(HAVE_FLOAT_H)
313          AC_DEFINE(HAVE_IEEEFP_H)
314          AC_DEFINE(HAVE_INTTYPES_H)
315          AC_DEFINE(HAVE_LOCALE_H)
316          AC_DEFINE(HAVE_NAN_H)
317          AC_DEFINE(HAVE_SYS_FILIO_H)
318          AC_DEFINE(HAVE_SYS_IOCTL_H)
319          AC_DEFINE(HAVE_SYS_ISA_DEFS_H)
320          AC_DEFINE(HAVE_SYS_RESOURCE_H)
321          AC_DEFINE(HAVE_SYS_TIME_H)
322          AC_DEFINE(HAVE_SYS_TYPES_H)
323          AC_DEFINE(HAVE_UNISTD_H)
324          AC_DEFINE(HAVE_WCHAR_H)
325          AC_DEFINE(HAVE_WCTYPE_H)
326          AC_DEFINE(HAVE_LIBM)
327         ;;
328     esac
329     case "$target" in
330       sparc*-*-solaris2.8 | sparc*-*-solaris2.9 | sparc*-*-solaris2.10)
331         # I saw these on sparc-sun-solaris2.8, but not 2.6, and not on i386
332         AC_DEFINE(HAVE___BUILTIN_ABS)
333         AC_DEFINE(HAVE___BUILTIN_LABS)
334         AC_DEFINE(HAVE___BUILTIN_FABS)
335         AC_DEFINE(HAVE___BUILTIN_FABSF)
336         AC_DEFINE(HAVE___BUILTIN_FABSL)
337         AC_DEFINE(HAVE___BUILTIN_COS)
338         AC_DEFINE(HAVE___BUILTIN_COSF)
339         AC_DEFINE(HAVE___BUILTIN_SIN)
340         AC_DEFINE(HAVE___BUILTIN_SINF)
341        ;;
342     esac
343     case "$target" in
344       *-*-solaris2.10)
345       # These two C99 functions are present only in Solaris >= 10
346       AC_DEFINE(HAVE_STRTOF)
347       AC_DEFINE(HAVE_STRTOLD)
348      ;;
349     esac
350     AC_DEFINE(HAVE_MMAP) 
351     AC_DEFINE(HAVE_COPYSIGN)
352     AC_DEFINE(HAVE_ISNAN)
353     AC_DEFINE(HAVE_ISNANF)
354     AC_DEFINE(HAVE_MODFF)
355     AC_DEFINE(HAVE_HYPOT)
356     ;;
357   *-tpf)
358     AC_CHECK_HEADERS([nan.h endian.h machine/endian.h  \
359       sys/param.h sys/types.h locale.h float.h inttypes.h])
360     SECTION_FLAGS='-ffunction-sections -fdata-sections'
361     AC_SUBST(SECTION_FLAGS)
362     GLIBCXX_CHECK_LINKER_FEATURES
363     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
364     AC_DEFINE(HAVE_COPYSIGN)
365     AC_DEFINE(HAVE_COPYSIGNF)
366     AC_DEFINE(HAVE_FINITE)
367     AC_DEFINE(HAVE_FINITEF)
368     AC_DEFINE(HAVE_FREXPF)
369     AC_DEFINE(HAVE_HYPOTF)
370     AC_DEFINE(HAVE_ISINF)
371     AC_DEFINE(HAVE_ISINFF)
372     AC_DEFINE(HAVE_ISNAN)
373     AC_DEFINE(HAVE_ISNANF)
374     AC_DEFINE(HAVE_SINCOS)
375     AC_DEFINE(HAVE_SINCOSF)
376     if test x"long_double_math_on_this_cpu" = x"yes"; then
377       AC_DEFINE(HAVE_FINITEL)
378       AC_DEFINE(HAVE_HYPOTL)
379       AC_DEFINE(HAVE_ISINFL)
380       AC_DEFINE(HAVE_ISNANL)
381     fi
382     ;;
383   *-vxworks)
384     AC_DEFINE(HAVE_MMAP)
385     AC_DEFINE(HAVE_ACOSF)
386     AC_DEFINE(HAVE_ASINF)
387     AC_DEFINE(HAVE_ATAN2F)
388     AC_DEFINE(HAVE_ATANF)
389     AC_DEFINE(HAVE_CEILF)
390     AC_DEFINE(HAVE_COSF)
391     AC_DEFINE(HAVE_COSHF)
392     AC_DEFINE(HAVE_EXPF)
393     AC_DEFINE(HAVE_FABSF)
394     AC_DEFINE(HAVE_FLOORF)
395     AC_DEFINE(HAVE_FMODF)
396     AC_DEFINE(HAVE_HYPOT)
397     AC_DEFINE(HAVE_LOG10F)
398     AC_DEFINE(HAVE_LOGF)
399     AC_DEFINE(HAVE_POWF)
400     AC_DEFINE(HAVE_SINF)
401     AC_DEFINE(HAVE_SINHF)
402     AC_DEFINE(HAVE_SQRTF)
403     AC_DEFINE(HAVE_TANF)
404     AC_DEFINE(HAVE_TANHF)
405     ;;
406   *-windiss*)
407     AC_DEFINE(HAVE_ACOSF)
408     AC_DEFINE(HAVE_ACOSL)
409     AC_DEFINE(HAVE_ASINF)
410     AC_DEFINE(HAVE_ASINL)
411     AC_DEFINE(HAVE_ATAN2F)
412     AC_DEFINE(HAVE_ATAN2L)
413     AC_DEFINE(HAVE_ATANF)
414     AC_DEFINE(HAVE_ATANL)
415     AC_DEFINE(HAVE_CEILF)
416     AC_DEFINE(HAVE_CEILL)
417     AC_DEFINE(HAVE_COPYSIGN)
418     AC_DEFINE(HAVE_COPYSIGNF)
419     AC_DEFINE(HAVE_COSF)
420     AC_DEFINE(HAVE_COSL)
421     AC_DEFINE(HAVE_COSHF)
422     AC_DEFINE(HAVE_COSHL)
423     AC_DEFINE(HAVE_EXPF)
424     AC_DEFINE(HAVE_EXPL)
425     AC_DEFINE(HAVE_FABSF)
426     AC_DEFINE(HAVE_FABSL)
427     AC_DEFINE(HAVE_FLOORF)
428     AC_DEFINE(HAVE_FLOORL)
429     AC_DEFINE(HAVE_FMODF)
430     AC_DEFINE(HAVE_FMODL)
431     AC_DEFINE(HAVE_FREXPF)
432     AC_DEFINE(HAVE_FREXPL)
433     AC_DEFINE(HAVE_LDEXPF)
434     AC_DEFINE(HAVE_LDEXPL)
435     AC_DEFINE(HAVE_LOG10F)
436     AC_DEFINE(HAVE_LOG10L)
437     AC_DEFINE(HAVE_LOGF)
438     AC_DEFINE(HAVE_MODFF)
439     AC_DEFINE(HAVE_MODFL)
440     AC_DEFINE(HAVE_POWF)
441     AC_DEFINE(HAVE_POWL)
442     AC_DEFINE(HAVE_SINF)
443     AC_DEFINE(HAVE_SINL)
444     AC_DEFINE(HAVE_SINHF)
445     AC_DEFINE(HAVE_SINHL)
446     AC_DEFINE(HAVE_SQRTF)
447     AC_DEFINE(HAVE_SQRTL)
448     AC_DEFINE(HAVE_TANF)
449     AC_DEFINE(HAVE_TANL)
450     AC_DEFINE(HAVE_TANHF)
451     AC_DEFINE(HAVE_TANHL)
452     ;;
453   *)
454     AC_MSG_ERROR([No support for this host/target combination.])
455    ;;
456 esac