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