1dnl
2dnl This file contains details for non-native builds.
3dnl
4
5AC_DEFUN([GLIBCXX_CROSSCONFIG],[
6# Base decisions on target environment.
7case "${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    SECTION_FLAGS='-ffunction-sections -fdata-sections'
15    AC_SUBST(SECTION_FLAGS)
16    GLIBCXX_CHECK_COMPILER_FEATURES
17    GLIBCXX_CHECK_LINKER_FEATURES
18    GLIBCXX_CHECK_MATH_SUPPORT
19    GLIBCXX_CHECK_STDLIB_SUPPORT
20
21    AC_DEFINE(HAVE_FINITE)
22    AC_DEFINE(HAVE_HYPOT)
23    AC_DEFINE(HAVE_ISNAN)
24    AC_DEFINE(HAVE_ISINF)
25
26    AC_DEFINE(HAVE_LDEXPF)
27    AC_DEFINE(HAVE_MODF)
28    AC_DEFINE(HAVE_SQRTF)
29    ;;
30
31  spu-*-elf*)
32    GLIBCXX_CHECK_COMPILER_FEATURES
33    GLIBCXX_CHECK_LINKER_FEATURES
34    GLIBCXX_CHECK_MATH_SUPPORT
35    GLIBCXX_CHECK_STDLIB_SUPPORT
36    AM_ICONV
37    ;;
38
39  *-aix*)
40    GLIBCXX_CHECK_LINKER_FEATURES
41    GLIBCXX_CHECK_MATH_SUPPORT
42    GLIBCXX_CHECK_STDLIB_SUPPORT
43    AC_DEFINE(_GLIBCXX_USE_RANDOM_TR1)
44    # We don't yet support AIX's TLS ABI.
45    #GCC_CHECK_TLS
46    AM_ICONV
47    ;;
48
49  *-darwin*)
50    # Darwin versions vary, but the linker should work in a cross environment,
51    # so we just check for all the features here.
52    # Check for available headers.
53
54    # Don't call GLIBCXX_CHECK_LINKER_FEATURES, Darwin doesn't have a GNU ld
55    GLIBCXX_CHECK_MATH_SUPPORT
56    GLIBCXX_CHECK_STDLIB_SUPPORT
57    ;;
58
59  *djgpp)
60    # GLIBCXX_CHECK_MATH_SUPPORT
61    AC_DEFINE(HAVE_ISINF)
62    AC_DEFINE(HAVE_ISNAN)
63    AC_DEFINE(HAVE_FINITE)
64    AC_DEFINE(HAVE_SINCOS)
65    AC_DEFINE(HAVE_HYPOT)
66    ;;
67
68  *-freebsd*)
69    SECTION_FLAGS='-ffunction-sections -fdata-sections'
70    AC_SUBST(SECTION_FLAGS) 
71    GLIBCXX_CHECK_LINKER_FEATURES
72    AC_DEFINE(HAVE_SETENV)
73    AC_DEFINE(HAVE_FINITEF)
74    AC_DEFINE(HAVE_FINITE)
75    AC_DEFINE(HAVE_FREXPF)
76    AC_DEFINE(HAVE_HYPOT)
77    AC_DEFINE(HAVE_HYPOTF)
78    AC_DEFINE(HAVE_ISINF)
79    AC_DEFINE(HAVE_ISNAN)
80    AC_DEFINE(HAVE_ISNANF)
81
82    AC_DEFINE(HAVE_ACOSF)
83    AC_DEFINE(HAVE_ASINF)
84    AC_DEFINE(HAVE_ATAN2F)
85    AC_DEFINE(HAVE_ATANF)
86    AC_DEFINE(HAVE_CEILF)
87    AC_DEFINE(HAVE_COSF)
88    AC_DEFINE(HAVE_COSHF)
89    AC_DEFINE(HAVE_EXPF)
90    AC_DEFINE(HAVE_FABSF)
91    AC_DEFINE(HAVE_FLOORF)
92    AC_DEFINE(HAVE_FMODF)
93    AC_DEFINE(HAVE_FREXPF)
94    AC_DEFINE(HAVE_LDEXPF)
95    AC_DEFINE(HAVE_LOG10F)
96    AC_DEFINE(HAVE_LOGF)
97    AC_DEFINE(HAVE_MODFF)
98    AC_DEFINE(HAVE_POWF)
99    AC_DEFINE(HAVE_SINF)
100    AC_DEFINE(HAVE_SINHF)
101    AC_DEFINE(HAVE_SQRTF)
102    AC_DEFINE(HAVE_TANF)
103    AC_DEFINE(HAVE_TANHF)
104    if test x"long_double_math_on_this_cpu" = x"yes"; then
105      AC_DEFINE(HAVE_FINITEL)
106      AC_DEFINE(HAVE_ISINFL)
107      AC_DEFINE(HAVE_ISNANL)
108    fi
109    ;;
110
111  *-haiku*)
112    AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
113      machine/endian.h machine/param.h sys/machine.h sys/types.h \
114      fp.h float.h endian.h inttypes.h locale.h float.h stdint.h])
115    SECTION_FLAGS='-ffunction-sections -fdata-sections'
116    AC_SUBST(SECTION_FLAGS)
117
118    AC_DEFINE(HAVE_INT64_T)
119
120    AC_DEFINE(HAVE_ACOSF)
121    AC_DEFINE(HAVE_ASINF)
122    AC_DEFINE(HAVE_ATANF)
123    AC_DEFINE(HAVE_ATAN2F)
124    AC_DEFINE(HAVE_CEILF)
125    AC_DEFINE(HAVE_COSF)
126    AC_DEFINE(HAVE_COSHF)
127    AC_DEFINE(HAVE_EXPF)
128    AC_DEFINE(HAVE_FABSF)
129    AC_DEFINE(HAVE_FINITE)
130    AC_DEFINE(HAVE_FINITEF)
131    AC_DEFINE(HAVE_FLOORF)
132    AC_DEFINE(HAVE_FMODF)
133    AC_DEFINE(HAVE_FREXPF)
134    AC_DEFINE(HAVE_HYPOT)
135    AC_DEFINE(HAVE_HYPOTF)
136    AC_DEFINE(HAVE_ISINF)
137    AC_DEFINE(HAVE_ISINFF)
138    AC_DEFINE(HAVE_ISNAN)
139    AC_DEFINE(HAVE_ISNANF)
140    AC_DEFINE(HAVE_LOGF)
141    AC_DEFINE(HAVE_LOG10F)
142    AC_DEFINE(HAVE_MODFF)
143    AC_DEFINE(HAVE_SINF)
144    AC_DEFINE(HAVE_SINHF)
145    AC_DEFINE(HAVE_SQRTF)
146    AC_DEFINE(HAVE_TANF)
147    AC_DEFINE(HAVE_TANHF)
148    AC_DEFINE(HAVE_TLS)
149    ;;
150
151  *-hpux*)
152    SECTION_FLAGS='-ffunction-sections -fdata-sections'
153    AC_SUBST(SECTION_FLAGS)
154    GLIBCXX_CHECK_LINKER_FEATURES
155
156    # GLIBCXX_CHECK_MATH_SUPPORT
157    AC_DEFINE(HAVE_ISNAN)
158    AC_DEFINE(HAVE_HYPOT)
159    AC_DEFINE(HAVE_ACOSF)
160    AC_DEFINE(HAVE_ASINF)
161    AC_DEFINE(HAVE_ATANF)
162    AC_DEFINE(HAVE_COSF)
163    AC_DEFINE(HAVE_COSHF)
164    AC_DEFINE(HAVE_SINF)
165    AC_DEFINE(HAVE_SINHF)
166    AC_DEFINE(HAVE_TANF)
167    AC_DEFINE(HAVE_TANHF)
168    AC_DEFINE(HAVE_EXPF)
169    AC_DEFINE(HAVE_ATAN2F)
170    AC_DEFINE(HAVE_FABSF)
171    AC_DEFINE(HAVE_FMODF)
172    AC_DEFINE(HAVE_FREXPF)
173    AC_DEFINE(HAVE_LOGF)
174    AC_DEFINE(HAVE_LOG10F)
175    AC_DEFINE(HAVE_MODF)
176    AC_DEFINE(HAVE_POWF)
177    AC_DEFINE(HAVE_SQRTF)
178
179    # GLIBCXX_CHECK_STDLIB_SUPPORT
180    AC_DEFINE(HAVE_STRTOLD)
181
182    GCC_CHECK_TLS
183    case "$target" in
184      *-hpux10*)
185	AC_DEFINE(HAVE_ISINF)
186	AC_DEFINE(HAVE_ISINFF)
187	AC_DEFINE(HAVE_ISNANF)
188	AC_DEFINE(HAVE_FINITE)
189	AC_DEFINE(HAVE_FINITEF)
190	;;
191    esac
192    ;;
193  *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu | *-cygwin*)
194    GLIBCXX_CHECK_COMPILER_FEATURES
195    GLIBCXX_CHECK_LINKER_FEATURES
196    GLIBCXX_CHECK_MATH_SUPPORT
197    GLIBCXX_CHECK_STDLIB_SUPPORT
198    AC_DEFINE(_GLIBCXX_USE_RANDOM_TR1)
199    GCC_CHECK_TLS
200    AM_ICONV
201    ;;
202  *-mingw32*)
203    GLIBCXX_CHECK_LINKER_FEATURES
204    GLIBCXX_CHECK_MATH_SUPPORT
205    GLIBCXX_CHECK_STDLIB_SUPPORT
206    ;;
207  *-netbsd*)
208    SECTION_FLAGS='-ffunction-sections -fdata-sections'
209    AC_SUBST(SECTION_FLAGS) 
210    GLIBCXX_CHECK_LINKER_FEATURES
211    AC_DEFINE(HAVE_FINITEF)
212    AC_DEFINE(HAVE_FINITE)
213    AC_DEFINE(HAVE_FREXPF)
214    AC_DEFINE(HAVE_HYPOTF)
215    AC_DEFINE(HAVE_ISINF)
216    AC_DEFINE(HAVE_ISINFF)
217    AC_DEFINE(HAVE_ISNAN)
218    AC_DEFINE(HAVE_ISNANF)
219    if test x"long_double_math_on_this_cpu" = x"yes"; then
220      AC_DEFINE(HAVE_FINITEL)
221      AC_DEFINE(HAVE_ISINFL)
222      AC_DEFINE(HAVE_ISNANL)
223    fi
224    ;;
225  *-qnx6.1* | *-qnx6.2*)
226    SECTION_FLAGS='-ffunction-sections -fdata-sections'
227    AC_SUBST(SECTION_FLAGS) 
228    GLIBCXX_CHECK_LINKER_FEATURES
229    AC_DEFINE(HAVE_COSF)
230    AC_DEFINE(HAVE_COSL)
231    AC_DEFINE(HAVE_COSHF)
232    AC_DEFINE(HAVE_COSHL)
233    AC_DEFINE(HAVE_LOGF)
234    AC_DEFINE(HAVE_LOGL)
235    AC_DEFINE(HAVE_LOG10F)
236    AC_DEFINE(HAVE_LOG10L)
237    AC_DEFINE(HAVE_SINF)
238    AC_DEFINE(HAVE_SINL)
239    AC_DEFINE(HAVE_SINHF)
240    AC_DEFINE(HAVE_SINHL)
241    ;;
242  *-rtems*)
243    GLIBCXX_CHECK_COMPILER_FEATURES
244    GLIBCXX_CHECK_LINKER_FEATURES
245    GLIBCXX_CHECK_MATH_SUPPORT
246    GLIBCXX_CHECK_STDLIB_SUPPORT
247    ;;
248  *-solaris*)
249    GLIBCXX_CHECK_LINKER_FEATURES
250    AC_DEFINE(HAVE_MBSTATE_T)
251    AC_DEFINE(HAVE_FINITE)
252    AC_DEFINE(HAVE_FPCLASS)
253    # All of the dependencies for wide character support are here, so
254    # turn it on. 
255    AC_DEFINE(_GLIBCXX_USE_WCHAR_T) 
256    # These two C99 functions are present only in Solaris >= 10
257    AC_DEFINE(HAVE_STRTOF)
258    AC_DEFINE(HAVE_STRTOLD)
259    AC_DEFINE(HAVE_ISNAN)
260    AC_DEFINE(HAVE_ISNANF)
261    AC_DEFINE(HAVE_MODFF)
262    AC_DEFINE(HAVE_HYPOT)
263    ;;
264  *-tpf)
265    SECTION_FLAGS='-ffunction-sections -fdata-sections'
266    SECTION_LDFLAGS='-Wl,--gc-sections $SECTION_LDFLAGS'
267    AC_SUBST(SECTION_FLAGS)
268    AC_DEFINE(HAVE_FINITE)
269    AC_DEFINE(HAVE_FINITEF)
270    AC_DEFINE(HAVE_FREXPF)
271    AC_DEFINE(HAVE_HYPOTF)
272    AC_DEFINE(HAVE_ISINF)
273    AC_DEFINE(HAVE_ISINFF)
274    AC_DEFINE(HAVE_ISNAN)
275    AC_DEFINE(HAVE_ISNANF)
276    AC_DEFINE(HAVE_SINCOS)
277    AC_DEFINE(HAVE_SINCOSF)
278    if test x"long_double_math_on_this_cpu" = x"yes"; then
279      AC_DEFINE(HAVE_FINITEL)
280      AC_DEFINE(HAVE_HYPOTL)
281      AC_DEFINE(HAVE_ISINFL)
282      AC_DEFINE(HAVE_ISNANL)
283    fi
284    ;;
285  *-*vms*)
286    # Check for available headers.
287    # Don't call GLIBCXX_CHECK_LINKER_FEATURES, VMS doesn't have a GNU ld
288    GLIBCXX_CHECK_MATH_SUPPORT
289    GLIBCXX_CHECK_STDLIB_SUPPORT
290    ;;
291  *-vxworks)
292    AC_DEFINE(HAVE_ACOSF)
293    AC_DEFINE(HAVE_ASINF)
294    AC_DEFINE(HAVE_ATAN2F)
295    AC_DEFINE(HAVE_ATANF)
296    AC_DEFINE(HAVE_CEILF)
297    AC_DEFINE(HAVE_COSF)
298    AC_DEFINE(HAVE_COSHF)
299    AC_DEFINE(HAVE_EXPF)
300    AC_DEFINE(HAVE_FABSF)
301    AC_DEFINE(HAVE_FLOORF)
302    AC_DEFINE(HAVE_FMODF)
303    AC_DEFINE(HAVE_HYPOT)
304    AC_DEFINE(HAVE_LOG10F)
305    AC_DEFINE(HAVE_LOGF)
306    AC_DEFINE(HAVE_POWF)
307    AC_DEFINE(HAVE_SINF)
308    AC_DEFINE(HAVE_SINHF)
309    AC_DEFINE(HAVE_SQRTF)
310    AC_DEFINE(HAVE_TANF)
311    AC_DEFINE(HAVE_TANHF)
312    ;;
313  *)
314    AC_MSG_ERROR([No support for this host/target combination.])
315   ;;
316esac
317])
318