OSDN Git Service

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