acinclude.m4 ([GLIBCXX_CHECK_LFS], [...]): Use GCC_TRY_COMPILE_OR_LINK instead of...
[gcc.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 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_BUILTIN_MATH_SUPPORT
20 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
21 GLIBCXX_CHECK_STDLIB_SUPPORT
22
23 AC_DEFINE(HAVE_LIBM)
24 AC_DEFINE(HAVE_COPYSIGN)
25 AC_DEFINE(HAVE_FINITE)
26 AC_DEFINE(HAVE_HYPOT)
27 AC_DEFINE(HAVE_ISNAN)
28 AC_DEFINE(HAVE_ISINF)
29
30 AC_DEFINE(HAVE_LDEXPF)
31 AC_DEFINE(HAVE_MODF)
32 AC_DEFINE(HAVE_SQRTF)
33 ;;
34
35 *-darwin*)
36 # Darwin versions vary, but the linker should work in a cross environment,
37 # so we just check for all the features here.
38 # Check for available headers.
39
40 # Don't call GLIBCXX_CHECK_LINKER_FEATURES, Darwin doesn't have a GNU ld
41 GLIBCXX_CHECK_MATH_SUPPORT
42 GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
43 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
44 GLIBCXX_CHECK_STDLIB_SUPPORT
45
46 AC_DEFINE(HAVE_LC_MESSAGES)
47 ;;
48
49 *djgpp)
50 # GLIBCXX_CHECK_MATH_SUPPORT
51 AC_DEFINE(HAVE_LIBM)
52 AC_DEFINE(HAVE_ISINF)
53 AC_DEFINE(HAVE_ISNAN)
54 AC_DEFINE(HAVE_FINITE)
55 AC_DEFINE(HAVE_COPYSIGN)
56 AC_DEFINE(HAVE_SINCOS)
57 AC_DEFINE(HAVE_HYPOT)
58 # GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
59 AC_DEFINE(HAVE___BUILTIN_ABS)
60 AC_DEFINE(HAVE___BUILTIN_FABSF)
61 AC_DEFINE(HAVE___BUILTIN_FABS)
62 AC_DEFINE(HAVE___BUILTIN_FABSL)
63 AC_DEFINE(HAVE___BUILTIN_LABS)
64 AC_DEFINE(HAVE___BUILTIN_SQRTF)
65 AC_DEFINE(HAVE___BUILTIN_SQRT)
66 AC_DEFINE(HAVE___BUILTIN_SQRTL)
67 AC_DEFINE(HAVE___BUILTIN_SINF)
68 AC_DEFINE(HAVE___BUILTIN_SIN)
69 AC_DEFINE(HAVE___BUILTIN_SINL)
70 AC_DEFINE(HAVE___BUILTIN_COSF)
71 AC_DEFINE(HAVE___BUILTIN_COS)
72 AC_DEFINE(HAVE___BUILTIN_COSL)
73 # GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
74 # GLIBCXX_CHECK_STDLIB_SUPPORT
75 AC_DEFINE(HAVE_COPYSIGN)
76 AC_DEFINE(HAVE_COPYSIGNF)
77 ;;
78
79 *-freebsd*)
80 SECTION_FLAGS='-ffunction-sections -fdata-sections'
81 AC_SUBST(SECTION_FLAGS)
82 GLIBCXX_CHECK_LINKER_FEATURES
83 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
84 AC_DEFINE(HAVE_LC_MESSAGES)
85 AC_DEFINE(HAVE_SETENV)
86 AC_DEFINE(HAVE_COPYSIGN)
87 AC_DEFINE(HAVE_COPYSIGNF)
88 AC_DEFINE(HAVE_FINITEF)
89 AC_DEFINE(HAVE_FINITE)
90 AC_DEFINE(HAVE_FREXPF)
91 AC_DEFINE(HAVE_HYPOT)
92 AC_DEFINE(HAVE_HYPOTF)
93 AC_DEFINE(HAVE_ISINF)
94 AC_DEFINE(HAVE_ISNAN)
95 AC_DEFINE(HAVE_ISNANF)
96
97 AC_DEFINE(HAVE_ACOSF)
98 AC_DEFINE(HAVE_ASINF)
99 AC_DEFINE(HAVE_ATAN2F)
100 AC_DEFINE(HAVE_ATANF)
101 AC_DEFINE(HAVE_CEILF)
102 AC_DEFINE(HAVE_COPYSIGN)
103 AC_DEFINE(HAVE_COPYSIGNF)
104 AC_DEFINE(HAVE_COSF)
105 AC_DEFINE(HAVE_COSHF)
106 AC_DEFINE(HAVE_EXPF)
107 AC_DEFINE(HAVE_FABSF)
108 AC_DEFINE(HAVE_FLOORF)
109 AC_DEFINE(HAVE_FMODF)
110 AC_DEFINE(HAVE_FREXPF)
111 AC_DEFINE(HAVE_LDEXPF)
112 AC_DEFINE(HAVE_LOG10F)
113 AC_DEFINE(HAVE_LOGF)
114 AC_DEFINE(HAVE_MODFF)
115 AC_DEFINE(HAVE_POWF)
116 AC_DEFINE(HAVE_SINF)
117 AC_DEFINE(HAVE_SINHF)
118 AC_DEFINE(HAVE_SQRTF)
119 AC_DEFINE(HAVE_TANF)
120 AC_DEFINE(HAVE_TANHF)
121 if test x"long_double_math_on_this_cpu" = x"yes"; then
122 AC_DEFINE(HAVE_FINITEL)
123 AC_DEFINE(HAVE_ISINFL)
124 AC_DEFINE(HAVE_ISNANL)
125 fi
126 ;;
127 *-hpux*)
128 SECTION_FLAGS='-ffunction-sections -fdata-sections'
129 AC_SUBST(SECTION_FLAGS)
130 GLIBCXX_CHECK_LINKER_FEATURES
131 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
132 AC_DEFINE(HAVE_COPYSIGN)
133 AC_DEFINE(HAVE_COPYSIGNF)
134 AC_DEFINE(HAVE_FREXPF)
135 AC_DEFINE(HAVE_HYPOT)
136 case "$target" in
137 *-hpux10*)
138 AC_DEFINE(HAVE_FINITE)
139 AC_DEFINE(HAVE_FINITEF)
140 AC_DEFINE(HAVE_ISINF)
141 AC_DEFINE(HAVE_ISINFF)
142 AC_DEFINE(HAVE_ISNAN)
143 AC_DEFINE(HAVE_ISNANF)
144 ;;
145 esac
146 ;;
147 *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu)
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_STDLIB_SUPPORT
156
157 AC_DEFINE(_GLIBCXX_USE_RANDOM_TR1)
158
159 AC_LC_MESSAGES
160
161 # For iconv support.
162 AM_ICONV
163 ;;
164 *-mingw32*)
165 AC_DEFINE(HAVE_STRTOF)
166 AC_DEFINE(HAVE_STRTOLD)
167 GLIBCXX_CHECK_LINKER_FEATURES
168 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
169 ;;
170 *-netbsd*)
171 SECTION_FLAGS='-ffunction-sections -fdata-sections'
172 AC_SUBST(SECTION_FLAGS)
173 GLIBCXX_CHECK_LINKER_FEATURES
174 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
175 AC_DEFINE(HAVE_COPYSIGN)
176 AC_DEFINE(HAVE_COPYSIGNF)
177 AC_DEFINE(HAVE_FINITEF)
178 AC_DEFINE(HAVE_FINITE)
179 AC_DEFINE(HAVE_FREXPF)
180 AC_DEFINE(HAVE_HYPOTF)
181 AC_DEFINE(HAVE_ISINF)
182 AC_DEFINE(HAVE_ISINFF)
183 AC_DEFINE(HAVE_ISNAN)
184 AC_DEFINE(HAVE_ISNANF)
185 if test x"long_double_math_on_this_cpu" = x"yes"; then
186 AC_DEFINE(HAVE_FINITEL)
187 AC_DEFINE(HAVE_ISINFL)
188 AC_DEFINE(HAVE_ISNANL)
189 fi
190 ;;
191 *-netware)
192 SECTION_FLAGS='-ffunction-sections -fdata-sections'
193 AC_SUBST(SECTION_FLAGS)
194 GLIBCXX_CHECK_LINKER_FEATURES
195 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
196 AC_DEFINE(HAVE_HYPOT)
197 AC_DEFINE(HAVE_ISINF)
198 AC_DEFINE(HAVE_ISNAN)
199 ;;
200 *-qnx6.1* | *-qnx6.2*)
201 SECTION_FLAGS='-ffunction-sections -fdata-sections'
202 AC_SUBST(SECTION_FLAGS)
203 GLIBCXX_CHECK_LINKER_FEATURES
204 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
205 AC_DEFINE(HAVE_COSF)
206 AC_DEFINE(HAVE_COSL)
207 AC_DEFINE(HAVE_COSHF)
208 AC_DEFINE(HAVE_COSHL)
209 AC_DEFINE(HAVE_LOGF)
210 AC_DEFINE(HAVE_LOGL)
211 AC_DEFINE(HAVE_LOG10F)
212 AC_DEFINE(HAVE_LOG10L)
213 AC_DEFINE(HAVE_SINF)
214 AC_DEFINE(HAVE_SINL)
215 AC_DEFINE(HAVE_SINHF)
216 AC_DEFINE(HAVE_SINHL)
217 ;;
218 *-solaris*)
219 case "$target" in
220 *-solaris2.7 | *-solaris2.8 | *-solaris2.9 | *-solaris2.10)
221 GLIBCXX_CHECK_LINKER_FEATURES
222 AC_DEFINE(HAVE_MBSTATE_T)
223 AC_DEFINE(HAVE_LC_MESSAGES)
224 AC_DEFINE(HAVE_FINITE)
225 AC_DEFINE(HAVE_FPCLASS)
226 # All of the dependencies for wide character support are here, so
227 # turn it on.
228 AC_DEFINE(_GLIBCXX_USE_WCHAR_T)
229
230 AC_DEFINE(HAVE_LIBM)
231 ;;
232 esac
233 case "$target" in
234 sparc*-*-solaris2.8 | sparc*-*-solaris2.9 | sparc*-*-solaris2.10)
235 # I saw these on sparc-sun-solaris2.8, but not 2.6, and not on i386
236 AC_DEFINE(HAVE___BUILTIN_ABS)
237 AC_DEFINE(HAVE___BUILTIN_LABS)
238 AC_DEFINE(HAVE___BUILTIN_FABS)
239 AC_DEFINE(HAVE___BUILTIN_FABSF)
240 AC_DEFINE(HAVE___BUILTIN_FABSL)
241 AC_DEFINE(HAVE___BUILTIN_COS)
242 AC_DEFINE(HAVE___BUILTIN_COSF)
243 AC_DEFINE(HAVE___BUILTIN_SIN)
244 AC_DEFINE(HAVE___BUILTIN_SINF)
245 ;;
246 esac
247 case "$target" in
248 *-*-solaris2.10)
249 # These two C99 functions are present only in Solaris >= 10
250 AC_DEFINE(HAVE_STRTOF)
251 AC_DEFINE(HAVE_STRTOLD)
252 ;;
253 esac
254 AC_DEFINE(HAVE_COPYSIGN)
255 AC_DEFINE(HAVE_ISNAN)
256 AC_DEFINE(HAVE_ISNANF)
257 AC_DEFINE(HAVE_MODFF)
258 AC_DEFINE(HAVE_HYPOT)
259 ;;
260 *-tpf)
261 SECTION_FLAGS='-ffunction-sections -fdata-sections'
262 AC_SUBST(SECTION_FLAGS)
263 GLIBCXX_CHECK_LINKER_FEATURES
264 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
265 AC_DEFINE(HAVE_COPYSIGN)
266 AC_DEFINE(HAVE_COPYSIGNF)
267 AC_DEFINE(HAVE_FINITE)
268 AC_DEFINE(HAVE_FINITEF)
269 AC_DEFINE(HAVE_FREXPF)
270 AC_DEFINE(HAVE_HYPOTF)
271 AC_DEFINE(HAVE_ISINF)
272 AC_DEFINE(HAVE_ISINFF)
273 AC_DEFINE(HAVE_ISNAN)
274 AC_DEFINE(HAVE_ISNANF)
275 AC_DEFINE(HAVE_SINCOS)
276 AC_DEFINE(HAVE_SINCOSF)
277 if test x"long_double_math_on_this_cpu" = x"yes"; then
278 AC_DEFINE(HAVE_FINITEL)
279 AC_DEFINE(HAVE_HYPOTL)
280 AC_DEFINE(HAVE_ISINFL)
281 AC_DEFINE(HAVE_ISNANL)
282 fi
283 ;;
284 *-vxworks)
285 AC_DEFINE(HAVE_ACOSF)
286 AC_DEFINE(HAVE_ASINF)
287 AC_DEFINE(HAVE_ATAN2F)
288 AC_DEFINE(HAVE_ATANF)
289 AC_DEFINE(HAVE_CEILF)
290 AC_DEFINE(HAVE_COSF)
291 AC_DEFINE(HAVE_COSHF)
292 AC_DEFINE(HAVE_EXPF)
293 AC_DEFINE(HAVE_FABSF)
294 AC_DEFINE(HAVE_FLOORF)
295 AC_DEFINE(HAVE_FMODF)
296 AC_DEFINE(HAVE_HYPOT)
297 AC_DEFINE(HAVE_LOG10F)
298 AC_DEFINE(HAVE_LOGF)
299 AC_DEFINE(HAVE_POWF)
300 AC_DEFINE(HAVE_SINF)
301 AC_DEFINE(HAVE_SINHF)
302 AC_DEFINE(HAVE_SQRTF)
303 AC_DEFINE(HAVE_TANF)
304 AC_DEFINE(HAVE_TANHF)
305 ;;
306 *)
307 AC_MSG_ERROR([No support for this host/target combination.])
308 ;;
309 esac
310 ])