]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/aclocal.m4
configure.in: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
[thirdparty/gcc.git] / gcc / aclocal.m4
1 sinclude(../config/acx.m4)
2 sinclude(../config/accross.m4)
3 sinclude(../config/gettext.m4)
4 sinclude(../config/progtest.m4)
5
6 dnl See if stdbool.h properly defines bool and true/false.
7 AC_DEFUN([gcc_AC_HEADER_STDBOOL],
8 [AC_CACHE_CHECK([for working stdbool.h],
9 ac_cv_header_stdbool_h,
10 [AC_TRY_COMPILE([#include <stdbool.h>],
11 [bool foo = false;],
12 ac_cv_header_stdbool_h=yes, ac_cv_header_stdbool_h=no)])
13 if test $ac_cv_header_stdbool_h = yes; then
14 AC_DEFINE(HAVE_STDBOOL_H, 1,
15 [Define if you have a working <stdbool.h> header file.])
16 fi
17 ])
18
19 dnl See whether we can include both string.h and strings.h.
20 AC_DEFUN([gcc_AC_HEADER_STRING],
21 [AC_CACHE_CHECK([whether string.h and strings.h may both be included],
22 gcc_cv_header_string,
23 [AC_TRY_COMPILE([#include <string.h>
24 #include <strings.h>], , gcc_cv_header_string=yes, gcc_cv_header_string=no)])
25 if test $gcc_cv_header_string = yes; then
26 AC_DEFINE(STRING_WITH_STRINGS, 1, [Define if you can safely include both <string.h> and <strings.h>.])
27 fi
28 ])
29
30 dnl See whether we need a declaration for a function.
31 dnl The result is highly dependent on the INCLUDES passed in, so make sure
32 dnl to use a different cache variable name in this macro if it is invoked
33 dnl in a different context somewhere else.
34 dnl gcc_AC_CHECK_DECL(SYMBOL,
35 dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, INCLUDES]]])
36 AC_DEFUN([gcc_AC_CHECK_DECL],
37 [AC_MSG_CHECKING([whether $1 is declared])
38 AC_CACHE_VAL(gcc_cv_have_decl_$1,
39 [AC_TRY_COMPILE([$4],
40 [#ifndef $1
41 char *(*pfn) = (char *(*)) $1 ;
42 #endif], eval "gcc_cv_have_decl_$1=yes", eval "gcc_cv_have_decl_$1=no")])
43 if eval "test \"`echo '$gcc_cv_have_decl_'$1`\" = yes"; then
44 AC_MSG_RESULT(yes) ; ifelse([$2], , :, [$2])
45 else
46 AC_MSG_RESULT(no) ; ifelse([$3], , :, [$3])
47 fi
48 ])dnl
49
50 dnl Check multiple functions to see whether each needs a declaration.
51 dnl Arrange to define HAVE_DECL_<FUNCTION> to 0 or 1 as appropriate.
52 dnl gcc_AC_CHECK_DECLS(SYMBOLS,
53 dnl [ACTION-IF-NEEDED [, ACTION-IF-NOT-NEEDED [, INCLUDES]]])
54 AC_DEFUN([gcc_AC_CHECK_DECLS],
55 [for ac_func in $1
56 do
57 changequote(, )dnl
58 ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
59 changequote([, ])dnl
60 gcc_AC_CHECK_DECL($ac_func,
61 [AC_DEFINE_UNQUOTED($ac_tr_decl, 1) $2],
62 [AC_DEFINE_UNQUOTED($ac_tr_decl, 0) $3],
63 dnl It is possible that the include files passed in here are local headers
64 dnl which supply a backup declaration for the relevant prototype based on
65 dnl the definition of (or lack of) the HAVE_DECL_ macro. If so, this test
66 dnl will always return success. E.g. see libiberty.h's handling of
67 dnl `basename'. To avoid this, we define the relevant HAVE_DECL_ macro to
68 dnl 1 so that any local headers used do not provide their own prototype
69 dnl during this test.
70 #undef $ac_tr_decl
71 #define $ac_tr_decl 1
72 $4
73 )
74 done
75 dnl Automatically generate config.h entries via autoheader.
76 if test x = y ; then
77 patsubst(translit([$1], [a-z], [A-Z]), [\w+],
78 [AC_DEFINE([HAVE_DECL_\&], 1,
79 [Define to 1 if we found this declaration otherwise define to 0.])])dnl
80 fi
81 ])
82
83 dnl 'make compare' can be significantly faster, if cmp itself can
84 dnl skip bytes instead of using tail. The test being performed is
85 dnl "if cmp --ignore-initial=2 t1 t2 && ! cmp --ignore-initial=1 t1 t2"
86 dnl but we need to sink errors and handle broken shells. We also test
87 dnl for the parameter format "cmp file1 file2 skip1 skip2" which is
88 dnl accepted by cmp on some systems.
89 AC_DEFUN([gcc_AC_PROG_CMP_IGNORE_INITIAL],
90 [AC_CACHE_CHECK([for cmp's capabilities], gcc_cv_prog_cmp_skip,
91 [ echo abfoo >t1
92 echo cdfoo >t2
93 gcc_cv_prog_cmp_skip=slowcompare
94 if cmp --ignore-initial=2 t1 t2 > /dev/null 2>&1; then
95 if cmp --ignore-initial=1 t1 t2 > /dev/null 2>&1; then
96 :
97 else
98 gcc_cv_prog_cmp_skip=gnucompare
99 fi
100 fi
101 if test $gcc_cv_prog_cmp_skip = slowcompare ; then
102 if cmp t1 t2 2 2 > /dev/null 2>&1; then
103 if cmp t1 t2 1 1 > /dev/null 2>&1; then
104 :
105 else
106 gcc_cv_prog_cmp_skip=fastcompare
107 fi
108 fi
109 fi
110 rm t1 t2
111 ])
112 make_compare_target=$gcc_cv_prog_cmp_skip
113 AC_SUBST(make_compare_target)
114 ])
115
116 dnl See if the printf functions in libc support %p in format strings.
117 AC_DEFUN([gcc_AC_FUNC_PRINTF_PTR],
118 [AC_CACHE_CHECK(whether the printf functions support %p,
119 gcc_cv_func_printf_ptr,
120 [AC_TRY_RUN([#include <stdio.h>
121
122 int main()
123 {
124 char buf[64];
125 char *p = buf, *q = NULL;
126 sprintf(buf, "%p", p);
127 sscanf(buf, "%p", &q);
128 return (p != q);
129 }], gcc_cv_func_printf_ptr=yes, gcc_cv_func_printf_ptr=no,
130 gcc_cv_func_printf_ptr=no)
131 rm -f core core.* *.core])
132 if test $gcc_cv_func_printf_ptr = yes ; then
133 AC_DEFINE(HAVE_PRINTF_PTR, 1, [Define if printf supports "%p".])
134 fi
135 ])
136
137 dnl See if symbolic links work and if not, try to substitute either hard links or simple copy.
138 AC_DEFUN([gcc_AC_PROG_LN_S],
139 [AC_MSG_CHECKING(whether ln -s works)
140 AC_CACHE_VAL(gcc_cv_prog_LN_S,
141 [rm -f conftestdata_t
142 echo >conftestdata_f
143 if ln -s conftestdata_f conftestdata_t 2>/dev/null
144 then
145 gcc_cv_prog_LN_S="ln -s"
146 else
147 if ln conftestdata_f conftestdata_t 2>/dev/null
148 then
149 gcc_cv_prog_LN_S=ln
150 else
151 gcc_cv_prog_LN_S=cp
152 fi
153 fi
154 rm -f conftestdata_f conftestdata_t
155 ])dnl
156 LN_S="$gcc_cv_prog_LN_S"
157 if test "$gcc_cv_prog_LN_S" = "ln -s"; then
158 AC_MSG_RESULT(yes)
159 else
160 if test "$gcc_cv_prog_LN_S" = "ln"; then
161 AC_MSG_RESULT([no, using ln])
162 else
163 AC_MSG_RESULT([no, and neither does ln, so using cp])
164 fi
165 fi
166 AC_SUBST(LN_S)dnl
167 ])
168
169 dnl See if hard links work and if not, try to substitute either symbolic links or simple copy.
170 AC_DEFUN([gcc_AC_PROG_LN],
171 [AC_MSG_CHECKING(whether ln works)
172 AC_CACHE_VAL(gcc_cv_prog_LN,
173 [rm -f conftestdata_t
174 echo >conftestdata_f
175 if ln conftestdata_f conftestdata_t 2>/dev/null
176 then
177 gcc_cv_prog_LN="ln"
178 else
179 if ln -s conftestdata_f conftestdata_t 2>/dev/null
180 then
181 gcc_cv_prog_LN="ln -s"
182 else
183 gcc_cv_prog_LN=cp
184 fi
185 fi
186 rm -f conftestdata_f conftestdata_t
187 ])dnl
188 LN="$gcc_cv_prog_LN"
189 if test "$gcc_cv_prog_LN" = "ln"; then
190 AC_MSG_RESULT(yes)
191 else
192 if test "$gcc_cv_prog_LN" = "ln -s"; then
193 AC_MSG_RESULT([no, using ln -s])
194 else
195 AC_MSG_RESULT([no, and neither does ln -s, so using cp])
196 fi
197 fi
198 AC_SUBST(LN)dnl
199 ])
200
201 dnl Check whether _Bool is built-in.
202 AC_DEFUN([gcc_AC_C__BOOL],
203 [AC_CACHE_CHECK(for built-in _Bool, gcc_cv_c__bool,
204 [AC_TRY_COMPILE(,
205 [_Bool foo;],
206 gcc_cv_c__bool=yes, gcc_cv_c__bool=no)
207 ])
208 if test $gcc_cv_c__bool = yes; then
209 AC_DEFINE(HAVE__BOOL, 1, [Define if the \`_Bool' type is built-in.])
210 fi
211 ])
212
213 dnl Define MKDIR_TAKES_ONE_ARG if mkdir accepts only one argument instead
214 dnl of the usual 2.
215 AC_DEFUN([gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG],
216 [AC_CACHE_CHECK([if mkdir takes one argument], gcc_cv_mkdir_takes_one_arg,
217 [AC_TRY_COMPILE([
218 #include <sys/types.h>
219 #ifdef HAVE_SYS_STAT_H
220 # include <sys/stat.h>
221 #endif
222 #ifdef HAVE_UNISTD_H
223 # include <unistd.h>
224 #endif
225 #ifdef HAVE_DIRECT_H
226 # include <direct.h>
227 #endif], [mkdir ("foo", 0);],
228 gcc_cv_mkdir_takes_one_arg=no, gcc_cv_mkdir_takes_one_arg=yes)])
229 if test $gcc_cv_mkdir_takes_one_arg = yes ; then
230 AC_DEFINE(MKDIR_TAKES_ONE_ARG, 1, [Define if host mkdir takes a single argument.])
231 fi
232 ])
233
234 AC_DEFUN([gcc_AC_PROG_INSTALL],
235 [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
236 # Find a good install program. We prefer a C program (faster),
237 # so one script is as good as another. But avoid the broken or
238 # incompatible versions:
239 # SysV /etc/install, /usr/sbin/install
240 # SunOS /usr/etc/install
241 # IRIX /sbin/install
242 # AIX /bin/install
243 # AFS /usr/afsws/bin/install, which mishandles nonexistent args
244 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
245 # ./install, which can be erroneously created by make from ./install.sh.
246 AC_MSG_CHECKING(for a BSD compatible install)
247 if test -z "$INSTALL"; then
248 AC_CACHE_VAL(ac_cv_path_install,
249 [ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="${IFS}:"
250 for ac_dir in $PATH; do
251 # Account for people who put trailing slashes in PATH elements.
252 case "$ac_dir/" in
253 /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
254 *)
255 # OSF1 and SCO ODT 3.0 have their own names for install.
256 for ac_prog in ginstall scoinst install; do
257 if test -f $ac_dir/$ac_prog; then
258 if test $ac_prog = install &&
259 grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
260 # AIX install. It has an incompatible calling convention.
261 # OSF/1 installbsd also uses dspmsg, but is usable.
262 :
263 else
264 ac_cv_path_install="$ac_dir/$ac_prog -c"
265 break 2
266 fi
267 fi
268 done
269 ;;
270 esac
271 done
272 IFS="$ac_save_IFS"
273 ])dnl
274 if test "${ac_cv_path_install+set}" = set; then
275 INSTALL="$ac_cv_path_install"
276 else
277 # As a last resort, use the slow shell script. We don't cache a
278 # path for INSTALL within a source directory, because that will
279 # break other packages using the cache if that directory is
280 # removed, or if the path is relative.
281 INSTALL="$ac_install_sh"
282 fi
283 fi
284 dnl We do special magic for INSTALL instead of AC_SUBST, to get
285 dnl relative paths right.
286 AC_MSG_RESULT($INSTALL)
287 AC_SUBST(INSTALL)dnl
288
289 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
290 # It thinks the first close brace ends the variable substitution.
291 test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
292 AC_SUBST(INSTALL_PROGRAM)dnl
293
294 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
295 AC_SUBST(INSTALL_DATA)dnl
296 ])
297
298 dnl Test for GNAT.
299 dnl We require the gnatbind program, and a compiler driver that
300 dnl understands Ada. We use the user's CC setting, already found.
301 dnl
302 dnl Sets the shell variable have_gnat to yes or no as appropriate, and
303 dnl substitutes GNATBIND.
304 AC_DEFUN([gcc_AC_PROG_GNAT],
305 [AC_REQUIRE([AC_CHECK_TOOL_PREFIX])
306 AC_REQUIRE([AC_PROG_CC])
307 AC_CHECK_TOOL(GNATBIND, gnatbind, no)
308 AC_CACHE_CHECK([whether compiler driver understands Ada],
309 gcc_cv_cc_supports_ada,
310 [cat >conftest.adb <<EOF
311 procedure conftest is begin null; end conftest;
312 EOF
313 gcc_cv_cc_supports_ada=no
314 # There is a bug in old released versions of GCC which causes the
315 # driver to exit successfully when the appropriate language module
316 # has not been installed. This is fixed in 2.95.4, 3.0.2, and 3.1.
317 # Therefore we must check for the error message as well as an
318 # unsuccessful exit.
319 errors=`(${CC} -c conftest.adb) 2>&1 || echo failure`
320 if test x"$errors" = x; then
321 gcc_cv_cc_supports_ada=yes
322 break
323 fi
324 rm -f conftest.*])
325
326 if test x$GNATBIND != xno && test x$gcc_cv_supports_ada != xno; then
327 have_gnat=yes
328 else
329 have_gnat=no
330 fi
331 ])
332
333 dnl GCC_PATH_PROG(VARIABLE, PROG-TO-CHECK-FOR [, VALUE-IF-NOT-FOUND [, PATH]])
334 dnl like AC_PATH_PROG but use other cache variables
335 AC_DEFUN([GCC_PATH_PROG],
336 [# Extract the first word of "$2", so it can be a program name with args.
337 set dummy $2; ac_word=[$]2
338 AC_MSG_CHECKING([for $ac_word])
339 AC_CACHE_VAL(gcc_cv_path_$1,
340 [case "[$]$1" in
341 /*)
342 gcc_cv_path_$1="[$]$1" # Let the user override the test with a path.
343 ;;
344 ?:/*)
345 gcc_cv_path_$1="[$]$1" # Let the user override the test with a dos path.
346 ;;
347 *)
348 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
349 dnl $ac_dummy forces splitting on constant user-supplied paths.
350 dnl POSIX.2 word splitting is done only on the output of word expansions,
351 dnl not every word. This closes a longstanding sh security hole.
352 ac_dummy="ifelse([$4], , $PATH, [$4])"
353 for ac_dir in $ac_dummy; do
354 test -z "$ac_dir" && ac_dir=.
355 if test -f $ac_dir/$ac_word; then
356 gcc_cv_path_$1="$ac_dir/$ac_word"
357 break
358 fi
359 done
360 IFS="$ac_save_ifs"
361 dnl If no 3rd arg is given, leave the cache variable unset,
362 dnl so GCC_PATH_PROGS will keep looking.
363 ifelse([$3], , , [ test -z "[$]gcc_cv_path_$1" && gcc_cv_path_$1="$3"
364 ])dnl
365 ;;
366 esac])dnl
367 $1="$gcc_cv_path_$1"
368 if test -n "[$]$1"; then
369 AC_MSG_RESULT([$]$1)
370 else
371 AC_MSG_RESULT(no)
372 fi
373 AC_SUBST($1)dnl
374 ])
375
376 # mmap(2) blacklisting. Some platforms provide the mmap library routine
377 # but don't support all of the features we need from it.
378 AC_DEFUN([gcc_AC_FUNC_MMAP_BLACKLIST],
379 [if test $ac_cv_header_sys_mman_h != yes \
380 || test $ac_cv_func_mmap != yes; then
381 gcc_cv_func_mmap_file=no
382 gcc_cv_func_mmap_dev_zero=no
383 gcc_cv_func_mmap_anon=no
384 else
385 AC_CACHE_CHECK([whether read-only mmap of a plain file works],
386 gcc_cv_func_mmap_file,
387 [# Add a system to this blacklist if
388 # mmap(0, stat_size, PROT_READ, MAP_PRIVATE, fd, 0) doesn't return a
389 # memory area containing the same data that you'd get if you applied
390 # read() to the same fd. The only system known to have a problem here
391 # is VMS, where text files have record structure.
392 case "$host_os" in
393 vms* | ultrix*)
394 gcc_cv_func_mmap_file=no ;;
395 *)
396 gcc_cv_func_mmap_file=yes;;
397 esac])
398 AC_CACHE_CHECK([whether mmap from /dev/zero works],
399 gcc_cv_func_mmap_dev_zero,
400 [# Add a system to this blacklist if it has mmap() but /dev/zero
401 # does not exist, or if mmapping /dev/zero does not give anonymous
402 # zeroed pages with both the following properties:
403 # 1. If you map N consecutive pages in with one call, and then
404 # unmap any subset of those pages, the pages that were not
405 # explicitly unmapped remain accessible.
406 # 2. If you map two adjacent blocks of memory and then unmap them
407 # both at once, they must both go away.
408 # Systems known to be in this category are Windows (all variants),
409 # VMS, and Darwin.
410 case "$host_os" in
411 vms* | cygwin* | pe | mingw* | darwin* | ultrix* | hpux10* | hpux11.00)
412 gcc_cv_func_mmap_dev_zero=no ;;
413 *)
414 gcc_cv_func_mmap_dev_zero=yes;;
415 esac])
416
417 # Unlike /dev/zero, the MAP_ANON(YMOUS) defines can be probed for.
418 AC_CACHE_CHECK([for MAP_ANON(YMOUS)], gcc_cv_decl_map_anon,
419 [AC_TRY_COMPILE(
420 [#include <sys/types.h>
421 #include <sys/mman.h>
422 #include <unistd.h>
423
424 #ifndef MAP_ANONYMOUS
425 #define MAP_ANONYMOUS MAP_ANON
426 #endif
427 ],
428 [int n = MAP_ANONYMOUS;],
429 gcc_cv_decl_map_anon=yes,
430 gcc_cv_decl_map_anon=no)])
431
432 if test $gcc_cv_decl_map_anon = no; then
433 gcc_cv_func_mmap_anon=no
434 else
435 AC_CACHE_CHECK([whether mmap with MAP_ANON(YMOUS) works],
436 gcc_cv_func_mmap_anon,
437 [# Add a system to this blacklist if it has mmap() and MAP_ANON or
438 # MAP_ANONYMOUS, but using mmap(..., MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
439 # doesn't give anonymous zeroed pages with the same properties listed
440 # above for use of /dev/zero.
441 # Systems known to be in this category are Windows, VMS, and SCO Unix.
442 case "$host_os" in
443 vms* | cygwin* | pe | mingw* | sco* | udk* )
444 gcc_cv_func_mmap_anon=no ;;
445 *)
446 gcc_cv_func_mmap_anon=yes;;
447 esac])
448 fi
449 fi
450
451 if test $gcc_cv_func_mmap_file = yes; then
452 AC_DEFINE(HAVE_MMAP_FILE, 1,
453 [Define if read-only mmap of a plain file works.])
454 fi
455 if test $gcc_cv_func_mmap_dev_zero = yes; then
456 AC_DEFINE(HAVE_MMAP_DEV_ZERO, 1,
457 [Define if mmap of /dev/zero works.])
458 fi
459 if test $gcc_cv_func_mmap_anon = yes; then
460 AC_DEFINE(HAVE_MMAP_ANON, 1,
461 [Define if mmap with MAP_ANON(YMOUS) works.])
462 fi
463 ])
464
465 dnl Locate a program and check that its version is acceptable.
466 dnl AC_PROG_CHECK_VER(var, name, version-switch,
467 dnl version-extract-regexp, version-glob)
468 AC_DEFUN([gcc_AC_CHECK_PROG_VER],
469 [AC_CHECK_PROG([$1], [$2], [$2])
470 if test -n "[$]$1"; then
471 # Found it, now check the version.
472 AC_CACHE_CHECK(for modern $2, gcc_cv_prog_$2_modern,
473 [changequote(<<,>>)dnl
474 ac_prog_version=`<<$>>$1 $3 2>&1 |
475 sed -n 's/^.*patsubst(<<$4>>,/,\/).*$/\1/p'`
476 changequote([,])dnl
477 echo "configure:__oline__: version of $2 is $ac_prog_version" >&AC_FD_CC
478 changequote(<<,>>)dnl
479 case $ac_prog_version in
480 '') gcc_cv_prog_$2_modern=no;;
481 <<$5>>)
482 gcc_cv_prog_$2_modern=yes;;
483 *) gcc_cv_prog_$2_modern=no;;
484 esac
485 changequote([,])dnl
486 ])
487 else
488 gcc_cv_prog_$2_modern=no
489 fi
490 ])
491
492 dnl Determine if enumerated bitfields are unsigned. ISO C says they can
493 dnl be either signed or unsigned.
494 dnl
495 AC_DEFUN([gcc_AC_C_ENUM_BF_UNSIGNED],
496 [AC_CACHE_CHECK(for unsigned enumerated bitfields, gcc_cv_enum_bf_unsigned,
497 [AC_TRY_RUN(#include <stdlib.h>
498 enum t { BLAH = 128 } ;
499 struct s_t { enum t member : 8; } s ;
500 int main(void)
501 {
502 s.member = BLAH;
503 if (s.member < 0) exit(1);
504 exit(0);
505
506 }, gcc_cv_enum_bf_unsigned=yes, gcc_cv_enum_bf_unsigned=no, gcc_cv_enum_bf_unsigned=yes)])
507 if test $gcc_cv_enum_bf_unsigned = yes; then
508 AC_DEFINE(ENUM_BITFIELDS_ARE_UNSIGNED, 1,
509 [Define if enumerated bitfields are treated as unsigned values.])
510 fi])
511
512 dnl Probe number of bits in a byte.
513 dnl Note C89 requires CHAR_BIT >= 8.
514 dnl
515 AC_DEFUN([gcc_AC_C_CHAR_BIT],
516 [AC_CACHE_CHECK(for CHAR_BIT, gcc_cv_decl_char_bit,
517 [AC_EGREP_CPP(found,
518 [#ifdef HAVE_LIMITS_H
519 #include <limits.h>
520 #endif
521 #ifdef CHAR_BIT
522 found
523 #endif], gcc_cv_decl_char_bit=yes, gcc_cv_decl_char_bit=no)
524 ])
525 if test $gcc_cv_decl_char_bit = no; then
526 AC_CACHE_CHECK(number of bits in a byte, gcc_cv_c_nbby,
527 [i=8
528 gcc_cv_c_nbby=
529 while test $i -lt 65; do
530 AC_TRY_COMPILE(,
531 [switch(0) {
532 case (unsigned char)((unsigned long)1 << $i) == ((unsigned long)1 << $i):
533 case (unsigned char)((unsigned long)1<<($i-1)) == ((unsigned long)1<<($i-1)):
534 ; }],
535 [gcc_cv_c_nbby=$i; break])
536 i=`expr $i + 1`
537 done
538 test -z "$gcc_cv_c_nbby" && gcc_cv_c_nbby=failed
539 ])
540 if test $gcc_cv_c_nbby = failed; then
541 AC_MSG_ERROR(cannot determine number of bits in a byte)
542 else
543 AC_DEFINE_UNQUOTED(CHAR_BIT, $gcc_cv_c_nbby,
544 [Define as the number of bits in a byte, if \`limits.h' doesn't.])
545 fi
546 fi])
547
548 dnl Checking for long long.
549 dnl By Caolan McNamara <caolan@skynet.ie>
550 dnl Added check for __int64, Zack Weinberg <zackw@stanford.edu>
551 dnl
552 AC_DEFUN([gcc_AC_C_LONG_LONG],
553 [AC_CACHE_CHECK(for long long int, ac_cv_c_long_long,
554 [AC_TRY_COMPILE(,[long long int i;],
555 ac_cv_c_long_long=yes,
556 ac_cv_c_long_long=no)])
557 if test $ac_cv_c_long_long = yes; then
558 AC_DEFINE(HAVE_LONG_LONG, 1,
559 [Define if your compiler supports the \`long long' type.])
560 fi
561 AC_CACHE_CHECK(for __int64, ac_cv_c___int64,
562 [AC_TRY_COMPILE(,[__int64 i;],
563 ac_cv_c___int64=yes,
564 ac_cv_c___int64=no)])
565 if test $ac_cv_c___int64 = yes; then
566 AC_DEFINE(HAVE___INT64, 1,
567 [Define if your compiler supports the \`__int64' type.])
568 fi
569 ])
570
571 #serial AM2
572
573 dnl From Bruno Haible.
574
575 AC_DEFUN([AM_ICONV],
576 [
577 dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
578 dnl those with the standalone portable GNU libiconv installed).
579
580 am_cv_lib_iconv_ldpath=
581 AC_ARG_WITH([libiconv-prefix],
582 [ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [
583 for dir in `echo "$withval" | tr : ' '`; do
584 if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
585 if test -d $dir/lib; then am_cv_lib_iconv_ldpath="-L$dir/lib"; fi
586 done
587 ])
588
589 AC_CHECK_HEADERS([iconv.h])
590
591 AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
592 am_cv_func_iconv="no, consider installing GNU libiconv"
593 am_cv_lib_iconv=no
594 AC_TRY_LINK([#include <stdlib.h>
595 #include <iconv.h>],
596 [iconv_t cd = iconv_open("","");
597 iconv(cd,NULL,NULL,NULL,NULL);
598 iconv_close(cd);],
599 am_cv_func_iconv=yes)
600 if test "$am_cv_func_iconv" != yes; then
601 am_save_LIBS="$LIBS"
602 LIBS="$LIBS $am_cv_libiconv_ldpath -liconv"
603 AC_TRY_LINK([#include <stdlib.h>
604 #include <iconv.h>],
605 [iconv_t cd = iconv_open("","");
606 iconv(cd,NULL,NULL,NULL,NULL);
607 iconv_close(cd);],
608 am_cv_lib_iconv=yes
609 am_cv_func_iconv=yes)
610 LIBS="$am_save_LIBS"
611 fi
612 ])
613 if test "$am_cv_func_iconv" = yes; then
614 AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
615 AC_MSG_CHECKING([for iconv declaration])
616 AC_CACHE_VAL(am_cv_proto_iconv, [
617 AC_TRY_COMPILE([
618 #include <stdlib.h>
619 #include <iconv.h>
620 extern
621 #ifdef __cplusplus
622 "C"
623 #endif
624 #if defined(__STDC__) || defined(__cplusplus)
625 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
626 #else
627 size_t iconv();
628 #endif
629 ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
630 am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
631 am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
632 AC_MSG_RESULT([$]{ac_t:-
633 }[$]am_cv_proto_iconv)
634 AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
635 [Define as const if the declaration of iconv() needs const.])
636 fi
637 LIBICONV=
638 if test "$am_cv_lib_iconv" = yes; then
639 LIBICONV="$am_cv_lib_iconv_ldpath -liconv"
640 fi
641 AC_SUBST(LIBICONV)
642 ])
643
644 AC_DEFUN([gcc_AC_INITFINI_ARRAY],
645 [AC_ARG_ENABLE(initfini-array,
646 [ --enable-initfini-array use .init_array/.fini_array sections],
647 [], [
648 AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
649 gcc_cv_initfini_array, [dnl
650 AC_TRY_RUN([
651 static int x = -1;
652 int main (void) { return x; }
653 int foo (void) { x = 0; }
654 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;],
655 [gcc_cv_initfini_array=yes], [gcc_cv_initfini_array=no],
656 [gcc_cv_initfini_array=no])])
657 enable_initfini_array=$gcc_cv_initfini_array
658 ])
659 if test $enable_initfini_array = yes; then
660 AC_DEFINE(HAVE_INITFINI_ARRAY, 1,
661 [Define .init_array/.fini_array sections are available and working.])
662 fi])
663
664 dnl # _gcc_COMPUTE_GAS_VERSION
665 dnl # Used by gcc_GAS_VERSION_GTE_IFELSE
666 dnl #
667 dnl # WARNING:
668 dnl # gcc_cv_as_gas_srcdir must be defined before this.
669 dnl # This gross requirement will go away eventually.
670 AC_DEFUN([_gcc_COMPUTE_GAS_VERSION],
671 [gcc_cv_as_bfd_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/bfd
672 for f in $gcc_cv_as_bfd_srcdir/configure \
673 $gcc_cv_as_gas_srcdir/configure \
674 $gcc_cv_as_gas_srcdir/configure.in \
675 $gcc_cv_as_gas_srcdir/Makefile.in ; do
676 gcc_cv_gas_version=`grep '^VERSION=[[0-9]]*\.[[0-9]]*' $f`
677 if test x$gcc_cv_gas_version != x; then
678 break
679 fi
680 done
681 gcc_cv_gas_major_version=`expr "$gcc_cv_gas_version" : "VERSION=\([[0-9]]*\)"`
682 gcc_cv_gas_minor_version=`expr "$gcc_cv_gas_version" : "VERSION=[[0-9]]*\.\([[0-9]]*\)"`
683 gcc_cv_gas_patch_version=`expr "$gcc_cv_gas_version" : "VERSION=[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)"`
684 case $gcc_cv_gas_patch_version in
685 "") gcc_cv_gas_patch_version="0" ;;
686 esac
687 gcc_cv_gas_vers=`expr \( \( $gcc_cv_gas_major_version \* 1000 \) \
688 + $gcc_cv_gas_minor_version \) \* 1000 \
689 + $gcc_cv_gas_patch_version`
690 ]) []dnl # _gcc_COMPUTE_GAS_VERSION
691
692 dnl # gcc_GAS_VERSION_GTE_IFELSE([elf,] major, minor, patchlevel,
693 dnl # [command_if_true = :], [command_if_false = :])
694 dnl # Check to see if the version of GAS is greater than or
695 dnl # equal to the specified version.
696 dnl #
697 dnl # The first ifelse() shortens the shell code if the patchlevel
698 dnl # is unimportant (the usual case). The others handle missing
699 dnl # commands. Note that the tests are structured so that the most
700 dnl # common version number cases are tested first.
701 AC_DEFUN([_gcc_GAS_VERSION_GTE_IFELSE],
702 [ifelse([$1], elf,
703 [if test $in_tree_gas_is_elf = yes \
704 &&],
705 [if]) test $gcc_cv_gas_vers -ge `expr \( \( $2 \* 1000 \) + $3 \) \* 1000 + $4`
706 then dnl
707 ifelse([$5],,:,[$5])[]dnl
708 ifelse([$6],,,[
709 else $6])
710 fi])
711
712 AC_DEFUN([gcc_GAS_VERSION_GTE_IFELSE],
713 [AC_REQUIRE([_gcc_COMPUTE_GAS_VERSION])dnl
714 ifelse([$1], elf, [_gcc_GAS_VERSION_GTE_IFELSE($@)],
715 [_gcc_GAS_VERSION_GTE_IFELSE(,$@)])])
716
717 dnl gcc_GAS_CHECK_FEATURE(description, cv, [[elf,]major,minor,patchlevel],
718 dnl [extra switches to as], [assembler input],
719 dnl [extra testing logic], [command if feature available])
720 dnl
721 dnl Checks for an assembler feature. If we are building an in-tree
722 dnl gas, the feature is available if the associated assembler version
723 dnl is greater than or equal to major.minor.patchlevel. If not, then
724 dnl ASSEMBLER INPUT is fed to the assembler and the feature is available
725 dnl if assembly succeeds. If EXTRA TESTING LOGIC is not the empty string,
726 dnl then it is run instead of simply setting CV to "yes" - it is responsible
727 dnl for doing so, if appropriate.
728 AC_DEFUN([gcc_GAS_CHECK_FEATURE],
729 [AC_CACHE_CHECK([assembler for $1], [$2],
730 [[$2]=no
731 ifelse([$3],,,[dnl
732 if test $in_tree_gas = yes; then
733 gcc_GAS_VERSION_GTE_IFELSE($3, [[$2]=yes])
734 el])if test x$gcc_cv_as != x; then
735 echo ifelse(m4_substr([$5],0,1),[$], "[$5]", '[$5]') > conftest.s
736 if AC_TRY_COMMAND([$gcc_cv_as $4 -o conftest.o conftest.s >&AC_FD_CC])
737 then
738 ifelse([$6],, [$2]=yes, [$6])
739 else
740 echo "configure: failed program was" >&AC_FD_CC
741 cat conftest.s >&AC_FD_CC
742 fi
743 rm -f conftest.o conftest.s
744 fi])
745 ifelse([$7],,,[dnl
746 if test $[$2] = yes; then
747 $7
748 fi])])
749
750 # lcmessage.m4 serial 3 (gettext-0.11.3)
751 dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
752 dnl This file is free software, distributed under the terms of the GNU
753 dnl General Public License. As a special exception to the GNU General
754 dnl Public License, this file may be distributed as part of a program
755 dnl that contains a configuration script generated by Autoconf, under
756 dnl the same distribution terms as the rest of that program.
757 dnl
758 dnl This file can can be used in projects which are not available under
759 dnl the GNU General Public License or the GNU Library General Public
760 dnl License but which still want to provide support for the GNU gettext
761 dnl functionality.
762 dnl Please note that the actual code of the GNU gettext library is covered
763 dnl by the GNU Library General Public License, and the rest of the GNU
764 dnl gettext package package is covered by the GNU General Public License.
765 dnl They are *not* in the public domain.
766
767 dnl Authors:
768 dnl Ulrich Drepper <drepper@cygnus.com>, 1995.
769
770 # Check whether LC_MESSAGES is available in <locale.h>.
771
772 AC_DEFUN([AM_LC_MESSAGES],
773 [
774 AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
775 [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
776 am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
777 if test $am_cv_val_LC_MESSAGES = yes; then
778 AC_DEFINE(HAVE_LC_MESSAGES, 1,
779 [Define if your <locale.h> file defines LC_MESSAGES.])
780 fi
781 ])