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