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  *-hpux*)
111    SECTION_FLAGS='-ffunction-sections -fdata-sections'
112    AC_SUBST(SECTION_FLAGS)
113    GLIBCXX_CHECK_LINKER_FEATURES
114
115    # GLIBCXX_CHECK_MATH_SUPPORT
116    AC_DEFINE(HAVE_ISNAN)
117    AC_DEFINE(HAVE_HYPOT)
118    AC_DEFINE(HAVE_ACOSF)
119    AC_DEFINE(HAVE_ASINF)
120    AC_DEFINE(HAVE_ATANF)
121    AC_DEFINE(HAVE_COSF)
122    AC_DEFINE(HAVE_COSHF)
123    AC_DEFINE(HAVE_SINF)
124    AC_DEFINE(HAVE_SINHF)
125    AC_DEFINE(HAVE_TANF)
126    AC_DEFINE(HAVE_TANHF)
127    AC_DEFINE(HAVE_EXPF)
128    AC_DEFINE(HAVE_ATAN2F)
129    AC_DEFINE(HAVE_FABSF)
130    AC_DEFINE(HAVE_FMODF)
131    AC_DEFINE(HAVE_FREXPF)
132    AC_DEFINE(HAVE_LOGF)
133    AC_DEFINE(HAVE_LOG10F)
134    AC_DEFINE(HAVE_MODF)
135    AC_DEFINE(HAVE_POWF)
136    AC_DEFINE(HAVE_SQRTF)
137
138    # GLIBCXX_CHECK_STDLIB_SUPPORT
139    AC_DEFINE(HAVE_STRTOLD)
140
141    GCC_CHECK_TLS
142    case "$target" in
143      *-hpux10*)
144	AC_DEFINE(HAVE_ISINF)
145	AC_DEFINE(HAVE_ISINFF)
146	AC_DEFINE(HAVE_ISNANF)
147	AC_DEFINE(HAVE_FINITE)
148	AC_DEFINE(HAVE_FINITEF)
149	;;
150    esac
151    ;;
152  *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu | *-cygwin*)
153    GLIBCXX_CHECK_COMPILER_FEATURES
154    GLIBCXX_CHECK_LINKER_FEATURES
155    GLIBCXX_CHECK_MATH_SUPPORT
156    GLIBCXX_CHECK_STDLIB_SUPPORT
157    AC_DEFINE(_GLIBCXX_USE_RANDOM_TR1)
158    GCC_CHECK_TLS
159    AM_ICONV
160    ;;
161  *-mingw32*)
162    GLIBCXX_CHECK_LINKER_FEATURES
163    GLIBCXX_CHECK_MATH_SUPPORT
164    GLIBCXX_CHECK_STDLIB_SUPPORT
165    ;;
166  *-netbsd*)
167    SECTION_FLAGS='-ffunction-sections -fdata-sections'
168    AC_SUBST(SECTION_FLAGS)
169    GLIBCXX_CHECK_LINKER_FEATURES
170    AC_DEFINE(HAVE_FINITEF)
171    AC_DEFINE(HAVE_FINITE)
172    AC_DEFINE(HAVE_FREXPF)
173    AC_DEFINE(HAVE_HYPOTF)
174    AC_DEFINE(HAVE_ISINF)
175    AC_DEFINE(HAVE_ISINFF)
176    AC_DEFINE(HAVE_ISNAN)
177    AC_DEFINE(HAVE_ISNANF)
178    if test x"long_double_math_on_this_cpu" = x"yes"; then
179      AC_DEFINE(HAVE_FINITEL)
180      AC_DEFINE(HAVE_ISINFL)
181      AC_DEFINE(HAVE_ISNANL)
182    fi
183    ;;
184  *-qnx6.1* | *-qnx6.2*)
185    SECTION_FLAGS='-ffunction-sections -fdata-sections'
186    AC_SUBST(SECTION_FLAGS)
187    GLIBCXX_CHECK_LINKER_FEATURES
188    AC_DEFINE(HAVE_COSF)
189    AC_DEFINE(HAVE_COSL)
190    AC_DEFINE(HAVE_COSHF)
191    AC_DEFINE(HAVE_COSHL)
192    AC_DEFINE(HAVE_LOGF)
193    AC_DEFINE(HAVE_LOGL)
194    AC_DEFINE(HAVE_LOG10F)
195    AC_DEFINE(HAVE_LOG10L)
196    AC_DEFINE(HAVE_SINF)
197    AC_DEFINE(HAVE_SINL)
198    AC_DEFINE(HAVE_SINHF)
199    AC_DEFINE(HAVE_SINHL)
200    ;;
201  *-rtems*)
202    GLIBCXX_CHECK_COMPILER_FEATURES
203    GLIBCXX_CHECK_LINKER_FEATURES
204    GLIBCXX_CHECK_MATH_SUPPORT
205    GLIBCXX_CHECK_STDLIB_SUPPORT
206    ;;
207  *-solaris*)
208    case "$target" in
209      *-solaris2.9 | *-solaris2.10)
210         GLIBCXX_CHECK_LINKER_FEATURES
211         AC_DEFINE(HAVE_MBSTATE_T)
212         AC_DEFINE(HAVE_FINITE)
213         AC_DEFINE(HAVE_FPCLASS)
214         # All of the dependencies for wide character support are here, so
215         # turn it on.
216         AC_DEFINE(_GLIBCXX_USE_WCHAR_T)
217        ;;
218    esac
219    case "$target" in
220      *-*-solaris2.10)
221      # These two C99 functions are present only in Solaris >= 10
222      AC_DEFINE(HAVE_STRTOF)
223      AC_DEFINE(HAVE_STRTOLD)
224     ;;
225    esac
226    AC_DEFINE(HAVE_ISNAN)
227    AC_DEFINE(HAVE_ISNANF)
228    AC_DEFINE(HAVE_MODFF)
229    AC_DEFINE(HAVE_HYPOT)
230    ;;
231  *-tpf)
232    SECTION_FLAGS='-ffunction-sections -fdata-sections'
233    SECTION_LDFLAGS='-Wl,--gc-sections $SECTION_LDFLAGS'
234    AC_SUBST(SECTION_FLAGS)
235    AC_DEFINE(HAVE_FINITE)
236    AC_DEFINE(HAVE_FINITEF)
237    AC_DEFINE(HAVE_FREXPF)
238    AC_DEFINE(HAVE_HYPOTF)
239    AC_DEFINE(HAVE_ISINF)
240    AC_DEFINE(HAVE_ISINFF)
241    AC_DEFINE(HAVE_ISNAN)
242    AC_DEFINE(HAVE_ISNANF)
243    AC_DEFINE(HAVE_SINCOS)
244    AC_DEFINE(HAVE_SINCOSF)
245    if test x"long_double_math_on_this_cpu" = x"yes"; then
246      AC_DEFINE(HAVE_FINITEL)
247      AC_DEFINE(HAVE_HYPOTL)
248      AC_DEFINE(HAVE_ISINFL)
249      AC_DEFINE(HAVE_ISNANL)
250    fi
251    ;;
252  *-*vms*)
253    # Check for available headers.
254    # Don't call GLIBCXX_CHECK_LINKER_FEATURES, VMS doesn't have a GNU ld
255    GLIBCXX_CHECK_MATH_SUPPORT
256    GLIBCXX_CHECK_STDLIB_SUPPORT
257    ;;
258  *-vxworks)
259    AC_DEFINE(HAVE_ACOSF)
260    AC_DEFINE(HAVE_ASINF)
261    AC_DEFINE(HAVE_ATAN2F)
262    AC_DEFINE(HAVE_ATANF)
263    AC_DEFINE(HAVE_CEILF)
264    AC_DEFINE(HAVE_COSF)
265    AC_DEFINE(HAVE_COSHF)
266    AC_DEFINE(HAVE_EXPF)
267    AC_DEFINE(HAVE_FABSF)
268    AC_DEFINE(HAVE_FLOORF)
269    AC_DEFINE(HAVE_FMODF)
270    AC_DEFINE(HAVE_HYPOT)
271    AC_DEFINE(HAVE_LOG10F)
272    AC_DEFINE(HAVE_LOGF)
273    AC_DEFINE(HAVE_POWF)
274    AC_DEFINE(HAVE_SINF)
275    AC_DEFINE(HAVE_SINHF)
276    AC_DEFINE(HAVE_SQRTF)
277    AC_DEFINE(HAVE_TANF)
278    AC_DEFINE(HAVE_TANHF)
279    ;;
280  *)
281    AC_MSG_ERROR([No support for this host/target combination.])
282   ;;
283esac
284])
285