gcc:
[official-gcc.git] / libstdc++-v3 / crossconfig.m4
blob0112f6fa5c39d115d109dbd59cd61b1f705f8d5b
1 dnl
2 dnl This file contains details for non-native builds.
3 dnl
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     ;;
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_STDLIB_SUPPORT
21     AC_DEFINE(HAVE_FINITE)
22     AC_DEFINE(HAVE_HYPOT)
23     AC_DEFINE(HAVE_ISNAN)
24     AC_DEFINE(HAVE_ISINF)
26     AC_DEFINE(HAVE_LDEXPF)
27     AC_DEFINE(HAVE_MODF)
28     AC_DEFINE(HAVE_SQRTF)
29     ;;
31   *-aix*)
32     GLIBCXX_CHECK_LINKER_FEATURES
33     GLIBCXX_CHECK_MATH_SUPPORT
34     GLIBCXX_CHECK_STDLIB_SUPPORT
35     AC_DEFINE(_GLIBCXX_USE_RANDOM_TR1)
36     # We don't yet support AIX's TLS ABI.
37     #GCC_CHECK_TLS
38     AM_ICONV
39     ;;
41   *-darwin*)
42     # Darwin versions vary, but the linker should work in a cross environment,
43     # so we just check for all the features here.
44     # Check for available headers.
46     # Don't call GLIBCXX_CHECK_LINKER_FEATURES, Darwin doesn't have a GNU ld
47     GLIBCXX_CHECK_MATH_SUPPORT
48     GLIBCXX_CHECK_STDLIB_SUPPORT
49     ;;
51   *djgpp)
52     # GLIBCXX_CHECK_MATH_SUPPORT
53     AC_DEFINE(HAVE_ISINF)
54     AC_DEFINE(HAVE_ISNAN)
55     AC_DEFINE(HAVE_FINITE)
56     AC_DEFINE(HAVE_SINCOS)
57     AC_DEFINE(HAVE_HYPOT)
58     ;;
60   *-freebsd*)
61     SECTION_FLAGS='-ffunction-sections -fdata-sections'
62     AC_SUBST(SECTION_FLAGS) 
63     GLIBCXX_CHECK_LINKER_FEATURES
64     AC_DEFINE(HAVE_SETENV)
65     AC_DEFINE(HAVE_FINITEF)
66     AC_DEFINE(HAVE_FINITE)
67     AC_DEFINE(HAVE_FREXPF)
68     AC_DEFINE(HAVE_HYPOT)
69     AC_DEFINE(HAVE_HYPOTF)
70     AC_DEFINE(HAVE_ISINF)
71     AC_DEFINE(HAVE_ISNAN)
72     AC_DEFINE(HAVE_ISNANF)
74     AC_DEFINE(HAVE_ACOSF)
75     AC_DEFINE(HAVE_ASINF)
76     AC_DEFINE(HAVE_ATAN2F)
77     AC_DEFINE(HAVE_ATANF)
78     AC_DEFINE(HAVE_CEILF)
79     AC_DEFINE(HAVE_COSF)
80     AC_DEFINE(HAVE_COSHF)
81     AC_DEFINE(HAVE_EXPF)
82     AC_DEFINE(HAVE_FABSF)
83     AC_DEFINE(HAVE_FLOORF)
84     AC_DEFINE(HAVE_FMODF)
85     AC_DEFINE(HAVE_FREXPF)
86     AC_DEFINE(HAVE_LDEXPF)
87     AC_DEFINE(HAVE_LOG10F)
88     AC_DEFINE(HAVE_LOGF)
89     AC_DEFINE(HAVE_MODFF)
90     AC_DEFINE(HAVE_POWF)
91     AC_DEFINE(HAVE_SINF)
92     AC_DEFINE(HAVE_SINHF)
93     AC_DEFINE(HAVE_SQRTF)
94     AC_DEFINE(HAVE_TANF)
95     AC_DEFINE(HAVE_TANHF)
96     if test x"long_double_math_on_this_cpu" = x"yes"; then
97       AC_DEFINE(HAVE_FINITEL)
98       AC_DEFINE(HAVE_ISINFL)
99       AC_DEFINE(HAVE_ISNANL)
100     fi
101     ;;
102   *-hpux*)
103     SECTION_FLAGS='-ffunction-sections -fdata-sections'
104     AC_SUBST(SECTION_FLAGS)
105     GLIBCXX_CHECK_LINKER_FEATURES
107     # GLIBCXX_CHECK_MATH_SUPPORT
108     AC_DEFINE(HAVE_ISNAN)
109     AC_DEFINE(HAVE_HYPOT)
110     AC_DEFINE(HAVE_ACOSF)
111     AC_DEFINE(HAVE_ASINF)
112     AC_DEFINE(HAVE_ATANF)
113     AC_DEFINE(HAVE_COSF)
114     AC_DEFINE(HAVE_COSHF)
115     AC_DEFINE(HAVE_SINF)
116     AC_DEFINE(HAVE_SINHF)
117     AC_DEFINE(HAVE_TANF)
118     AC_DEFINE(HAVE_TANHF)
119     AC_DEFINE(HAVE_EXPF)
120     AC_DEFINE(HAVE_ATAN2F)
121     AC_DEFINE(HAVE_FABSF)
122     AC_DEFINE(HAVE_FMODF)
123     AC_DEFINE(HAVE_FREXPF)
124     AC_DEFINE(HAVE_LOGF)
125     AC_DEFINE(HAVE_LOG10F)
126     AC_DEFINE(HAVE_MODF)
127     AC_DEFINE(HAVE_POWF)
128     AC_DEFINE(HAVE_SQRTF)
130     # GLIBCXX_CHECK_STDLIB_SUPPORT
131     AC_DEFINE(HAVE_STRTOLD)
133     GCC_CHECK_TLS
134     case "$target" in
135       *-hpux10*)
136         AC_DEFINE(HAVE_ISINF)
137         AC_DEFINE(HAVE_ISINFF)
138         AC_DEFINE(HAVE_ISNANF)
139         AC_DEFINE(HAVE_FINITE)
140         AC_DEFINE(HAVE_FINITEF)
141         ;;
142     esac
143     ;;
144   *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu | *-cygwin*)
145     GLIBCXX_CHECK_COMPILER_FEATURES
146     GLIBCXX_CHECK_LINKER_FEATURES
147     GLIBCXX_CHECK_MATH_SUPPORT
148     GLIBCXX_CHECK_STDLIB_SUPPORT
149     AC_DEFINE(_GLIBCXX_USE_RANDOM_TR1)
150     GCC_CHECK_TLS
151     AM_ICONV
152     ;;
153   *-mingw32*)
154     GLIBCXX_CHECK_LINKER_FEATURES
155     GLIBCXX_CHECK_MATH_SUPPORT
156     GLIBCXX_CHECK_STDLIB_SUPPORT
157     ;;
158   *-netbsd*)
159     SECTION_FLAGS='-ffunction-sections -fdata-sections'
160     AC_SUBST(SECTION_FLAGS) 
161     GLIBCXX_CHECK_LINKER_FEATURES
162     AC_DEFINE(HAVE_FINITEF)
163     AC_DEFINE(HAVE_FINITE)
164     AC_DEFINE(HAVE_FREXPF)
165     AC_DEFINE(HAVE_HYPOTF)
166     AC_DEFINE(HAVE_ISINF)
167     AC_DEFINE(HAVE_ISINFF)
168     AC_DEFINE(HAVE_ISNAN)
169     AC_DEFINE(HAVE_ISNANF)
170     if test x"long_double_math_on_this_cpu" = x"yes"; then
171       AC_DEFINE(HAVE_FINITEL)
172       AC_DEFINE(HAVE_ISINFL)
173       AC_DEFINE(HAVE_ISNANL)
174     fi
175     ;;
176   *-qnx6.1* | *-qnx6.2*)
177     SECTION_FLAGS='-ffunction-sections -fdata-sections'
178     AC_SUBST(SECTION_FLAGS) 
179     GLIBCXX_CHECK_LINKER_FEATURES
180     AC_DEFINE(HAVE_COSF)
181     AC_DEFINE(HAVE_COSL)
182     AC_DEFINE(HAVE_COSHF)
183     AC_DEFINE(HAVE_COSHL)
184     AC_DEFINE(HAVE_LOGF)
185     AC_DEFINE(HAVE_LOGL)
186     AC_DEFINE(HAVE_LOG10F)
187     AC_DEFINE(HAVE_LOG10L)
188     AC_DEFINE(HAVE_SINF)
189     AC_DEFINE(HAVE_SINL)
190     AC_DEFINE(HAVE_SINHF)
191     AC_DEFINE(HAVE_SINHL)
192     ;;
193   *-rtems*)
194     GLIBCXX_CHECK_COMPILER_FEATURES
195     GLIBCXX_CHECK_LINKER_FEATURES
196     GLIBCXX_CHECK_MATH_SUPPORT
197     GLIBCXX_CHECK_STDLIB_SUPPORT
198     ;;
199   *-solaris*)
200     case "$target" in
201       *-solaris2.9 | *-solaris2.10)
202          GLIBCXX_CHECK_LINKER_FEATURES
203          AC_DEFINE(HAVE_MBSTATE_T)
204          AC_DEFINE(HAVE_FINITE)
205          AC_DEFINE(HAVE_FPCLASS)
206          # All of the dependencies for wide character support are here, so
207          # turn it on. 
208          AC_DEFINE(_GLIBCXX_USE_WCHAR_T) 
209         ;;
210     esac
211     case "$target" in
212       *-*-solaris2.10)
213       # These two C99 functions are present only in Solaris >= 10
214       AC_DEFINE(HAVE_STRTOF)
215       AC_DEFINE(HAVE_STRTOLD)
216      ;;
217     esac
218     AC_DEFINE(HAVE_ISNAN)
219     AC_DEFINE(HAVE_ISNANF)
220     AC_DEFINE(HAVE_MODFF)
221     AC_DEFINE(HAVE_HYPOT)
222     ;;
223   *-tpf)
224     SECTION_FLAGS='-ffunction-sections -fdata-sections'
225     SECTION_LDFLAGS='-Wl,--gc-sections $SECTION_LDFLAGS'
226     AC_SUBST(SECTION_FLAGS)
227     AC_DEFINE(HAVE_FINITE)
228     AC_DEFINE(HAVE_FINITEF)
229     AC_DEFINE(HAVE_FREXPF)
230     AC_DEFINE(HAVE_HYPOTF)
231     AC_DEFINE(HAVE_ISINF)
232     AC_DEFINE(HAVE_ISINFF)
233     AC_DEFINE(HAVE_ISNAN)
234     AC_DEFINE(HAVE_ISNANF)
235     AC_DEFINE(HAVE_SINCOS)
236     AC_DEFINE(HAVE_SINCOSF)
237     if test x"long_double_math_on_this_cpu" = x"yes"; then
238       AC_DEFINE(HAVE_FINITEL)
239       AC_DEFINE(HAVE_HYPOTL)
240       AC_DEFINE(HAVE_ISINFL)
241       AC_DEFINE(HAVE_ISNANL)
242     fi
243     ;;
244   *-*vms*)
245     # Check for available headers.
246     # Don't call GLIBCXX_CHECK_LINKER_FEATURES, VMS doesn't have a GNU ld
247     GLIBCXX_CHECK_MATH_SUPPORT
248     GLIBCXX_CHECK_STDLIB_SUPPORT
249     ;;
250   *-vxworks)
251     AC_DEFINE(HAVE_ACOSF)
252     AC_DEFINE(HAVE_ASINF)
253     AC_DEFINE(HAVE_ATAN2F)
254     AC_DEFINE(HAVE_ATANF)
255     AC_DEFINE(HAVE_CEILF)
256     AC_DEFINE(HAVE_COSF)
257     AC_DEFINE(HAVE_COSHF)
258     AC_DEFINE(HAVE_EXPF)
259     AC_DEFINE(HAVE_FABSF)
260     AC_DEFINE(HAVE_FLOORF)
261     AC_DEFINE(HAVE_FMODF)
262     AC_DEFINE(HAVE_HYPOT)
263     AC_DEFINE(HAVE_LOG10F)
264     AC_DEFINE(HAVE_LOGF)
265     AC_DEFINE(HAVE_POWF)
266     AC_DEFINE(HAVE_SINF)
267     AC_DEFINE(HAVE_SINHF)
268     AC_DEFINE(HAVE_SQRTF)
269     AC_DEFINE(HAVE_TANF)
270     AC_DEFINE(HAVE_TANHF)
271     ;;
272   *)
273     AC_MSG_ERROR([No support for this host/target combination.])
274    ;;
275 esac