1 sinclude(../config/acx.m4)
2 sinclude(../config/accross.m4)
3 sinclude(../config/gettext.m4)
4 sinclude(../config/progtest.m4)
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>],
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.])
19 dnl Fixed AC_CHECK_TYPE that doesn't need anything in acconfig.h.
20 dnl Remove after migrating to 2.5x.
21 AC_DEFUN([gcc_AC_CHECK_TYPE],
22 [AC_REQUIRE([AC_HEADER_STDC])dnl
23 AC_MSG_CHECKING(for $1)
24 AC_CACHE_VAL(ac_cv_type_$1,
27 <<(^|[^a-zA-Z_0-9])$1[^a-zA-Z_0-9]>>dnl
28 changequote([,]), [#include <sys/types.h>
32 #endif], ac_cv_type_$1=yes, ac_cv_type_$1=no)])dnl
33 AC_MSG_RESULT($ac_cv_type_$1)
34 if test $ac_cv_type_$1 = no; then
35 AC_DEFINE($1, $2, [Define as \`$2' if <sys/types.h> doesn't define.])
40 dnl See whether we can include both string.h and strings.h.
41 AC_DEFUN([gcc_AC_HEADER_STRING],
42 [AC_CACHE_CHECK([whether string.h and strings.h may both be included],
44 [AC_TRY_COMPILE([#include <string.h>
45 #include <strings.h>], , gcc_cv_header_string=yes, gcc_cv_header_string=no)])
46 if test $gcc_cv_header_string = yes; then
47 AC_DEFINE(STRING_WITH_STRINGS, 1, [Define if you can safely include both <string.h> and <strings.h>.])
51 dnl See whether we need a declaration for a function.
52 dnl The result is highly dependent on the INCLUDES passed in, so make sure
53 dnl to use a different cache variable name in this macro if it is invoked
54 dnl in a different context somewhere else.
55 dnl gcc_AC_CHECK_DECL(SYMBOL,
56 dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, INCLUDES]]])
57 AC_DEFUN([gcc_AC_CHECK_DECL],
58 [AC_MSG_CHECKING([whether $1 is declared])
59 AC_CACHE_VAL(gcc_cv_have_decl_$1,
62 char *(*pfn) = (char *(*)) $1 ;
63 #endif], eval "gcc_cv_have_decl_$1=yes", eval "gcc_cv_have_decl_$1=no")])
64 if eval "test \"`echo '$gcc_cv_have_decl_'$1`\" = yes"; then
65 AC_MSG_RESULT(yes) ; ifelse([$2], , :, [$2])
67 AC_MSG_RESULT(no) ; ifelse([$3], , :, [$3])
71 dnl Check multiple functions to see whether each needs a declaration.
72 dnl Arrange to define HAVE_DECL_<FUNCTION> to 0 or 1 as appropriate.
73 dnl gcc_AC_CHECK_DECLS(SYMBOLS,
74 dnl [ACTION-IF-NEEDED [, ACTION-IF-NOT-NEEDED [, INCLUDES]]])
75 AC_DEFUN([gcc_AC_CHECK_DECLS],
79 ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
81 gcc_AC_CHECK_DECL($ac_func,
82 [AC_DEFINE_UNQUOTED($ac_tr_decl, 1) $2],
83 [AC_DEFINE_UNQUOTED($ac_tr_decl, 0) $3],
84 dnl It is possible that the include files passed in here are local headers
85 dnl which supply a backup declaration for the relevant prototype based on
86 dnl the definition of (or lack of) the HAVE_DECL_ macro. If so, this test
87 dnl will always return success. E.g. see libiberty.h's handling of
88 dnl `basename'. To avoid this, we define the relevant HAVE_DECL_ macro to
89 dnl 1 so that any local headers used do not provide their own prototype
96 dnl Automatically generate config.h entries via autoheader.
98 patsubst(translit([$1], [a-z], [A-Z]), [\w+],
99 [AC_DEFINE([HAVE_DECL_\&], 1,
100 [Define to 1 if we found this declaration otherwise define to 0.])])dnl
104 dnl 'make compare' can be significantly faster, if cmp itself can
105 dnl skip bytes instead of using tail. The test being performed is
106 dnl "if cmp --ignore-initial=2 t1 t2 && ! cmp --ignore-initial=1 t1 t2"
107 dnl but we need to sink errors and handle broken shells. We also test
108 dnl for the parameter format "cmp file1 file2 skip1 skip2" which is
109 dnl accepted by cmp on some systems.
110 AC_DEFUN([gcc_AC_PROG_CMP_IGNORE_INITIAL],
111 [AC_CACHE_CHECK([for cmp's capabilities], gcc_cv_prog_cmp_skip,
114 gcc_cv_prog_cmp_skip=slowcompare
115 if cmp --ignore-initial=2 t1 t2 > /dev/null 2>&1; then
116 if cmp --ignore-initial=1 t1 t2 > /dev/null 2>&1; then
119 gcc_cv_prog_cmp_skip=gnucompare
122 if test $gcc_cv_prog_cmp_skip = slowcompare ; then
123 if cmp t1 t2 2 2 > /dev/null 2>&1; then
124 if cmp t1 t2 1 1 > /dev/null 2>&1; then
127 gcc_cv_prog_cmp_skip=fastcompare
133 make_compare_target=$gcc_cv_prog_cmp_skip
134 AC_SUBST(make_compare_target)
137 dnl See if the printf functions in libc support %p in format strings.
138 AC_DEFUN([gcc_AC_FUNC_PRINTF_PTR],
139 [AC_CACHE_CHECK(whether the printf functions support %p,
140 gcc_cv_func_printf_ptr,
141 [AC_TRY_RUN([#include <stdio.h>
146 char *p = buf, *q = NULL;
147 sprintf(buf, "%p", p);
148 sscanf(buf, "%p", &q);
150 }], gcc_cv_func_printf_ptr=yes, gcc_cv_func_printf_ptr=no,
151 gcc_cv_func_printf_ptr=no)
152 rm -f core core.* *.core])
153 if test $gcc_cv_func_printf_ptr = yes ; then
154 AC_DEFINE(HAVE_PRINTF_PTR, 1, [Define if printf supports "%p".])
158 dnl See if symbolic links work and if not, try to substitute either hard links or simple copy.
159 AC_DEFUN([gcc_AC_PROG_LN_S],
160 [AC_MSG_CHECKING(whether ln -s works)
161 AC_CACHE_VAL(gcc_cv_prog_LN_S,
162 [rm -f conftestdata_t
164 if ln -s conftestdata_f conftestdata_t 2>/dev/null
166 gcc_cv_prog_LN_S="ln -s"
168 if ln conftestdata_f conftestdata_t 2>/dev/null
175 rm -f conftestdata_f conftestdata_t
177 LN_S="$gcc_cv_prog_LN_S"
178 if test "$gcc_cv_prog_LN_S" = "ln -s"; then
181 if test "$gcc_cv_prog_LN_S" = "ln"; then
182 AC_MSG_RESULT([no, using ln])
184 AC_MSG_RESULT([no, and neither does ln, so using cp])
190 dnl See if hard links work and if not, try to substitute either symbolic links or simple copy.
191 AC_DEFUN([gcc_AC_PROG_LN],
192 [AC_MSG_CHECKING(whether ln works)
193 AC_CACHE_VAL(gcc_cv_prog_LN,
194 [rm -f conftestdata_t
196 if ln conftestdata_f conftestdata_t 2>/dev/null
200 if ln -s conftestdata_f conftestdata_t 2>/dev/null
202 gcc_cv_prog_LN="ln -s"
207 rm -f conftestdata_f conftestdata_t
210 if test "$gcc_cv_prog_LN" = "ln"; then
213 if test "$gcc_cv_prog_LN" = "ln -s"; then
214 AC_MSG_RESULT([no, using ln -s])
216 AC_MSG_RESULT([no, and neither does ln -s, so using cp])
222 dnl Check whether _Bool is built-in.
223 AC_DEFUN([gcc_AC_C__BOOL],
224 [AC_CACHE_CHECK(for built-in _Bool, gcc_cv_c__bool,
227 gcc_cv_c__bool=yes, gcc_cv_c__bool=no)
229 if test $gcc_cv_c__bool = yes; then
230 AC_DEFINE(HAVE__BOOL, 1, [Define if the \`_Bool' type is built-in.])
234 dnl Define MKDIR_TAKES_ONE_ARG if mkdir accepts only one argument instead
236 AC_DEFUN([gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG],
237 [AC_CACHE_CHECK([if mkdir takes one argument], gcc_cv_mkdir_takes_one_arg,
239 #include <sys/types.h>
240 #ifdef HAVE_SYS_STAT_H
241 # include <sys/stat.h>
248 #endif], [mkdir ("foo", 0);],
249 gcc_cv_mkdir_takes_one_arg=no, gcc_cv_mkdir_takes_one_arg=yes)])
250 if test $gcc_cv_mkdir_takes_one_arg = yes ; then
251 AC_DEFINE(MKDIR_TAKES_ONE_ARG, 1, [Define if host mkdir takes a single argument.])
255 AC_DEFUN([gcc_AC_PROG_INSTALL],
256 [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
257 # Find a good install program. We prefer a C program (faster),
258 # so one script is as good as another. But avoid the broken or
259 # incompatible versions:
260 # SysV /etc/install, /usr/sbin/install
261 # SunOS /usr/etc/install
264 # AFS /usr/afsws/bin/install, which mishandles nonexistent args
265 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
266 # ./install, which can be erroneously created by make from ./install.sh.
267 AC_MSG_CHECKING(for a BSD compatible install)
268 if test -z "$INSTALL"; then
269 AC_CACHE_VAL(ac_cv_path_install,
270 [ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="${IFS}:"
271 for ac_dir in $PATH; do
272 # Account for people who put trailing slashes in PATH elements.
274 /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
276 # OSF1 and SCO ODT 3.0 have their own names for install.
277 for ac_prog in ginstall scoinst install; do
278 if test -f $ac_dir/$ac_prog; then
279 if test $ac_prog = install &&
280 grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
281 # AIX install. It has an incompatible calling convention.
282 # OSF/1 installbsd also uses dspmsg, but is usable.
285 ac_cv_path_install="$ac_dir/$ac_prog -c"
295 if test "${ac_cv_path_install+set}" = set; then
296 INSTALL="$ac_cv_path_install"
298 # As a last resort, use the slow shell script. We don't cache a
299 # path for INSTALL within a source directory, because that will
300 # break other packages using the cache if that directory is
301 # removed, or if the path is relative.
302 INSTALL="$ac_install_sh"
305 dnl We do special magic for INSTALL instead of AC_SUBST, to get
306 dnl relative paths right.
307 AC_MSG_RESULT($INSTALL)
310 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
311 # It thinks the first close brace ends the variable substitution.
312 test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
313 AC_SUBST(INSTALL_PROGRAM)dnl
315 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
316 AC_SUBST(INSTALL_DATA)dnl
320 dnl We require the gnatbind program, and a compiler driver that
321 dnl understands Ada. We use the user's CC setting, already found.
323 dnl Sets the shell variable have_gnat to yes or no as appropriate, and
324 dnl substitutes GNATBIND.
325 AC_DEFUN([gcc_AC_PROG_GNAT],
326 [AC_REQUIRE([AC_CHECK_TOOL_PREFIX])
327 AC_REQUIRE([AC_PROG_CC])
328 AC_CHECK_TOOL(GNATBIND, gnatbind, no)
329 AC_CACHE_CHECK([whether compiler driver understands Ada],
330 gcc_cv_cc_supports_ada,
331 [cat >conftest.adb <<EOF
332 procedure conftest is begin null; end conftest;
334 gcc_cv_cc_supports_ada=no
335 # There is a bug in old released versions of GCC which causes the
336 # driver to exit successfully when the appropriate language module
337 # has not been installed. This is fixed in 2.95.4, 3.0.2, and 3.1.
338 # Therefore we must check for the error message as well as an
340 errors=`(${CC} -c conftest.adb) 2>&1 || echo failure`
341 if test x"$errors" = x; then
342 gcc_cv_cc_supports_ada=yes
347 if test x$GNATBIND != xno && test x$gcc_cv_supports_ada != xno; then
354 dnl GCC_PATH_PROG(VARIABLE, PROG-TO-CHECK-FOR [, VALUE-IF-NOT-FOUND [, PATH]])
355 dnl like AC_PATH_PROG but use other cache variables
356 AC_DEFUN([GCC_PATH_PROG],
357 [# Extract the first word of "$2", so it can be a program name with args.
358 set dummy $2; ac_word=[$]2
359 AC_MSG_CHECKING([for $ac_word])
360 AC_CACHE_VAL(gcc_cv_path_$1,
363 gcc_cv_path_$1="[$]$1" # Let the user override the test with a path.
366 gcc_cv_path_$1="[$]$1" # Let the user override the test with a dos path.
369 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
370 dnl $ac_dummy forces splitting on constant user-supplied paths.
371 dnl POSIX.2 word splitting is done only on the output of word expansions,
372 dnl not every word. This closes a longstanding sh security hole.
373 ac_dummy="ifelse([$4], , $PATH, [$4])"
374 for ac_dir in $ac_dummy; do
375 test -z "$ac_dir" && ac_dir=.
376 if test -f $ac_dir/$ac_word; then
377 gcc_cv_path_$1="$ac_dir/$ac_word"
382 dnl If no 3rd arg is given, leave the cache variable unset,
383 dnl so GCC_PATH_PROGS will keep looking.
384 ifelse([$3], , , [ test -z "[$]gcc_cv_path_$1" && gcc_cv_path_$1="$3"
389 if test -n "[$]$1"; then
397 # mmap(2) blacklisting. Some platforms provide the mmap library routine
398 # but don't support all of the features we need from it.
399 AC_DEFUN([gcc_AC_FUNC_MMAP_BLACKLIST],
400 [if test $ac_cv_header_sys_mman_h != yes \
401 || test $ac_cv_func_mmap != yes; then
402 gcc_cv_func_mmap_file=no
403 gcc_cv_func_mmap_dev_zero=no
404 gcc_cv_func_mmap_anon=no
406 AC_CACHE_CHECK([whether read-only mmap of a plain file works],
407 gcc_cv_func_mmap_file,
408 [# Add a system to this blacklist if
409 # mmap(0, stat_size, PROT_READ, MAP_PRIVATE, fd, 0) doesn't return a
410 # memory area containing the same data that you'd get if you applied
411 # read() to the same fd. The only system known to have a problem here
412 # is VMS, where text files have record structure.
415 gcc_cv_func_mmap_file=no ;;
417 gcc_cv_func_mmap_file=yes;;
419 AC_CACHE_CHECK([whether mmap from /dev/zero works],
420 gcc_cv_func_mmap_dev_zero,
421 [# Add a system to this blacklist if it has mmap() but /dev/zero
422 # does not exist, or if mmapping /dev/zero does not give anonymous
423 # zeroed pages with both the following properties:
424 # 1. If you map N consecutive pages in with one call, and then
425 # unmap any subset of those pages, the pages that were not
426 # explicitly unmapped remain accessible.
427 # 2. If you map two adjacent blocks of memory and then unmap them
428 # both at once, they must both go away.
429 # Systems known to be in this category are Windows (all variants),
432 vms* | cygwin* | pe | mingw* | darwin* | ultrix* | hpux10* | hpux11.00)
433 gcc_cv_func_mmap_dev_zero=no ;;
435 gcc_cv_func_mmap_dev_zero=yes;;
438 # Unlike /dev/zero, the MAP_ANON(YMOUS) defines can be probed for.
439 AC_CACHE_CHECK([for MAP_ANON(YMOUS)], gcc_cv_decl_map_anon,
441 [#include <sys/types.h>
442 #include <sys/mman.h>
445 #ifndef MAP_ANONYMOUS
446 #define MAP_ANONYMOUS MAP_ANON
449 [int n = MAP_ANONYMOUS;],
450 gcc_cv_decl_map_anon=yes,
451 gcc_cv_decl_map_anon=no)])
453 if test $gcc_cv_decl_map_anon = no; then
454 gcc_cv_func_mmap_anon=no
456 AC_CACHE_CHECK([whether mmap with MAP_ANON(YMOUS) works],
457 gcc_cv_func_mmap_anon,
458 [# Add a system to this blacklist if it has mmap() and MAP_ANON or
459 # MAP_ANONYMOUS, but using mmap(..., MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
460 # doesn't give anonymous zeroed pages with the same properties listed
461 # above for use of /dev/zero.
462 # Systems known to be in this category are Windows, VMS, and SCO Unix.
464 vms* | cygwin* | pe | mingw* | sco* | udk* )
465 gcc_cv_func_mmap_anon=no ;;
467 gcc_cv_func_mmap_anon=yes;;
472 if test $gcc_cv_func_mmap_file = yes; then
473 AC_DEFINE(HAVE_MMAP_FILE, 1,
474 [Define if read-only mmap of a plain file works.])
476 if test $gcc_cv_func_mmap_dev_zero = yes; then
477 AC_DEFINE(HAVE_MMAP_DEV_ZERO, 1,
478 [Define if mmap of /dev/zero works.])
480 if test $gcc_cv_func_mmap_anon = yes; then
481 AC_DEFINE(HAVE_MMAP_ANON, 1,
482 [Define if mmap with MAP_ANON(YMOUS) works.])
486 dnl Locate a program and check that its version is acceptable.
487 dnl AC_PROG_CHECK_VER(var, name, version-switch,
488 dnl version-extract-regexp, version-glob)
489 AC_DEFUN([gcc_AC_CHECK_PROG_VER],
490 [AC_CHECK_PROG([$1], [$2], [$2])
491 if test -n "[$]$1"; then
492 # Found it, now check the version.
493 AC_CACHE_CHECK(for modern $2, gcc_cv_prog_$2_modern,
494 [changequote(<<,>>)dnl
495 ac_prog_version=`<<$>>$1 $3 2>&1 |
496 sed -n 's/^.*patsubst(<<$4>>,/,\/).*$/\1/p'`
498 echo "configure:__oline__: version of $2 is $ac_prog_version" >&AC_FD_CC
499 changequote(<<,>>)dnl
500 case $ac_prog_version in
501 '') gcc_cv_prog_$2_modern=no;;
503 gcc_cv_prog_$2_modern=yes;;
504 *) gcc_cv_prog_$2_modern=no;;
509 gcc_cv_prog_$2_modern=no
513 dnl Determine if enumerated bitfields are unsigned. ISO C says they can
514 dnl be either signed or unsigned.
516 AC_DEFUN([gcc_AC_C_ENUM_BF_UNSIGNED],
517 [AC_CACHE_CHECK(for unsigned enumerated bitfields, gcc_cv_enum_bf_unsigned,
518 [AC_TRY_RUN(#include <stdlib.h>
519 enum t { BLAH = 128 } ;
520 struct s_t { enum t member : 8; } s ;
524 if (s.member < 0) exit(1);
527 }, gcc_cv_enum_bf_unsigned=yes, gcc_cv_enum_bf_unsigned=no, gcc_cv_enum_bf_unsigned=yes)])
528 if test $gcc_cv_enum_bf_unsigned = yes; then
529 AC_DEFINE(ENUM_BITFIELDS_ARE_UNSIGNED, 1,
530 [Define if enumerated bitfields are treated as unsigned values.])
533 dnl Probe number of bits in a byte.
534 dnl Note C89 requires CHAR_BIT >= 8.
536 AC_DEFUN([gcc_AC_C_CHAR_BIT],
537 [AC_CACHE_CHECK(for CHAR_BIT, gcc_cv_decl_char_bit,
539 [#ifdef HAVE_LIMITS_H
544 #endif], gcc_cv_decl_char_bit=yes, gcc_cv_decl_char_bit=no)
546 if test $gcc_cv_decl_char_bit = no; then
547 AC_CACHE_CHECK(number of bits in a byte, gcc_cv_c_nbby,
550 while test $i -lt 65; do
553 case (unsigned char)((unsigned long)1 << $i) == ((unsigned long)1 << $i):
554 case (unsigned char)((unsigned long)1<<($i-1)) == ((unsigned long)1<<($i-1)):
556 [gcc_cv_c_nbby=$i; break])
559 test -z "$gcc_cv_c_nbby" && gcc_cv_c_nbby=failed
561 if test $gcc_cv_c_nbby = failed; then
562 AC_MSG_ERROR(cannot determine number of bits in a byte)
564 AC_DEFINE_UNQUOTED(CHAR_BIT, $gcc_cv_c_nbby,
565 [Define as the number of bits in a byte, if \`limits.h' doesn't.])
569 dnl Checking for long long.
570 dnl By Caolan McNamara <caolan@skynet.ie>
571 dnl Added check for __int64, Zack Weinberg <zackw@stanford.edu>
573 AC_DEFUN([gcc_AC_C_LONG_LONG],
574 [AC_CACHE_CHECK(for long long int, ac_cv_c_long_long,
575 [AC_TRY_COMPILE(,[long long int i;],
576 ac_cv_c_long_long=yes,
577 ac_cv_c_long_long=no)])
578 if test $ac_cv_c_long_long = yes; then
579 AC_DEFINE(HAVE_LONG_LONG, 1,
580 [Define if your compiler supports the \`long long' type.])
582 AC_CACHE_CHECK(for __int64, ac_cv_c___int64,
583 [AC_TRY_COMPILE(,[__int64 i;],
585 ac_cv_c___int64=no)])
586 if test $ac_cv_c___int64 = yes; then
587 AC_DEFINE(HAVE___INT64, 1,
588 [Define if your compiler supports the \`__int64' type.])
594 dnl From Bruno Haible.
598 dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
599 dnl those with the standalone portable GNU libiconv installed).
601 am_cv_lib_iconv_ldpath=
602 AC_ARG_WITH([libiconv-prefix],
603 [ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [
604 for dir in `echo "$withval" | tr : ' '`; do
605 if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
606 if test -d $dir/lib; then am_cv_lib_iconv_ldpath="-L$dir/lib"; fi
610 AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
611 am_cv_func_iconv="no, consider installing GNU libiconv"
613 AC_TRY_LINK([#include <stdlib.h>
615 [iconv_t cd = iconv_open("","");
616 iconv(cd,NULL,NULL,NULL,NULL);
618 am_cv_func_iconv=yes)
619 if test "$am_cv_func_iconv" != yes; then
621 LIBS="$LIBS $am_cv_libiconv_ldpath -liconv"
622 AC_TRY_LINK([#include <stdlib.h>
624 [iconv_t cd = iconv_open("","");
625 iconv(cd,NULL,NULL,NULL,NULL);
628 am_cv_func_iconv=yes)
632 if test "$am_cv_func_iconv" = yes; then
633 AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
634 AC_MSG_CHECKING([for iconv declaration])
635 AC_CACHE_VAL(am_cv_proto_iconv, [
643 #if defined(__STDC__) || defined(__cplusplus)
644 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
648 ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
649 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);"])
650 am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
651 AC_MSG_RESULT([$]{ac_t:-
652 }[$]am_cv_proto_iconv)
653 AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
654 [Define as const if the declaration of iconv() needs const.])
657 if test "$am_cv_lib_iconv" = yes; then
658 LIBICONV="$am_cv_lib_iconv_ldpath -liconv"
663 AC_DEFUN([gcc_AC_INITFINI_ARRAY],
664 [AC_ARG_ENABLE(initfini-array,
665 [ --enable-initfini-array use .init_array/.fini_array sections],
667 AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
668 gcc_cv_initfini_array, [dnl
671 int main (void) { return x; }
672 int foo (void) { x = 0; }
673 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;],
674 [gcc_cv_initfini_array=yes], [gcc_cv_initfini_array=no],
675 [gcc_cv_initfini_array=no])])
676 enable_initfini_array=$gcc_cv_initfini_array
678 if test $enable_initfini_array = yes; then
679 AC_DEFINE(HAVE_INITFINI_ARRAY, 1,
680 [Define .init_array/.fini_array sections are available and working.])
683 dnl # _gcc_COMPUTE_GAS_VERSION
684 dnl # Used by gcc_GAS_VERSION_GTE_IFELSE
687 dnl # gcc_cv_as_gas_srcdir must be defined before this.
688 dnl # This gross requirement will go away eventually.
689 AC_DEFUN([_gcc_COMPUTE_GAS_VERSION],
690 [gcc_cv_as_bfd_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/bfd
691 for f in $gcc_cv_as_bfd_srcdir/configure \
692 $gcc_cv_as_gas_srcdir/configure \
693 $gcc_cv_as_gas_srcdir/configure.in \
694 $gcc_cv_as_gas_srcdir/Makefile.in ; do
695 gcc_cv_gas_version=`grep '^VERSION=[[0-9]]*\.[[0-9]]*' $f`
696 if test x$gcc_cv_gas_version != x; then
700 gcc_cv_gas_major_version=`expr "$gcc_cv_gas_version" : "VERSION=\([[0-9]]*\)"`
701 gcc_cv_gas_minor_version=`expr "$gcc_cv_gas_version" : "VERSION=[[0-9]]*\.\([[0-9]]*\)"`
702 gcc_cv_gas_patch_version=`expr "$gcc_cv_gas_version" : "VERSION=[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)"`
703 case $gcc_cv_gas_patch_version in
704 "") gcc_cv_gas_patch_version="0" ;;
706 gcc_cv_gas_vers=`expr \( \( $gcc_cv_gas_major_version \* 1000 \) \
707 + $gcc_cv_gas_minor_version \) \* 1000 \
708 + $gcc_cv_gas_patch_version`
709 ]) []dnl # _gcc_COMPUTE_GAS_VERSION
711 dnl # gcc_GAS_VERSION_GTE_IFELSE([elf,] major, minor, patchlevel,
712 dnl # [command_if_true = :], [command_if_false = :])
713 dnl # Check to see if the version of GAS is greater than or
714 dnl # equal to the specified version.
716 dnl # The first ifelse() shortens the shell code if the patchlevel
717 dnl # is unimportant (the usual case). The others handle missing
718 dnl # commands. Note that the tests are structured so that the most
719 dnl # common version number cases are tested first.
720 AC_DEFUN([_gcc_GAS_VERSION_GTE_IFELSE],
722 [if test $in_tree_gas_is_elf = yes \
724 [if]) test $gcc_cv_gas_vers -ge `expr \( \( $2 \* 1000 \) + $3 \) \* 1000 + $4`
726 ifelse([$5],,:,[$5])[]dnl
731 AC_DEFUN([gcc_GAS_VERSION_GTE_IFELSE],
732 [AC_REQUIRE([_gcc_COMPUTE_GAS_VERSION])dnl
733 ifelse([$1], elf, [_gcc_GAS_VERSION_GTE_IFELSE($@)],
734 [_gcc_GAS_VERSION_GTE_IFELSE(,$@)])])
736 dnl gcc_GAS_CHECK_FEATURE(description, cv, [[elf,]major,minor,patchlevel],
737 dnl [extra switches to as], [assembler input],
738 dnl [extra testing logic], [command if feature available])
740 dnl Checks for an assembler feature. If we are building an in-tree
741 dnl gas, the feature is available if the associated assembler version
742 dnl is greater than or equal to major.minor.patchlevel. If not, then
743 dnl ASSEMBLER INPUT is fed to the assembler and the feature is available
744 dnl if assembly succeeds. If EXTRA TESTING LOGIC is not the empty string,
745 dnl then it is run instead of simply setting CV to "yes" - it is responsible
746 dnl for doing so, if appropriate.
747 AC_DEFUN([gcc_GAS_CHECK_FEATURE],
748 [AC_CACHE_CHECK([assembler for $1], [$2],
751 if test $in_tree_gas = yes; then
752 gcc_GAS_VERSION_GTE_IFELSE($3, [[$2]=yes])
753 el])if test x$gcc_cv_as != x; then
754 echo ifelse(substr([$5],0,1),[$], "[$5]", '[$5]') > conftest.s
755 if AC_TRY_COMMAND([$gcc_cv_as $4 -o conftest.o conftest.s >&AC_FD_CC])
757 ifelse([$6],, [$2]=yes, [$6])
759 echo "configure: failed program was" >&AC_FD_CC
760 cat conftest.s >&AC_FD_CC
762 rm -f conftest.o conftest.s
765 if test $[$2] = yes; then
769 # lcmessage.m4 serial 3 (gettext-0.11.3)
770 dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
771 dnl This file is free software, distributed under the terms of the GNU
772 dnl General Public License. As a special exception to the GNU General
773 dnl Public License, this file may be distributed as part of a program
774 dnl that contains a configuration script generated by Autoconf, under
775 dnl the same distribution terms as the rest of that program.
777 dnl This file can can be used in projects which are not available under
778 dnl the GNU General Public License or the GNU Library General Public
779 dnl License but which still want to provide support for the GNU gettext
781 dnl Please note that the actual code of the GNU gettext library is covered
782 dnl by the GNU Library General Public License, and the rest of the GNU
783 dnl gettext package package is covered by the GNU General Public License.
784 dnl They are *not* in the public domain.
787 dnl Ulrich Drepper <drepper@cygnus.com>, 1995.
789 # Check whether LC_MESSAGES is available in <locale.h>.
791 AC_DEFUN([AM_LC_MESSAGES],
793 AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
794 [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
795 am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
796 if test $am_cv_val_LC_MESSAGES = yes; then
797 AC_DEFINE(HAVE_LC_MESSAGES, 1,
798 [Define if your <locale.h> file defines LC_MESSAGES.])