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