annotate libstdc++-v3/linkage.m4 @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 dnl
kono
parents:
diff changeset
2 dnl This file contains macros for testing linkage.
kono
parents:
diff changeset
3 dnl
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 dnl
kono
parents:
diff changeset
6 dnl Check to see if the (math function) argument passed is
kono
parents:
diff changeset
7 dnl declared when using the c++ compiler
kono
parents:
diff changeset
8 dnl ASSUMES argument is a math function with ONE parameter
kono
parents:
diff changeset
9 dnl
kono
parents:
diff changeset
10 dnl GLIBCXX_CHECK_MATH_DECL_1
kono
parents:
diff changeset
11 AC_DEFUN([GLIBCXX_CHECK_MATH_DECL_1], [
kono
parents:
diff changeset
12 AC_MSG_CHECKING([for $1 declaration])
kono
parents:
diff changeset
13 if test x${glibcxx_cv_func_$1_use+set} != xset; then
kono
parents:
diff changeset
14 AC_CACHE_VAL(glibcxx_cv_func_$1_use, [
kono
parents:
diff changeset
15 AC_LANG_SAVE
kono
parents:
diff changeset
16 AC_LANG_CPLUSPLUS
kono
parents:
diff changeset
17 AC_TRY_COMPILE([#include <math.h>
kono
parents:
diff changeset
18 #ifdef HAVE_IEEEFP_H
kono
parents:
diff changeset
19 #include <ieeefp.h>
kono
parents:
diff changeset
20 #endif
kono
parents:
diff changeset
21 ],
kono
parents:
diff changeset
22 [ $1(0);],
kono
parents:
diff changeset
23 [glibcxx_cv_func_$1_use=yes], [glibcxx_cv_func_$1_use=no])
kono
parents:
diff changeset
24 AC_LANG_RESTORE
kono
parents:
diff changeset
25 ])
kono
parents:
diff changeset
26 fi
kono
parents:
diff changeset
27 AC_MSG_RESULT($glibcxx_cv_func_$1_use)
kono
parents:
diff changeset
28 ])
kono
parents:
diff changeset
29
kono
parents:
diff changeset
30
kono
parents:
diff changeset
31 dnl
kono
parents:
diff changeset
32 dnl Define autoheader template for using the underscore functions
kono
parents:
diff changeset
33 dnl For each parameter, create a macro where if func doesn't exist,
kono
parents:
diff changeset
34 dnl but _func does, then it will "#define func _func".
kono
parents:
diff changeset
35 dnl
kono
parents:
diff changeset
36 dnl GLIBCXX_MAYBE_UNDERSCORED_FUNCS
kono
parents:
diff changeset
37 AC_DEFUN([GLIBCXX_MAYBE_UNDERSCORED_FUNCS],
kono
parents:
diff changeset
38 [AC_FOREACH([glibcxx_ufunc], [$1],
kono
parents:
diff changeset
39 [AH_VERBATIM(_[]glibcxx_ufunc,
kono
parents:
diff changeset
40 [#if defined (]AS_TR_CPP(HAVE__[]glibcxx_ufunc)[) && ! defined (]AS_TR_CPP(HAVE_[]glibcxx_ufunc)[)
kono
parents:
diff changeset
41 # define ]AS_TR_CPP(HAVE_[]glibcxx_ufunc)[ 1
kono
parents:
diff changeset
42 # define ]glibcxx_ufunc[ _]glibcxx_ufunc[
kono
parents:
diff changeset
43 #endif])])
kono
parents:
diff changeset
44 ])
kono
parents:
diff changeset
45
kono
parents:
diff changeset
46
kono
parents:
diff changeset
47 dnl
kono
parents:
diff changeset
48 dnl Check to see if the (math function) argument passed is
kono
parents:
diff changeset
49 dnl 1) declared when using the c++ compiler
kono
parents:
diff changeset
50 dnl 2) has "C" linkage
kono
parents:
diff changeset
51 dnl 3) if not, see if 1) and 2) for argument prepended with '_'
kono
parents:
diff changeset
52 dnl
kono
parents:
diff changeset
53 dnl Define HAVE_CARGF etc if "cargf" is declared and links
kono
parents:
diff changeset
54 dnl
kono
parents:
diff changeset
55 dnl argument 1 is name of function to check
kono
parents:
diff changeset
56 dnl
kono
parents:
diff changeset
57 dnl ASSUMES argument is a math function with ONE parameter
kono
parents:
diff changeset
58 dnl
kono
parents:
diff changeset
59 dnl GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1
kono
parents:
diff changeset
60 AC_DEFUN([GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1], [
kono
parents:
diff changeset
61 GLIBCXX_CHECK_MATH_DECL_1($1)
kono
parents:
diff changeset
62 if test x$glibcxx_cv_func_$1_use = x"yes"; then
kono
parents:
diff changeset
63 AC_CHECK_FUNCS($1)
kono
parents:
diff changeset
64 else
kono
parents:
diff changeset
65 GLIBCXX_CHECK_MATH_DECL_1(_$1)
kono
parents:
diff changeset
66 if test x$glibcxx_cv_func__$1_use = x"yes"; then
kono
parents:
diff changeset
67 AC_CHECK_FUNCS(_$1)
kono
parents:
diff changeset
68 fi
kono
parents:
diff changeset
69 fi
kono
parents:
diff changeset
70 GLIBCXX_MAYBE_UNDERSCORED_FUNCS($1)
kono
parents:
diff changeset
71 ])
kono
parents:
diff changeset
72
kono
parents:
diff changeset
73
kono
parents:
diff changeset
74 dnl
kono
parents:
diff changeset
75 dnl Like GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1, but does a bunch of
kono
parents:
diff changeset
76 dnl of functions at once. It's an all-or-nothing check -- either
kono
parents:
diff changeset
77 dnl HAVE_XYZ is defined for each of the functions, or for none of them.
kono
parents:
diff changeset
78 dnl Doing it this way saves significant configure time.
kono
parents:
diff changeset
79 AC_DEFUN([GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1], [
kono
parents:
diff changeset
80 define([funclist],patsubst($3,\(\w+\)\(\W*\),\1 ))dnl
kono
parents:
diff changeset
81 AC_MSG_CHECKING([for $1 functions])
kono
parents:
diff changeset
82 AC_CACHE_VAL(glibcxx_cv_func_$2_use, [
kono
parents:
diff changeset
83 AC_LANG_SAVE
kono
parents:
diff changeset
84 AC_LANG_CPLUSPLUS
kono
parents:
diff changeset
85 AC_TRY_COMPILE([#include <math.h>],
kono
parents:
diff changeset
86 patsubst(funclist,[\w+],[\& (0);]),
kono
parents:
diff changeset
87 [glibcxx_cv_func_$2_use=yes],
kono
parents:
diff changeset
88 [glibcxx_cv_func_$2_use=no])
kono
parents:
diff changeset
89 AC_LANG_RESTORE])
kono
parents:
diff changeset
90 AC_MSG_RESULT($glibcxx_cv_func_$2_use)
kono
parents:
diff changeset
91 if test x$glibcxx_cv_func_$2_use = x"yes"; then
kono
parents:
diff changeset
92 AC_CHECK_FUNCS(funclist)
kono
parents:
diff changeset
93 else
kono
parents:
diff changeset
94 AC_MSG_CHECKING([for _$1 functions])
kono
parents:
diff changeset
95 AC_CACHE_VAL(glibcxx_cv_func__$2_use, [
kono
parents:
diff changeset
96 AC_LANG_SAVE
kono
parents:
diff changeset
97 AC_LANG_CPLUSPLUS
kono
parents:
diff changeset
98 AC_TRY_COMPILE([#include <math.h>],
kono
parents:
diff changeset
99 patsubst(funclist,[\w+],[_\& (0);]),
kono
parents:
diff changeset
100 [glibcxx_cv_func__$2_use=yes],
kono
parents:
diff changeset
101 [glibcxx_cv_func__$2_use=no])
kono
parents:
diff changeset
102 AC_LANG_RESTORE])
kono
parents:
diff changeset
103 AC_MSG_RESULT($glibcxx_cv_func__$2_use)
kono
parents:
diff changeset
104 if test x$glibcxx_cv_func__$2_use = x"yes"; then
kono
parents:
diff changeset
105 AC_CHECK_FUNCS(patsubst(funclist,[\w+],[_\&]))
kono
parents:
diff changeset
106 fi
kono
parents:
diff changeset
107 fi
kono
parents:
diff changeset
108 GLIBCXX_MAYBE_UNDERSCORED_FUNCS(funclist)
kono
parents:
diff changeset
109 undefine([funclist])
kono
parents:
diff changeset
110 ])
kono
parents:
diff changeset
111
kono
parents:
diff changeset
112 dnl
kono
parents:
diff changeset
113 dnl Check to see if the (math function) argument passed is
kono
parents:
diff changeset
114 dnl declared when using the c++ compiler
kono
parents:
diff changeset
115 dnl ASSUMES argument is a math function with TWO parameters
kono
parents:
diff changeset
116 dnl
kono
parents:
diff changeset
117 dnl GLIBCXX_CHECK_MATH_DECL_2
kono
parents:
diff changeset
118 AC_DEFUN([GLIBCXX_CHECK_MATH_DECL_2], [
kono
parents:
diff changeset
119 AC_MSG_CHECKING([for $1 declaration])
kono
parents:
diff changeset
120 if test x${glibcxx_cv_func_$1_use+set} != xset; then
kono
parents:
diff changeset
121 AC_CACHE_VAL(glibcxx_cv_func_$1_use, [
kono
parents:
diff changeset
122 AC_LANG_SAVE
kono
parents:
diff changeset
123 AC_LANG_CPLUSPLUS
kono
parents:
diff changeset
124 AC_TRY_COMPILE([#include <math.h>],
kono
parents:
diff changeset
125 [ $1(0, 0);],
kono
parents:
diff changeset
126 [glibcxx_cv_func_$1_use=yes], [glibcxx_cv_func_$1_use=no])
kono
parents:
diff changeset
127 AC_LANG_RESTORE
kono
parents:
diff changeset
128 ])
kono
parents:
diff changeset
129 fi
kono
parents:
diff changeset
130 AC_MSG_RESULT($glibcxx_cv_func_$1_use)
kono
parents:
diff changeset
131 ])
kono
parents:
diff changeset
132
kono
parents:
diff changeset
133 dnl
kono
parents:
diff changeset
134 dnl Check to see if the (math function) argument passed is
kono
parents:
diff changeset
135 dnl 1) declared when using the c++ compiler
kono
parents:
diff changeset
136 dnl 2) has "C" linkage
kono
parents:
diff changeset
137 dnl
kono
parents:
diff changeset
138 dnl Define HAVE_CARGF etc if "cargf" is declared and links
kono
parents:
diff changeset
139 dnl
kono
parents:
diff changeset
140 dnl argument 1 is name of function to check
kono
parents:
diff changeset
141 dnl
kono
parents:
diff changeset
142 dnl ASSUMES argument is a math function with TWO parameters
kono
parents:
diff changeset
143 dnl
kono
parents:
diff changeset
144 dnl GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2
kono
parents:
diff changeset
145 AC_DEFUN([GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2], [
kono
parents:
diff changeset
146 GLIBCXX_CHECK_MATH_DECL_2($1)
kono
parents:
diff changeset
147 if test x$glibcxx_cv_func_$1_use = x"yes"; then
kono
parents:
diff changeset
148 AC_CHECK_FUNCS($1)
kono
parents:
diff changeset
149 else
kono
parents:
diff changeset
150 GLIBCXX_CHECK_MATH_DECL_2(_$1)
kono
parents:
diff changeset
151 if test x$glibcxx_cv_func__$1_use = x"yes"; then
kono
parents:
diff changeset
152 AC_CHECK_FUNCS(_$1)
kono
parents:
diff changeset
153 fi
kono
parents:
diff changeset
154 fi
kono
parents:
diff changeset
155 GLIBCXX_MAYBE_UNDERSCORED_FUNCS($1)
kono
parents:
diff changeset
156 ])
kono
parents:
diff changeset
157
kono
parents:
diff changeset
158
kono
parents:
diff changeset
159 dnl
kono
parents:
diff changeset
160 dnl Check to see if the (math function) argument passed is
kono
parents:
diff changeset
161 dnl declared when using the c++ compiler
kono
parents:
diff changeset
162 dnl ASSUMES argument is a math function with THREE parameters
kono
parents:
diff changeset
163 dnl
kono
parents:
diff changeset
164 dnl GLIBCXX_CHECK_MATH_DECL_3
kono
parents:
diff changeset
165 AC_DEFUN([GLIBCXX_CHECK_MATH_DECL_3], [
kono
parents:
diff changeset
166 AC_MSG_CHECKING([for $1 declaration])
kono
parents:
diff changeset
167 if test x${glibcxx_cv_func_$1_use+set} != xset; then
kono
parents:
diff changeset
168 AC_CACHE_VAL(glibcxx_cv_func_$1_use, [
kono
parents:
diff changeset
169 AC_LANG_SAVE
kono
parents:
diff changeset
170 AC_LANG_CPLUSPLUS
kono
parents:
diff changeset
171 AC_TRY_COMPILE([#include <math.h>],
kono
parents:
diff changeset
172 [ $1(0, 0, 0);],
kono
parents:
diff changeset
173 [glibcxx_cv_func_$1_use=yes], [glibcxx_cv_func_$1_use=no])
kono
parents:
diff changeset
174 AC_LANG_RESTORE
kono
parents:
diff changeset
175 ])
kono
parents:
diff changeset
176 fi
kono
parents:
diff changeset
177 AC_MSG_RESULT($glibcxx_cv_func_$1_use)
kono
parents:
diff changeset
178 ])
kono
parents:
diff changeset
179
kono
parents:
diff changeset
180 dnl
kono
parents:
diff changeset
181 dnl Check to see if the (math function) argument passed is
kono
parents:
diff changeset
182 dnl 1) declared when using the c++ compiler
kono
parents:
diff changeset
183 dnl 2) has "C" linkage
kono
parents:
diff changeset
184 dnl
kono
parents:
diff changeset
185 dnl Define HAVE_CARGF etc if "cargf" is declared and links
kono
parents:
diff changeset
186 dnl
kono
parents:
diff changeset
187 dnl argument 1 is name of function to check
kono
parents:
diff changeset
188 dnl
kono
parents:
diff changeset
189 dnl ASSUMES argument is a math function with THREE parameters
kono
parents:
diff changeset
190 dnl
kono
parents:
diff changeset
191 dnl GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3
kono
parents:
diff changeset
192 AC_DEFUN([GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3], [
kono
parents:
diff changeset
193 GLIBCXX_CHECK_MATH_DECL_3($1)
kono
parents:
diff changeset
194 if test x$glibcxx_cv_func_$1_use = x"yes"; then
kono
parents:
diff changeset
195 AC_CHECK_FUNCS($1)
kono
parents:
diff changeset
196 else
kono
parents:
diff changeset
197 GLIBCXX_CHECK_MATH_DECL_3(_$1)
kono
parents:
diff changeset
198 if test x$glibcxx_cv_func__$1_use = x"yes"; then
kono
parents:
diff changeset
199 AC_CHECK_FUNCS(_$1)
kono
parents:
diff changeset
200 fi
kono
parents:
diff changeset
201 fi
kono
parents:
diff changeset
202 GLIBCXX_MAYBE_UNDERSCORED_FUNCS($1)
kono
parents:
diff changeset
203 ])
kono
parents:
diff changeset
204
kono
parents:
diff changeset
205
kono
parents:
diff changeset
206 dnl
kono
parents:
diff changeset
207 dnl Check to see if the (stdlib function) argument passed is
kono
parents:
diff changeset
208 dnl 1) declared when using the c++ compiler
kono
parents:
diff changeset
209 dnl 2) has "C" linkage
kono
parents:
diff changeset
210 dnl
kono
parents:
diff changeset
211 dnl argument 1 is name of function to check
kono
parents:
diff changeset
212 dnl
kono
parents:
diff changeset
213 dnl ASSUMES argument is a stdlib function without parameters
kono
parents:
diff changeset
214 dnl
kono
parents:
diff changeset
215 dnl GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_0
kono
parents:
diff changeset
216 AC_DEFUN([GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_0], [
kono
parents:
diff changeset
217 AC_MSG_CHECKING([for $1 declaration])
kono
parents:
diff changeset
218 if test x${glibcxx_cv_func_$1_use+set} != xset; then
kono
parents:
diff changeset
219 AC_CACHE_VAL(glibcxx_cv_func_$1_use, [
kono
parents:
diff changeset
220 AC_LANG_SAVE
kono
parents:
diff changeset
221 AC_LANG_CPLUSPLUS
kono
parents:
diff changeset
222 AC_TRY_COMPILE([#include <stdlib.h>],
kono
parents:
diff changeset
223 [ $1();],
kono
parents:
diff changeset
224 [glibcxx_cv_func_$1_use=yes], [glibcxx_cv_func_$1_use=no])
kono
parents:
diff changeset
225 AC_LANG_RESTORE
kono
parents:
diff changeset
226 ])
kono
parents:
diff changeset
227 fi
kono
parents:
diff changeset
228 AC_MSG_RESULT($glibcxx_cv_func_$1_use)
kono
parents:
diff changeset
229 if test x$glibcxx_cv_func_$1_use = x"yes"; then
kono
parents:
diff changeset
230 AC_CHECK_FUNCS($1)
kono
parents:
diff changeset
231 fi
kono
parents:
diff changeset
232 ])
kono
parents:
diff changeset
233
kono
parents:
diff changeset
234
kono
parents:
diff changeset
235 dnl
kono
parents:
diff changeset
236 dnl Check to see if the (stdlib function) argument passed is
kono
parents:
diff changeset
237 dnl 1) declared when using the c++ compiler
kono
parents:
diff changeset
238 dnl 2) has "C" linkage
kono
parents:
diff changeset
239 dnl
kono
parents:
diff changeset
240 dnl argument 1 is name of function to check
kono
parents:
diff changeset
241 dnl
kono
parents:
diff changeset
242 dnl ASSUMES argument is a stdlib function with ONE parameter
kono
parents:
diff changeset
243 dnl
kono
parents:
diff changeset
244 dnl GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_1
kono
parents:
diff changeset
245 AC_DEFUN([GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_1], [
kono
parents:
diff changeset
246 AC_MSG_CHECKING([for $1 declaration])
kono
parents:
diff changeset
247 if test x${glibcxx_cv_func_$1_use+set} != xset; then
kono
parents:
diff changeset
248 AC_CACHE_VAL(glibcxx_cv_func_$1_use, [
kono
parents:
diff changeset
249 AC_LANG_SAVE
kono
parents:
diff changeset
250 AC_LANG_CPLUSPLUS
kono
parents:
diff changeset
251 AC_TRY_COMPILE([#include <stdlib.h>],
kono
parents:
diff changeset
252 [ $1(0);],
kono
parents:
diff changeset
253 [glibcxx_cv_func_$1_use=yes], [glibcxx_cv_func_$1_use=no])
kono
parents:
diff changeset
254 AC_LANG_RESTORE
kono
parents:
diff changeset
255 ])
kono
parents:
diff changeset
256 fi
kono
parents:
diff changeset
257 AC_MSG_RESULT($glibcxx_cv_func_$1_use)
kono
parents:
diff changeset
258 if test x$glibcxx_cv_func_$1_use = x"yes"; then
kono
parents:
diff changeset
259 AC_CHECK_FUNCS($1)
kono
parents:
diff changeset
260 fi
kono
parents:
diff changeset
261 ])
kono
parents:
diff changeset
262
kono
parents:
diff changeset
263
kono
parents:
diff changeset
264 dnl
kono
parents:
diff changeset
265 dnl Check to see if the (stdlib function) argument passed is
kono
parents:
diff changeset
266 dnl 1) declared when using the c++ compiler
kono
parents:
diff changeset
267 dnl 2) has "C" linkage
kono
parents:
diff changeset
268 dnl
kono
parents:
diff changeset
269 dnl argument 1 is name of function to check
kono
parents:
diff changeset
270 dnl
kono
parents:
diff changeset
271 dnl ASSUMES argument is a stdlib function with TWO parameters
kono
parents:
diff changeset
272 dnl
kono
parents:
diff changeset
273 dnl GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2
kono
parents:
diff changeset
274 AC_DEFUN([GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2], [
kono
parents:
diff changeset
275 AC_MSG_CHECKING([for $1 declaration])
kono
parents:
diff changeset
276 if test x${glibcxx_cv_func_$1_use+set} != xset; then
kono
parents:
diff changeset
277 AC_CACHE_VAL(glibcxx_cv_func_$1_use, [
kono
parents:
diff changeset
278 AC_LANG_SAVE
kono
parents:
diff changeset
279 AC_LANG_CPLUSPLUS
kono
parents:
diff changeset
280 AC_TRY_COMPILE([#include <stdlib.h>],
kono
parents:
diff changeset
281 [ $1(0, 0);],
kono
parents:
diff changeset
282 [glibcxx_cv_func_$1_use=yes], [glibcxx_cv_func_$1_use=no])
kono
parents:
diff changeset
283 AC_LANG_RESTORE
kono
parents:
diff changeset
284 ])
kono
parents:
diff changeset
285 fi
kono
parents:
diff changeset
286 AC_MSG_RESULT($glibcxx_cv_func_$1_use)
kono
parents:
diff changeset
287 if test x$glibcxx_cv_func_$1_use = x"yes"; then
kono
parents:
diff changeset
288 AC_CHECK_FUNCS($1)
kono
parents:
diff changeset
289 fi
kono
parents:
diff changeset
290 GLIBCXX_MAYBE_UNDERSCORED_FUNCS($1)
kono
parents:
diff changeset
291 ])
kono
parents:
diff changeset
292
kono
parents:
diff changeset
293
kono
parents:
diff changeset
294 dnl
kono
parents:
diff changeset
295 dnl Check to see if the (stdlib function) argument passed is
kono
parents:
diff changeset
296 dnl 1) declared when using the c++ compiler
kono
parents:
diff changeset
297 dnl 2) has "C" linkage
kono
parents:
diff changeset
298 dnl
kono
parents:
diff changeset
299 dnl argument 1 is name of function to check
kono
parents:
diff changeset
300 dnl
kono
parents:
diff changeset
301 dnl ASSUMES argument is a stdlib function with THREE parameters
kono
parents:
diff changeset
302 dnl
kono
parents:
diff changeset
303 dnl GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_3
kono
parents:
diff changeset
304 AC_DEFUN([GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_3], [
kono
parents:
diff changeset
305 AC_MSG_CHECKING([for $1 declaration])
kono
parents:
diff changeset
306 if test x${glibcxx_cv_func_$1_use+set} != xset; then
kono
parents:
diff changeset
307 AC_CACHE_VAL(glibcxx_cv_func_$1_use, [
kono
parents:
diff changeset
308 AC_LANG_SAVE
kono
parents:
diff changeset
309 AC_LANG_CPLUSPLUS
kono
parents:
diff changeset
310 AC_TRY_COMPILE([#include <stdlib.h>],
kono
parents:
diff changeset
311 [ $1(0, 0, 0);],
kono
parents:
diff changeset
312 [glibcxx_cv_func_$1_use=yes], [glibcxx_cv_func_$1_use=no])
kono
parents:
diff changeset
313 AC_LANG_RESTORE
kono
parents:
diff changeset
314 ])
kono
parents:
diff changeset
315 fi
kono
parents:
diff changeset
316 AC_MSG_RESULT($glibcxx_cv_func_$1_use)
kono
parents:
diff changeset
317 if test x$glibcxx_cv_func_$1_use = x"yes"; then
kono
parents:
diff changeset
318 AC_CHECK_FUNCS($1)
kono
parents:
diff changeset
319 fi
kono
parents:
diff changeset
320 ])
kono
parents:
diff changeset
321
kono
parents:
diff changeset
322 dnl
kono
parents:
diff changeset
323 dnl Check to see what the underlying c library is like
kono
parents:
diff changeset
324 dnl These checks need to do two things:
kono
parents:
diff changeset
325 dnl 1) make sure the name is declared when using the c++ compiler
kono
parents:
diff changeset
326 dnl 2) make sure the name has "C" linkage
kono
parents:
diff changeset
327 dnl This might seem like overkill but experience has shown that it's not...
kono
parents:
diff changeset
328 dnl
kono
parents:
diff changeset
329 dnl Define HAVE_STRTOLD if "strtold" is declared and links
kono
parents:
diff changeset
330 dnl Define HAVE_STRTOF if "strtof" is declared and links
kono
parents:
diff changeset
331 dnl
kono
parents:
diff changeset
332 dnl GLIBCXX_CHECK_STDLIB_SUPPORT
kono
parents:
diff changeset
333 AC_DEFUN([GLIBCXX_CHECK_STDLIB_SUPPORT], [
kono
parents:
diff changeset
334 ac_test_CXXFLAGS="${CXXFLAGS+set}"
kono
parents:
diff changeset
335 ac_save_CXXFLAGS="$CXXFLAGS"
kono
parents:
diff changeset
336 CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
kono
parents:
diff changeset
337
kono
parents:
diff changeset
338 GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_1(at_quick_exit)
kono
parents:
diff changeset
339 GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_1(quick_exit)
kono
parents:
diff changeset
340 GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtold)
kono
parents:
diff changeset
341 GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtof)
kono
parents:
diff changeset
342
kono
parents:
diff changeset
343 CXXFLAGS="$ac_save_CXXFLAGS"
kono
parents:
diff changeset
344 ])
kono
parents:
diff changeset
345
kono
parents:
diff changeset
346 dnl
kono
parents:
diff changeset
347 dnl Check to see what the underlying c library or math library is like.
kono
parents:
diff changeset
348 dnl These checks need to do two things:
kono
parents:
diff changeset
349 dnl 1) make sure the name is declared when using the c++ compiler
kono
parents:
diff changeset
350 dnl 2) make sure the name has "C" linkage
kono
parents:
diff changeset
351 dnl This might seem like overkill but experience has shown that it's not...
kono
parents:
diff changeset
352 dnl
kono
parents:
diff changeset
353 dnl Define HAVE_CARGF etc if "cargf" is found.
kono
parents:
diff changeset
354 dnl
kono
parents:
diff changeset
355 dnl GLIBCXX_CHECK_MATH_SUPPORT
kono
parents:
diff changeset
356 AC_DEFUN([GLIBCXX_CHECK_MATH_SUPPORT], [
kono
parents:
diff changeset
357 ac_test_CXXFLAGS="${CXXFLAGS+set}"
kono
parents:
diff changeset
358 ac_save_CXXFLAGS="$CXXFLAGS"
kono
parents:
diff changeset
359 CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
kono
parents:
diff changeset
360
kono
parents:
diff changeset
361 dnl Check libm
kono
parents:
diff changeset
362 AC_CHECK_LIB(m, sin, libm="-lm")
kono
parents:
diff changeset
363 ac_save_LIBS="$LIBS"
kono
parents:
diff changeset
364 LIBS="$LIBS $libm"
kono
parents:
diff changeset
365
kono
parents:
diff changeset
366 dnl Check to see if certain C math functions exist.
kono
parents:
diff changeset
367 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(isinf)
kono
parents:
diff changeset
368 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(isnan)
kono
parents:
diff changeset
369 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(finite)
kono
parents:
diff changeset
370 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3(sincos)
kono
parents:
diff changeset
371 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(fpclass)
kono
parents:
diff changeset
372 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(qfpclass)
kono
parents:
diff changeset
373 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(hypot)
kono
parents:
diff changeset
374
kono
parents:
diff changeset
375 dnl Check to see if basic C math functions have float versions.
kono
parents:
diff changeset
376 GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1(float trig,
kono
parents:
diff changeset
377 float_trig,
kono
parents:
diff changeset
378 acosf asinf atanf \
kono
parents:
diff changeset
379 cosf sinf tanf \
kono
parents:
diff changeset
380 coshf sinhf tanhf)
kono
parents:
diff changeset
381 GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1(float round,
kono
parents:
diff changeset
382 float_round,
kono
parents:
diff changeset
383 ceilf floorf)
kono
parents:
diff changeset
384 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(expf)
kono
parents:
diff changeset
385 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(isnanf)
kono
parents:
diff changeset
386 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(isinff)
kono
parents:
diff changeset
387 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(atan2f)
kono
parents:
diff changeset
388 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(fabsf)
kono
parents:
diff changeset
389 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(fmodf)
kono
parents:
diff changeset
390 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(frexpf)
kono
parents:
diff changeset
391 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(hypotf)
kono
parents:
diff changeset
392 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(ldexpf)
kono
parents:
diff changeset
393 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(logf)
kono
parents:
diff changeset
394 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(log10f)
kono
parents:
diff changeset
395 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(modff)
kono
parents:
diff changeset
396 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(modf)
kono
parents:
diff changeset
397 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(powf)
kono
parents:
diff changeset
398 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(sqrtf)
kono
parents:
diff changeset
399 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3(sincosf)
kono
parents:
diff changeset
400 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(finitef)
kono
parents:
diff changeset
401
kono
parents:
diff changeset
402 dnl Check to see if basic C math functions have long double versions.
kono
parents:
diff changeset
403 GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1(long double trig,
kono
parents:
diff changeset
404 long_double_trig,
kono
parents:
diff changeset
405 acosl asinl atanl \
kono
parents:
diff changeset
406 cosl sinl tanl \
kono
parents:
diff changeset
407 coshl sinhl tanhl)
kono
parents:
diff changeset
408 GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1(long double round,
kono
parents:
diff changeset
409 long_double_round,
kono
parents:
diff changeset
410 ceill floorl)
kono
parents:
diff changeset
411 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(isnanl)
kono
parents:
diff changeset
412 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(isinfl)
kono
parents:
diff changeset
413 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(atan2l)
kono
parents:
diff changeset
414 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(expl)
kono
parents:
diff changeset
415 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(fabsl)
kono
parents:
diff changeset
416 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(fmodl)
kono
parents:
diff changeset
417 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(frexpl)
kono
parents:
diff changeset
418 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(hypotl)
kono
parents:
diff changeset
419 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(ldexpl)
kono
parents:
diff changeset
420 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(logl)
kono
parents:
diff changeset
421 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(log10l)
kono
parents:
diff changeset
422 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(modfl)
kono
parents:
diff changeset
423 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(powl)
kono
parents:
diff changeset
424 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(sqrtl)
kono
parents:
diff changeset
425 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3(sincosl)
kono
parents:
diff changeset
426 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(finitel)
kono
parents:
diff changeset
427
kono
parents:
diff changeset
428 LIBS="$ac_save_LIBS"
kono
parents:
diff changeset
429 CXXFLAGS="$ac_save_CXXFLAGS"
kono
parents:
diff changeset
430 ])