]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/crossconfig.m4
Output vextract{i,f}{32x4,64x2} for (vec_select:(reg:Vmode) idx) when byte_offset...
[thirdparty/gcc.git] / libstdc++-v3 / crossconfig.m4
CommitLineData
ff66d28f 1dnl
552afe9e 2dnl This file contains details for non-native builds.
ff66d28f
PE
3dnl
4
c41f82b2 5AC_DEFUN([GLIBCXX_CROSSCONFIG],[
ff66d28f
PE
6# Base decisions on target environment.
7case "${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
301dnl # Different versions and execution modes implement different
302dnl # subsets of these functions. Instead of hard-coding, test for C
303dnl # declarations in headers. The C primitives could be defined as
304dnl # macros, in which case the tests might fail, and we might have to
305dnl # 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
310dnl # sincosl is the only one missing here, compared with the *l
311dnl # functions in the list guarded by
312dnl # long_double_math_on_this_cpu in configure.ac, right after
313dnl # the expansion of the present macro.
65fc9769 314 ;;
ff66d28f
PE
315 *)
316 AC_MSG_ERROR([No support for this host/target combination.])
317 ;;
318esac
c41f82b2 319])
85129ff1
AO
320
321
322dnl
323dnl Check to see if the (math function) argument passed is
324dnl declared when using the c compiler
325dnl
326dnl Define HAVE_CARGF etc if "cargf" is declared
327dnl
328dnl argument 1 is name of function to check
329dnl
330dnl ASSUMES argument is a math function
331dnl
332dnl GLIBCXX_CHECK_MATH_DECL
333AC_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
353dnl
354dnl Check to see whether multiple math functions are
355dnl declared when using the c compiler
356dnl
357dnl Define HAVE_CARGF HAVE_POWL etc if "cargf" and "powl"
358dnl are declared
359dnl
360dnl argument 1 is a word list naming function to check
361dnl
362dnl ASSUMES arguments are math functions
363dnl
364dnl GLIBCXX_CHECK_MATH_DECLS
365AC_DEFUN([GLIBCXX_CHECK_MATH_DECLS], [
366 m4_foreach_w([glibcxx_func], [$1], [
367 GLIBCXX_CHECK_MATH_DECL(glibcxx_func)
368 ])
369])