2015-08-24 François Dumont <fdumont@gcc.gnu.org>
[official-gcc.git] / libstdc++-v3 / crossconfig.m4
blob10247f940b55ee77df940044c3889b08b51cfb4c
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   spu-*-elf*)
32     GLIBCXX_CHECK_COMPILER_FEATURES
33     GLIBCXX_CHECK_LINKER_FEATURES
34     GLIBCXX_CHECK_MATH_SUPPORT
35     GLIBCXX_CHECK_STDLIB_SUPPORT
36     AM_ICONV
37     ;;
39   *-aix*)
40     GLIBCXX_CHECK_LINKER_FEATURES
41     GLIBCXX_CHECK_MATH_SUPPORT
42     GLIBCXX_CHECK_STDLIB_SUPPORT
43     AC_DEFINE(_GLIBCXX_USE_RANDOM_TR1)
44     # We don't yet support AIX's TLS ABI.
45     #GCC_CHECK_TLS
46     AM_ICONV
47     ;;
49   *-darwin*)
50     # Darwin versions vary, but the linker should work in a cross environment,
51     # so we just check for all the features here.
52     # Check for available headers.
54     # Don't call GLIBCXX_CHECK_LINKER_FEATURES, Darwin doesn't have a GNU ld
55     GLIBCXX_CHECK_MATH_SUPPORT
56     GLIBCXX_CHECK_STDLIB_SUPPORT
57     ;;
59   *djgpp)
60     # GLIBCXX_CHECK_MATH_SUPPORT
61     AC_DEFINE(HAVE_ISINF)
62     AC_DEFINE(HAVE_ISNAN)
63     AC_DEFINE(HAVE_FINITE)
64     AC_DEFINE(HAVE_SINCOS)
65     AC_DEFINE(HAVE_HYPOT)
66     ;;
68   *-freebsd*)
69     SECTION_FLAGS='-ffunction-sections -fdata-sections'
70     AC_SUBST(SECTION_FLAGS) 
71     GLIBCXX_CHECK_LINKER_FEATURES
72     AC_DEFINE(HAVE_SETENV)
73     AC_DEFINE(HAVE_FINITEF)
74     AC_DEFINE(HAVE_FINITE)
75     AC_DEFINE(HAVE_FREXPF)
76     AC_DEFINE(HAVE_HYPOT)
77     AC_DEFINE(HAVE_HYPOTF)
78     AC_DEFINE(HAVE_ISINF)
79     AC_DEFINE(HAVE_ISNAN)
80     AC_DEFINE(HAVE_ISNANF)
82     AC_DEFINE(HAVE_ACOSF)
83     AC_DEFINE(HAVE_ASINF)
84     AC_DEFINE(HAVE_ATAN2F)
85     AC_DEFINE(HAVE_ATANF)
86     AC_DEFINE(HAVE_CEILF)
87     AC_DEFINE(HAVE_COSF)
88     AC_DEFINE(HAVE_COSHF)
89     AC_DEFINE(HAVE_EXPF)
90     AC_DEFINE(HAVE_FABSF)
91     AC_DEFINE(HAVE_FLOORF)
92     AC_DEFINE(HAVE_FMODF)
93     AC_DEFINE(HAVE_FREXPF)
94     AC_DEFINE(HAVE_LDEXPF)
95     AC_DEFINE(HAVE_LOG10F)
96     AC_DEFINE(HAVE_LOGF)
97     AC_DEFINE(HAVE_MODFF)
98     AC_DEFINE(HAVE_POWF)
99     AC_DEFINE(HAVE_SINF)
100     AC_DEFINE(HAVE_SINHF)
101     AC_DEFINE(HAVE_SQRTF)
102     AC_DEFINE(HAVE_TANF)
103     AC_DEFINE(HAVE_TANHF)
104     if test x"long_double_math_on_this_cpu" = x"yes"; then
105       AC_DEFINE(HAVE_FINITEL)
106       AC_DEFINE(HAVE_ISINFL)
107       AC_DEFINE(HAVE_ISNANL)
108     fi
109     ;;
110   *-hpux*)
111     SECTION_FLAGS='-ffunction-sections -fdata-sections'
112     AC_SUBST(SECTION_FLAGS)
113     GLIBCXX_CHECK_LINKER_FEATURES
115     # GLIBCXX_CHECK_MATH_SUPPORT
116     AC_DEFINE(HAVE_ISNAN)
117     AC_DEFINE(HAVE_HYPOT)
118     AC_DEFINE(HAVE_ACOSF)
119     AC_DEFINE(HAVE_ASINF)
120     AC_DEFINE(HAVE_ATANF)
121     AC_DEFINE(HAVE_COSF)
122     AC_DEFINE(HAVE_COSHF)
123     AC_DEFINE(HAVE_SINF)
124     AC_DEFINE(HAVE_SINHF)
125     AC_DEFINE(HAVE_TANF)
126     AC_DEFINE(HAVE_TANHF)
127     AC_DEFINE(HAVE_EXPF)
128     AC_DEFINE(HAVE_ATAN2F)
129     AC_DEFINE(HAVE_FABSF)
130     AC_DEFINE(HAVE_FMODF)
131     AC_DEFINE(HAVE_FREXPF)
132     AC_DEFINE(HAVE_LOGF)
133     AC_DEFINE(HAVE_LOG10F)
134     AC_DEFINE(HAVE_MODF)
135     AC_DEFINE(HAVE_POWF)
136     AC_DEFINE(HAVE_SQRTF)
138     # GLIBCXX_CHECK_STDLIB_SUPPORT
139     AC_DEFINE(HAVE_STRTOLD)
141     GCC_CHECK_TLS
142     case "$target" in
143       *-hpux10*)
144         AC_DEFINE(HAVE_ISINF)
145         AC_DEFINE(HAVE_ISINFF)
146         AC_DEFINE(HAVE_ISNANF)
147         AC_DEFINE(HAVE_FINITE)
148         AC_DEFINE(HAVE_FINITEF)
149         ;;
150     esac
151     ;;
152   *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu | *-cygwin*)
153     GLIBCXX_CHECK_COMPILER_FEATURES
154     GLIBCXX_CHECK_LINKER_FEATURES
155     GLIBCXX_CHECK_MATH_SUPPORT
156     GLIBCXX_CHECK_STDLIB_SUPPORT
157     AC_DEFINE(_GLIBCXX_USE_RANDOM_TR1)
158     GCC_CHECK_TLS
159     AM_ICONV
160     ;;
161   *-mingw32*)
162     GLIBCXX_CHECK_LINKER_FEATURES
163     GLIBCXX_CHECK_MATH_SUPPORT
164     GLIBCXX_CHECK_STDLIB_SUPPORT
165     ;;
166   *-netbsd*)
167     SECTION_FLAGS='-ffunction-sections -fdata-sections'
168     AC_SUBST(SECTION_FLAGS) 
169     GLIBCXX_CHECK_LINKER_FEATURES
170     AC_DEFINE(HAVE_FINITEF)
171     AC_DEFINE(HAVE_FINITE)
172     AC_DEFINE(HAVE_FREXPF)
173     AC_DEFINE(HAVE_HYPOTF)
174     AC_DEFINE(HAVE_ISINF)
175     AC_DEFINE(HAVE_ISINFF)
176     AC_DEFINE(HAVE_ISNAN)
177     AC_DEFINE(HAVE_ISNANF)
178     if test x"long_double_math_on_this_cpu" = x"yes"; then
179       AC_DEFINE(HAVE_FINITEL)
180       AC_DEFINE(HAVE_ISINFL)
181       AC_DEFINE(HAVE_ISNANL)
182     fi
183     ;;
184   *-qnx6.1* | *-qnx6.2*)
185     SECTION_FLAGS='-ffunction-sections -fdata-sections'
186     AC_SUBST(SECTION_FLAGS) 
187     GLIBCXX_CHECK_LINKER_FEATURES
188     AC_DEFINE(HAVE_COSF)
189     AC_DEFINE(HAVE_COSL)
190     AC_DEFINE(HAVE_COSHF)
191     AC_DEFINE(HAVE_COSHL)
192     AC_DEFINE(HAVE_LOGF)
193     AC_DEFINE(HAVE_LOGL)
194     AC_DEFINE(HAVE_LOG10F)
195     AC_DEFINE(HAVE_LOG10L)
196     AC_DEFINE(HAVE_SINF)
197     AC_DEFINE(HAVE_SINL)
198     AC_DEFINE(HAVE_SINHF)
199     AC_DEFINE(HAVE_SINHL)
200     ;;
201   *-rtems*)
202     GLIBCXX_CHECK_COMPILER_FEATURES
203     GLIBCXX_CHECK_LINKER_FEATURES
204     GLIBCXX_CHECK_MATH_SUPPORT
205     GLIBCXX_CHECK_STDLIB_SUPPORT
206     ;;
207   *-solaris*)
208     GLIBCXX_CHECK_LINKER_FEATURES
209     AC_DEFINE(HAVE_MBSTATE_T)
210     AC_DEFINE(HAVE_FINITE)
211     AC_DEFINE(HAVE_FPCLASS)
212     # All of the dependencies for wide character support are here, so
213     # turn it on. 
214     AC_DEFINE(_GLIBCXX_USE_WCHAR_T) 
215     # These two C99 functions are present only in Solaris >= 10
216     AC_DEFINE(HAVE_STRTOF)
217     AC_DEFINE(HAVE_STRTOLD)
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