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