]>
Commit | Line | Data |
---|---|---|
ff66d28f | 1 | dnl |
552afe9e | 2 | dnl This file contains details for non-native builds. |
ff66d28f PE |
3 | dnl |
4 | ||
c41f82b2 | 5 | AC_DEFUN([GLIBCXX_CROSSCONFIG],[ |
ff66d28f PE |
6 | # Base decisions on target environment. |
7 | case "${host}" in | |
4c24b21a MM |
8 | arm*-*-symbianelf*) |
9 | # This is a freestanding configuration; there is nothing to do here. | |
10 | ;; | |
11 | ||
6649ad7e FMA |
12 | avr*-*-*) |
13 | AC_DEFINE(HAVE_ACOSF) | |
14 | AC_DEFINE(HAVE_ASINF) | |
15 | AC_DEFINE(HAVE_ATAN2F) | |
16 | AC_DEFINE(HAVE_ATANF) | |
17 | AC_DEFINE(HAVE_CEILF) | |
18 | AC_DEFINE(HAVE_COSF) | |
19 | AC_DEFINE(HAVE_COSHF) | |
20 | AC_DEFINE(HAVE_EXPF) | |
21 | AC_DEFINE(HAVE_FABSF) | |
22 | AC_DEFINE(HAVE_FLOORF) | |
23 | AC_DEFINE(HAVE_FMODF) | |
24 | AC_DEFINE(HAVE_FREXPF) | |
25 | AC_DEFINE(HAVE_SQRTF) | |
26 | AC_DEFINE(HAVE_HYPOTF) | |
27 | AC_DEFINE(HAVE_LDEXPF) | |
28 | AC_DEFINE(HAVE_LOG10F) | |
29 | AC_DEFINE(HAVE_LOGF) | |
30 | AC_DEFINE(HAVE_MODFF) | |
31 | AC_DEFINE(HAVE_POWF) | |
32 | AC_DEFINE(HAVE_SINF) | |
33 | AC_DEFINE(HAVE_SINHF) | |
34 | AC_DEFINE(HAVE_TANF) | |
35 | AC_DEFINE(HAVE_TANHF) | |
36 | ;; | |
37 | ||
d9dced13 RS |
38 | mips*-sde-elf*) |
39 | # These definitions are for the SDE C library rather than newlib. | |
d9dced13 RS |
40 | SECTION_FLAGS='-ffunction-sections -fdata-sections' |
41 | AC_SUBST(SECTION_FLAGS) | |
42 | GLIBCXX_CHECK_COMPILER_FEATURES | |
43 | GLIBCXX_CHECK_LINKER_FEATURES | |
44 | GLIBCXX_CHECK_MATH_SUPPORT | |
d9dced13 | 45 | GLIBCXX_CHECK_STDLIB_SUPPORT |
d9dced13 | 46 | |
d9dced13 RS |
47 | AC_DEFINE(HAVE_FINITE) |
48 | AC_DEFINE(HAVE_HYPOT) | |
49 | AC_DEFINE(HAVE_ISNAN) | |
50 | AC_DEFINE(HAVE_ISINF) | |
51 | ||
52 | AC_DEFINE(HAVE_LDEXPF) | |
53 | AC_DEFINE(HAVE_MODF) | |
54 | AC_DEFINE(HAVE_SQRTF) | |
55 | ;; | |
56 | ||
70ed7339 RS |
57 | *-aix*) |
58 | GLIBCXX_CHECK_LINKER_FEATURES | |
59 | GLIBCXX_CHECK_MATH_SUPPORT | |
60 | GLIBCXX_CHECK_STDLIB_SUPPORT | |
5ae2c32a | 61 | AC_DEFINE(_GLIBCXX_USE_DEV_RANDOM) |
70ed7339 RS |
62 | AC_DEFINE(_GLIBCXX_USE_RANDOM_TR1) |
63 | # We don't yet support AIX's TLS ABI. | |
64 | #GCC_CHECK_TLS | |
65 | AM_ICONV | |
932fbc86 JW |
66 | |
67 | AC_DEFINE(HAVE_USELOCALE) | |
70ed7339 RS |
68 | ;; |
69 | ||
a6f3e253 GK |
70 | *-darwin*) |
71 | # Darwin versions vary, but the linker should work in a cross environment, | |
72 | # so we just check for all the features here. | |
73 | # Check for available headers. | |
a6f3e253 | 74 | |
a6f3e253 GK |
75 | # Don't call GLIBCXX_CHECK_LINKER_FEATURES, Darwin doesn't have a GNU ld |
76 | GLIBCXX_CHECK_MATH_SUPPORT | |
a6f3e253 | 77 | GLIBCXX_CHECK_STDLIB_SUPPORT |
932fbc86 JW |
78 | |
79 | AC_CHECK_FUNCS(uselocale) | |
a6f3e253 GK |
80 | ;; |
81 | ||
185fca74 | 82 | *djgpp) |
9f1fd474 | 83 | # GLIBCXX_CHECK_MATH_SUPPORT |
9bb68d2a DD |
84 | AC_DEFINE(HAVE_ISINF) |
85 | AC_DEFINE(HAVE_ISNAN) | |
86 | AC_DEFINE(HAVE_FINITE) | |
9bb68d2a DD |
87 | AC_DEFINE(HAVE_SINCOS) |
88 | AC_DEFINE(HAVE_HYPOT) | |
185fca74 AH |
89 | ;; |
90 | ||
ff66d28f | 91 | *-freebsd*) |
ff66d28f PE |
92 | SECTION_FLAGS='-ffunction-sections -fdata-sections' |
93 | AC_SUBST(SECTION_FLAGS) | |
94 | GLIBCXX_CHECK_LINKER_FEATURES | |
ff66d28f | 95 | AC_DEFINE(HAVE_SETENV) |
ff66d28f PE |
96 | AC_DEFINE(HAVE_FINITEF) |
97 | AC_DEFINE(HAVE_FINITE) | |
98 | AC_DEFINE(HAVE_FREXPF) | |
99 | AC_DEFINE(HAVE_HYPOT) | |
100 | AC_DEFINE(HAVE_HYPOTF) | |
101 | AC_DEFINE(HAVE_ISINF) | |
102 | AC_DEFINE(HAVE_ISNAN) | |
103 | AC_DEFINE(HAVE_ISNANF) | |
104 | ||
ff66d28f PE |
105 | AC_DEFINE(HAVE_ACOSF) |
106 | AC_DEFINE(HAVE_ASINF) | |
107 | AC_DEFINE(HAVE_ATAN2F) | |
108 | AC_DEFINE(HAVE_ATANF) | |
109 | AC_DEFINE(HAVE_CEILF) | |
ff66d28f PE |
110 | AC_DEFINE(HAVE_COSF) |
111 | AC_DEFINE(HAVE_COSHF) | |
112 | AC_DEFINE(HAVE_EXPF) | |
113 | AC_DEFINE(HAVE_FABSF) | |
114 | AC_DEFINE(HAVE_FLOORF) | |
115 | AC_DEFINE(HAVE_FMODF) | |
116 | AC_DEFINE(HAVE_FREXPF) | |
117 | AC_DEFINE(HAVE_LDEXPF) | |
118 | AC_DEFINE(HAVE_LOG10F) | |
119 | AC_DEFINE(HAVE_LOGF) | |
120 | AC_DEFINE(HAVE_MODFF) | |
121 | AC_DEFINE(HAVE_POWF) | |
122 | AC_DEFINE(HAVE_SINF) | |
123 | AC_DEFINE(HAVE_SINHF) | |
124 | AC_DEFINE(HAVE_SQRTF) | |
125 | AC_DEFINE(HAVE_TANF) | |
126 | AC_DEFINE(HAVE_TANHF) | |
127 | if test x"long_double_math_on_this_cpu" = x"yes"; then | |
128 | AC_DEFINE(HAVE_FINITEL) | |
129 | AC_DEFINE(HAVE_ISINFL) | |
130 | AC_DEFINE(HAVE_ISNANL) | |
131 | fi | |
ea4ad78e | 132 | AC_CHECK_FUNCS(__cxa_thread_atexit) |
97ca95ac | 133 | AC_CHECK_FUNCS(aligned_alloc posix_memalign memalign _aligned_malloc) |
a61ae535 | 134 | AC_CHECK_FUNCS(timespec_get) |
187fdaea | 135 | AC_CHECK_FUNCS(sockatmark) |
932fbc86 | 136 | AC_CHECK_FUNCS(uselocale) |
ff66d28f | 137 | ;; |
93f90f7b JC |
138 | |
139 | *-fuchsia*) | |
140 | SECTION_FLAGS='-ffunction-sections -fdata-sections' | |
141 | AC_SUBST(SECTION_FLAGS) | |
142 | ;; | |
143 | ||
ff66d28f | 144 | *-hpux*) |
ff66d28f PE |
145 | SECTION_FLAGS='-ffunction-sections -fdata-sections' |
146 | AC_SUBST(SECTION_FLAGS) | |
147 | GLIBCXX_CHECK_LINKER_FEATURES | |
55c8e6a3 BK |
148 | |
149 | # GLIBCXX_CHECK_MATH_SUPPORT | |
150 | AC_DEFINE(HAVE_ISNAN) | |
55c8e6a3 BK |
151 | AC_DEFINE(HAVE_HYPOT) |
152 | AC_DEFINE(HAVE_ACOSF) | |
153 | AC_DEFINE(HAVE_ASINF) | |
154 | AC_DEFINE(HAVE_ATANF) | |
155 | AC_DEFINE(HAVE_COSF) | |
156 | AC_DEFINE(HAVE_COSHF) | |
157 | AC_DEFINE(HAVE_SINF) | |
158 | AC_DEFINE(HAVE_SINHF) | |
159 | AC_DEFINE(HAVE_TANF) | |
160 | AC_DEFINE(HAVE_TANHF) | |
161 | AC_DEFINE(HAVE_EXPF) | |
162 | AC_DEFINE(HAVE_ATAN2F) | |
4564ac62 | 163 | AC_DEFINE(HAVE_FABSF) |
55c8e6a3 | 164 | AC_DEFINE(HAVE_FMODF) |
ff66d28f | 165 | AC_DEFINE(HAVE_FREXPF) |
55c8e6a3 BK |
166 | AC_DEFINE(HAVE_LOGF) |
167 | AC_DEFINE(HAVE_LOG10F) | |
168 | AC_DEFINE(HAVE_MODF) | |
169 | AC_DEFINE(HAVE_POWF) | |
170 | AC_DEFINE(HAVE_SQRTF) | |
171 | ||
55c8e6a3 BK |
172 | # GLIBCXX_CHECK_STDLIB_SUPPORT |
173 | AC_DEFINE(HAVE_STRTOLD) | |
174 | ||
175 | GCC_CHECK_TLS | |
ff66d28f PE |
176 | case "$target" in |
177 | *-hpux10*) | |
ff66d28f PE |
178 | AC_DEFINE(HAVE_ISINF) |
179 | AC_DEFINE(HAVE_ISINFF) | |
ff66d28f | 180 | AC_DEFINE(HAVE_ISNANF) |
55c8e6a3 BK |
181 | AC_DEFINE(HAVE_FINITE) |
182 | AC_DEFINE(HAVE_FINITEF) | |
ff66d28f PE |
183 | ;; |
184 | esac | |
185 | ;; | |
e34fd4dc | 186 | *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-cygwin* | *-solaris*) |
464aea98 | 187 | GLIBCXX_CHECK_COMPILER_FEATURES |
ff66d28f | 188 | GLIBCXX_CHECK_LINKER_FEATURES |
464aea98 | 189 | GLIBCXX_CHECK_MATH_SUPPORT |
464aea98 | 190 | GLIBCXX_CHECK_STDLIB_SUPPORT |
5ae2c32a | 191 | AC_DEFINE(_GLIBCXX_USE_DEV_RANDOM) |
bffc9d79 | 192 | AC_DEFINE(_GLIBCXX_USE_RANDOM_TR1) |
55c8e6a3 | 193 | GCC_CHECK_TLS |
3c97fe77 | 194 | AC_CHECK_FUNCS(__cxa_thread_atexit_impl) |
77e6870d | 195 | AC_CHECK_FUNCS(aligned_alloc posix_memalign memalign _aligned_malloc) |
a61ae535 | 196 | AC_CHECK_FUNCS(timespec_get) |
187fdaea | 197 | AC_CHECK_FUNCS(sockatmark) |
932fbc86 | 198 | AC_CHECK_FUNCS(uselocale) |
bffc9d79 | 199 | AM_ICONV |
ff66d28f PE |
200 | ;; |
201 | *-mingw32*) | |
ff66d28f | 202 | GLIBCXX_CHECK_LINKER_FEATURES |
53f506ed BK |
203 | GLIBCXX_CHECK_MATH_SUPPORT |
204 | GLIBCXX_CHECK_STDLIB_SUPPORT | |
97ca95ac | 205 | AC_CHECK_FUNCS(aligned_alloc posix_memalign memalign _aligned_malloc) |
b0292359 | 206 | AC_CHECK_FUNCS(_wfopen) |
ff66d28f | 207 | ;; |
4f9eae9f | 208 | *-netbsd* | *-openbsd*) |
ff66d28f PE |
209 | SECTION_FLAGS='-ffunction-sections -fdata-sections' |
210 | AC_SUBST(SECTION_FLAGS) | |
211 | GLIBCXX_CHECK_LINKER_FEATURES | |
ff66d28f PE |
212 | AC_DEFINE(HAVE_FINITEF) |
213 | AC_DEFINE(HAVE_FINITE) | |
214 | AC_DEFINE(HAVE_FREXPF) | |
215 | AC_DEFINE(HAVE_HYPOTF) | |
216 | AC_DEFINE(HAVE_ISINF) | |
217 | AC_DEFINE(HAVE_ISINFF) | |
218 | AC_DEFINE(HAVE_ISNAN) | |
219 | AC_DEFINE(HAVE_ISNANF) | |
220 | if test x"long_double_math_on_this_cpu" = x"yes"; then | |
221 | AC_DEFINE(HAVE_FINITEL) | |
222 | AC_DEFINE(HAVE_ISINFL) | |
223 | AC_DEFINE(HAVE_ISNANL) | |
224 | fi | |
95c921d1 | 225 | AC_CHECK_FUNCS(aligned_alloc posix_memalign memalign _aligned_malloc) |
a61ae535 | 226 | AC_CHECK_FUNCS(timespec_get) |
187fdaea | 227 | AC_CHECK_FUNCS(sockatmark) |
ff66d28f PE |
228 | ;; |
229 | *-qnx6.1* | *-qnx6.2*) | |
ff66d28f PE |
230 | SECTION_FLAGS='-ffunction-sections -fdata-sections' |
231 | AC_SUBST(SECTION_FLAGS) | |
232 | GLIBCXX_CHECK_LINKER_FEATURES | |
ff66d28f PE |
233 | AC_DEFINE(HAVE_COSF) |
234 | AC_DEFINE(HAVE_COSL) | |
235 | AC_DEFINE(HAVE_COSHF) | |
236 | AC_DEFINE(HAVE_COSHL) | |
237 | AC_DEFINE(HAVE_LOGF) | |
238 | AC_DEFINE(HAVE_LOGL) | |
239 | AC_DEFINE(HAVE_LOG10F) | |
240 | AC_DEFINE(HAVE_LOG10L) | |
241 | AC_DEFINE(HAVE_SINF) | |
242 | AC_DEFINE(HAVE_SINL) | |
243 | AC_DEFINE(HAVE_SINHF) | |
244 | AC_DEFINE(HAVE_SINHL) | |
245 | ;; | |
07ecaaf9 RC |
246 | *-rtems*) |
247 | GLIBCXX_CHECK_COMPILER_FEATURES | |
248 | GLIBCXX_CHECK_LINKER_FEATURES | |
249 | GLIBCXX_CHECK_MATH_SUPPORT | |
250 | GLIBCXX_CHECK_STDLIB_SUPPORT | |
251 | ;; | |
6e198ee0 | 252 | *-tpf) |
6e198ee0 | 253 | SECTION_FLAGS='-ffunction-sections -fdata-sections' |
40f93bb5 | 254 | SECTION_LDFLAGS='-Wl,--gc-sections $SECTION_LDFLAGS' |
6e198ee0 | 255 | AC_SUBST(SECTION_FLAGS) |
6e198ee0 UW |
256 | AC_DEFINE(HAVE_FINITE) |
257 | AC_DEFINE(HAVE_FINITEF) | |
258 | AC_DEFINE(HAVE_FREXPF) | |
259 | AC_DEFINE(HAVE_HYPOTF) | |
260 | AC_DEFINE(HAVE_ISINF) | |
261 | AC_DEFINE(HAVE_ISINFF) | |
262 | AC_DEFINE(HAVE_ISNAN) | |
263 | AC_DEFINE(HAVE_ISNANF) | |
264 | AC_DEFINE(HAVE_SINCOS) | |
265 | AC_DEFINE(HAVE_SINCOSF) | |
266 | if test x"long_double_math_on_this_cpu" = x"yes"; then | |
267 | AC_DEFINE(HAVE_FINITEL) | |
268 | AC_DEFINE(HAVE_HYPOTL) | |
269 | AC_DEFINE(HAVE_ISINFL) | |
270 | AC_DEFINE(HAVE_ISNANL) | |
271 | fi | |
272 | ;; | |
db435dce TG |
273 | *-*vms*) |
274 | # Check for available headers. | |
275 | # Don't call GLIBCXX_CHECK_LINKER_FEATURES, VMS doesn't have a GNU ld | |
276 | GLIBCXX_CHECK_MATH_SUPPORT | |
277 | GLIBCXX_CHECK_STDLIB_SUPPORT | |
278 | ;; | |
d667beea | 279 | *-vxworks*) |
65fc9769 PE |
280 | AC_DEFINE(HAVE_ACOSF) |
281 | AC_DEFINE(HAVE_ASINF) | |
282 | AC_DEFINE(HAVE_ATAN2F) | |
283 | AC_DEFINE(HAVE_ATANF) | |
284 | AC_DEFINE(HAVE_CEILF) | |
285 | AC_DEFINE(HAVE_COSF) | |
286 | AC_DEFINE(HAVE_COSHF) | |
287 | AC_DEFINE(HAVE_EXPF) | |
288 | AC_DEFINE(HAVE_FABSF) | |
289 | AC_DEFINE(HAVE_FLOORF) | |
290 | AC_DEFINE(HAVE_FMODF) | |
291 | AC_DEFINE(HAVE_HYPOT) | |
292 | AC_DEFINE(HAVE_LOG10F) | |
293 | AC_DEFINE(HAVE_LOGF) | |
294 | AC_DEFINE(HAVE_POWF) | |
295 | AC_DEFINE(HAVE_SINF) | |
296 | AC_DEFINE(HAVE_SINHF) | |
297 | AC_DEFINE(HAVE_SQRTF) | |
298 | AC_DEFINE(HAVE_TANF) | |
299 | AC_DEFINE(HAVE_TANHF) | |
85129ff1 AO |
300 | |
301 | dnl # Different versions and execution modes implement different | |
302 | dnl # subsets of these functions. Instead of hard-coding, test for C | |
303 | dnl # declarations in headers. The C primitives could be defined as | |
304 | dnl # macros, in which case the tests might fail, and we might have to | |
305 | dnl # switch to more elaborate tests. | |
306 | GLIBCXX_CHECK_MATH_DECLS([ | |
307 | acosl asinl atan2l atanl ceill cosl coshl expl fabsl floorl fmodl | |
0edfc1fd DR |
308 | frexpl ldexpl log10l logl modfl powl sinl sinhl sqrtl tanl tanhl hypotl |
309 | ldexpf modff hypotf frexpf]) | |
85129ff1 AO |
310 | dnl # sincosl is the only one missing here, compared with the *l |
311 | dnl # functions in the list guarded by | |
312 | dnl # long_double_math_on_this_cpu in configure.ac, right after | |
313 | dnl # the expansion of the present macro. | |
65fc9769 | 314 | ;; |
ff66d28f PE |
315 | *) |
316 | AC_MSG_ERROR([No support for this host/target combination.]) | |
317 | ;; | |
318 | esac | |
c41f82b2 | 319 | ]) |
85129ff1 AO |
320 | |
321 | ||
322 | dnl | |
323 | dnl Check to see if the (math function) argument passed is | |
324 | dnl declared when using the c compiler | |
325 | dnl | |
326 | dnl Define HAVE_CARGF etc if "cargf" is declared | |
327 | dnl | |
328 | dnl argument 1 is name of function to check | |
329 | dnl | |
330 | dnl ASSUMES argument is a math function | |
331 | dnl | |
332 | dnl GLIBCXX_CHECK_MATH_DECL | |
333 | AC_DEFUN([GLIBCXX_CHECK_MATH_DECL], [ | |
334 | AC_CACHE_CHECK([for $1 declaration], | |
335 | [glibcxx_cv_func_$1_use], [ | |
336 | AC_LANG_SAVE | |
337 | AC_LANG_C | |
338 | AC_TRY_COMPILE([ | |
339 | #include <math.h> | |
340 | #ifdef HAVE_IEEEFP_H | |
341 | # include <ieeefp.h> | |
342 | #endif | |
f9e84b31 | 343 | #undef $1 |
85129ff1 AO |
344 | ], [ |
345 | void (*f)(void) = (void (*)(void))$1; | |
346 | ], [glibcxx_cv_func_$1_use=yes | |
347 | ], [glibcxx_cv_func_$1_use=no])]) | |
348 | if test "x$glibcxx_cv_func_$1_use" = xyes; then | |
349 | AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_$1])) | |
350 | fi | |
351 | ]) | |
352 | ||
353 | dnl | |
354 | dnl Check to see whether multiple math functions are | |
355 | dnl declared when using the c compiler | |
356 | dnl | |
357 | dnl Define HAVE_CARGF HAVE_POWL etc if "cargf" and "powl" | |
358 | dnl are declared | |
359 | dnl | |
360 | dnl argument 1 is a word list naming function to check | |
361 | dnl | |
362 | dnl ASSUMES arguments are math functions | |
363 | dnl | |
364 | dnl GLIBCXX_CHECK_MATH_DECLS | |
365 | AC_DEFUN([GLIBCXX_CHECK_MATH_DECLS], [ | |
366 | m4_foreach_w([glibcxx_func], [$1], [ | |
367 | GLIBCXX_CHECK_MATH_DECL(glibcxx_func) | |
368 | ]) | |
369 | ]) |