]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/libstdc++/crossconfig.m4
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / libstdc++ / 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   *-darwin*)
13     # Darwin versions vary, but the linker should work in a cross environment,
14     # so we just check for all the features here.
15     # Check for available headers.
16     AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h machine/endian.h \
17     machine/param.h sys/machine.h fp.h locale.h float.h inttypes.h gconv.h \
18     sys/types.h])
19
20     # Don't call GLIBCXX_CHECK_LINKER_FEATURES, Darwin doesn't have a GNU ld
21     GLIBCXX_CHECK_MATH_SUPPORT
22     GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
23     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
24     GLIBCXX_CHECK_ICONV_SUPPORT
25     GLIBCXX_CHECK_STDLIB_SUPPORT
26
27     # For showmanyc_helper().
28     AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
29     GLIBCXX_CHECK_POLL
30     GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
31
32     # For xsputn_2().
33     AC_CHECK_HEADERS(sys/uio.h)
34     GLIBCXX_CHECK_WRITEV
35
36     AC_DEFINE(HAVE_LC_MESSAGES)
37
38     AC_TRY_COMPILE(
39       [#include <setjmp.h>],
40       [sigjmp_buf env;
41        while (! sigsetjmp (env, 1))
42          siglongjmp (env, 1);
43     ],
44     [AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available.])])
45
46     AC_DEFINE(HAVE_MMAP)
47     ;;
48
49   *djgpp)
50     AC_CHECK_HEADERS([float.h ieeefp.h inttypes.h locale.h \
51       memory.h stdint.h stdlib.h strings.h string.h unistd.h \
52       wchar.h wctype.h machine/endian.h sys/ioctl.h sys/param.h \
53       sys/resource.h sys/stat.h sys/time.h sys/types.h sys/uio.h])
54     GLIBCXX_CHECK_LINKER_FEATURES
55     GLIBCXX_CHECK_MATH_SUPPORT
56     GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
57     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
58     GLIBCXX_CHECK_ICONV_SUPPORT
59     GLIBCXX_CHECK_STDLIB_SUPPORT
60     GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
61     AC_DEFINE(HAVE_WRITEV)
62     ;;
63
64   *-freebsd*)
65     AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
66       machine/endian.h machine/param.h sys/machine.h sys/types.h \
67       fp.h locale.h float.h inttypes.h sys/resource.h sys/stat.h \
68       sys/time.h unistd.h])
69     SECTION_FLAGS='-ffunction-sections -fdata-sections'
70     AC_SUBST(SECTION_FLAGS) 
71     GLIBCXX_CHECK_LINKER_FEATURES
72     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
73     GLIBCXX_CHECK_ICONV_SUPPORT
74     AC_DEFINE(HAVE_LC_MESSAGES)
75     AC_DEFINE(HAVE_GETPAGESIZE)
76     AC_DEFINE(HAVE_SETENV)
77     AC_DEFINE(HAVE_SIGSETJMP)
78     AC_DEFINE(HAVE_COPYSIGN)
79     AC_DEFINE(HAVE_COPYSIGNF)
80     AC_DEFINE(HAVE_FINITEF)
81     AC_DEFINE(HAVE_FINITE)
82     AC_DEFINE(HAVE_FREXPF)
83     AC_DEFINE(HAVE_HYPOT)
84     AC_DEFINE(HAVE_HYPOTF)
85     AC_DEFINE(HAVE_ISINF)
86     AC_DEFINE(HAVE_ISNAN)
87     AC_DEFINE(HAVE_ISNANF)
88
89     AC_DEFINE(HAVE_MMAP)
90     AC_DEFINE(HAVE_ACOSF)
91     AC_DEFINE(HAVE_ASINF)
92     AC_DEFINE(HAVE_ATAN2F)
93     AC_DEFINE(HAVE_ATANF)
94     AC_DEFINE(HAVE_CEILF)
95     AC_DEFINE(HAVE_COPYSIGN)
96     AC_DEFINE(HAVE_COPYSIGNF)
97     AC_DEFINE(HAVE_COSF)
98     AC_DEFINE(HAVE_COSHF)
99     AC_DEFINE(HAVE_EXPF)
100     AC_DEFINE(HAVE_FABSF)
101     AC_DEFINE(HAVE_FLOORF)
102     AC_DEFINE(HAVE_FMODF)
103     AC_DEFINE(HAVE_FREXPF)
104     AC_DEFINE(HAVE_LDEXPF)
105     AC_DEFINE(HAVE_LOG10F)
106     AC_DEFINE(HAVE_LOGF)
107     AC_DEFINE(HAVE_MODFF)
108     AC_DEFINE(HAVE_POWF)
109     AC_DEFINE(HAVE_SINF)
110     AC_DEFINE(HAVE_SINHF)
111     AC_DEFINE(HAVE_SQRTF)
112     AC_DEFINE(HAVE_TANF)
113     AC_DEFINE(HAVE_TANHF)
114     if test x"long_double_math_on_this_cpu" = x"yes"; then
115       AC_DEFINE(HAVE_FINITEL)
116       AC_DEFINE(HAVE_ISINFL)
117       AC_DEFINE(HAVE_ISNANL)
118     fi
119     ;;
120   *-hpux*)
121     AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
122       machine/endian.h machine/param.h sys/machine.h sys/types.h \
123       fp.h locale.h float.h inttypes.h])
124     SECTION_FLAGS='-ffunction-sections -fdata-sections'
125     AC_SUBST(SECTION_FLAGS)
126     GLIBCXX_CHECK_LINKER_FEATURES
127     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
128     GLIBCXX_CHECK_ICONV_SUPPORT
129     AC_DEFINE(HAVE_COPYSIGN)
130     AC_DEFINE(HAVE_COPYSIGNF)
131     AC_DEFINE(HAVE_FREXPF)
132     AC_DEFINE(HAVE_HYPOT)
133     case "$target" in
134       *-hpux10*)
135         AC_DEFINE(HAVE_FINITE)
136         AC_DEFINE(HAVE_FINITEF)
137         AC_DEFINE(HAVE_ISINF)
138         AC_DEFINE(HAVE_ISINFF)
139         AC_DEFINE(HAVE_ISNAN)
140         AC_DEFINE(HAVE_ISNANF)
141         ;;
142     esac
143     ;;
144   *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu)
145     AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
146       machine/endian.h machine/param.h sys/machine.h sys/types.h \
147       fp.h float.h endian.h inttypes.h locale.h float.h stdint.h])
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_ICONV_SUPPORT
156     GLIBCXX_CHECK_STDLIB_SUPPORT
157
158     # For LFS.
159     AC_DEFINE(HAVE_INT64_T)
160     GLIBCXX_CHECK_LFS
161
162     # For showmanyc_helper().
163     AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
164     GLIBCXX_CHECK_POLL
165     GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
166
167     # For xsputn_2().
168     AC_CHECK_HEADERS(sys/uio.h)
169     GLIBCXX_CHECK_WRITEV
170     ;;
171   *-mingw32*)
172     AC_CHECK_HEADERS([sys/types.h locale.h float.h])
173     GLIBCXX_CHECK_LINKER_FEATURES
174     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
175     ;;
176   *-netbsd*)
177     AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
178       machine/endian.h machine/param.h sys/machine.h sys/types.h \
179       fp.h locale.h float.h inttypes.h])
180     SECTION_FLAGS='-ffunction-sections -fdata-sections'
181     AC_SUBST(SECTION_FLAGS) 
182     GLIBCXX_CHECK_LINKER_FEATURES
183     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
184     GLIBCXX_CHECK_ICONV_SUPPORT
185     AC_DEFINE(HAVE_COPYSIGN)
186     AC_DEFINE(HAVE_COPYSIGNF)
187     AC_DEFINE(HAVE_FINITEF)
188     AC_DEFINE(HAVE_FINITE)
189     AC_DEFINE(HAVE_FREXPF)
190     AC_DEFINE(HAVE_HYPOTF)
191     AC_DEFINE(HAVE_ISINF)
192     AC_DEFINE(HAVE_ISINFF)
193     AC_DEFINE(HAVE_ISNAN)
194     AC_DEFINE(HAVE_ISNANF)
195     if test x"long_double_math_on_this_cpu" = x"yes"; then
196       AC_DEFINE(HAVE_FINITEL)
197       AC_DEFINE(HAVE_ISINFL)
198       AC_DEFINE(HAVE_ISNANL)
199     fi
200     ;;
201   *-netware)
202     AC_CHECK_HEADERS([nan.h ieeefp.h sys/isa_defs.h sys/machine.h \
203       sys/types.h locale.h float.h inttypes.h])
204     SECTION_FLAGS='-ffunction-sections -fdata-sections'
205     AC_SUBST(SECTION_FLAGS)
206     GLIBCXX_CHECK_LINKER_FEATURES
207     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
208     GLIBCXX_CHECK_ICONV_SUPPORT
209     AC_DEFINE(HAVE_HYPOT)
210     AC_DEFINE(HAVE_ISINF)
211     AC_DEFINE(HAVE_ISNAN)
212
213     # For showmanyc_helper().
214     AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
215     GLIBCXX_CHECK_POLL
216     GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
217
218     # For xsputn_2().
219     AC_CHECK_HEADERS(sys/uio.h)
220     GLIBCXX_CHECK_WRITEV
221     ;;
222   *-qnx6.1* | *-qnx6.2*)
223     SECTION_FLAGS='-ffunction-sections -fdata-sections'
224     AC_SUBST(SECTION_FLAGS) 
225     GLIBCXX_CHECK_LINKER_FEATURES
226     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
227     GLIBCXX_CHECK_ICONV_SUPPORT
228     AC_DEFINE(HAVE_COSF)
229     AC_DEFINE(HAVE_COSL)
230     AC_DEFINE(HAVE_COSHF)
231     AC_DEFINE(HAVE_COSHL)
232     AC_DEFINE(HAVE_LOGF)
233     AC_DEFINE(HAVE_LOGL)
234     AC_DEFINE(HAVE_LOG10F)
235     AC_DEFINE(HAVE_LOG10L)
236     AC_DEFINE(HAVE_SINF)
237     AC_DEFINE(HAVE_SINL)
238     AC_DEFINE(HAVE_SINHF)
239     AC_DEFINE(HAVE_SINHL)
240     ;;
241   *-solaris*)
242     case "$target" in
243     #  *-solaris2.5)
244     #    os_include_dir="os/solaris/solaris2.5"
245     #    ;;
246     #  *-solaris2.6)
247     #    os_include_dir="os/solaris/solaris2.6"
248     #    ;;
249       *-solaris2.7 | *-solaris2.8 | *-solaris2.9 | *-solaris2.10)
250          GLIBCXX_CHECK_LINKER_FEATURES
251          AC_DEFINE(HAVE_GETPAGESIZE)
252          AC_DEFINE(HAVE_SIGSETJMP)
253          AC_DEFINE(HAVE_MBSTATE_T)
254          AC_DEFINE(HAVE_POLL)
255          AC_DEFINE(HAVE_S_ISREG)
256          AC_DEFINE(HAVE_LC_MESSAGES)
257          AC_DEFINE(HAVE_FINITE)
258          AC_DEFINE(HAVE_FPCLASS)
259          AC_DEFINE(HAVE_GETPAGESIZE)
260          AC_DEFINE(HAVE_NL_LANGINFO)
261          AC_DEFINE(HAVE_ICONV)
262          AC_DEFINE(HAVE_ICONV_CLOSE)
263          AC_DEFINE(HAVE_ICONV_OPEN)
264          # Look for the pieces required for wchar_t support in order to
265          # get all the right HAVE_* macros defined.
266          GLIBCXX_CHECK_ICONV_SUPPORT
267          # All of the dependencies for wide character support are here, so
268          # turn it on.  This requires some syncronization with the
269          # GLIBCXX_CHECK_ICONV_SUPPORT in acinclude.m4
270          AC_DEFINE(_GLIBCXX_USE_WCHAR_T) 
271          # Are these tested for even when cross?
272          AC_DEFINE(HAVE_FLOAT_H)
273          AC_DEFINE(HAVE_IEEEFP_H)
274          AC_DEFINE(HAVE_INTTYPES_H)
275          AC_DEFINE(HAVE_LOCALE_H)
276          AC_DEFINE(HAVE_NAN_H)
277          AC_DEFINE(HAVE_SYS_FILIO_H)
278          AC_DEFINE(HAVE_SYS_IOCTL_H)
279          AC_DEFINE(HAVE_SYS_ISA_DEFS_H)
280          AC_DEFINE(HAVE_SYS_RESOURCE_H)
281          AC_DEFINE(HAVE_SYS_TIME_H)
282          AC_DEFINE(HAVE_SYS_TYPES_H)
283          AC_DEFINE(HAVE_UNISTD_H)
284          AC_DEFINE(HAVE_WCHAR_H)
285          AC_DEFINE(HAVE_WCTYPE_H)
286          AC_DEFINE(HAVE_LIBM)
287         ;;
288     esac
289     case "$target" in
290       sparc*-*-solaris2.8 | sparc*-*-solaris2.9 | sparc*-*-solaris2.10)
291         # I saw these on sparc-sun-solaris2.8, but not 2.6, and not on i386
292         AC_DEFINE(HAVE___BUILTIN_ABS)
293         AC_DEFINE(HAVE___BUILTIN_LABS)
294         AC_DEFINE(HAVE___BUILTIN_FABS)
295         AC_DEFINE(HAVE___BUILTIN_FABSF)
296         AC_DEFINE(HAVE___BUILTIN_FABSL)
297         AC_DEFINE(HAVE___BUILTIN_COS)
298         AC_DEFINE(HAVE___BUILTIN_COSF)
299         AC_DEFINE(HAVE___BUILTIN_SIN)
300         AC_DEFINE(HAVE___BUILTIN_SINF)
301        ;;
302     esac
303     case "$target" in
304       *-*-solaris2.10)
305       # These two C99 functions are present only in Solaris >= 10
306       AC_DEFINE(HAVE_STRTOF)
307       AC_DEFINE(HAVE_STRTOLD)
308      ;;
309     esac
310     AC_DEFINE(HAVE_MMAP) 
311     AC_DEFINE(HAVE_COPYSIGN)
312     AC_DEFINE(HAVE_ISNAN)
313     AC_DEFINE(HAVE_ISNANF)
314     AC_DEFINE(HAVE_MODFF)
315     AC_DEFINE(HAVE_HYPOT)
316     ;;
317   *-tpf)
318     AC_CHECK_HEADERS([nan.h endian.h machine/endian.h  \
319       sys/param.h sys/types.h locale.h float.h inttypes.h])
320     SECTION_FLAGS='-ffunction-sections -fdata-sections'
321     AC_SUBST(SECTION_FLAGS)
322     GLIBCXX_CHECK_LINKER_FEATURES
323     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
324     GLIBCXX_CHECK_ICONV_SUPPORT
325     AC_DEFINE(HAVE_COPYSIGN)
326     AC_DEFINE(HAVE_COPYSIGNF)
327     AC_DEFINE(HAVE_FINITE)
328     AC_DEFINE(HAVE_FINITEF)
329     AC_DEFINE(HAVE_FREXPF)
330     AC_DEFINE(HAVE_HYPOTF)
331     AC_DEFINE(HAVE_ISINF)
332     AC_DEFINE(HAVE_ISINFF)
333     AC_DEFINE(HAVE_ISNAN)
334     AC_DEFINE(HAVE_ISNANF)
335     AC_DEFINE(HAVE_SINCOS)
336     AC_DEFINE(HAVE_SINCOSF)
337     if test x"long_double_math_on_this_cpu" = x"yes"; then
338       AC_DEFINE(HAVE_FINITEL)
339       AC_DEFINE(HAVE_HYPOTL)
340       AC_DEFINE(HAVE_ISINFL)
341       AC_DEFINE(HAVE_ISNANL)
342     fi
343     ;;
344   *-vxworks)
345     AC_DEFINE(HAVE_MMAP)
346     AC_DEFINE(HAVE_ACOSF)
347     AC_DEFINE(HAVE_ASINF)
348     AC_DEFINE(HAVE_ATAN2F)
349     AC_DEFINE(HAVE_ATANF)
350     AC_DEFINE(HAVE_CEILF)
351     AC_DEFINE(HAVE_COSF)
352     AC_DEFINE(HAVE_COSHF)
353     AC_DEFINE(HAVE_EXPF)
354     AC_DEFINE(HAVE_FABSF)
355     AC_DEFINE(HAVE_FLOORF)
356     AC_DEFINE(HAVE_FMODF)
357     AC_DEFINE(HAVE_HYPOT)
358     AC_DEFINE(HAVE_LOG10F)
359     AC_DEFINE(HAVE_LOGF)
360     AC_DEFINE(HAVE_POWF)
361     AC_DEFINE(HAVE_SINF)
362     AC_DEFINE(HAVE_SINHF)
363     AC_DEFINE(HAVE_SQRTF)
364     AC_DEFINE(HAVE_TANF)
365     AC_DEFINE(HAVE_TANHF)
366     ;;
367   *-windiss*)
368     AC_DEFINE(HAVE_ACOSF)
369     AC_DEFINE(HAVE_ACOSL)
370     AC_DEFINE(HAVE_ASINF)
371     AC_DEFINE(HAVE_ASINL)
372     AC_DEFINE(HAVE_ATAN2F)
373     AC_DEFINE(HAVE_ATAN2L)
374     AC_DEFINE(HAVE_ATANF)
375     AC_DEFINE(HAVE_ATANL)
376     AC_DEFINE(HAVE_CEILF)
377     AC_DEFINE(HAVE_CEILL)
378     AC_DEFINE(HAVE_COPYSIGN)
379     AC_DEFINE(HAVE_COPYSIGNF)
380     AC_DEFINE(HAVE_COSF)
381     AC_DEFINE(HAVE_COSL)
382     AC_DEFINE(HAVE_COSHF)
383     AC_DEFINE(HAVE_COSHL)
384     AC_DEFINE(HAVE_EXPF)
385     AC_DEFINE(HAVE_EXPL)
386     AC_DEFINE(HAVE_FABSF)
387     AC_DEFINE(HAVE_FABSL)
388     AC_DEFINE(HAVE_FLOORF)
389     AC_DEFINE(HAVE_FLOORL)
390     AC_DEFINE(HAVE_FMODF)
391     AC_DEFINE(HAVE_FMODL)
392     AC_DEFINE(HAVE_FREXPF)
393     AC_DEFINE(HAVE_FREXPL)
394     AC_DEFINE(HAVE_LDEXPF)
395     AC_DEFINE(HAVE_LDEXPL)
396     AC_DEFINE(HAVE_LOG10F)
397     AC_DEFINE(HAVE_LOG10L)
398     AC_DEFINE(HAVE_LOGF)
399     AC_DEFINE(HAVE_MODFF)
400     AC_DEFINE(HAVE_MODFL)
401     AC_DEFINE(HAVE_POWF)
402     AC_DEFINE(HAVE_POWL)
403     AC_DEFINE(HAVE_SINF)
404     AC_DEFINE(HAVE_SINL)
405     AC_DEFINE(HAVE_SINHF)
406     AC_DEFINE(HAVE_SINHL)
407     AC_DEFINE(HAVE_SQRTF)
408     AC_DEFINE(HAVE_SQRTL)
409     AC_DEFINE(HAVE_TANF)
410     AC_DEFINE(HAVE_TANL)
411     AC_DEFINE(HAVE_TANHF)
412     AC_DEFINE(HAVE_TANHL)
413     ;;
414   *)
415     AC_MSG_ERROR([No support for this host/target combination.])
416    ;;
417 esac
418 ])