OSDN Git Service

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