OSDN Git Service

2008-08-12 Paolo Carlini <paolo.carlini@oracle.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   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_WRITEV)
28
29     AC_DEFINE(HAVE_LIBM)
30     AC_DEFINE(HAVE_COPYSIGN)
31     AC_DEFINE(HAVE_FINITE)
32     AC_DEFINE(HAVE_HYPOT)
33     AC_DEFINE(HAVE_ISNAN)
34     AC_DEFINE(HAVE_ISINF)
35
36     AC_DEFINE(HAVE_LDEXPF)
37     AC_DEFINE(HAVE_MODF)
38     AC_DEFINE(HAVE_SQRTF)
39     ;;
40
41   *-darwin*)
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 \
47     sys/types.h])
48
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
54
55     # For showmanyc_helper().
56     AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
57     GLIBCXX_CHECK_POLL
58     GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
59
60     # For xsputn_2().
61     AC_CHECK_HEADERS(sys/uio.h)
62     GLIBCXX_CHECK_WRITEV
63
64     AC_DEFINE(HAVE_LC_MESSAGES)
65     ;;
66
67   *djgpp)
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
73     AC_DEFINE(HAVE_LIBM)
74     AC_DEFINE(HAVE_ISINF)
75     AC_DEFINE(HAVE_ISNAN)
76     AC_DEFINE(HAVE_FINITE)
77     AC_DEFINE(HAVE_COPYSIGN)
78     AC_DEFINE(HAVE_SINCOS)
79     AC_DEFINE(HAVE_HYPOT)
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)
103     ;;
104
105   *-freebsd*)
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)
126
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)
134     AC_DEFINE(HAVE_COSF)
135     AC_DEFINE(HAVE_COSHF)
136     AC_DEFINE(HAVE_EXPF)
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)
143     AC_DEFINE(HAVE_LOGF)
144     AC_DEFINE(HAVE_MODFF)
145     AC_DEFINE(HAVE_POWF)
146     AC_DEFINE(HAVE_SINF)
147     AC_DEFINE(HAVE_SINHF)
148     AC_DEFINE(HAVE_SQRTF)
149     AC_DEFINE(HAVE_TANF)
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)
155     fi
156     ;;
157   *-hpux*)
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)
169     case "$target" in
170       *-hpux10*)
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)
177         ;;
178     esac
179     ;;
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
193
194     # For LFS.
195     GLIBCXX_CHECK_LFS
196
197     # For showmanyc_helper().
198     AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
199     GLIBCXX_CHECK_POLL
200     GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
201
202     # For xsputn_2().
203     AC_CHECK_HEADERS(sys/uio.h)
204     GLIBCXX_CHECK_WRITEV
205
206     AC_DEFINE(_GLIBCXX_USE_RANDOM_TR1)
207
208     AC_LC_MESSAGES
209
210     # For iconv support.
211     AM_ICONV
212     ;;
213   *-mingw32*)
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
219     ;;
220   *-netbsd*)
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)
242     fi
243     ;;
244   *-netware)
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)
254
255     # For showmanyc_helper().
256     AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
257     GLIBCXX_CHECK_POLL
258     GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
259
260     # For xsputn_2().
261     AC_CHECK_HEADERS(sys/uio.h)
262     GLIBCXX_CHECK_WRITEV
263     ;;
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
269     AC_DEFINE(HAVE_COSF)
270     AC_DEFINE(HAVE_COSL)
271     AC_DEFINE(HAVE_COSHF)
272     AC_DEFINE(HAVE_COSHL)
273     AC_DEFINE(HAVE_LOGF)
274     AC_DEFINE(HAVE_LOGL)
275     AC_DEFINE(HAVE_LOG10F)
276     AC_DEFINE(HAVE_LOG10L)
277     AC_DEFINE(HAVE_SINF)
278     AC_DEFINE(HAVE_SINL)
279     AC_DEFINE(HAVE_SINHF)
280     AC_DEFINE(HAVE_SINHL)
281     ;;
282   *-solaris*)
283     case "$target" in
284       *-solaris2.7 | *-solaris2.8 | *-solaris2.9 | *-solaris2.10)
285          GLIBCXX_CHECK_LINKER_FEATURES
286          AC_DEFINE(HAVE_MBSTATE_T)
287          AC_DEFINE(HAVE_POLL)
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
293          # turn it on. 
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)
310          AC_DEFINE(HAVE_LIBM)
311         ;;
312     esac
313     case "$target" in
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)
325        ;;
326     esac
327     case "$target" in
328       *-*-solaris2.10)
329       # These two C99 functions are present only in Solaris >= 10
330       AC_DEFINE(HAVE_STRTOF)
331       AC_DEFINE(HAVE_STRTOLD)
332      ;;
333     esac
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)
339     ;;
340   *-tpf)
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)
364     fi
365     ;;
366   *-vxworks)
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)
372     AC_DEFINE(HAVE_COSF)
373     AC_DEFINE(HAVE_COSHF)
374     AC_DEFINE(HAVE_EXPF)
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)
380     AC_DEFINE(HAVE_LOGF)
381     AC_DEFINE(HAVE_POWF)
382     AC_DEFINE(HAVE_SINF)
383     AC_DEFINE(HAVE_SINHF)
384     AC_DEFINE(HAVE_SQRTF)
385     AC_DEFINE(HAVE_TANF)
386     AC_DEFINE(HAVE_TANHF)
387     ;;
388   *)
389     AC_MSG_ERROR([No support for this host/target combination.])
390    ;;
391 esac
392 ])