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.
108 AC_DEFUN(gcc_AC_PROG_CMP_IGNORE_INITIAL,
109 [AC_CACHE_CHECK([for cmp's capabilities], gcc_cv_prog_cmp_skip,
112 if cmp --ignore-initial=2 t1 t2 > /dev/null 2>&1; then
113 if cmp --ignore-initial=1 t1 t2 > /dev/null 2>&1; then
114 gcc_cv_prog_cmp_skip=slowcompare
116 gcc_cv_prog_cmp_skip=gnucompare
119 gcc_cv_prog_cmp_skip=slowcompare
123 make_compare_target=$gcc_cv_prog_cmp_skip
124 AC_SUBST(make_compare_target)
127 dnl See if the printf functions in libc support %p in format strings.
128 AC_DEFUN(gcc_AC_FUNC_PRINTF_PTR,
129 [AC_CACHE_CHECK(whether the printf functions support %p,
130 gcc_cv_func_printf_ptr,
131 [AC_TRY_RUN([#include <stdio.h>
136 char *p = buf, *q = NULL;
137 sprintf(buf, "%p", p);
138 sscanf(buf, "%p", &q);
140 }], gcc_cv_func_printf_ptr=yes, gcc_cv_func_printf_ptr=no,
141 gcc_cv_func_printf_ptr=no)
142 rm -f core core.* *.core])
143 if test $gcc_cv_func_printf_ptr = yes ; then
144 AC_DEFINE(HAVE_PRINTF_PTR, 1, [Define if printf supports "%p".])
148 dnl See if symbolic links work and if not, try to substitute either hard links or simple copy.
149 AC_DEFUN(gcc_AC_PROG_LN_S,
150 [AC_MSG_CHECKING(whether ln -s works)
151 AC_CACHE_VAL(gcc_cv_prog_LN_S,
152 [rm -f conftestdata_t
154 if ln -s conftestdata_f conftestdata_t 2>/dev/null
156 gcc_cv_prog_LN_S="ln -s"
158 if ln conftestdata_f conftestdata_t 2>/dev/null
165 rm -f conftestdata_f conftestdata_t
167 LN_S="$gcc_cv_prog_LN_S"
168 if test "$gcc_cv_prog_LN_S" = "ln -s"; then
171 if test "$gcc_cv_prog_LN_S" = "ln"; then
172 AC_MSG_RESULT([no, using ln])
174 AC_MSG_RESULT([no, and neither does ln, so using cp])
180 dnl See if hard links work and if not, try to substitute either symbolic links or simple copy.
181 AC_DEFUN(gcc_AC_PROG_LN,
182 [AC_MSG_CHECKING(whether ln works)
183 AC_CACHE_VAL(gcc_cv_prog_LN,
184 [rm -f conftestdata_t
186 if ln conftestdata_f conftestdata_t 2>/dev/null
190 if ln -s conftestdata_f conftestdata_t 2>/dev/null
192 gcc_cv_prog_LN="ln -s"
197 rm -f conftestdata_f conftestdata_t
200 if test "$gcc_cv_prog_LN" = "ln"; then
203 if test "$gcc_cv_prog_LN" = "ln -s"; then
204 AC_MSG_RESULT([no, using ln -s])
206 AC_MSG_RESULT([no, and neither does ln -s, so using cp])
212 dnl Check whether _Bool is built-in.
213 AC_DEFUN(gcc_AC_C__BOOL,
214 [AC_CACHE_CHECK(for built-in _Bool, gcc_cv_c__bool,
217 gcc_cv_c__bool=yes, gcc_cv_c__bool=no)
219 if test $gcc_cv_c__bool = yes; then
220 AC_DEFINE(HAVE__BOOL, 1, [Define if the \`_Bool' type is built-in.])
224 dnl Define MKDIR_TAKES_ONE_ARG if mkdir accepts only one argument instead
226 AC_DEFUN(gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG,
227 [AC_CACHE_CHECK([if mkdir takes one argument], gcc_cv_mkdir_takes_one_arg,
229 #include <sys/types.h>
230 #ifdef HAVE_SYS_STAT_H
231 # include <sys/stat.h>
238 #endif], [mkdir ("foo", 0);],
239 gcc_cv_mkdir_takes_one_arg=no, gcc_cv_mkdir_takes_one_arg=yes)])
240 if test $gcc_cv_mkdir_takes_one_arg = yes ; then
241 AC_DEFINE(MKDIR_TAKES_ONE_ARG, 1, [Define if host mkdir takes a single argument.])
245 AC_DEFUN(gcc_AC_PROG_INSTALL,
246 [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
247 # Find a good install program. We prefer a C program (faster),
248 # so one script is as good as another. But avoid the broken or
249 # incompatible versions:
250 # SysV /etc/install, /usr/sbin/install
251 # SunOS /usr/etc/install
254 # AFS /usr/afsws/bin/install, which mishandles nonexistent args
255 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
256 # ./install, which can be erroneously created by make from ./install.sh.
257 AC_MSG_CHECKING(for a BSD compatible install)
258 if test -z "$INSTALL"; then
259 AC_CACHE_VAL(ac_cv_path_install,
260 [ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="${IFS}:"
261 for ac_dir in $PATH; do
262 # Account for people who put trailing slashes in PATH elements.
264 /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
266 # OSF1 and SCO ODT 3.0 have their own names for install.
267 for ac_prog in ginstall scoinst install; do
268 if test -f $ac_dir/$ac_prog; then
269 if test $ac_prog = install &&
270 grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
271 # AIX install. It has an incompatible calling convention.
272 # OSF/1 installbsd also uses dspmsg, but is usable.
275 ac_cv_path_install="$ac_dir/$ac_prog -c"
285 if test "${ac_cv_path_install+set}" = set; then
286 INSTALL="$ac_cv_path_install"
288 # As a last resort, use the slow shell script. We don't cache a
289 # path for INSTALL within a source directory, because that will
290 # break other packages using the cache if that directory is
291 # removed, or if the path is relative.
292 INSTALL="$ac_install_sh"
295 dnl We do special magic for INSTALL instead of AC_SUBST, to get
296 dnl relative paths right.
297 AC_MSG_RESULT($INSTALL)
300 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
301 # It thinks the first close brace ends the variable substitution.
302 test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
303 AC_SUBST(INSTALL_PROGRAM)dnl
305 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
306 AC_SUBST(INSTALL_DATA)dnl
310 dnl We require the gnatbind program, and a compiler driver that
311 dnl understands Ada. The user may set the driver name explicitly
312 dnl with ADAC; also, the user's CC setting is tried. Failing that,
313 dnl we try gcc and cc, then a sampling of names known to be used for
314 dnl the Ada driver on various systems.
316 dnl Sets the shell variable have_gnat to yes or no as appropriate, and
317 dnl substitutes GNATBIND and ADAC.
318 AC_DEFUN([gcc_AC_PROG_GNAT],
319 [AC_REQUIRE([AC_CHECK_TOOL_PREFIX])
320 AC_CHECK_TOOL(GNATBIND, gnatbind, no)
321 AC_CACHE_CHECK([for compiler driver that understands Ada],
323 [cat >conftest.adb <<EOF
324 procedure conftest is begin null; end conftest;
327 # Have to do ac_tool_prefix and user overrides by hand.
328 for cand in ${ADAC+"$ADAC"} ${CC+"$CC"} \
329 ${ac_tool_prefix}gcc gcc \
330 ${ac_tool_prefix}cc cc \
331 ${ac_tool_prefix}gnatgcc gnatgcc \
332 ${ac_tool_prefix}gnatcc gnatcc \
333 ${ac_tool_prefix}adagcc adagcc \
334 ${ac_tool_prefix}adacc adacc ; do
335 # There is a bug in all 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=`($cand -c conftest.adb) 2>&1 || echo failure`
341 if test x"$errors" = x; then
342 gcc_cv_prog_adac=$cand
347 ADAC=$gcc_cv_prog_adac
350 if test x$GNATBIND != xno && test x$ADAC != xno; then
357 dnl GCC_PATH_PROG(VARIABLE, PROG-TO-CHECK-FOR [, VALUE-IF-NOT-FOUND [, PATH]])
358 dnl like AC_PATH_PROG but use other cache variables
359 AC_DEFUN(GCC_PATH_PROG,
360 [# Extract the first word of "$2", so it can be a program name with args.
361 set dummy $2; ac_word=[$]2
362 AC_MSG_CHECKING([for $ac_word])
363 AC_CACHE_VAL(gcc_cv_path_$1,
366 gcc_cv_path_$1="[$]$1" # Let the user override the test with a path.
369 gcc_cv_path_$1="[$]$1" # Let the user override the test with a dos path.
372 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
373 dnl $ac_dummy forces splitting on constant user-supplied paths.
374 dnl POSIX.2 word splitting is done only on the output of word expansions,
375 dnl not every word. This closes a longstanding sh security hole.
376 ac_dummy="ifelse([$4], , $PATH, [$4])"
377 for ac_dir in $ac_dummy; do
378 test -z "$ac_dir" && ac_dir=.
379 if test -f $ac_dir/$ac_word; then
380 gcc_cv_path_$1="$ac_dir/$ac_word"
385 dnl If no 3rd arg is given, leave the cache variable unset,
386 dnl so GCC_PATH_PROGS will keep looking.
387 ifelse([$3], , , [ test -z "[$]gcc_cv_path_$1" && gcc_cv_path_$1="$3"
392 if test -n "[$]$1"; then
400 # mmap(2) blacklisting. Some platforms provide the mmap library routine
401 # but don't support all of the features we need from it.
402 AC_DEFUN([gcc_AC_FUNC_MMAP_BLACKLIST],
403 [if test $ac_cv_header_sys_mman_h != yes \
404 || test $ac_cv_func_mmap != yes; then
405 gcc_cv_func_mmap_file=no
406 gcc_cv_func_mmap_dev_zero=no
407 gcc_cv_func_mmap_anon=no
409 AC_CACHE_CHECK([whether read-only mmap of a plain file works],
410 gcc_cv_func_mmap_file,
411 [# Add a system to this blacklist if
412 # mmap(0, stat_size, PROT_READ, MAP_PRIVATE, fd, 0) doesn't return a
413 # memory area containing the same data that you'd get if you applied
414 # read() to the same fd. The only system known to have a problem here
415 # is VMS, where text files have record structure.
418 gcc_cv_func_mmap_file=no ;;
420 gcc_cv_func_mmap_file=yes;;
422 AC_CACHE_CHECK([whether mmap from /dev/zero works],
423 gcc_cv_func_mmap_dev_zero,
424 [# Add a system to this blacklist if it has mmap() but /dev/zero
425 # does not exist, or if mmapping /dev/zero does not give anonymous
426 # zeroed pages with both the following properties:
427 # 1. If you map N consecutive pages in with one call, and then
428 # unmap any subset of those pages, the pages that were not
429 # explicitly unmapped remain accessible.
430 # 2. If you map two adjacent blocks of memory and then unmap them
431 # both at once, they must both go away.
432 # Systems known to be in this category are Windows (all variants),
435 vms* | cygwin* | pe | mingw* | darwin*)
436 gcc_cv_func_mmap_dev_zero=no ;;
438 gcc_cv_func_mmap_dev_zero=yes;;
441 # Unlike /dev/zero, the MAP_ANON(YMOUS) defines can be probed for.
442 AC_CACHE_CHECK([for MAP_ANON(YMOUS)], gcc_cv_decl_map_anon,
444 [#include <sys/types.h>
445 #include <sys/mman.h>
448 #ifndef MAP_ANONYMOUS
449 #define MAP_ANONYMOUS MAP_ANON
452 [int n = MAP_ANONYMOUS;],
453 gcc_cv_decl_map_anon=yes,
454 gcc_cv_decl_map_anon=no)])
456 if test $gcc_cv_decl_map_anon = no; then
457 gcc_cv_func_mmap_anon=no
459 AC_CACHE_CHECK([whether mmap with MAP_ANON(YMOUS) works],
460 gcc_cv_func_mmap_anon,
461 [# Add a system to this blacklist if it has mmap() and MAP_ANON or
462 # MAP_ANONYMOUS, but using mmap(..., MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
463 # doesn't give anonymous zeroed pages with the same properties listed
464 # above for use of /dev/zero.
465 # Systems known to be in this category are Windows, VMS, and SCO Unix.
467 vms* | cygwin* | pe | mingw* | sco* | udk* )
468 gcc_cv_func_mmap_anon=no ;;
470 gcc_cv_func_mmap_anon=yes;;
475 if test $gcc_cv_func_mmap_file = yes; then
476 AC_DEFINE(HAVE_MMAP_FILE, 1,
477 [Define if read-only mmap of a plain file works.])
479 if test $gcc_cv_func_mmap_dev_zero = yes; then
480 AC_DEFINE(HAVE_MMAP_DEV_ZERO, 1,
481 [Define if mmap of /dev/zero works.])
483 if test $gcc_cv_func_mmap_anon = yes; then
484 AC_DEFINE(HAVE_MMAP_ANON, 1,
485 [Define if mmap with MAP_ANON(YMOUS) works.])
489 dnl Locate a program and check that its version is acceptable.
490 dnl AC_PROG_CHECK_VER(var, name, version-switch,
491 dnl version-extract-regexp, version-glob)
492 AC_DEFUN(gcc_AC_CHECK_PROG_VER,
493 [AC_CHECK_PROG([$1], [$2], [$2])
494 if test -n "[$]$1"; then
495 # Found it, now check the version.
496 AC_CACHE_CHECK(for modern $2, gcc_cv_prog_$2_modern,
497 [changequote(<<,>>)dnl
498 ac_prog_version=`<<$>>$1 $3 2>&1 |
499 sed -n 's/^.*patsubst(<<$4>>,/,\/).*$/\1/p'`
501 echo "configure:__oline__: version of $2 is $ac_prog_version" >&AC_FD_CC
502 changequote(<<,>>)dnl
503 case $ac_prog_version in
504 '') gcc_cv_prog_$2_modern=no;;
506 gcc_cv_prog_$2_modern=yes;;
507 *) gcc_cv_prog_$2_modern=no;;
512 gcc_cv_prog_$2_modern=no
516 dnl Determine if enumerated bitfields are unsigned. ISO C says they can
517 dnl be either signed or unsigned.
519 AC_DEFUN(gcc_AC_C_ENUM_BF_UNSIGNED,
520 [AC_CACHE_CHECK(for unsigned enumerated bitfields, gcc_cv_enum_bf_unsigned,
521 [AC_TRY_RUN(#include <stdlib.h>
522 enum t { BLAH = 128 } ;
523 struct s_t { enum t member : 8; } s ;
527 if (s.member < 0) exit(1);
530 }, gcc_cv_enum_bf_unsigned=yes, gcc_cv_enum_bf_unsigned=no, gcc_cv_enum_bf_unsigned=yes)])
531 if test $gcc_cv_enum_bf_unsigned = yes; then
532 AC_DEFINE(ENUM_BITFIELDS_ARE_UNSIGNED, 1,
533 [Define if enumerated bitfields are treated as unsigned values.])
536 dnl Probe number of bits in a byte.
537 dnl Note C89 requires CHAR_BIT >= 8.
539 AC_DEFUN(gcc_AC_C_CHAR_BIT,
540 [AC_CACHE_CHECK(for CHAR_BIT, gcc_cv_decl_char_bit,
542 [#ifdef HAVE_LIMITS_H
547 #endif], gcc_cv_decl_char_bit=yes, gcc_cv_decl_char_bit=no)
549 if test $gcc_cv_decl_char_bit = no; then
550 AC_CACHE_CHECK(number of bits in a byte, gcc_cv_c_nbby,
553 while test $i -lt 65; do
556 case (unsigned char)((unsigned long)1 << $i) == ((unsigned long)1 << $i):
557 case (unsigned char)((unsigned long)1<<($i-1)) == ((unsigned long)1<<($i-1)):
559 [gcc_cv_c_nbby=$i; break])
562 test -z "$gcc_cv_c_nbby" && gcc_cv_c_nbby=failed
564 if test $gcc_cv_c_nbby = failed; then
565 AC_MSG_ERROR(cannot determine number of bits in a byte)
567 AC_DEFINE_UNQUOTED(CHAR_BIT, $gcc_cv_c_nbby,
568 [Define as the number of bits in a byte, if \`limits.h' doesn't.])
572 dnl Checking for long long.
573 dnl By Caolan McNamara <caolan@skynet.ie>
574 dnl Added check for __int64, Zack Weinberg <zackw@stanford.edu>
576 AC_DEFUN([gcc_AC_C_LONG_LONG],
577 [AC_CACHE_CHECK(for long long int, ac_cv_c_long_long,
578 [AC_TRY_COMPILE(,[long long int i;],
579 ac_cv_c_long_long=yes,
580 ac_cv_c_long_long=no)])
581 if test $ac_cv_c_long_long = yes; then
582 AC_DEFINE(HAVE_LONG_LONG, 1,
583 [Define if your compiler supports the \`long long' type.])
585 AC_CACHE_CHECK(for __int64, ac_cv_c___int64,
586 [AC_TRY_COMPILE(,[__int64 i;],
588 ac_cv_c___int64=no)])
589 if test $ac_cv_c___int64 = yes; then
590 AC_DEFINE(HAVE___INT64, 1,
591 [Define if your compiler supports the \`__int64' type.])
597 dnl From Bruno Haible.
601 dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
602 dnl those with the standalone portable GNU libiconv installed).
604 am_cv_lib_iconv_ldpath=
605 AC_ARG_WITH([libiconv-prefix],
606 [ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [
607 for dir in `echo "$withval" | tr : ' '`; do
608 if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
609 if test -d $dir/lib; then am_cv_lib_iconv_ldpath="-L$dir/lib"; fi
613 AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
614 am_cv_func_iconv="no, consider installing GNU libiconv"
616 AC_TRY_LINK([#include <stdlib.h>
618 [iconv_t cd = iconv_open("","");
619 iconv(cd,NULL,NULL,NULL,NULL);
621 am_cv_func_iconv=yes)
622 if test "$am_cv_func_iconv" != yes; then
624 LIBS="$LIBS $am_cv_libiconv_ldpath -liconv"
625 AC_TRY_LINK([#include <stdlib.h>
627 [iconv_t cd = iconv_open("","");
628 iconv(cd,NULL,NULL,NULL,NULL);
631 am_cv_func_iconv=yes)
635 if test "$am_cv_func_iconv" = yes; then
636 AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
637 AC_MSG_CHECKING([for iconv declaration])
638 AC_CACHE_VAL(am_cv_proto_iconv, [
646 #if defined(__STDC__) || defined(__cplusplus)
647 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
651 ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
652 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);"])
653 am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
654 AC_MSG_RESULT([$]{ac_t:-
655 }[$]am_cv_proto_iconv)
656 AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
657 [Define as const if the declaration of iconv() needs const.])
660 if test "$am_cv_lib_iconv" = yes; then
661 LIBICONV="$am_cv_lib_iconv_ldpath -liconv"
666 AC_DEFUN(gcc_AC_INITFINI_ARRAY,
667 [AC_ARG_ENABLE(initfini-array,
668 [ --enable-initfini-array use .init_array/.fini_array sections],
670 AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
671 gcc_cv_initfini_array, [dnl
674 int main (void) { return x; }
675 int foo (void) { x = 0; }
676 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;],
677 [gcc_cv_initfini_array=yes], [gcc_cv_initfini_array=no],
678 [gcc_cv_initfini_array=no])])
679 enable_initfini_array=$gcc_cv_initfini_array
681 if test $enable_initfini_array = yes; then
682 AC_DEFINE(HAVE_INITFINI_ARRAY, 1,
683 [Define .init_array/.fini_array sections are available and working.])
686 dnl # _gcc_COMPUTE_GAS_VERSION
687 dnl # Used by gcc_GAS_VERSION_GTE_IFELSE
690 dnl # gcc_cv_as_gas_srcdir must be defined before this.
691 dnl # This gross requirement will go away eventually.
692 AC_DEFUN([_gcc_COMPUTE_GAS_VERSION],
693 [gcc_cv_as_bfd_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/bfd
694 for f in $gcc_cv_as_bfd_srcdir/configure \
695 $gcc_cv_as_gas_srcdir/configure \
696 $gcc_cv_as_gas_srcdir/configure.in \
697 $gcc_cv_as_gas_srcdir/Makefile.in ; do
698 gcc_cv_gas_version=`grep '^VERSION=[[0-9]]*\.[[0-9]]*' $f`
699 if test x$gcc_cv_gas_version != x; then
703 gcc_cv_gas_major_version=`expr "$gcc_cv_gas_version" : "VERSION=\([[0-9]]*\)"`
704 gcc_cv_gas_minor_version=`expr "$gcc_cv_gas_version" : "VERSION=[[0-9]]*\.\([[0-9]]*\)"`
705 gcc_cv_gas_patch_version=`expr "$gcc_cv_gas_version" : "VERSION=[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)"`
706 case $gcc_cv_gas_patch_version in
707 "") gcc_cv_gas_patch_version="0" ;;
709 gcc_cv_gas_vers=`expr \( \( $gcc_cv_gas_major_version \* 1000 \) \
710 + $gcc_cv_gas_minor_version \) \* 1000 \
711 + $gcc_cv_gas_patch_version`
712 ]) []dnl # _gcc_COMPUTE_GAS_VERSION
714 dnl # gcc_GAS_VERSION_GTE_IFELSE([elf,] major, minor, patchlevel,
715 dnl # [command_if_true = :], [command_if_false = :])
716 dnl # Check to see if the version of GAS is greater than or
717 dnl # equal to the specified version.
719 dnl # The first ifelse() shortens the shell code if the patchlevel
720 dnl # is unimportant (the usual case). The others handle missing
721 dnl # commands. Note that the tests are structured so that the most
722 dnl # common version number cases are tested first.
723 AC_DEFUN([_gcc_GAS_VERSION_GTE_IFELSE],
725 [if test $in_tree_gas_is_elf = yes \
727 [if]) test $gcc_cv_gas_vers -ge `expr \( \( $2 \* 1000 \) + $3 \) \* 1000 + $4`
729 ifelse([$5],,:,[$5])[]dnl
734 AC_DEFUN([gcc_GAS_VERSION_GTE_IFELSE],
735 [AC_REQUIRE([_gcc_COMPUTE_GAS_VERSION])dnl
736 ifelse([$1], elf, [_gcc_GAS_VERSION_GTE_IFELSE($@)],
737 [_gcc_GAS_VERSION_GTE_IFELSE(,$@)])])
739 dnl gcc_GAS_CHECK_FEATURE(description, cv, [[elf,]major,minor,patchlevel],
740 dnl [extra switches to as], [assembler input],
741 dnl [extra testing logic], [command if feature available])
743 dnl Checks for an assembler feature. If we are building an in-tree
744 dnl gas, the feature is available if the associated assembler version
745 dnl is greater than or equal to major.minor.patchlevel. If not, then
746 dnl ASSEMBLER INPUT is fed to the assembler and the feature is available
747 dnl if assembly succeeds. If EXTRA TESTING LOGIC is not the empty string,
748 dnl then it is run instead of simply setting CV to "yes" - it is responsible
749 dnl for doing so, if appropriate.
750 AC_DEFUN([gcc_GAS_CHECK_FEATURE],
751 [AC_CACHE_CHECK([assembler for $1], [$2],
754 if test $in_tree_gas = yes; then
755 gcc_GAS_VERSION_GTE_IFELSE($3, [[$2]=yes])
756 el])if test x$gcc_cv_as != x; then
757 echo ifelse(substr([$5],0,1),[$], "[$5]", '[$5]') > conftest.s
758 if AC_TRY_COMMAND([$gcc_cv_as $4 -o conftest.o conftest.s >&AC_FD_CC])
760 ifelse([$6],, [$2]=yes, [$6])
762 echo "configure: failed program was" >&AC_FD_CC
763 cat conftest.s >&AC_FD_CC
765 rm -f conftest.o conftest.s
768 if test $[$2] = yes; then
772 # lcmessage.m4 serial 3 (gettext-0.11.3)
773 dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
774 dnl This file is free software, distributed under the terms of the GNU
775 dnl General Public License. As a special exception to the GNU General
776 dnl Public License, this file may be distributed as part of a program
777 dnl that contains a configuration script generated by Autoconf, under
778 dnl the same distribution terms as the rest of that program.
780 dnl This file can can be used in projects which are not available under
781 dnl the GNU General Public License or the GNU Library General Public
782 dnl License but which still want to provide support for the GNU gettext
784 dnl Please note that the actual code of the GNU gettext library is covered
785 dnl by the GNU Library General Public License, and the rest of the GNU
786 dnl gettext package package is covered by the GNU General Public License.
787 dnl They are *not* in the public domain.
790 dnl Ulrich Drepper <drepper@cygnus.com>, 1995.
792 # Check whether LC_MESSAGES is available in <locale.h>.
794 AC_DEFUN([AM_LC_MESSAGES],
796 AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
797 [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
798 am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
799 if test $am_cv_val_LC_MESSAGES = yes; then
800 AC_DEFINE(HAVE_LC_MESSAGES, 1,
801 [Define if your <locale.h> file defines LC_MESSAGES.])