OSDN Git Service

2007-05-02 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / configure.ac
1 # configure.ac for GCC
2 # Process this file with autoconf to generate a configuration script.
3
4 # Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
5 # Free Software Foundation, Inc.
6
7 #This file is part of GCC.
8
9 #GCC is free software; you can redistribute it and/or modify it under
10 #the terms of the GNU General Public License as published by the Free
11 #Software Foundation; either version 2, or (at your option) any later
12 #version.
13
14 #GCC is distributed in the hope that it will be useful, but WITHOUT
15 #ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 #FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
17 #for more details.
18
19 #You should have received a copy of the GNU General Public License
20 #along with GCC; see the file COPYING.  If not, write to the Free
21 #Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
22 #02110-1301, USA.
23
24 # --------------------------------
25 # Initialization and sanity checks
26 # --------------------------------
27
28 AC_PREREQ(2.59)
29 AC_INIT
30 AC_CONFIG_SRCDIR(tree.c)
31 AC_CONFIG_HEADER(auto-host.h:config.in)
32
33 gcc_version=`cat $srcdir/BASE-VER`
34
35 # Determine the host, build, and target systems
36 AC_CANONICAL_BUILD
37 AC_CANONICAL_HOST
38 AC_CANONICAL_TARGET
39
40 # Determine the noncanonical target name, for directory use.
41 ACX_NONCANONICAL_TARGET
42
43 # Determine the target- and build-specific subdirectories
44 GCC_TOPLEV_SUBDIRS
45
46 # Set program_transform_name
47 AC_ARG_PROGRAM
48
49 # Check for bogus environment variables.
50 # Test if LIBRARY_PATH contains the notation for the current directory
51 # since this would lead to problems installing/building glibc.
52 # LIBRARY_PATH contains the current directory if one of the following
53 # is true:
54 # - one of the terminals (":" and ";") is the first or last sign
55 # - two terminals occur directly after each other
56 # - the path contains an element with a dot in it
57 AC_MSG_CHECKING(LIBRARY_PATH variable)
58 changequote(,)dnl
59 case ${LIBRARY_PATH} in
60   [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
61     library_path_setting="contains current directory"
62     ;;
63   *)
64     library_path_setting="ok"
65     ;;
66 esac
67 changequote([,])dnl
68 AC_MSG_RESULT($library_path_setting)
69 if test "$library_path_setting" != "ok"; then
70 AC_MSG_ERROR([
71 *** LIBRARY_PATH shouldn't contain the current directory when
72 *** building gcc. Please change the environment variable
73 *** and run configure again.])
74 fi
75
76 # Test if GCC_EXEC_PREFIX contains the notation for the current directory
77 # since this would lead to problems installing/building glibc.
78 # GCC_EXEC_PREFIX contains the current directory if one of the following
79 # is true:
80 # - one of the terminals (":" and ";") is the first or last sign
81 # - two terminals occur directly after each other
82 # - the path contains an element with a dot in it
83 AC_MSG_CHECKING(GCC_EXEC_PREFIX variable)
84 changequote(,)dnl
85 case ${GCC_EXEC_PREFIX} in
86   [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
87     gcc_exec_prefix_setting="contains current directory"
88     ;;
89   *)
90     gcc_exec_prefix_setting="ok"
91     ;;
92 esac
93 changequote([,])dnl
94 AC_MSG_RESULT($gcc_exec_prefix_setting)
95 if test "$gcc_exec_prefix_setting" != "ok"; then
96 AC_MSG_ERROR([
97 *** GCC_EXEC_PREFIX shouldn't contain the current directory when
98 *** building gcc. Please change the environment variable
99 *** and run configure again.])
100 fi
101
102 # -----------
103 # Directories
104 # -----------
105
106 # Specify the local prefix
107 local_prefix=
108 AC_ARG_WITH(local-prefix,
109 [  --with-local-prefix=DIR specifies directory to put local include],
110 [case "${withval}" in
111 yes)    AC_MSG_ERROR(bad value ${withval} given for local include directory prefix) ;;
112 no)     ;;
113 *)      local_prefix=$with_local_prefix ;;
114 esac])
115
116 # Default local prefix if it is empty
117 if test x$local_prefix = x; then
118         local_prefix=/usr/local
119 fi
120
121 # Don't set gcc_gxx_include_dir to gxx_include_dir since that's only
122 # passed in by the toplevel make and thus we'd get different behavior
123 # depending on where we built the sources.
124 gcc_gxx_include_dir=
125 # Specify the g++ header file directory
126 AC_ARG_WITH(gxx-include-dir,
127 [  --with-gxx-include-dir=DIR
128                           specifies directory to put g++ header files],
129 [case "${withval}" in
130 yes)    AC_MSG_ERROR(bad value ${withval} given for g++ include directory) ;;
131 no)     ;;
132 *)      gcc_gxx_include_dir=$with_gxx_include_dir ;;
133 esac])
134
135 # This logic must match libstdc++-v3/acinclude.m4:GLIBCXX_EXPORT_INSTALL_INFO.
136 if test x${gcc_gxx_include_dir} = x; then
137   if test x${enable_version_specific_runtime_libs} = xyes; then
138     gcc_gxx_include_dir='${libsubdir}/include/c++'
139   else
140     libstdcxx_incdir='include/c++/$(version)'
141     if test x$host != x$target; then
142        libstdcxx_incdir="$target_alias/$libstdcxx_incdir"
143     fi
144 changequote(<<, >>)dnl
145     gcc_gxx_include_dir="\$(libsubdir)/\$(unlibsubdir)/..\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/[^/]*|/..|g'\`/$libstdcxx_incdir"
146 changequote([, ])dnl
147   fi
148 fi
149
150 AC_ARG_WITH(cpp_install_dir,
151 [  --with-cpp-install-dir=DIR
152                           install the user visible C preprocessor in DIR
153                           (relative to PREFIX) as well as PREFIX/bin],
154 [if test x$withval = xyes; then
155   AC_MSG_ERROR([option --with-cpp-install-dir requires an argument])
156 elif test x$withval != xno; then
157   cpp_install_dir=$withval
158 fi])
159
160 # We would like to our source tree to be readonly.  However when releases or
161 # pre-releases are generated, the flex/bison generated files as well as the 
162 # various formats of manuals need to be included along with the rest of the
163 # sources.  Therefore we have --enable-generated-files-in-srcdir to do 
164 # just that.
165
166 AC_MSG_CHECKING([whether to place generated files in the source directory])
167   dnl generated-files-in-srcdir is disabled by default
168   AC_ARG_ENABLE(generated-files-in-srcdir, 
169 [  --enable-generated-files-in-srcdir
170                           put copies of generated files in source dir
171                           intended for creating source tarballs for users
172                           without texinfo bison or flex.],
173       generated_files_in_srcdir=$enableval,
174       generated_files_in_srcdir=no)
175
176 AC_MSG_RESULT($generated_files_in_srcdir)
177
178 if test "$generated_files_in_srcdir" = "yes"; then
179   GENINSRC=''
180 else
181   GENINSRC='#'
182 fi
183 AC_SUBST(GENINSRC)
184
185 # -------------------
186 # Find default linker
187 # -------------------
188
189 # With GNU ld
190 AC_ARG_WITH(gnu-ld,
191 [  --with-gnu-ld           arrange to work with GNU ld.],
192 gnu_ld_flag="$with_gnu_ld",
193 gnu_ld_flag=no)
194
195 # With pre-defined ld
196 AC_ARG_WITH(ld,
197 [  --with-ld               arrange to use the specified ld (full pathname)],
198 DEFAULT_LINKER="$with_ld")
199 if test x"${DEFAULT_LINKER+set}" = x"set"; then
200   if test ! -x "$DEFAULT_LINKER"; then
201     AC_MSG_ERROR([cannot execute: $DEFAULT_LINKER: check --with-ld or env. var. DEFAULT_LINKER])
202   elif $DEFAULT_LINKER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
203     gnu_ld_flag=yes
204   fi
205   AC_DEFINE_UNQUOTED(DEFAULT_LINKER,"$DEFAULT_LINKER",
206         [Define to enable the use of a default linker.])
207 fi
208
209 AC_MSG_CHECKING([whether a default linker was specified])
210 if test x"${DEFAULT_LINKER+set}" = x"set"; then
211   if test x"$gnu_ld_flag" = x"no"; then
212     AC_MSG_RESULT([yes ($DEFAULT_LINKER)])
213   else
214     AC_MSG_RESULT([yes ($DEFAULT_LINKER - GNU ld)])
215   fi
216 else
217   AC_MSG_RESULT(no)
218 fi
219
220 # With demangler in GNU ld
221 AC_ARG_WITH(demangler-in-ld,
222 [  --with-demangler-in-ld  try to use demangler in GNU ld.],
223 demangler_in_ld="$with_demangler_in_ld",
224 demangler_in_ld=no)
225
226 # ----------------------
227 # Find default assembler
228 # ----------------------
229
230 # With GNU as
231 AC_ARG_WITH(gnu-as,
232 [  --with-gnu-as           arrange to work with GNU as],
233 gas_flag="$with_gnu_as",
234 gas_flag=no)
235
236 AC_ARG_WITH(as,
237 [  --with-as               arrange to use the specified as (full pathname)],
238 DEFAULT_ASSEMBLER="$with_as")
239 if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
240   if test ! -x "$DEFAULT_ASSEMBLER"; then
241     AC_MSG_ERROR([cannot execute: $DEFAULT_ASSEMBLER: check --with-as or env. var. DEFAULT_ASSEMBLER])
242   elif $DEFAULT_ASSEMBLER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
243     gas_flag=yes
244   fi
245   AC_DEFINE_UNQUOTED(DEFAULT_ASSEMBLER,"$DEFAULT_ASSEMBLER",
246         [Define to enable the use of a default assembler.])
247 fi
248
249 AC_MSG_CHECKING([whether a default assembler was specified])
250 if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
251   if test x"$gas_flag" = x"no"; then
252     AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER)])
253   else
254     AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER - GNU as)])
255   fi
256 else
257   AC_MSG_RESULT(no)
258 fi
259
260 # ---------------
261 # Find C compiler
262 # ---------------
263
264 # If a non-executable a.out is present (e.g. created by GNU as above even if
265 # invoked with -v only), the IRIX 6 native ld just overwrites the existing
266 # file, even when creating an executable, so an execution test fails.
267 # Remove possible default executable files to avoid this.
268 #
269 # FIXME: This really belongs into AC_PROG_CC and can be removed once
270 # Autoconf includes it.
271 rm -f a.out a.exe b.out
272
273 # Find the native compiler
274 AC_PROG_CC
275 AM_PROG_CC_C_O
276 # autoconf is lame and doesn't give us any substitution variable for this.
277 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
278   NO_MINUS_C_MINUS_O=yes
279 else
280   OUTPUT_OPTION='-o $@'
281 fi
282 AC_SUBST(NO_MINUS_C_MINUS_O)
283 AC_SUBST(OUTPUT_OPTION)
284
285 # Remove the -O2: for historical reasons, unless bootstrapping we prefer
286 # optimizations to be activated explicitly by the toplevel.
287 case "$CC" in
288   */prev-gcc/xgcc*) ;;
289   *) CFLAGS=`echo $CFLAGS | sed "s/-O[[s0-9]]* *//" ` ;;
290 esac
291 AC_SUBST(CFLAGS)
292
293 # -------------------------
294 # Check C compiler features
295 # -------------------------
296
297 AC_PROG_CPP
298 AC_C_INLINE
299
300 # sizeof(char) is 1 by definition.
301 AC_CHECK_SIZEOF(void *)
302 AC_CHECK_SIZEOF(short)
303 AC_CHECK_SIZEOF(int)
304 AC_CHECK_SIZEOF(long)
305 AC_CHECK_TYPES([long long], [AC_CHECK_SIZEOF(long long)])
306 AC_CHECK_TYPES([__int64], [AC_CHECK_SIZEOF(__int64)])
307
308 # ---------------------
309 # Warnings and checking
310 # ---------------------
311
312 # Check $CC warning features (if it's GCC).
313 # We want to use -pedantic, but we don't want warnings about
314 # * 'long long'
315 # * variadic macros
316 # * overlong strings
317 # So, we only use -pedantic if we can disable those warnings.
318
319 AC_CACHE_CHECK(
320   [whether ${CC} accepts -Wno-long-long],
321   [ac_cv_prog_cc_w_no_long_long],
322   [save_CFLAGS="$CFLAGS"
323   CFLAGS="-Wno-long-long"
324   AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
325                     [ac_cv_prog_cc_w_no_long_long=yes],
326                     [ac_cv_prog_cc_w_no_long_long=no])
327   CFLAGS="$save_CFLAGS"
328   ])
329
330 AC_CACHE_CHECK(
331   [whether ${CC} accepts -Wno-variadic-macros],
332   [ac_cv_prog_cc_w_no_variadic_macros],
333   [save_CFLAGS="$CFLAGS"
334   CFLAGS="-Wno-variadic-macros"
335   AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
336                     [ac_cv_prog_cc_w_no_variadic_macros=yes],
337                     [ac_cv_prog_cc_w_no_variadic_macros=no])
338   CFLAGS="$save_CFLAGS"
339   ])
340
341 AC_CACHE_CHECK(
342   [whether ${CC} accepts -Wno-overlength-strings],
343   [ac_cv_prog_cc_w_no_overlength_strings],
344   [save_CFLAGS="$CFLAGS"
345   CFLAGS="-Wno-overlength-strings"
346   AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
347                     [ac_cv_prog_cc_w_no_overlength_strings=yes],
348                     [ac_cv_prog_cc_w_no_overlength_strings=no])
349   CFLAGS="$save_CFLAGS"
350   ])
351
352 strict_warn=
353 if test $ac_cv_prog_cc_w_no_long_long = yes \
354    && test $ac_cv_prog_cc_w_no_variadic_macros = yes \
355    && test $ac_cv_prog_cc_w_no_overlength_strings = yes ; then
356   strict_warn="-pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings"
357 fi
358
359 # Add -Wold-style-definition if it's accepted
360 AC_CACHE_CHECK(
361   [whether ${CC} accepts -Wold-style-definition],
362   [ac_cv_prog_cc_w_old_style_definition],
363   [save_CFLAGS="$CFLAGS"
364   CFLAGS="-Wold-style-definition"
365   AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
366                     [ac_cv_prog_cc_w_old_style_definition=yes],
367                     [ac_cv_prog_cc_w_old_style_definition=no])
368   CFLAGS="$save_CFLAGS"
369   ])
370 if test $ac_cv_prog_cc_w_old_style_definition = yes ; then
371   strict_warn="${strict_warn} -Wold-style-definition"
372 fi
373
374 # Add -Wmissing-format-attribute if it's accepted
375 AC_CACHE_CHECK(
376   [whether ${CC} accepts -Wmissing-format-attribute],
377   [ac_cv_prog_cc_w_missing_format_attribute],
378   [save_CFLAGS="$CFLAGS"
379   CFLAGS="-Wmissing-format-attribute"
380   AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
381                     [ac_cv_prog_cc_w_missing_format_attribute=yes],
382                     [ac_cv_prog_cc_w_missing_format_attribute=no])
383   CFLAGS="$save_CFLAGS"
384   ])
385 if test $ac_cv_prog_cc_w_missing_format_attribute = yes ; then
386   strict_warn="${strict_warn} -Wmissing-format-attribute"
387 fi
388
389 # Enable -Werror, period.
390 AC_ARG_ENABLE(werror_always, 
391 [  --enable-werror-always         enable -Werror always], [],
392 [enable_werror_always=no])
393 if test x${enable_werror_always} = xyes ; then
394   strict_warn="${strict_warn} -Werror"
395 fi
396 AC_SUBST(strict_warn)
397
398 # Get C++ compatibility warning flag, if supported.
399 AC_CACHE_CHECK(
400   [whether ${CC} accepts -Wc++-compat],
401   [ac_cv_prog_cc_w_cxx_compat],
402   [save_CFLAGS="$CFLAGS"
403   CFLAGS="-Wc++-compat"
404   AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
405                     [ac_cv_prog_cc_w_cxx_compat=yes],
406                     [ac_cv_prog_cc_w_cxx_compat=no])
407   CFLAGS="$save_CFLAGS"
408   ])
409 if test x${ac_cv_prog_cc_w_cxx_compat} = xyes; then
410   cxx_compat_warn="-Wc++-compat"
411 fi
412 AC_SUBST(cxx_compat_warn)
413
414
415 # If the native compiler is GCC, we can enable warnings even in stage1.  
416 # That's useful for people building cross-compilers, or just running a
417 # quick `make'.
418 warn_cflags=
419 if test "x$GCC" = "xyes"; then
420   warn_cflags='$(GCC_WARN_CFLAGS)'
421 fi
422 AC_SUBST(warn_cflags)
423
424 # Enable expensive internal checks
425 is_release=
426 if test x"`cat $srcdir/DEV-PHASE`" != xexperimental; then
427   is_release=yes
428 fi
429
430 AC_ARG_ENABLE(checking,
431 [  --enable-checking[=LIST]
432                           enable expensive run-time checks.  With LIST,
433                           enable only specific categories of checks.
434                           Categories are: yes,no,all,none,release.
435                           Flags are: assert,fold,gc,gcac,misc,
436                           rtlflag,rtl,runtime,tree,valgrind.],
437 [ac_checking_flags="${enableval}"],[
438 # Determine the default checks.
439 if test x$is_release = x ; then
440   ac_checking_flags=yes
441 else
442   ac_checking_flags=release
443 fi])
444 ac_assert_checking=1
445 ac_checking=
446 ac_fold_checking=
447 ac_gc_checking=
448 ac_gc_always_collect=
449 ac_rtl_checking=
450 ac_rtlflag_checking=
451 ac_runtime_checking=1
452 ac_tree_checking=
453 ac_valgrind_checking=
454 IFS="${IFS=     }"; ac_save_IFS="$IFS"; IFS="$IFS,"
455 for check in $ac_checking_flags
456 do
457         case $check in
458         # these set all the flags to specific states
459         yes)            ac_assert_checking=1 ; ac_checking=1 ;
460                         ac_fold_checking= ; ac_gc_checking=1 ;
461                         ac_gc_always_collect= ; ac_rtl_checking= ;
462                         ac_rtlflag_checking=1 ; ac_runtime_checking=1 ;
463                         ac_tree_checking=1 ; ac_valgrind_checking= ;;
464         no|none)        ac_assert_checking= ; ac_checking= ;
465                         ac_fold_checking= ; ac_gc_checking= ;
466                         ac_gc_always_collect= ; ac_rtl_checking= ;
467                         ac_rtlflag_checking= ; ac_runtime_checking= ;
468                         ac_tree_checking= ; ac_valgrind_checking= ;;
469         all)            ac_assert_checking=1 ; ac_checking=1 ;
470                         ac_fold_checking=1 ; ac_gc_checking=1 ;
471                         ac_gc_always_collect=1 ; ac_rtl_checking=1 ;
472                         ac_rtlflag_checking=1 ; ac_runtime_checking=1 ;
473                         ac_tree_checking=1 ; ac_valgrind_checking= ;;
474         release)        ac_assert_checking=1 ; ac_checking= ;
475                         ac_fold_checking= ; ac_gc_checking= ;
476                         ac_gc_always_collect= ; ac_rtl_checking= ;
477                         ac_rtlflag_checking= ; ac_runtime_checking=1 ;
478                         ac_tree_checking= ; ac_valgrind_checking= ;;
479         # these enable particular checks
480         assert)         ac_assert_checking=1 ;;
481         fold)           ac_fold_checking=1 ;;
482         gc)             ac_gc_checking=1 ;;
483         gcac)           ac_gc_always_collect=1 ;;
484         misc)           ac_checking=1 ;;
485         rtl)            ac_rtl_checking=1 ;;
486         rtlflag)        ac_rtlflag_checking=1 ;;
487         runtime)        ac_runtime_checking=1 ;;
488         tree)           ac_tree_checking=1 ;;
489         valgrind)       ac_valgrind_checking=1 ;;
490         *)      AC_MSG_ERROR(unknown check category $check) ;;
491         esac
492 done
493 IFS="$ac_save_IFS"
494
495 nocommon_flag=""
496 if test x$ac_checking != x ; then
497   AC_DEFINE(ENABLE_CHECKING, 1,
498 [Define if you want more run-time sanity checks.  This one gets a grab
499    bag of miscellaneous but relatively cheap checks.])
500   nocommon_flag=-fno-common
501 fi
502 AC_SUBST(nocommon_flag)
503 if test x$ac_assert_checking != x ; then
504   AC_DEFINE(ENABLE_ASSERT_CHECKING, 1,
505 [Define if you want assertions enabled.  This is a cheap check.])
506 fi
507 GCC_TARGET_TEMPLATE(ENABLE_RUNTIME_CHECKING)
508 if test x$ac_runtime_checking != x ; then
509   AC_DEFINE(ENABLE_RUNTIME_CHECKING, 1,
510 [Define if you want runtime assertions enabled.  This is a cheap check.])
511 fi
512 if test x$ac_tree_checking != x ; then
513   AC_DEFINE(ENABLE_TREE_CHECKING, 1,
514 [Define if you want all operations on trees (the basic data
515    structure of the front ends) to be checked for dynamic type safety
516    at runtime.  This is moderately expensive.  The tree browser debugging
517    routines will also be enabled by this option.
518    ])
519   TREEBROWSER=tree-browser.o
520 fi
521 AC_SUBST(TREEBROWSER)
522 if test x$ac_rtl_checking != x ; then
523   AC_DEFINE(ENABLE_RTL_CHECKING, 1,
524 [Define if you want all operations on RTL (the basic data structure
525    of the optimizer and back end) to be checked for dynamic type safety
526    at runtime.  This is quite expensive.])
527 fi
528 if test x$ac_rtlflag_checking != x ; then
529   AC_DEFINE(ENABLE_RTL_FLAG_CHECKING, 1,
530 [Define if you want RTL flag accesses to be checked against the RTL
531    codes that are supported for each access macro.  This is relatively
532    cheap.])
533 fi
534 if test x$ac_gc_checking != x ; then
535   AC_DEFINE(ENABLE_GC_CHECKING, 1,
536 [Define if you want the garbage collector to do object poisoning and
537    other memory allocation checks.  This is quite expensive.])
538 fi
539 if test x$ac_gc_always_collect != x ; then
540   AC_DEFINE(ENABLE_GC_ALWAYS_COLLECT, 1,
541 [Define if you want the garbage collector to operate in maximally
542    paranoid mode, validating the entire heap and collecting garbage at
543    every opportunity.  This is extremely expensive.])
544 fi
545 if test x$ac_fold_checking != x ; then
546   AC_DEFINE(ENABLE_FOLD_CHECKING, 1,
547 [Define if you want fold checked that it never destructs its argument.
548    This is quite expensive.])
549 fi
550 valgrind_path_defines=
551 valgrind_command=
552
553 dnl # This check AC_REQUIREs various stuff, so it *must not* be inside
554 dnl # an if statement.  This was the source of very frustrating bugs
555 dnl # in converting to autoconf 2.5x!
556 AC_CHECK_HEADER(valgrind.h, have_valgrind_h=yes, have_valgrind_h=no)
557
558 if test x$ac_valgrind_checking != x ; then
559   # It is certainly possible that there's valgrind but no valgrind.h.
560   # GCC relies on making annotations so we must have both.
561   AC_MSG_CHECKING(for VALGRIND_DISCARD in <valgrind/memcheck.h>)
562   AC_PREPROC_IFELSE([AC_LANG_SOURCE(
563     [[#include <valgrind/memcheck.h>
564 #ifndef VALGRIND_DISCARD
565 #error VALGRIND_DISCARD not defined
566 #endif]])],
567   [gcc_cv_header_valgrind_memcheck_h=yes],
568   [gcc_cv_header_valgrind_memcheck_h=no])
569   AC_MSG_RESULT($gcc_cv_header_valgrind_memcheck_h)
570   AC_MSG_CHECKING(for VALGRIND_DISCARD in <memcheck.h>)
571   AC_PREPROC_IFELSE([AC_LANG_SOURCE(
572     [[#include <memcheck.h>
573 #ifndef VALGRIND_DISCARD
574 #error VALGRIND_DISCARD not defined
575 #endif]])],
576   [gcc_cv_header_memcheck_h=yes],
577   [gcc_cv_header_memcheck_h=no])
578   AC_MSG_RESULT($gcc_cv_header_memcheck_h)
579   AM_PATH_PROG_WITH_TEST(valgrind_path, valgrind,
580         [$ac_dir/$ac_word --version | grep valgrind- >/dev/null 2>&1])
581   if test "x$valgrind_path" = "x" \
582     || (test $have_valgrind_h = no \
583         && test $gcc_cv_header_memcheck_h = no \
584         && test $gcc_cv_header_valgrind_memcheck_h = no); then
585         AC_MSG_ERROR([*** Can't find both valgrind and valgrind/memcheck.h, memcheck.h or valgrind.h])
586   fi
587   valgrind_path_defines=-DVALGRIND_PATH='\"'$valgrind_path'\"'
588   valgrind_command="$valgrind_path -q"
589   AC_DEFINE(ENABLE_VALGRIND_CHECKING, 1,
590 [Define if you want to run subprograms and generated programs
591    through valgrind (a memory checker).  This is extremely expensive.])
592   if test $gcc_cv_header_valgrind_memcheck_h = yes; then
593     AC_DEFINE(HAVE_VALGRIND_MEMCHECK_H, 1,
594         [Define if valgrind's valgrind/memcheck.h header is installed.])
595   fi
596   if test $gcc_cv_header_memcheck_h = yes; then
597     AC_DEFINE(HAVE_MEMCHECK_H, 1,
598         [Define if valgrind's memcheck.h header is installed.])
599   fi
600 fi
601 AC_SUBST(valgrind_path_defines)
602 AC_SUBST(valgrind_command)
603
604 AC_ARG_ENABLE(mapped-location,
605 [  --enable-mapped-location   location_t is fileline integer cookie],,
606 enable_mapped_location=no)
607
608 if test "$enable_mapped_location" = yes ; then
609   AC_DEFINE(USE_MAPPED_LOCATION, 1,
610 [Define if location_t is fileline integer cookie.])
611 fi
612
613 # Enable code coverage collection
614 AC_ARG_ENABLE(coverage,
615 [  --enable-coverage[=LEVEL]
616                           enable compiler's code coverage collection.
617                           Use to measure compiler performance and locate
618                           unused parts of the compiler. With LEVEL, specify
619                           optimization. Values are opt, noopt,
620                           default is noopt],
621 [case "${enableval}" in
622   yes|noopt)
623     coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O0"
624     ;;
625   opt)
626     coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O2"
627     ;;
628   no)
629     # a.k.a. --disable-coverage
630     coverage_flags=""
631     ;;
632   *)
633     AC_MSG_ERROR(unknown coverage setting $enableval)
634     ;;
635 esac],
636 [coverage_flags=""])
637 AC_SUBST(coverage_flags)
638
639 AC_ARG_ENABLE(gather-detailed-mem-stats, 
640 [  --enable-gather-detailed-mem-stats         enable detailed memory allocation stats gathering], [],
641 [enable_gather_detailed_mem_stats=no])
642 if test x$enable_gather_detailed_mem_stats = xyes ; then
643   AC_DEFINE(GATHER_STATISTICS, 1,
644         [Define to enable detailed memory allocation stats gathering.])
645 fi
646
647 # -------------------------------
648 # Miscenalleous configure options
649 # -------------------------------
650
651 # With stabs
652 AC_ARG_WITH(stabs,
653 [  --with-stabs            arrange to use stabs instead of host debug format],
654 stabs="$with_stabs",
655 stabs=no)
656
657 # Determine whether or not multilibs are enabled.
658 AC_ARG_ENABLE(multilib,
659 [  --enable-multilib       enable library support for multiple ABIs],
660 [], [enable_multilib=yes])
661 AC_SUBST(enable_multilib)
662
663 # Enable __cxa_atexit for C++.
664 AC_ARG_ENABLE(__cxa_atexit,
665 [  --enable-__cxa_atexit   enable __cxa_atexit for C++],
666 [], [])
667
668 # Enable C extension for decimal float if target supports it.
669 AC_ARG_ENABLE(decimal-float,
670 [  --enable-decimal-float={no,yes,bid,dpd}
671                         enable decimal float extension to C.  Selecting 'bid'
672                         or 'dpd' choses which decimal floating point format
673                         to use],
674 [
675   case $enable_decimal_float in
676     yes | no | bid | dpd) ;;
677     *) AC_MSG_ERROR(['$enable_decimal_float' is an invalid value for --enable-decimal-float.
678 Valid choices are 'yes', 'bid', 'dpd', and 'no'.]) ;;
679   esac
680 ],
681 [
682   case $target in
683     powerpc*-*-linux* | i?86*-*-linux* | x86_64*-*-linux*)
684       enable_decimal_float=yes
685       ;;
686     *)
687       AC_MSG_WARN(decimal float is not supported for this target, ignored)
688       enable_decimal_float=no
689       ;;
690   esac
691 ])
692
693 dfp=`if test $enable_decimal_float != no; then echo 1; else echo 0; fi`
694 AC_DEFINE_UNQUOTED(ENABLE_DECIMAL_FLOAT, $dfp,
695 [Define to 1 to enable decimal float extension to C.])
696
697 # x86's use BID format instead of DPD
698 case x$enable_decimal_float in
699   xyes)
700     case $target in
701       i?86*-*-linux* | x86_64*-*-linux*)
702         enable_decimal_float=bid
703         ;;
704       *)
705         enable_decimal_float=dpd
706         ;;
707     esac
708     ;;
709   xno)
710     # ENABLE_DECIMAL_FLOAT is set to 0. But we have to have proper
711     # dependency on libdecnumber.
712     enable_decimal_float=dpd
713     ;;
714 esac
715 AC_SUBST(enable_decimal_float)
716
717 bid=`if test $enable_decimal_float = bid; then echo 1; else echo 0; fi`
718 AC_DEFINE_UNQUOTED(ENABLE_DECIMAL_BID_FORMAT, $bid,
719 [Define to 1 to specify that we are using the BID decimal floating
720 point format instead of DPD])
721
722 # Enable threads
723 # Pass with no value to take the default
724 # Pass with a value to specify a thread package
725 AC_ARG_ENABLE(threads,
726 [  --enable-threads        enable thread usage for target GCC
727   --enable-threads=LIB    use LIB thread package for target GCC],,
728 [enable_threads=''])
729
730 AC_ARG_ENABLE(tls,
731 [  --enable-tls            enable or disable generation of tls code
732                           overriding the assembler check for tls support],
733 [
734   case $enable_tls in
735     yes | no) ;;
736     *) AC_MSG_ERROR(['$enable_tls' is an invalid value for --enable-tls.
737 Valid choices are 'yes' and 'no'.]) ;;
738   esac
739 ], [enable_tls=''])
740
741 AC_ARG_ENABLE(objc-gc,
742 [  --enable-objc-gc       enable the use of Boehm's garbage collector with
743                           the GNU Objective-C runtime],
744 if test x$enable_objc_gc = xno; then
745         objc_boehm_gc=''
746 else
747         objc_boehm_gc=1
748 fi,
749 objc_boehm_gc='')
750
751 AC_ARG_WITH(dwarf2,
752 [  --with-dwarf2           force the default debug format to be DWARF 2],
753 dwarf2="$with_dwarf2",
754 dwarf2=no)
755
756 AC_ARG_ENABLE(shared,
757 [  --disable-shared        don't provide a shared libgcc],
758 [
759   case $enable_shared in
760   yes | no) ;;
761   *)
762     enable_shared=no
763     IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
764     for pkg in $enableval; do
765       if test "X$pkg" = "Xgcc" || test "X$pkg" = "Xlibgcc"; then
766         enable_shared=yes
767       fi
768     done
769     IFS="$ac_save_ifs"
770     ;;
771   esac
772 ], [enable_shared=yes])
773 AC_SUBST(enable_shared)
774
775 AC_ARG_WITH(build-sysroot, 
776   [  --with-build-sysroot=sysroot
777                           use sysroot as the system root during the build])
778
779 AC_ARG_WITH(sysroot,
780 [  --with-sysroot[=DIR] Search for usr/lib, usr/include, et al, within DIR.],
781 [
782  case ${with_sysroot} in
783  yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_noncanonical}/sys-root' ;;
784  *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
785  esac
786    
787  TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
788  CROSS_SYSTEM_HEADER_DIR='$(TARGET_SYSTEM_ROOT)$${sysroot_headers_suffix}$(NATIVE_SYSTEM_HEADER_DIR)'
789         
790  if test "x$exec_prefix" = xNONE; then
791   if test "x$prefix" = xNONE; then
792    test_prefix=/usr/local
793   else
794    test_prefix=$prefix
795   fi
796  else
797   test_prefix=$exec_prefix
798  fi
799  case ${TARGET_SYSTEM_ROOT} in
800  "${test_prefix}"|"${test_prefix}/"*|\
801  '${exec_prefix}'|'${exec_prefix}/'*)
802    t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
803    TARGET_SYSTEM_ROOT_DEFINE="$t"
804    ;;
805  esac
806 ], [
807  TARGET_SYSTEM_ROOT=
808  TARGET_SYSTEM_ROOT_DEFINE=
809  CROSS_SYSTEM_HEADER_DIR='$(gcc_tooldir)/sys-include'
810 ])
811 AC_SUBST(TARGET_SYSTEM_ROOT)
812 AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
813 AC_SUBST(CROSS_SYSTEM_HEADER_DIR)
814
815 # Build with intermodule optimisations
816 AC_ARG_ENABLE(intermodule,
817 [  --enable-intermodule    build the compiler in one step],
818 [case ${enable_intermodule} in
819   yes) onestep="-onestep";;
820   *) onestep="";;
821 esac],
822 [onestep=""])
823 AC_SUBST(onestep)
824
825 # Sanity check enable_languages in case someone does not run the toplevel
826 # configure # script.
827 AC_ARG_ENABLE(languages,
828 [  --enable-languages=LIST specify which front-ends to build],
829 [case ,${enable_languages}, in
830        ,,|,yes,)
831                 # go safe -- we cannot be much sure without the toplevel
832                 # configure's
833                 # analysis of which target libs are present and usable
834                 enable_languages=c
835                 ;;
836          *,all,*)
837                 AC_MSG_ERROR([only the toplevel supports --enable-languages=all])
838                 ;;
839         *,c,*)
840                 ;;
841         *)
842                 enable_languages=c,${enable_languages}
843                 ;;
844 esac],
845 [enable_languages=c])
846
847 # Used by documentation targets
848 AC_SUBST(datarootdir)
849 AC_SUBST(docdir)
850 AC_SUBST(htmldir)
851
852 # -------------------------
853 # Checks for other programs
854 # -------------------------
855
856 AC_PROG_MAKE_SET
857
858 # Find some useful tools
859 AC_PROG_AWK
860 # We need awk to create options.c and options.h.
861 # Bail out if it's missing.
862 case ${AWK} in
863   "") AC_MSG_ERROR([can't build without awk, bailing out]) ;;
864 esac
865
866 gcc_AC_PROG_LN_S
867 ACX_PROG_LN($LN_S)
868 AC_PROG_RANLIB
869 case "${host}" in
870 *-*-darwin*)
871   # By default, the Darwin ranlib will not treat common symbols as
872   # definitions when  building the archive table of contents.  Other 
873   # ranlibs do that; pass an option to the Darwin ranlib that makes
874   # it behave similarly.
875   ranlib_flags="-c" 
876   ;;
877 *)
878   ranlib_flags=""
879 esac
880 AC_SUBST(ranlib_flags)
881      
882 gcc_AC_PROG_INSTALL
883
884 # See if cmp has --ignore-initial.
885 gcc_AC_PROG_CMP_IGNORE_INITIAL
886
887 # See if we have the mktemp command.
888 AC_CHECK_PROG(have_mktemp_command, mktemp, yes, no)
889
890 MISSING="${CONFIG_SHELL-/bin/sh} $srcdir/../missing"
891
892 # See if makeinfo has been installed and is modern enough
893 # that we can use it.
894 gcc_AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
895   [GNU texinfo.* \([0-9][0-9.]*\)],
896   [4.[4-9]*])
897 if test $gcc_cv_prog_makeinfo_modern = no; then
898   MAKEINFO="$MISSING makeinfo"
899   AC_MSG_WARN([
900 *** Makeinfo is missing or too old.
901 *** Info documentation will not be built.])
902   BUILD_INFO=
903 else
904   BUILD_INFO=info
905 fi
906 AC_SUBST(BUILD_INFO)
907
908 # Is pod2man recent enough to regenerate manpages?
909 AC_MSG_CHECKING([for recent Pod::Man])
910 if (perl -e 'use 1.10 Pod::Man') >/dev/null 2>&1; then
911   AC_MSG_RESULT(yes)
912   GENERATED_MANPAGES=generated-manpages
913 else
914   AC_MSG_RESULT(no)
915   GENERATED_MANPAGES=
916 fi
917 AC_SUBST(GENERATED_MANPAGES)
918
919 # How about lex?
920 dnl Don't use AC_PROG_LEX; we insist on flex.
921 dnl LEXLIB is not useful in gcc.
922 AC_CHECK_PROGS([FLEX], flex, [$MISSING flex])
923
924 # Bison?
925 AC_CHECK_PROGS([BISON], bison, [$MISSING bison])
926
927 # Binutils are not build modules, unlike bison/flex/makeinfo.  So we
928 # check for build == host before using them.
929
930 # NM
931 if test x${build} = x${host} && test -f $srcdir/../binutils/nm.c \
932   && test -d ../binutils ; then
933   NM='$(objdir)/../binutils/nm-new'
934 else
935   AC_CHECK_PROG(NM, nm, nm, ${CONFIG_SHELL-/bin/sh} ${srcdir}/../missing nm)
936 fi
937
938 # AR
939 if test x${build} = x${host} && test -f $srcdir/../binutils/ar.c \
940   && test -d ../binutils ; then
941   AR='$(objdir)/../binutils/ar'
942 else
943   AC_CHECK_PROG(AR, ar, ar, ${CONFIG_SHELL-/bin/sh} ${srcdir}/../missing ar)
944 fi
945
946
947 # --------------------
948 # Checks for C headers
949 # --------------------
950
951 AC_MSG_CHECKING(for GNU C library)
952 AC_CACHE_VAL(gcc_cv_glibc,
953 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
954   [[#include <features.h>]], [[
955 #if ! (defined __GLIBC__ || defined __GNU_LIBRARY__)
956 #error Not a GNU C library system
957 #endif]])],
958   [gcc_cv_glibc=yes],
959   [gcc_cv_glibc=no])])
960 AC_MSG_RESULT($gcc_cv_glibc)
961 if test $gcc_cv_glibc = yes; then
962   AC_DEFINE(_GNU_SOURCE, 1, [Always define this when using the GNU C Library])
963 fi
964
965 # Need to reject headers which give warnings, so that the -Werror bootstrap
966 # works later. *sigh*  This needs to come before all header checks.
967 AC_PROG_CPP_WERROR
968
969 AC_HEADER_STDC
970 AC_HEADER_TIME
971 ACX_HEADER_STRING
972 AC_HEADER_SYS_WAIT
973 AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h time.h iconv.h \
974                  fcntl.h unistd.h sys/file.h sys/time.h sys/mman.h \
975                  sys/resource.h sys/param.h sys/times.h sys/stat.h \
976                  direct.h malloc.h langinfo.h ldfcn.h locale.h wchar.h)
977
978 # Check for thread headers.
979 AC_CHECK_HEADER(thread.h, [have_thread_h=yes], [have_thread_h=])
980 AC_CHECK_HEADER(pthread.h, [have_pthread_h=yes], [have_pthread_h=])
981
982 # These tests can't be done till we know if we have limits.h.
983 gcc_AC_C_CHAR_BIT
984 AC_C_BIGENDIAN
985
986 # --------
987 # UNSORTED
988 # --------
989
990
991 # These libraries may be used by collect2.
992 # We may need a special search path to get them linked.
993 AC_CACHE_CHECK(for collect2 libraries, gcc_cv_collect2_libs,
994 [save_LIBS="$LIBS"
995 for libs in '' -lld -lmld \
996                 '-L/usr/lib/cmplrs/cc2.11 -lmld' \
997                 '-L/usr/lib/cmplrs/cc3.11 -lmld'
998 do
999         LIBS="$libs"
1000         AC_TRY_LINK_FUNC(ldopen,
1001                 [gcc_cv_collect2_libs="$libs"; break])
1002 done
1003 LIBS="$save_LIBS"
1004 test -z "$gcc_cv_collect2_libs" && gcc_cv_collect2_libs='none required'])
1005 case $gcc_cv_collect2_libs in
1006         "none required")        ;;
1007         *)      COLLECT2_LIBS=$gcc_cv_collect2_libs ;;
1008 esac
1009 AC_SUBST(COLLECT2_LIBS)
1010
1011 # When building Ada code on Alpha, we need exc_resume which is usually in
1012 # -lexc.  So test for it.
1013 save_LIBS="$LIBS"
1014 LIBS=
1015 AC_SEARCH_LIBS(exc_resume, exc)
1016 GNAT_LIBEXC="$LIBS"
1017 LIBS="$save_LIBS"
1018 AC_SUBST(GNAT_LIBEXC)
1019
1020 # Some systems put ldexp and frexp in libm instead of libc; assume
1021 # they're both in the same place.  jcf-dump needs them.
1022 save_LIBS="$LIBS"
1023 LIBS=
1024 AC_SEARCH_LIBS(ldexp, m)
1025 LDEXP_LIB="$LIBS"
1026 LIBS="$save_LIBS"
1027 AC_SUBST(LDEXP_LIB)
1028
1029 # Use <inttypes.h> only if it exists,
1030 # doesn't clash with <sys/types.h>, and declares intmax_t.
1031 AC_MSG_CHECKING(for inttypes.h)
1032 AC_CACHE_VAL(gcc_cv_header_inttypes_h,
1033 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1034 [[#include <sys/types.h>
1035 #include <inttypes.h>]],
1036   [[intmax_t i = -1;]])],
1037   [gcc_cv_header_inttypes_h=yes],
1038   [gcc_cv_header_inttypes_h=no])])
1039 AC_MSG_RESULT($gcc_cv_header_inttypes_h)
1040 if test $gcc_cv_header_inttypes_h = yes; then
1041   AC_DEFINE(HAVE_INTTYPES_H, 1,
1042         [Define if you have a working <inttypes.h> header file.])
1043 fi
1044
1045 dnl Disabled until we have a complete test for buggy enum bitfields.
1046 dnl gcc_AC_C_ENUM_BF_UNSIGNED
1047
1048 define(gcc_UNLOCKED_FUNCS, clearerr_unlocked feof_unlocked dnl
1049   ferror_unlocked fflush_unlocked fgetc_unlocked fgets_unlocked dnl
1050   fileno_unlocked fprintf_unlocked fputc_unlocked fputs_unlocked dnl
1051   fread_unlocked fwrite_unlocked getchar_unlocked getc_unlocked dnl
1052   putchar_unlocked putc_unlocked)
1053 AC_CHECK_FUNCS(times clock kill getrlimit setrlimit atoll atoq \
1054         sysconf strsignal getrusage nl_langinfo scandir alphasort \
1055         gettimeofday mbstowcs wcswidth mmap mincore setlocale \
1056         gcc_UNLOCKED_FUNCS)
1057
1058 if test x$ac_cv_func_mbstowcs = xyes; then
1059   AC_CACHE_CHECK(whether mbstowcs works, gcc_cv_func_mbstowcs_works,
1060 [    AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdlib.h>
1061 int main()
1062 {
1063   mbstowcs(0, "", 0);
1064   return 0;
1065 }]])],
1066     [gcc_cv_func_mbstowcs_works=yes],
1067     [gcc_cv_func_mbstowcs_works=no],
1068     [gcc_cv_func_mbstowcs_works=yes])])
1069   if test x$gcc_cv_func_mbstowcs_works = xyes; then
1070     AC_DEFINE(HAVE_WORKING_MBSTOWCS, 1,
1071   [Define this macro if mbstowcs does not crash when its
1072    first argument is NULL.])
1073   fi
1074 fi
1075
1076 AC_CHECK_TYPE(ssize_t, int)
1077
1078 # Try to determine the array type of the second argument of getgroups
1079 # for the target system (int or gid_t).
1080 AC_TYPE_GETGROUPS
1081 if test "${target}" = "${build}"; then
1082   TARGET_GETGROUPS_T=$ac_cv_type_getgroups
1083 else
1084   case "${target}" in
1085         # This condition may need some tweaking.  It should include all
1086         # targets where the array type of the second argument of getgroups
1087         # is int and the type of gid_t is not equivalent to int.
1088         *-*-sunos* | *-*-ultrix*)
1089                 TARGET_GETGROUPS_T=int
1090                 ;;
1091         *)
1092                 TARGET_GETGROUPS_T=gid_t
1093                 ;;
1094   esac
1095 fi
1096 AC_SUBST(TARGET_GETGROUPS_T)
1097
1098 gcc_AC_FUNC_MMAP_BLACKLIST
1099
1100 case "${host}" in
1101 *-*-*vms*)
1102   # Under VMS, vfork works very differently than on Unix. The standard test 
1103   # won't work, and it isn't easily adaptable. It makes more sense to
1104   # just force it.
1105   ac_cv_func_vfork_works=yes
1106   ;;
1107 esac
1108 AC_FUNC_FORK
1109
1110 AM_ICONV
1111 # Until we have in-tree GNU iconv:
1112 LIBICONV_DEP=
1113 AC_SUBST(LIBICONV_DEP)
1114
1115 AM_LC_MESSAGES
1116
1117 AM_LANGINFO_CODESET
1118
1119 # We will need to find libiberty.h and ansidecl.h
1120 saved_CFLAGS="$CFLAGS"
1121 CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include"
1122 gcc_AC_CHECK_DECLS(getenv atol asprintf sbrk abort atof getcwd getwd \
1123         strsignal strstr strverscmp \
1124         errno snprintf vsnprintf vasprintf malloc realloc calloc \
1125         free basename getopt clock getpagesize gcc_UNLOCKED_FUNCS, , ,[
1126 #include "ansidecl.h"
1127 #include "system.h"])
1128
1129 gcc_AC_CHECK_DECLS(getrlimit setrlimit getrusage, , ,[
1130 #include "ansidecl.h"
1131 #include "system.h"
1132 #ifdef HAVE_SYS_RESOURCE_H
1133 #include <sys/resource.h>
1134 #endif
1135 ])
1136
1137 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1138 #include "ansidecl.h"
1139 #include "system.h"
1140 #ifdef HAVE_SYS_RESOURCE_H
1141 #include <sys/resource.h>
1142 #endif
1143 ]], [[rlim_t l = 0;]])],[],[AC_DEFINE([rlim_t],[long],
1144 [Define to \`long' if <sys/resource.h> doesn't define.])])
1145
1146 # On AIX 5.2, <ldfcn.h> conflicts with <fcntl.h>, as both define incompatible
1147 # FREAD and FWRITE macros.  Fortunately, for GCC's single usage of ldgetname
1148 # in collect2.c, <fcntl.h> isn't visible, but the configure test below needs
1149 # to undef these macros to get the correct value for HAVE_DECL_LDGETNAME.
1150 gcc_AC_CHECK_DECLS(ldgetname, , ,[
1151 #include "ansidecl.h"
1152 #include "system.h"
1153 #ifdef HAVE_LDFCN_H
1154 #undef FREAD
1155 #undef FWRITE
1156 #include <ldfcn.h>
1157 #endif
1158 ])
1159
1160 gcc_AC_CHECK_DECLS(times, , ,[
1161 #include "ansidecl.h"
1162 #include "system.h"
1163 #ifdef HAVE_SYS_TIMES_H
1164 #include <sys/times.h>
1165 #endif
1166 ])
1167
1168 gcc_AC_CHECK_DECLS(sigaltstack, , ,[
1169 #include "ansidecl.h"
1170 #include "system.h"
1171 #include <signal.h>
1172 ])
1173
1174 # More time-related stuff.
1175 AC_CACHE_CHECK(for struct tms, ac_cv_struct_tms, [
1176 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1177 #include "ansidecl.h"
1178 #include "system.h"
1179 #ifdef HAVE_SYS_TIMES_H
1180 #include <sys/times.h>
1181 #endif
1182 ]], [[struct tms tms;]])],[ac_cv_struct_tms=yes],[ac_cv_struct_tms=no])])
1183 if test $ac_cv_struct_tms = yes; then
1184   AC_DEFINE(HAVE_STRUCT_TMS, 1,
1185   [Define if <sys/times.h> defines struct tms.])
1186 fi
1187
1188 # use gcc_cv_* here because this doesn't match the behavior of AC_CHECK_TYPE.
1189 # revisit after autoconf 2.50.
1190 AC_CACHE_CHECK(for clock_t, gcc_cv_type_clock_t, [
1191 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1192 #include "ansidecl.h"
1193 #include "system.h"
1194 ]], [[clock_t x;]])],[gcc_cv_type_clock_t=yes],[gcc_cv_type_clock_t=no])])
1195 if test $gcc_cv_type_clock_t = yes; then
1196   AC_DEFINE(HAVE_CLOCK_T, 1,
1197   [Define if <time.h> defines clock_t.])
1198 fi
1199
1200 # Restore CFLAGS from before the gcc_AC_NEED_DECLARATIONS tests.
1201 CFLAGS="$saved_CFLAGS"
1202
1203 gcc_AC_INITFINI_ARRAY
1204
1205 # mkdir takes a single argument on some systems. 
1206 gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG
1207
1208 # File extensions
1209 manext='.1'
1210 objext='.o'
1211 AC_SUBST(manext)
1212 AC_SUBST(objext)
1213
1214 # With Setjmp/Longjmp based exception handling.
1215 AC_ARG_ENABLE(sjlj-exceptions,
1216 [  --enable-sjlj-exceptions
1217                           arrange to use setjmp/longjmp exception handling],
1218 [sjlj=`if test $enableval = yes; then echo 1; else echo 0; fi`
1219 AC_DEFINE_UNQUOTED(CONFIG_SJLJ_EXCEPTIONS, $sjlj,
1220   [Define 0/1 to force the choice for exception handling model.])])
1221
1222 # For platforms with the unwind ABI which includes an unwind library,
1223 # libunwind, we can choose to use the system libunwind.
1224 AC_ARG_WITH(system-libunwind,
1225 [  --with-system-libunwind use installed libunwind])
1226
1227 # config.gcc also contains tests of with_system_libunwind.
1228 if test x$with_system_libunwind = xyes; then
1229         AC_DEFINE(HAVE_GETIPINFO, 1,
1230 [Define to 1 if system unwind library has _Unwind_GetIPInfo.])
1231 fi
1232
1233 # --------------------------------------------------------
1234 # Build, host, and target specific configuration fragments
1235 # --------------------------------------------------------
1236
1237 # Collect build-machine-specific information.
1238 . ${srcdir}/config.build
1239
1240 # Collect host-machine-specific information.
1241 . ${srcdir}/config.host
1242
1243 target_gtfiles=
1244
1245 # Collect target-machine-specific information.
1246 . ${srcdir}/config.gcc
1247
1248 extra_objs="${host_extra_objs} ${extra_objs}"
1249 extra_gcc_objs="${host_extra_gcc_objs} ${extra_gcc_objs}"
1250
1251 # Default the target-machine variables that were not explicitly set.
1252 if test x"$tm_file" = x
1253 then tm_file=$cpu_type/$cpu_type.h; fi
1254
1255 if test x"$extra_headers" = x
1256 then extra_headers=; fi
1257
1258 if test x$md_file = x
1259 then md_file=$cpu_type/$cpu_type.md; fi
1260
1261 if test x$out_file = x
1262 then out_file=$cpu_type/$cpu_type.c; fi
1263
1264 if test x"$tmake_file" = x
1265 then tmake_file=$cpu_type/t-$cpu_type
1266 fi
1267
1268 if test x"$dwarf2" = xyes
1269 then tm_file="$tm_file tm-dwarf2.h"
1270 fi
1271
1272 # Say what files are being used for the output code and MD file.
1273 echo "Using \`$srcdir/config/$out_file' for machine-specific logic."
1274 echo "Using \`$srcdir/config/$md_file' as machine description file."
1275
1276 # If any of the xm_file variables contain nonexistent files, warn
1277 # about them and drop them.
1278
1279 bx=
1280 for x in $build_xm_file; do
1281   if    test -f $srcdir/config/$x
1282   then      bx="$bx $x"
1283   else      AC_MSG_WARN($srcdir/config/$x does not exist.)
1284   fi
1285 done
1286 build_xm_file="$bx"
1287
1288 hx=
1289 for x in $host_xm_file; do
1290   if    test -f $srcdir/config/$x
1291   then      hx="$hx $x"
1292   else      AC_MSG_WARN($srcdir/config/$x does not exist.)
1293   fi
1294 done
1295 host_xm_file="$hx"
1296
1297 tx=
1298 for x in $xm_file; do
1299   if    test -f $srcdir/config/$x
1300   then      tx="$tx $x"
1301   else      AC_MSG_WARN($srcdir/config/$x does not exist.)
1302   fi
1303 done
1304 xm_file="$tx"
1305
1306 count=a
1307 for f in $tm_file; do
1308         count=${count}x
1309 done
1310 if test $count = ax; then
1311         echo "Using \`$srcdir/config/$tm_file' as target machine macro file."
1312 else
1313         echo "Using the following target machine macro files:"
1314         for f in $tm_file; do
1315                 echo "  $srcdir/config/$f"
1316         done
1317 fi
1318
1319 if test x$need_64bit_hwint = xyes; then
1320         AC_DEFINE(NEED_64BIT_HOST_WIDE_INT, 1,
1321 [Define to 1 if HOST_WIDE_INT must be 64 bits wide (see hwint.h).])
1322 fi
1323
1324 if test x$use_long_long_for_widest_fast_int = xyes; then
1325         AC_DEFINE(USE_LONG_LONG_FOR_WIDEST_FAST_INT, 1,
1326 [Define to 1 if the 'long long' (or '__int64') is wider than 'long' but still
1327 efficiently supported by the host hardware.])
1328 fi
1329
1330 count=a
1331 for f in $host_xm_file; do
1332         count=${count}x
1333 done
1334 if test $count = a; then
1335         :
1336 elif test $count = ax; then
1337         echo "Using \`$srcdir/config/$host_xm_file' as host machine macro file."
1338 else
1339         echo "Using the following host machine macro files:"
1340         for f in $host_xm_file; do
1341                 echo "  $srcdir/config/$f"
1342         done
1343 fi
1344 echo "Using ${out_host_hook_obj} for host machine hooks."
1345
1346 if test "$host_xm_file" != "$build_xm_file"; then
1347         count=a
1348         for f in $build_xm_file; do
1349                 count=${count}x
1350         done
1351         if test $count = a; then
1352                 :
1353         elif test $count = ax; then
1354                 echo "Using \`$srcdir/config/$build_xm_file' as build machine macro file."
1355         else
1356                 echo "Using the following build machine macro files:"
1357                 for f in $build_xm_file; do
1358                         echo "  $srcdir/config/$f"
1359                 done
1360         fi
1361 fi
1362
1363 case ${host} in
1364   powerpc*-*-darwin*)
1365     AC_CACHE_CHECK([whether mcontext_t fields have underscores],
1366       gcc_cv_mcontext_underscores,
1367       AC_COMPILE_IFELSE([
1368 #include <sys/cdefs.h>
1369 #include <sys/signal.h>
1370 #include <ucontext.h>
1371 int main() { mcontext_t m; if (m->ss.srr0) return 0; return 0; }
1372 ],
1373         gcc_cv_mcontext_underscores=no, gcc_cv_mcontext_underscores=yes))
1374       if test $gcc_cv_mcontext_underscores = yes; then
1375         AC_DEFINE(HAS_MCONTEXT_T_UNDERSCORES,,dnl
1376           [mcontext_t fields start with __])
1377       fi
1378     ;;
1379 esac
1380
1381 # ---------
1382 # Threading
1383 # ---------
1384
1385 # Check if a valid thread package
1386 case ${enable_threads} in
1387   "" | no)
1388     # No threads
1389     target_thread_file='single'
1390     ;;
1391   yes)
1392     # default
1393     target_thread_file='single'
1394     ;;
1395   aix | dce | gnat | irix | posix | posix95 | rtems | \
1396   single | solaris | vxworks | win32 )
1397     target_thread_file=${enable_threads}
1398     ;;
1399   *)
1400     echo "${enable_threads} is an unknown thread package" 1>&2
1401     exit 1
1402     ;;
1403 esac
1404
1405 if test x${thread_file} = x; then
1406   # No thread file set by target-specific clauses in config.gcc,
1407   # so use file chosen by default logic above
1408   thread_file=${target_thread_file}
1409 fi
1410
1411 # Make gthr-default.h if we have a thread file.
1412 gthread_flags=
1413 if test $thread_file != single; then
1414   rm -f gthr-default.h
1415   echo "#include \"gthr-${thread_file}.h\"" > gthr-default.h
1416   gthread_flags=-DHAVE_GTHR_DEFAULT
1417 fi
1418 AC_SUBST(gthread_flags)
1419
1420 # --------
1421 # UNSORTED
1422 # --------
1423
1424 use_cxa_atexit=no
1425 if test x$enable___cxa_atexit = xyes || \
1426    test x$enable___cxa_atexit = x -a x$default_use_cxa_atexit = xyes; then
1427   if test x$host = x$target; then
1428     case $host in
1429       # mingw32 doesn't have __cxa_atexit but uses atexit registration
1430       # keyed to flag_use_cxa_atexit
1431       *-*-mingw32*)
1432         use_cxa_atexit=yes
1433         ;;
1434       *)
1435         AC_CHECK_FUNC(__cxa_atexit,[use_cxa_atexit=yes],
1436           [echo "__cxa_atexit can't be enabled on this target"])
1437         ;;
1438     esac
1439   else
1440     # We can't check for __cxa_atexit when building a cross, so assume
1441     # it is available 
1442     use_cxa_atexit=yes
1443   fi
1444   if test x$use_cxa_atexit = xyes; then
1445     AC_DEFINE(DEFAULT_USE_CXA_ATEXIT, 2,
1446       [Define if you want to use __cxa_atexit, rather than atexit, to
1447       register C++ destructors for local statics and global objects.
1448       This is essential for fully standards-compliant handling of
1449       destructors, but requires __cxa_atexit in libc.])
1450   fi
1451 fi
1452
1453 use_getipinfo=yes
1454 if test x$with_system_libunwind = xyes; then
1455    if test x$host = x$target; then
1456      AC_SEARCH_LIBS(_Unwind_GetIPInfo, unwind,, [use_getipinfo=no])
1457    fi
1458 fi
1459 GCC_TARGET_TEMPLATE(HAVE_GETIPINFO)
1460 if test x$use_getipinfo = xyes; then
1461    AC_DEFINE(HAVE_GETIPINFO, 1,
1462         [Define to 1 if system unwind library has _Unwind_GetIPInfo.])
1463 else
1464    echo "The system unwind library does not support _Unwind_GetIPInfo."
1465 fi
1466
1467 # Look for a file containing extra machine modes.
1468 if test -n "$extra_modes" && test -f $srcdir/config/$extra_modes; then
1469   extra_modes_file='$(srcdir)'/config/${extra_modes}
1470   AC_SUBST(extra_modes_file)
1471   AC_DEFINE_UNQUOTED(EXTRA_MODES_FILE, "config/$extra_modes",
1472   [Define to the name of a file containing a list of extra machine modes
1473    for this architecture.])
1474 fi
1475
1476 # Convert extra_options into a form suitable for Makefile use.
1477 extra_opt_files=
1478 for f in $extra_options; do
1479   extra_opt_files="$extra_opt_files \$(srcdir)/config/$f"
1480 done
1481 AC_SUBST(extra_opt_files)
1482
1483 # auto-host.h is the file containing items generated by autoconf and is
1484 # the first file included by config.h.
1485 # If host=build, it is correct to have bconfig include auto-host.h
1486 # as well.  If host!=build, we are in error and need to do more 
1487 # work to find out the build config parameters.
1488 if test x$host = x$build
1489 then
1490         build_auto=auto-host.h
1491 else
1492         # We create a subdir, then run autoconf in the subdir.
1493         # To prevent recursion we set host and build for the new
1494         # invocation of configure to the build for this invocation
1495         # of configure. 
1496         tempdir=build.$$
1497         rm -rf $tempdir
1498         mkdir $tempdir
1499         cd $tempdir
1500         case ${srcdir} in
1501         /* | [A-Za-z]:[\\/]* ) realsrcdir=${srcdir};;
1502         *) realsrcdir=../${srcdir};;
1503         esac
1504         saved_CFLAGS="${CFLAGS}"
1505         CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
1506         ${realsrcdir}/configure \
1507                 --enable-languages=${enable_languages-all} \
1508                 --target=$target_alias --host=$build_alias --build=$build_alias
1509         CFLAGS="${saved_CFLAGS}"
1510
1511         # We just finished tests for the build machine, so rename
1512         # the file auto-build.h in the gcc directory.
1513         mv auto-host.h ../auto-build.h
1514         cd ..
1515         rm -rf $tempdir
1516         build_auto=auto-build.h
1517 fi
1518 AC_SUBST(build_subdir)
1519
1520 tm_file="${tm_file} defaults.h"
1521 tm_p_file="${tm_p_file} tm-preds.h"
1522 host_xm_file="auto-host.h ansidecl.h ${host_xm_file}"
1523 build_xm_file="${build_auto} ansidecl.h ${build_xm_file}"
1524 # We don't want ansidecl.h in target files, write code there in ISO/GNU C.
1525 # put this back in temporarily.
1526 xm_file="auto-host.h ansidecl.h ${xm_file}"
1527
1528 # --------
1529 # UNSORTED
1530 # --------
1531
1532 changequote(,)dnl
1533 # Compile in configure arguments.
1534 if test -f configargs.h ; then
1535         # Being re-configured.
1536         gcc_config_arguments=`grep configuration_arguments configargs.h | sed -e 's/.*"\([^"]*\)".*/\1/'`
1537         gcc_config_arguments="$gcc_config_arguments : (reconfigured) $TOPLEVEL_CONFIGURE_ARGUMENTS"
1538 else
1539         gcc_config_arguments="$TOPLEVEL_CONFIGURE_ARGUMENTS"
1540 fi
1541
1542 # Double all backslashes and backslash all quotes to turn
1543 # gcc_config_arguments into a C string.
1544 sed -e 's/\\/\\\\/g; s/"/\\"/g' <<EOF >conftest.out
1545 $gcc_config_arguments
1546 EOF
1547 gcc_config_arguments_str=`cat conftest.out`
1548 rm -f conftest.out
1549
1550 cat > configargs.h <<EOF
1551 /* Generated automatically. */
1552 static const char configuration_arguments[] = "$gcc_config_arguments_str";
1553 static const char thread_model[] = "$thread_file";
1554
1555 static const struct {
1556   const char *name, *value;
1557 } configure_default_options[] = $configure_default_options;
1558 EOF
1559 changequote([,])dnl
1560
1561 # Internationalization
1562 ZW_GNU_GETTEXT_SISTER_DIR
1563
1564 # If LIBINTL contains LIBICONV, then clear LIBICONV so we don't get
1565 # -liconv on the link line twice.
1566 case "$LIBINTL" in *$LIBICONV*)
1567         LIBICONV= ;;
1568 esac
1569
1570 AC_ARG_ENABLE(secureplt,
1571 [  --enable-secureplt      enable -msecure-plt by default for PowerPC],
1572 [], [])
1573
1574 # Windows32 Registry support for specifying GCC installation paths.
1575 AC_ARG_ENABLE(win32-registry,
1576 [  --disable-win32-registry
1577                           disable lookup of installation paths in the
1578                           Registry on Windows hosts
1579   --enable-win32-registry enable registry lookup (default)
1580   --enable-win32-registry=KEY
1581                           use KEY instead of GCC version as the last portion
1582                           of the registry key],,)
1583
1584 case $host_os in
1585   win32 | pe | cygwin* | mingw32* | uwin*)
1586     if test "x$enable_win32_registry" != xno; then
1587       AC_SEARCH_LIBS(RegOpenKeyExA, advapi32,, [enable_win32_registry=no])
1588     fi
1589
1590     if test "x$enable_win32_registry" != xno; then
1591       AC_DEFINE(ENABLE_WIN32_REGISTRY, 1,
1592   [Define to 1 if installation paths should be looked up in the Windows
1593    Registry. Ignored on non-Windows hosts.])
1594
1595       if test "x$enable_win32_registry" != xyes \
1596          && test "x$enable_win32_registry" != x; then
1597         AC_DEFINE_UNQUOTED(WIN32_REGISTRY_KEY, "$enable_win32_registry",
1598   [Define to be the last component of the Windows registry key under which
1599    to look for installation paths.  The full key used will be 
1600    HKEY_LOCAL_MACHINE/SOFTWARE/Free Software Foundation/{WIN32_REGISTRY_KEY}.
1601    The default is the GCC version number.])
1602       fi
1603     fi
1604   ;;
1605 esac
1606
1607 # Get an absolute path to the GCC top-level source directory
1608 holddir=`${PWDCMD-pwd}`
1609 cd $srcdir
1610 topdir=`${PWDCMD-pwd}`
1611 cd $holddir
1612
1613 # Conditionalize the makefile for this host machine.
1614 xmake_file=
1615 for f in ${host_xmake_file}
1616 do
1617         if test -f ${srcdir}/config/$f
1618         then
1619                 xmake_file="${xmake_file} \$(srcdir)/config/$f"
1620         fi
1621 done
1622
1623 # Conditionalize the makefile for this target machine.
1624 tmake_file_=
1625 for f in ${tmake_file}
1626 do
1627         if test -f ${srcdir}/config/$f
1628         then
1629                 tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
1630         fi
1631 done
1632 tmake_file="${tmake_file_}"
1633
1634 # This is a terrible hack which will go away some day.
1635 host_cc_for_libada=${CC}
1636 AC_SUBST(host_cc_for_libada)
1637
1638 out_object_file=`basename $out_file .c`.o
1639
1640 tm_file_list="options.h"
1641 tm_include_list="options.h"
1642 for f in $tm_file; do
1643   case $f in
1644     ./* )
1645        f=`echo $f | sed 's/^..//'`
1646        tm_file_list="${tm_file_list} $f"
1647        tm_include_list="${tm_include_list} $f"
1648        ;;
1649     defaults.h )
1650        tm_file_list="${tm_file_list} \$(srcdir)/$f"
1651        tm_include_list="${tm_include_list} $f"
1652        ;;
1653     * )
1654        tm_file_list="${tm_file_list} \$(srcdir)/config/$f"
1655        tm_include_list="${tm_include_list} config/$f"
1656        ;;
1657   esac
1658 done
1659
1660 tm_p_file_list=
1661 tm_p_include_list=
1662 for f in $tm_p_file; do
1663   case $f in
1664     tm-preds.h )
1665        tm_p_file_list="${tm_p_file_list} $f"
1666        tm_p_include_list="${tm_p_include_list} $f"
1667        ;;
1668     * )
1669        tm_p_file_list="${tm_p_file_list} \$(srcdir)/config/$f"
1670        tm_p_include_list="${tm_p_include_list} config/$f"
1671   esac
1672 done
1673
1674 xm_file_list=
1675 xm_include_list=
1676 for f in $xm_file; do
1677   case $f in
1678     ansidecl.h )
1679        xm_file_list="${xm_file_list} \$(srcdir)/../include/$f"
1680        xm_include_list="${xm_include_list} $f"
1681        ;;
1682     auto-host.h )
1683        xm_file_list="${xm_file_list} $f"
1684        xm_include_list="${xm_include_list} $f"
1685        ;;
1686     * )
1687        xm_file_list="${xm_file_list} \$(srcdir)/config/$f"
1688        xm_include_list="${xm_include_list} config/$f"
1689        ;;
1690   esac
1691 done
1692
1693 host_xm_file_list=
1694 host_xm_include_list=
1695 for f in $host_xm_file; do
1696   case $f in
1697     ansidecl.h )
1698        host_xm_file_list="${host_xm_file_list} \$(srcdir)/../include/$f"
1699        host_xm_include_list="${host_xm_include_list} $f"
1700        ;;
1701     auto-host.h )
1702        host_xm_file_list="${host_xm_file_list} $f"
1703        host_xm_include_list="${host_xm_include_list} $f"
1704        ;;
1705     * )
1706        host_xm_file_list="${host_xm_file_list} \$(srcdir)/config/$f"
1707        host_xm_include_list="${host_xm_include_list} config/$f"
1708        ;;
1709   esac
1710 done
1711
1712 build_xm_file_list=
1713 for f in $build_xm_file; do
1714   case $f in
1715     ansidecl.h )
1716        build_xm_file_list="${build_xm_file_list} \$(srcdir)/../include/$f"
1717        build_xm_include_list="${build_xm_include_list} $f"
1718        ;;
1719     auto-build.h | auto-host.h )
1720        build_xm_file_list="${build_xm_file_list} $f"
1721        build_xm_include_list="${build_xm_include_list} $f"
1722        ;;
1723     * )
1724        build_xm_file_list="${build_xm_file_list} \$(srcdir)/config/$f"
1725        build_xm_include_list="${build_xm_include_list} config/$f"
1726        ;;
1727   esac
1728 done
1729
1730 # Define macro CROSS_DIRECTORY_STRUCTURE in compilation if this is a
1731 # cross-compiler which does not use the native headers and libraries.
1732 # Also use all.cross instead of all.internal and adjust SYSTEM_HEADER_DIR.
1733 CROSS=                                          AC_SUBST(CROSS)
1734 ALL=all.internal                                AC_SUBST(ALL)
1735 SYSTEM_HEADER_DIR='$(NATIVE_SYSTEM_HEADER_DIR)' AC_SUBST(SYSTEM_HEADER_DIR)
1736
1737 if test "x$with_build_sysroot" != x; then
1738   build_system_header_dir=$with_build_sysroot'$${sysroot_headers_suffix}$(NATIVE_SYSTEM_HEADER_DIR)'
1739 else
1740   # This value is used, even on a native system, because 
1741   # CROSS_SYSTEM_HEADER_DIR is just 
1742   # $(TARGET_SYSTEM_ROOT)$(NATIVE_SYSTEM_HEADER_DIR).
1743   build_system_header_dir='$(CROSS_SYSTEM_HEADER_DIR)'
1744 fi
1745
1746 if test x$host != x$target
1747 then
1748         CROSS="-DCROSS_DIRECTORY_STRUCTURE"
1749         ALL=all.cross
1750         SYSTEM_HEADER_DIR=$build_system_header_dir
1751         case "$host","$target" in
1752         # Darwin crosses can use the host system's libraries and headers,
1753         # because of the fat library support.  Of course, it must be the
1754         # same version of Darwin on both sides.  Allow the user to
1755         # just say --target=foo-darwin without a version number to mean
1756         # "the version on this system".
1757             *-*-darwin*,*-*-darwin*)
1758                 hostos=`echo $host | sed 's/.*-darwin/darwin/'`
1759                 targetos=`echo $target | sed 's/.*-darwin/darwin/'`
1760                 if test $hostos = $targetos -o $targetos = darwin ; then
1761                     CROSS=
1762                     SYSTEM_HEADER_DIR='$(NATIVE_SYSTEM_HEADER_DIR)'
1763                     with_headers=yes
1764                 fi
1765                 ;;
1766
1767             i?86-*-*,x86_64-*-* \
1768             | powerpc*-*-*,powerpc64*-*-*)
1769                 CROSS="$CROSS -DNATIVE_CROSS" ;;
1770         esac
1771 elif test "x$TARGET_SYSTEM_ROOT" != x; then
1772         SYSTEM_HEADER_DIR=$build_system_header_dir 
1773 fi
1774
1775 # If this is a cross-compiler that does not
1776 # have its own set of headers then define
1777 # inhibit_libc
1778
1779 # If this is using newlib, without having the headers available now,
1780 # then define inhibit_libc in LIBGCC2_CFLAGS.
1781 # This prevents libgcc2 from containing any code which requires libc
1782 # support.
1783 inhibit_libc=false
1784 if { { test x$host != x$target && test "x$with_sysroot" = x ; } ||
1785        test x$with_newlib = xyes ; } &&
1786      { test "x$with_headers" = x || test "x$with_headers" = xno ; } ; then
1787        inhibit_libc=true
1788 fi
1789 AC_SUBST(inhibit_libc)
1790
1791 # When building gcc with a cross-compiler, we need to adjust things so
1792 # that the generator programs are still built with the native compiler.
1793 # Also, we cannot run fixincludes or fix-header.
1794
1795 # These are the normal (build=host) settings:
1796 CC_FOR_BUILD='$(CC)'            AC_SUBST(CC_FOR_BUILD)
1797 BUILD_CFLAGS='$(ALL_CFLAGS)'    AC_SUBST(BUILD_CFLAGS)
1798 STMP_FIXINC=stmp-fixinc         AC_SUBST(STMP_FIXINC)
1799
1800 # Possibly disable fixproto, on a per-target basis.
1801 case ${use_fixproto} in
1802   no)
1803     STMP_FIXPROTO=
1804     ;;
1805   yes)
1806     STMP_FIXPROTO=stmp-fixproto
1807     ;;
1808 esac
1809 AC_SUBST(STMP_FIXPROTO)
1810
1811 # And these apply if build != host, or we are generating coverage data
1812 if test x$build != x$host || test "x$coverage_flags" != x
1813 then
1814     BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)'
1815
1816     if test "x$TARGET_SYSTEM_ROOT" = x; then
1817         if test "x$STMP_FIXPROTO" != x; then
1818           STMP_FIXPROTO=stmp-install-fixproto
1819         fi
1820     fi
1821 fi
1822
1823 # Expand extra_headers to include complete path.
1824 # This substitutes for lots of t-* files.
1825 extra_headers_list=
1826 # Prepend $(srcdir)/config/${cpu_type}/ to every entry in extra_headers.
1827 for file in ${extra_headers} ; do
1828   extra_headers_list="${extra_headers_list} \$(srcdir)/config/${cpu_type}/${file}"
1829 done
1830
1831 # Define collect2 in Makefile.
1832 case $host_can_use_collect2 in
1833   no) collect2= ;;
1834   *) collect2='collect2$(exeext)' ;;
1835 esac
1836 AC_SUBST([collect2])
1837
1838 # Add a definition of USE_COLLECT2 if system wants one.
1839 case $use_collect2 in
1840   no) use_collect2= ;;
1841   "") ;;
1842   *) 
1843     host_xm_defines="${host_xm_defines} USE_COLLECT2"
1844     xm_defines="${xm_defines} USE_COLLECT2"
1845     case $host_can_use_collect2 in
1846       no)
1847         AC_MSG_ERROR([collect2 is required but cannot be built on this system])
1848         ;;
1849     esac
1850     ;;
1851 esac
1852
1853 # ---------------------------
1854 # Assembler & linker features
1855 # ---------------------------
1856
1857 # Identify the assembler which will work hand-in-glove with the newly
1858 # built GCC, so that we can examine its features.  This is the assembler
1859 # which will be driven by the driver program.
1860 #
1861 # If build != host, and we aren't building gas in-tree, we identify a
1862 # build->target assembler and hope that it will have the same features
1863 # as the host->target assembler we'll be using.
1864 gcc_cv_gas_major_version=
1865 gcc_cv_gas_minor_version=
1866 gcc_cv_as_gas_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/gas
1867
1868 m4_pattern_allow([AS_FOR_TARGET])dnl
1869 AS_VAR_SET_IF(gcc_cv_as,, [
1870 if test -x "$DEFAULT_ASSEMBLER"; then
1871         gcc_cv_as="$DEFAULT_ASSEMBLER"
1872 elif test -f $gcc_cv_as_gas_srcdir/configure.in \
1873      && test -f ../gas/Makefile \
1874      && test x$build = x$host; then
1875         gcc_cv_as=../gas/as-new$build_exeext
1876 elif test -x as$build_exeext; then
1877         # Build using assembler in the current directory.
1878         gcc_cv_as=./as$build_exeext
1879 elif test -x $AS_FOR_TARGET; then
1880         gcc_cv_as="$AS_FOR_TARGET"
1881 else
1882         AC_PATH_PROG(gcc_cv_as, $AS_FOR_TARGET)
1883 fi])
1884
1885 ORIGINAL_AS_FOR_TARGET=$gcc_cv_as
1886 AC_SUBST(ORIGINAL_AS_FOR_TARGET)
1887 case "$ORIGINAL_AS_FOR_TARGET" in
1888   ./as | ./as$build_exeext) ;;
1889   *) AC_CONFIG_FILES(as:exec-tool.in, [chmod +x as]) ;;
1890 esac 
1891
1892 AC_MSG_CHECKING(what assembler to use)
1893 if test "$gcc_cv_as" = ../gas/as-new$build_exeext; then
1894   # Single tree build which includes gas.  We want to prefer it
1895   # over whatever linker top-level may have detected, since
1896   # we'll use what we're building after installation anyway.
1897   AC_MSG_RESULT(newly built gas)
1898   in_tree_gas=yes
1899   _gcc_COMPUTE_GAS_VERSION
1900   in_tree_gas_is_elf=no
1901   if grep 'obj_format = elf' ../gas/Makefile > /dev/null \
1902      || (grep 'obj_format = multi' ../gas/Makefile \
1903          && grep 'extra_objects =.* obj-elf' ../gas/Makefile) > /dev/null
1904   then
1905     in_tree_gas_is_elf=yes
1906   fi
1907 else
1908   AC_MSG_RESULT($gcc_cv_as)
1909   in_tree_gas=no
1910 fi
1911
1912 # Identify the linker which will work hand-in-glove with the newly
1913 # built GCC, so that we can examine its features.  This is the linker
1914 # which will be driven by the driver program.
1915 #
1916 # If build != host, and we aren't building gas in-tree, we identify a
1917 # build->target linker and hope that it will have the same features
1918 # as the host->target linker we'll be using.
1919 gcc_cv_gld_major_version=
1920 gcc_cv_gld_minor_version=
1921 gcc_cv_ld_gld_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/ld
1922 gcc_cv_ld_bfd_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/bfd
1923
1924 AS_VAR_SET_IF(gcc_cv_ld,, [
1925 if test -x "$DEFAULT_LINKER"; then
1926         gcc_cv_ld="$DEFAULT_LINKER"
1927 elif test -f $gcc_cv_ld_gld_srcdir/configure.in \
1928      && test -f ../ld/Makefile \
1929      && test x$build = x$host; then
1930         gcc_cv_ld=../ld/ld-new$build_exeext
1931 elif test -x collect-ld$build_exeext; then
1932         # Build using linker in the current directory.
1933         gcc_cv_ld=./collect-ld$build_exeext
1934 elif test -x $LD_FOR_TARGET; then
1935         gcc_cv_ld="$LD_FOR_TARGET"
1936 else
1937         AC_PATH_PROG(gcc_cv_ld, $LD_FOR_TARGET)
1938 fi])
1939
1940 ORIGINAL_LD_FOR_TARGET=$gcc_cv_ld
1941 AC_SUBST(ORIGINAL_LD_FOR_TARGET)
1942 case "$ORIGINAL_LD_FOR_TARGET" in
1943   ./collect-ld | ./collect-ld$build_exeext) ;;
1944   *) AC_CONFIG_FILES(collect-ld:exec-tool.in, [chmod +x collect-ld]) ;;
1945 esac 
1946
1947 AC_MSG_CHECKING(what linker to use)
1948 if test "$gcc_cv_ld" = ../ld/ld-new$build_exeext; then
1949         # Single tree build which includes ld.  We want to prefer it
1950         # over whatever linker top-level may have detected, since
1951         # we'll use what we're building after installation anyway.
1952         AC_MSG_RESULT(newly built ld)
1953         in_tree_ld=yes
1954         in_tree_ld_is_elf=no
1955         if (grep 'EMUL = .*elf' ../ld/Makefile \
1956             || grep 'EMUL = .*linux' ../ld/Makefile \
1957             || grep 'EMUL = .*lynx' ../ld/Makefile) > /dev/null; then
1958           in_tree_ld_is_elf=yes
1959         fi
1960         for f in $gcc_cv_ld_bfd_srcdir/configure $gcc_cv_ld_gld_srcdir/configure $gcc_cv_ld_gld_srcdir/configure.in $gcc_cv_ld_gld_srcdir/Makefile.in
1961         do
1962 changequote(,)dnl
1963                 gcc_cv_gld_version=`sed -n -e 's/^[     ]*\(VERSION=[0-9]*\.[0-9]*.*\)/\1/p' < $f`
1964                 if test x$gcc_cv_gld_version != x; then
1965                         break
1966                 fi
1967         done
1968         gcc_cv_gld_major_version=`expr "$gcc_cv_gld_version" : "VERSION=\([0-9]*\)"`
1969         gcc_cv_gld_minor_version=`expr "$gcc_cv_gld_version" : "VERSION=[0-9]*\.\([0-9]*\)"`
1970 changequote([,])dnl
1971 else
1972         AC_MSG_RESULT($gcc_cv_ld)
1973         in_tree_ld=no
1974 fi
1975
1976 # Figure out what nm we will be using.
1977 gcc_cv_binutils_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/binutils
1978 AS_VAR_SET_IF(gcc_cv_nm,, [
1979 if test -f $gcc_cv_binutils_srcdir/configure.in \
1980      && test -f ../binutils/Makefile \
1981      && test x$build = x$host; then
1982         gcc_cv_nm=../binutils/nm-new$build_exeext
1983 elif test -x nm$build_exeext; then
1984         gcc_cv_nm=./nm$build_exeext
1985 elif test -x $NM_FOR_TARGET; then
1986         gcc_cv_nm="$NM_FOR_TARGET"
1987 else
1988         AC_PATH_PROG(gcc_cv_nm, $NM_FOR_TARGET)
1989 fi])
1990
1991 AC_MSG_CHECKING(what nm to use)
1992 if test "$gcc_cv_nm" = ../binutils/nm-new$build_exeext; then
1993         # Single tree build which includes binutils.
1994         AC_MSG_RESULT(newly built nm)
1995         in_tree_nm=yes
1996 else
1997         AC_MSG_RESULT($gcc_cv_nm)
1998         in_tree_nm=no
1999 fi
2000
2001 ORIGINAL_NM_FOR_TARGET=$gcc_cv_nm
2002 AC_SUBST(ORIGINAL_NM_FOR_TARGET)
2003 case "$ORIGINAL_NM_FOR_TARGET" in
2004   ./nm | ./nm$build_exeext) ;;
2005   *) AC_CONFIG_FILES(nm:exec-tool.in, [chmod +x nm]) ;;
2006 esac
2007
2008
2009 # Figure out what objdump we will be using.
2010 AS_VAR_SET_IF(gcc_cv_objdump,, [
2011 if test -f $gcc_cv_binutils_srcdir/configure.in \
2012      && test -f ../binutils/Makefile \
2013      && test x$build = x$host; then
2014         # Single tree build which includes binutils.
2015         gcc_cv_objdump=../binutils/objdump$build_exeext
2016 elif test -x objdump$build_exeext; then
2017         gcc_cv_objdump=./objdump$build_exeext
2018 elif test -x $OBJDUMP_FOR_TARGET; then
2019         gcc_cv_objdump="$OBJDUMP_FOR_TARGET"
2020 else
2021         AC_PATH_PROG(gcc_cv_objdump, $OBJDUMP_FOR_TARGET)
2022 fi])
2023
2024 AC_MSG_CHECKING(what objdump to use)
2025 if test "$gcc_cv_objdump" = ../binutils/objdump$build_exeext; then
2026         # Single tree build which includes binutils.
2027         AC_MSG_RESULT(newly built objdump)
2028 elif test x$gcc_cv_objdump = x; then
2029         AC_MSG_RESULT(not found)
2030 else
2031         AC_MSG_RESULT($gcc_cv_objdump)
2032 fi
2033
2034 # Figure out what assembler alignment features are present.
2035 gcc_GAS_CHECK_FEATURE([.balign and .p2align], gcc_cv_as_balign_and_p2align,
2036  [2,6,0],,
2037 [.balign 4
2038 .p2align 2],,
2039 [AC_DEFINE(HAVE_GAS_BALIGN_AND_P2ALIGN, 1,
2040   [Define if your assembler supports .balign and .p2align.])])
2041
2042 gcc_GAS_CHECK_FEATURE([.p2align with maximum skip], gcc_cv_as_max_skip_p2align,
2043  [2,8,0],,
2044  [.p2align 4,,7],,
2045 [AC_DEFINE(HAVE_GAS_MAX_SKIP_P2ALIGN, 1,
2046   [Define if your assembler supports specifying the maximum number
2047    of bytes to skip when using the GAS .p2align command.])])
2048
2049 gcc_GAS_CHECK_FEATURE([.literal16], gcc_cv_as_literal16,
2050  [2,8,0],,
2051  [.literal16],,
2052 [AC_DEFINE(HAVE_GAS_LITERAL16, 1,
2053   [Define if your assembler supports .literal16.])])
2054
2055 gcc_GAS_CHECK_FEATURE([working .subsection -1], gcc_cv_as_subsection_m1,
2056  [elf,2,9,0],,
2057  [conftest_label1: .word 0
2058 .subsection -1
2059 conftest_label2: .word 0
2060 .previous],
2061  [if test x$gcc_cv_nm != x; then
2062     $gcc_cv_nm conftest.o | grep conftest_label1 > conftest.nm1
2063     $gcc_cv_nm conftest.o | grep conftest_label2 | sed -e 's/label2/label1/' > conftest.nm2
2064     if cmp conftest.nm1 conftest.nm2 > /dev/null 2>&1
2065     then :
2066     else gcc_cv_as_subsection_m1=yes
2067     fi
2068     rm -f conftest.nm1 conftest.nm2
2069   fi],
2070  [AC_DEFINE(HAVE_GAS_SUBSECTION_ORDERING, 1,
2071   [Define if your assembler supports .subsection and .subsection -1 starts
2072    emitting at the beginning of your section.])])
2073
2074 gcc_GAS_CHECK_FEATURE([.weak], gcc_cv_as_weak,
2075  [2,2,0],,
2076  [      .weak foobar],,
2077 [AC_DEFINE(HAVE_GAS_WEAK, 1, [Define if your assembler supports .weak.])])
2078
2079 gcc_GAS_CHECK_FEATURE([.weakref], gcc_cv_as_weakref,
2080  [2,17,0],,
2081  [      .weakref foobar, barfnot],,
2082 [AC_DEFINE(HAVE_GAS_WEAKREF, 1, [Define if your assembler supports .weakref.])])
2083
2084 gcc_GAS_CHECK_FEATURE([.nsubspa comdat], gcc_cv_as_nsubspa_comdat,
2085  [2,15,91],,
2086  [      .SPACE $TEXT$
2087         .NSUBSPA $CODE$,COMDAT],,
2088 [AC_DEFINE(HAVE_GAS_NSUBSPA_COMDAT, 1, [Define if your assembler supports .nsubspa comdat option.])])
2089
2090 # .hidden needs to be supported in both the assembler and the linker,
2091 # because GNU LD versions before 2.12.1 have buggy support for STV_HIDDEN.
2092 # This is irritatingly difficult to feature test for; we have to check the
2093 # date string after the version number.  If we've got an in-tree
2094 # ld, we don't know its patchlevel version, so we set the baseline at 2.13
2095 # to be safe.
2096 # The gcc_GAS_CHECK_FEATURE call just sets a cache variable.
2097 gcc_GAS_CHECK_FEATURE([.hidden], gcc_cv_as_hidden,
2098  [elf,2,13,0],,
2099 [       .hidden foobar
2100 foobar:])
2101
2102 AC_CACHE_CHECK(linker for .hidden support, gcc_cv_ld_hidden,
2103 [if test $in_tree_ld = yes ; then
2104   gcc_cv_ld_hidden=no
2105   if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 13 -o "$gcc_cv_gld_major_version" -gt 2 \
2106      && test $in_tree_ld_is_elf = yes; then
2107      gcc_cv_ld_hidden=yes
2108   fi
2109 else
2110   gcc_cv_ld_hidden=yes
2111   ld_ver=`$gcc_cv_ld --version 2>/dev/null | sed 1q`
2112   if echo "$ld_ver" | grep GNU > /dev/null; then
2113 changequote(,)dnl
2114     ld_vers=`echo $ld_ver | sed -n \
2115         -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
2116         -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
2117         -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
2118         -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*\)[  ].*$,\1,p' \
2119         -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[     ].*$,\1,p' \
2120         -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[       ].*$,\1,p' \
2121         -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[   -].*$,\1,p'`
2122     ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'`
2123     ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'`
2124     ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'`
2125     ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
2126     if test 0"$ld_date" -lt 20020404; then
2127       if test -n "$ld_date"; then
2128         # If there was date string, but was earlier than 2002-04-04, fail
2129         gcc_cv_ld_hidden=no
2130       elif test -z "$ld_vers"; then
2131         # If there was no date string nor ld version number, something is wrong
2132         gcc_cv_ld_hidden=no
2133       else
2134         test -z "$ld_vers_patch" && ld_vers_patch=0
2135         if test "$ld_vers_major" -lt 2; then
2136           gcc_cv_ld_hidden=no
2137         elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 12; then
2138           gcc_cv_ld_hidden="no"
2139         elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -eq 12 -a "$ld_vers_patch" -eq 0; then
2140           gcc_cv_ld_hidden=no
2141         fi
2142       fi
2143 changequote([,])dnl
2144     fi
2145   else
2146     case "${target}" in
2147       hppa64*-*-hpux* | ia64*-*-hpux*)
2148         gcc_cv_ld_hidden=yes
2149         ;;
2150       *)
2151         gcc_cv_ld_hidden=no
2152         ;;
2153     esac
2154   fi
2155 fi])
2156 libgcc_visibility=no
2157 AC_SUBST(libgcc_visibility)
2158 GCC_TARGET_TEMPLATE([HAVE_GAS_HIDDEN])
2159 if test $gcc_cv_as_hidden = yes && test $gcc_cv_ld_hidden = yes; then
2160   libgcc_visibility=yes
2161   AC_DEFINE(HAVE_GAS_HIDDEN, 1,
2162   [Define if your assembler and linker support .hidden.])
2163 fi
2164
2165 # Check if we have .[us]leb128, and support symbol arithmetic with it.
2166 gcc_GAS_CHECK_FEATURE([.sleb128 and .uleb128], gcc_cv_as_leb128,
2167   [elf,2,11,0],,
2168 [       .data
2169         .uleb128 L2 - L1
2170 L1:
2171         .uleb128 1280
2172         .sleb128 -1010
2173 L2:],
2174  [# GAS versions before 2.11 do not support uleb128,
2175   # despite appearing to.
2176   # ??? There exists an elf-specific test that will crash
2177   # the assembler.  Perhaps it's better to figure out whether
2178   # arbitrary sections are supported and try the test.
2179   as_ver=`$gcc_cv_as --version 2>/dev/null | sed 1q`
2180   if echo "$as_ver" | grep GNU > /dev/null; then
2181 changequote(,)dnl
2182     as_ver=`echo $as_ver | sed -e 's/GNU assembler \([0-9.][0-9.]*\).*/\1/'`
2183     as_major=`echo $as_ver | sed 's/\..*//'`
2184     as_minor=`echo $as_ver | sed 's/[^.]*\.\([0-9]*\).*/\1/'`
2185 changequote([,])dnl
2186     if test $as_major -eq 2 && test $as_minor -lt 11
2187     then :
2188     else gcc_cv_as_leb128=yes
2189     fi
2190   fi],
2191   [AC_DEFINE(HAVE_AS_LEB128, 1,
2192     [Define if your assembler supports .sleb128 and .uleb128.])])
2193
2194 # GAS versions up to and including 2.11.0 may mis-optimize
2195 # .eh_frame data.
2196 gcc_GAS_CHECK_FEATURE(eh_frame optimization, gcc_cv_as_eh_frame,
2197   [elf,2,12,0],,
2198 [       .text
2199 .LFB1:
2200         .4byte  0
2201 .L1:
2202         .4byte  0
2203 .LFE1:
2204         .section        .eh_frame,"aw",@progbits
2205 __FRAME_BEGIN__:
2206         .4byte  .LECIE1-.LSCIE1
2207 .LSCIE1:
2208         .4byte  0x0
2209         .byte   0x1
2210         .ascii "z\0"
2211         .byte   0x1
2212         .byte   0x78
2213         .byte   0x1a
2214         .byte   0x0
2215         .byte   0x4
2216         .4byte  1
2217         .p2align 1
2218 .LECIE1:
2219 .LSFDE1:
2220         .4byte  .LEFDE1-.LASFDE1
2221 .LASFDE1:
2222         .4byte  .LASFDE1-__FRAME_BEGIN__
2223         .4byte  .LFB1
2224         .4byte  .LFE1-.LFB1
2225         .byte   0x4
2226         .4byte  .LFE1-.LFB1
2227         .byte   0x4
2228         .4byte  .L1-.LFB1
2229 .LEFDE1:],
2230 [  dnl # For autoconf 2.5x, must protect trailing spaces with @&t@.
2231 cat > conftest.lit <<EOF
2232  0000 10000000 00000000 017a0001 781a0004  .........z..x...
2233  0010 01000000 12000000 18000000 00000000  ................
2234  0020 08000000 04080000 0044               .........D      @&t@
2235 EOF
2236 cat > conftest.big <<EOF
2237  0000 00000010 00000000 017a0001 781a0004  .........z..x...
2238  0010 00000001 00000012 00000018 00000000  ................
2239  0020 00000008 04000000 0844               .........D      @&t@
2240 EOF
2241   # If the assembler didn't choke, and we can objdump,
2242   # and we got the correct data, then succeed.
2243   # The text in the here-document typically retains its unix-style line
2244   # endings, while the output of objdump will use host line endings.
2245   # Therefore, use diff -b for the comparisons.
2246   if test x$gcc_cv_objdump != x \
2247   && $gcc_cv_objdump -s -j .eh_frame conftest.o 2>/dev/null \
2248      | tail -3 > conftest.got \
2249   && { diff -b conftest.lit conftest.got > /dev/null 2>&1 \
2250     || diff -b conftest.big conftest.got > /dev/null 2>&1; }
2251   then
2252     gcc_cv_as_eh_frame=yes
2253   elif AC_TRY_COMMAND($gcc_cv_as -o conftest.o --traditional-format /dev/null); then
2254     gcc_cv_as_eh_frame=buggy
2255   else
2256     # Uh oh, what do we do now?
2257     gcc_cv_as_eh_frame=no
2258   fi])
2259
2260 if test $gcc_cv_as_eh_frame = buggy; then
2261   AC_DEFINE(USE_AS_TRADITIONAL_FORMAT, 1,
2262   [Define if your assembler mis-optimizes .eh_frame data.])
2263 fi
2264
2265 gcc_GAS_CHECK_FEATURE(section merging support, gcc_cv_as_shf_merge,
2266  [elf,2,12,0], [--fatal-warnings],
2267  [.section .rodata.str, "aMS", @progbits, 1])
2268 if test $gcc_cv_as_shf_merge = no; then
2269   gcc_GAS_CHECK_FEATURE(section merging support, gcc_cv_as_shf_merge,
2270     [elf,2,12,0], [--fatal-warnings],
2271     [.section .rodata.str, "aMS", %progbits, 1])
2272 fi
2273 AC_DEFINE_UNQUOTED(HAVE_GAS_SHF_MERGE,
2274   [`if test $gcc_cv_as_shf_merge = yes; then echo 1; else echo 0; fi`],
2275 [Define 0/1 if your assembler supports marking sections with SHF_MERGE flag.])
2276
2277 gcc_GAS_CHECK_FEATURE(COMDAT group support, gcc_cv_as_comdat_group,
2278  [elf,2,16,0], [--fatal-warnings],
2279  [.section .text,"axG",@progbits,.foo,comdat])
2280 if test $gcc_cv_as_comdat_group = yes; then
2281   gcc_cv_as_comdat_group_percent=no
2282 else
2283  gcc_GAS_CHECK_FEATURE(COMDAT group support, gcc_cv_as_comdat_group_percent,
2284    [elf,2,16,0], [--fatal-warnings],
2285    [.section .text,"axG",%progbits,.foo,comdat])
2286 fi
2287 if test $in_tree_ld != yes && test x"$ld_vers" != x; then
2288   comdat_group=yes
2289   if test 0"$ld_date" -lt 20050308; then
2290     if test -n "$ld_date"; then
2291       # If there was date string, but was earlier than 2005-03-08, fail
2292       comdat_group=no
2293     elif test "$ld_vers_major" -lt 2; then
2294       comdat_group=no
2295     elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 16; then
2296       comdat_group=no
2297     fi
2298   fi
2299 else
2300   # assume linkers other than GNU ld don't support COMDAT group
2301   comdat_group=no
2302 fi
2303 if test $comdat_group = no; then
2304   gcc_cv_as_comdat_group=no
2305   gcc_cv_as_comdat_group_percent=no
2306 fi
2307 AC_DEFINE_UNQUOTED(HAVE_COMDAT_GROUP,
2308   [`if test $gcc_cv_as_comdat_group = yes || test $gcc_cv_as_comdat_group_percent = yes; then echo 1; else echo 0; fi`],
2309 [Define 0/1 if your assembler and linker support COMDAT groups.])
2310
2311 # Thread-local storage - the check is heavily parametrized.
2312 conftest_s=
2313 tls_first_major=
2314 tls_first_minor=
2315 tls_as_opt=
2316 case "$target" in
2317 changequote(,)dnl
2318   alpha*-*-*)
2319     conftest_s='
2320         .section ".tdata","awT",@progbits
2321 foo:    .long   25
2322         .text
2323         ldq     $27,__tls_get_addr($29)         !literal!1
2324         lda     $16,foo($29)                    !tlsgd!1
2325         jsr     $26,($27),__tls_get_addr        !lituse_tlsgd!1
2326         ldq     $27,__tls_get_addr($29)         !literal!2
2327         lda     $16,foo($29)                    !tlsldm!2
2328         jsr     $26,($27),__tls_get_addr        !lituse_tlsldm!2
2329         ldq     $1,foo($29)                     !gotdtprel
2330         ldah    $2,foo($29)                     !dtprelhi
2331         lda     $3,foo($2)                      !dtprello
2332         lda     $4,foo($29)                     !dtprel
2333         ldq     $1,foo($29)                     !gottprel
2334         ldah    $2,foo($29)                     !tprelhi
2335         lda     $3,foo($2)                      !tprello
2336         lda     $4,foo($29)                     !tprel'
2337         tls_first_major=2
2338         tls_first_minor=13
2339         tls_as_opt=--fatal-warnings
2340         ;;
2341   frv*-*-*)
2342     conftest_s='
2343         .section ".tdata","awT",@progbits
2344 x:      .long   25
2345         .text
2346         call    #gettlsoff(x)'
2347         tls_first_major=2
2348         tls_first_minor=14
2349         ;;
2350   hppa*-*-linux*)
2351     conftest_s='
2352 t1:     .reg    %r20
2353 t2:     .reg    %r21
2354 gp:     .reg    %r19
2355         .section ".tdata","awT",@progbits
2356 foo:    .long   25
2357         .text
2358         .align  4
2359         addil LT%foo-$tls_gdidx$,gp
2360         ldo RT%foo-$tls_gdidx$(%r1),%arg0
2361         b __tls_get_addr
2362         nop             
2363         addil LT%foo-$tls_ldidx$,gp
2364         b __tls_get_addr
2365         ldo RT%foo-$tls_ldidx$(%r1),%arg0
2366         addil LR%foo-$tls_dtpoff$,%ret0
2367         ldo RR%foo-$tls_dtpoff$(%r1),%t1
2368         mfctl %cr27,%t1                 
2369         addil LT%foo-$tls_ieoff$,gp
2370         ldw RT%foo-$tls_ieoff$(%r1),%t2
2371         add %t1,%t2,%t3                 
2372         mfctl %cr27,%t1                 
2373         addil LR%foo-$tls_leoff$,%t1
2374         ldo RR%foo-$tls_leoff$(%r1),%t2'
2375         tls_first_major=2
2376         tls_first_minor=15
2377         tls_as_opt=--fatal-warnings
2378         ;;
2379   arm*-*-*)
2380     conftest_s='
2381         .section ".tdata","awT",%progbits
2382 foo:    .long   25
2383         .text
2384 .word foo(gottpoff)
2385 .word foo(tpoff)
2386 .word foo(tlsgd)
2387 .word foo(tlsldm)
2388 .word foo(tlsldo)'
2389         tls_first_major=2
2390         tls_first_minor=17
2391         ;;
2392   i[34567]86-*-*)
2393     conftest_s='
2394         .section ".tdata","awT",@progbits
2395 foo:    .long   25
2396         .text
2397         movl    %gs:0, %eax
2398         leal    foo@TLSGD(,%ebx,1), %eax
2399         leal    foo@TLSLDM(%ebx), %eax
2400         leal    foo@DTPOFF(%eax), %edx
2401         movl    foo@GOTTPOFF(%ebx), %eax
2402         subl    foo@GOTTPOFF(%ebx), %eax
2403         addl    foo@GOTNTPOFF(%ebx), %eax
2404         movl    foo@INDNTPOFF, %eax
2405         movl    $foo@TPOFF, %eax
2406         subl    $foo@TPOFF, %eax
2407         leal    foo@NTPOFF(%ecx), %eax'
2408         tls_first_major=2
2409         tls_first_minor=14
2410         tls_as_opt=--fatal-warnings
2411         ;;
2412   x86_64-*-*)
2413     conftest_s='
2414         .section ".tdata","awT",@progbits
2415 foo:    .long   25
2416         .text
2417         movq    %fs:0, %rax
2418         leaq    foo@TLSGD(%rip), %rdi
2419         leaq    foo@TLSLD(%rip), %rdi
2420         leaq    foo@DTPOFF(%rax), %rdx
2421         movq    foo@GOTTPOFF(%rip), %rax
2422         movq    $foo@TPOFF, %rax'
2423         tls_first_major=2
2424         tls_first_minor=14
2425         tls_as_opt=--fatal-warnings
2426         ;;
2427   ia64-*-*)
2428     conftest_s='
2429         .section ".tdata","awT",@progbits
2430 foo:    data8   25
2431         .text
2432         addl    r16 = @ltoff(@dtpmod(foo#)), gp
2433         addl    r17 = @ltoff(@dtprel(foo#)), gp
2434         addl    r18 = @ltoff(@tprel(foo#)), gp
2435         addl    r19 = @dtprel(foo#), gp
2436         adds    r21 = @dtprel(foo#), r13
2437         movl    r23 = @dtprel(foo#)
2438         addl    r20 = @tprel(foo#), gp
2439         adds    r22 = @tprel(foo#), r13
2440         movl    r24 = @tprel(foo#)'
2441         tls_first_major=2
2442         tls_first_minor=13
2443         tls_as_opt=--fatal-warnings
2444         ;;
2445   mips*-*-*)
2446     conftest_s='
2447         .section .tdata,"awT",@progbits
2448 x:
2449         .word 2
2450         .text
2451         addiu $4, $28, %tlsgd(x)
2452         addiu $4, $28, %tlsldm(x)
2453         lui $4, %dtprel_hi(x)
2454         addiu $4, $4, %dtprel_lo(x)
2455         lw $4, %gottprel(x)($28)
2456         lui $4, %tprel_hi(x)
2457         addiu $4, $4, %tprel_lo(x)'
2458         tls_first_major=2
2459         tls_first_minor=16
2460         tls_as_opt='-32 --fatal-warnings'
2461         ;;
2462   powerpc-*-*)
2463     conftest_s='
2464         .section ".tdata","awT",@progbits
2465         .align 2
2466 ld0:    .space 4
2467 ld1:    .space 4
2468 x1:     .space 4
2469 x2:     .space 4
2470 x3:     .space 4
2471         .text
2472         addi 3,31,ld0@got@tlsgd
2473         bl __tls_get_addr
2474         addi 3,31,x1@got@tlsld
2475         bl __tls_get_addr
2476         addi 9,3,x1@dtprel
2477         addis 9,3,x2@dtprel@ha
2478         addi 9,9,x2@dtprel@l
2479         lwz 9,x3@got@tprel(31)
2480         add 9,9,x@tls
2481         addi 9,2,x1@tprel
2482         addis 9,2,x2@tprel@ha
2483         addi 9,9,x2@tprel@l'
2484         tls_first_major=2
2485         tls_first_minor=14
2486         tls_as_opt="-a32 --fatal-warnings"
2487         ;;
2488   powerpc64-*-*)
2489     conftest_s='
2490         .section ".tdata","awT",@progbits
2491         .align 3
2492 ld0:    .space 8
2493 ld1:    .space 8
2494 x1:     .space 8
2495 x2:     .space 8
2496 x3:     .space 8
2497         .text
2498         addi 3,2,ld0@got@tlsgd
2499         bl .__tls_get_addr
2500         nop
2501         addi 3,2,ld1@toc
2502         bl .__tls_get_addr
2503         nop
2504         addi 3,2,x1@got@tlsld
2505         bl .__tls_get_addr
2506         nop
2507         addi 9,3,x1@dtprel
2508         bl .__tls_get_addr
2509         nop
2510         addis 9,3,x2@dtprel@ha
2511         addi 9,9,x2@dtprel@l
2512         bl .__tls_get_addr
2513         nop
2514         ld 9,x3@got@dtprel(2)
2515         add 9,9,3
2516         bl .__tls_get_addr
2517         nop'
2518         tls_first_major=2
2519         tls_first_minor=14
2520         tls_as_opt="-a64 --fatal-warnings"
2521         ;;
2522   s390-*-*)
2523     conftest_s='
2524         .section ".tdata","awT",@progbits
2525 foo:    .long   25
2526         .text
2527         .long   foo@TLSGD
2528         .long   foo@TLSLDM
2529         .long   foo@DTPOFF
2530         .long   foo@NTPOFF
2531         .long   foo@GOTNTPOFF
2532         .long   foo@INDNTPOFF
2533         l       %r1,foo@GOTNTPOFF(%r12)
2534         l       %r1,0(%r1):tls_load:foo
2535         bas     %r14,0(%r1,%r13):tls_gdcall:foo
2536         bas     %r14,0(%r1,%r13):tls_ldcall:foo'
2537         tls_first_major=2
2538         tls_first_minor=14
2539         tls_as_opt="-m31 --fatal-warnings"
2540         ;;
2541   s390x-*-*)
2542     conftest_s='
2543         .section ".tdata","awT",@progbits
2544 foo:    .long   25
2545         .text
2546         .quad   foo@TLSGD
2547         .quad   foo@TLSLDM
2548         .quad   foo@DTPOFF
2549         .quad   foo@NTPOFF
2550         .quad   foo@GOTNTPOFF
2551         lg      %r1,foo@GOTNTPOFF(%r12)
2552         larl    %r1,foo@INDNTPOFF
2553         brasl   %r14,__tls_get_offset@PLT:tls_gdcall:foo
2554         brasl   %r14,__tls_get_offset@PLT:tls_ldcall:foo'
2555         tls_first_major=2
2556         tls_first_minor=14
2557         tls_as_opt="-m64 -Aesame --fatal-warnings"
2558         ;;
2559   sh-*-* | sh[34]-*-*)
2560     conftest_s='
2561         .section ".tdata","awT",@progbits
2562 foo:    .long   25
2563         .text
2564         .long   foo@TLSGD
2565         .long   foo@TLSLDM
2566         .long   foo@DTPOFF
2567         .long   foo@GOTTPOFF
2568         .long   foo@TPOFF'
2569         tls_first_major=2
2570         tls_first_minor=13
2571         tls_as_opt=--fatal-warnings
2572         ;;
2573   sparc*-*-*)
2574     case "$target" in
2575       sparc*-sun-solaris2.[56789]*)
2576         # TLS was introduced in the Solaris 9 4/04 release but
2577         # we do not enable it by default on Solaris 9 either.
2578         if test "x$enable_tls" = xyes ; then
2579           on_solaris=yes
2580         else
2581           enable_tls=no;
2582         fi
2583         ;;
2584       sparc*-sun-solaris2.*)
2585         on_solaris=yes
2586         ;;
2587       *)
2588         on_solaris=no
2589         ;;
2590     esac
2591     if test x$on_solaris = xyes && test x$gas_flag = xno; then
2592       conftest_s='
2593         .section ".tdata",#alloc,#write,#tls
2594 foo:    .long   25
2595         .text
2596         sethi   %tgd_hi22(foo), %o0
2597         add     %o0, %tgd_lo10(foo), %o1
2598         add     %l7, %o1, %o0, %tgd_add(foo)
2599         call    __tls_get_addr, %tgd_call(foo)
2600         sethi   %tldm_hi22(foo), %l1
2601         add     %l1, %tldm_lo10(foo), %l2
2602         add     %l7, %l2, %o0, %tldm_add(foo)
2603         call    __tls_get_addr, %tldm_call(foo)
2604         sethi   %tldo_hix22(foo), %l3
2605         xor     %l3, %tldo_lox10(foo), %l4
2606         add     %o0, %l4, %l5, %tldo_add(foo)
2607         sethi   %tie_hi22(foo), %o3
2608         add     %o3, %tie_lo10(foo), %o3
2609         ld      [%l7 + %o3], %o2, %tie_ld(foo)
2610         add     %g7, %o2, %o4, %tie_add(foo)
2611         sethi   %tle_hix22(foo), %l1
2612         xor     %l1, %tle_lox10(foo), %o5
2613         ld      [%g7 + %o5], %o1'
2614         tls_first_major=0
2615         tls_first_minor=0
2616     else
2617       conftest_s='
2618         .section ".tdata","awT",@progbits
2619 foo:    .long   25
2620         .text
2621         sethi   %tgd_hi22(foo), %o0
2622         add     %o0, %tgd_lo10(foo), %o1
2623         add     %l7, %o1, %o0, %tgd_add(foo)
2624         call    __tls_get_addr, %tgd_call(foo)
2625         sethi   %tldm_hi22(foo), %l1
2626         add     %l1, %tldm_lo10(foo), %l2
2627         add     %l7, %l2, %o0, %tldm_add(foo)
2628         call    __tls_get_addr, %tldm_call(foo)
2629         sethi   %tldo_hix22(foo), %l3
2630         xor     %l3, %tldo_lox10(foo), %l4
2631         add     %o0, %l4, %l5, %tldo_add(foo)
2632         sethi   %tie_hi22(foo), %o3
2633         add     %o3, %tie_lo10(foo), %o3
2634         ld      [%l7 + %o3], %o2, %tie_ld(foo)
2635         add     %g7, %o2, %o4, %tie_add(foo)
2636         sethi   %tle_hix22(foo), %l1
2637         xor     %l1, %tle_lox10(foo), %o5
2638         ld      [%g7 + %o5], %o1'
2639         tls_first_major=2
2640         tls_first_minor=14
2641         tls_as_opt="-32 --fatal-warnings"
2642       fi
2643         ;;
2644 changequote([,])dnl
2645 esac
2646 set_have_as_tls=no
2647 if test "x$enable_tls" = xno ; then
2648   : # TLS explicitly disabled.
2649 elif test "x$enable_tls" = xyes ; then
2650   set_have_as_tls=yes # TLS explicitly enabled.
2651 elif test -z "$tls_first_major"; then
2652   : # If we don't have a check, assume no support.
2653 else
2654   gcc_GAS_CHECK_FEATURE(thread-local storage support, gcc_cv_as_tls,
2655   [$tls_first_major,$tls_first_minor,0], [$tls_as_opt], [$conftest_s],,
2656   [set_have_as_tls=yes])
2657 fi
2658 if test $set_have_as_tls = yes ; then
2659   AC_DEFINE(HAVE_AS_TLS, 1,
2660             [Define if your assembler supports thread-local storage.])
2661 fi
2662
2663 # Target-specific assembler checks.
2664
2665 AC_MSG_CHECKING(linker -Bstatic/-Bdynamic option)
2666 gcc_cv_ld_static_dynamic=no
2667 if test $in_tree_ld = yes ; then
2668   if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 10; then
2669     gcc_cv_ld_static_dynamic=yes
2670   fi
2671 elif test x$gcc_cv_ld != x; then
2672         # Check if linker supports -Bstatic/-Bdynamic option
2673         if $gcc_cv_ld --help 2>/dev/null | grep -- -Bstatic > /dev/null \
2674           && $gcc_cv_ld --help 2>/dev/null | grep -- -Bdynamic > /dev/null; then
2675                 gcc_cv_ld_static_dynamic=yes
2676         fi
2677 fi
2678 if test x"$gcc_cv_ld_static_dynamic" = xyes; then
2679         AC_DEFINE(HAVE_LD_STATIC_DYNAMIC, 1,
2680 [Define if your linker supports -Bstatic/-Bdynamic option.])
2681 fi
2682 AC_MSG_RESULT($gcc_cv_ld_static_dynamic)
2683
2684 if test x"$demangler_in_ld" = xyes; then
2685   AC_MSG_CHECKING(linker --demangle support)
2686   gcc_cv_ld_demangle=no
2687   if test $in_tree_ld = yes; then
2688     if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 14 -o "$gcc_cv_gld_major_version" -gt 2; then \
2689       gcc_cv_ld_demangle=yes
2690     fi
2691   elif test x$gcc_cv_ld != x -a x"$gnu_ld" = xyes; then
2692     # Check if the GNU linker supports --demangle option
2693     if $gcc_cv_ld --help 2>/dev/null | grep no-demangle > /dev/null; then
2694       gcc_cv_ld_demangle=yes
2695     fi
2696   fi
2697   if test x"$gcc_cv_ld_demangle" = xyes; then
2698     AC_DEFINE(HAVE_LD_DEMANGLE, 1,
2699 [Define if your linker supports --demangle option.])
2700   fi
2701   AC_MSG_RESULT($gcc_cv_ld_demangle)
2702 fi
2703
2704 case "$target" in
2705   # All TARGET_ABI_OSF targets.
2706   alpha*-*-osf* | alpha*-*-linux* | alpha*-*-*bsd*)
2707     gcc_GAS_CHECK_FEATURE([explicit relocation support],
2708         gcc_cv_as_alpha_explicit_relocs, [2,12,0],,
2709 [       .set nomacro
2710         .text
2711         extbl   $3, $2, $3      !lituse_bytoff!1
2712         ldq     $2, a($29)      !literal!1
2713         ldq     $4, b($29)      !literal!2
2714         ldq_u   $3, 0($2)       !lituse_base!1
2715         ldq     $27, f($29)     !literal!5
2716         jsr     $26, ($27), f   !lituse_jsr!5
2717         ldah    $29, 0($26)     !gpdisp!3
2718         lda     $0, c($29)      !gprel
2719         ldah    $1, d($29)      !gprelhigh
2720         lda     $1, d($1)       !gprellow
2721         lda     $29, 0($29)     !gpdisp!3],,
2722     [AC_DEFINE(HAVE_AS_EXPLICIT_RELOCS, 1,
2723   [Define if your assembler supports explicit relocations.])])
2724     gcc_GAS_CHECK_FEATURE([jsrdirect relocation support],
2725         gcc_cv_as_alpha_jsrdirect_relocs, [2,16,90],,
2726 [       .set nomacro
2727         .text
2728         ldq     $27, a($29)     !literal!1
2729         jsr     $26, ($27), a   !lituse_jsrdirect!1],,
2730     [AC_DEFINE(HAVE_AS_JSRDIRECT_RELOCS, 1,
2731   [Define if your assembler supports the lituse_jsrdirect relocation.])])
2732     ;;
2733
2734   cris-*-*)
2735     gcc_GAS_CHECK_FEATURE([-no-mul-bug-abort option],
2736       gcc_cv_as_cris_no_mul_bug,[2,15,91],
2737       [-no-mul-bug-abort], [.text],,
2738       [AC_DEFINE(HAVE_AS_NO_MUL_BUG_ABORT_OPTION, 1,
2739                 [Define if your assembler supports the -no-mul-bug-abort option.])])
2740     ;;
2741
2742   sparc*-*-*)
2743     gcc_GAS_CHECK_FEATURE([.register], gcc_cv_as_sparc_register_op,,,
2744       [.register %g2, #scratch],,
2745       [AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP, 1,
2746                 [Define if your assembler supports .register.])])
2747
2748     gcc_GAS_CHECK_FEATURE([-relax option], gcc_cv_as_sparc_relax,,
2749       [-relax], [.text],,
2750       [AC_DEFINE(HAVE_AS_RELAX_OPTION, 1,
2751                 [Define if your assembler supports -relax option.])])
2752
2753     gcc_GAS_CHECK_FEATURE([unaligned pcrel relocs],
2754       gcc_cv_as_sparc_ua_pcrel,,
2755       [-K PIC],
2756 [.text
2757 foo:
2758         nop
2759 .data
2760 .align 4
2761 .byte 0
2762 .uaword %r_disp32(foo)],
2763       [if test x$gcc_cv_ld != x \
2764        && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then
2765          gcc_cv_as_sparc_ua_pcrel=yes
2766        fi
2767        rm -f conftest],
2768       [AC_DEFINE(HAVE_AS_SPARC_UA_PCREL, 1,
2769                 [Define if your assembler and linker support unaligned PC relative relocs.])
2770
2771       gcc_GAS_CHECK_FEATURE([unaligned pcrel relocs against hidden symbols],
2772         gcc_cv_as_sparc_ua_pcrel_hidden,,
2773         [-K PIC],
2774 [.data
2775 .align 4
2776 .byte 0x31
2777 .uaword %r_disp32(foo)
2778 .byte 0x32, 0x33, 0x34
2779 .global foo
2780 .hidden foo
2781 foo:
2782 .skip 4],
2783         [if test x$gcc_cv_ld != x && test x$gcc_cv_objdump != x \
2784          && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1 \
2785          && $gcc_cv_objdump -s -j .data conftest 2> /dev/null \
2786             | grep ' 31000000 07323334' > /dev/null 2>&1; then
2787             if $gcc_cv_objdump -R conftest 2> /dev/null \
2788                | grep 'DISP32' > /dev/null 2>&1; then
2789                 :
2790             else
2791                 gcc_cv_as_sparc_ua_pcrel_hidden=yes
2792             fi
2793          fi
2794          rm -f conftest],
2795          [AC_DEFINE(HAVE_AS_SPARC_UA_PCREL_HIDDEN, 1,
2796                    [Define if your assembler and linker support unaligned PC relative relocs against hidden symbols.])])
2797     ]) # unaligned pcrel relocs
2798
2799     gcc_GAS_CHECK_FEATURE([offsetable %lo()],
2800       gcc_cv_as_sparc_offsetable_lo10,,
2801       [-xarch=v9],
2802 [.text
2803         or %g1, %lo(ab) + 12, %g1
2804         or %g1, %lo(ab + 12), %g1],
2805       [if test x$gcc_cv_objdump != x \
2806        && $gcc_cv_objdump -s -j .text conftest.o 2> /dev/null \
2807           | grep ' 82106000 82106000' > /dev/null 2>&1; then
2808          gcc_cv_as_sparc_offsetable_lo10=yes
2809        fi],
2810        [AC_DEFINE(HAVE_AS_OFFSETABLE_LO10, 1,
2811                  [Define if your assembler supports offsetable %lo().])])
2812     ;;
2813
2814 changequote(,)dnl
2815   i[34567]86-*-* | x86_64-*-*)
2816 changequote([,])dnl
2817     case $target_os in
2818       cygwin* | pe | mingw32*)
2819         # Used for DWARF 2 in PE
2820         gcc_GAS_CHECK_FEATURE([.secrel32 relocs],
2821           gcc_cv_as_ix86_pe_secrel32,
2822           [2,15,91],,
2823 [.text
2824 foo:    nop
2825 .data
2826         .secrel32 foo],
2827           [if test x$gcc_cv_ld != x \
2828            && $gcc_cv_ld -o conftest conftest.o > /dev/null 2>&1; then
2829              gcc_cv_as_ix86_pe_secrel32=yes
2830            fi
2831            rm -f conftest],
2832           [AC_DEFINE(HAVE_GAS_PE_SECREL32_RELOC, 1,
2833             [Define if your assembler and linker support 32-bit section relative relocs via '.secrel32 label'.])])
2834         ;;
2835     esac
2836
2837     gcc_GAS_CHECK_FEATURE([filds and fists mnemonics],
2838        gcc_cv_as_ix86_filds_fists,
2839       [2,9,0],, [filds mem; fists mem],,
2840       [AC_DEFINE(HAVE_GAS_FILDS_FISTS, 1,
2841         [Define if your assembler uses the new HImode fild and fist notation.])])
2842
2843     gcc_GAS_CHECK_FEATURE([cmov syntax],
2844       gcc_cv_as_ix86_cmov_sun_syntax,,,
2845       [cmovl.l %edx, %eax],,
2846       [AC_DEFINE(HAVE_AS_IX86_CMOV_SUN_SYNTAX, 1,
2847         [Define if your assembler supports the Sun syntax for cmov.])])
2848
2849     gcc_GAS_CHECK_FEATURE([ffreep mnemonic],
2850       gcc_cv_as_ix86_ffreep,,,
2851       [ffreep %st(1)],,
2852       [AC_DEFINE(HAVE_AS_IX86_FFREEP, 1,
2853         [Define if your assembler supports the ffreep mnemonic.])])
2854
2855     gcc_GAS_CHECK_FEATURE([sahf mnemonic],
2856       gcc_cv_as_ix86_sahf,,,
2857       [sahf],,
2858       [AC_DEFINE(HAVE_AS_IX86_SAHF, 1,
2859         [Define if your assembler supports the sahf mnemonic.])])
2860
2861     gcc_GAS_CHECK_FEATURE([different section symbol subtraction],
2862       gcc_cv_as_ix86_diff_sect_delta,,,
2863       [.section .rodata
2864 .L1:
2865         .long .L2-.L1
2866         .long .L3-.L1
2867         .text
2868 .L3:    nop
2869 .L2:    nop],,
2870       [AC_DEFINE(HAVE_AS_IX86_DIFF_SECT_DELTA, 1,
2871         [Define if your assembler supports the subtraction of symbols in different sections.])])
2872
2873     # This one is used unconditionally by i386.[ch]; it is to be defined
2874     # to 1 if the feature is present, 0 otherwise.
2875     gcc_GAS_CHECK_FEATURE([GOTOFF in data],
2876         gcc_cv_as_ix86_gotoff_in_data, [2,11,0],,
2877 [       .text
2878 .L0:
2879         nop
2880         .data
2881         .long .L0@GOTOFF])
2882     AC_DEFINE_UNQUOTED(HAVE_AS_GOTOFF_IN_DATA,
2883       [`if test $gcc_cv_as_ix86_gotoff_in_data = yes; then echo 1; else echo 0; fi`],
2884       [Define true if the assembler supports '.long foo@GOTOFF'.])
2885     ;;
2886
2887   ia64*-*-*)
2888     gcc_GAS_CHECK_FEATURE([ltoffx and ldxmov relocs],
2889         gcc_cv_as_ia64_ltoffx_ldxmov_relocs, [2,14,0],,
2890 [       .text
2891         addl r15 = @ltoffx(x#), gp
2892         ;;
2893         ld8.mov r16 = [[r15]], x#],,
2894     [AC_DEFINE(HAVE_AS_LTOFFX_LDXMOV_RELOCS, 1,
2895           [Define if your assembler supports ltoffx and ldxmov relocations.])])
2896
2897     ;;
2898
2899   powerpc*-*-*)
2900     case $target in
2901       *-*-aix*) conftest_s='    .machine "pwr5"
2902         .csect .text[[PR]]
2903         mfcr 3,128';;
2904       *-*-darwin*)
2905         gcc_GAS_CHECK_FEATURE([.machine directive support],
2906           gcc_cv_as_machine_directive,,,
2907           [     .machine ppc7400])
2908         if test x$gcc_cv_as_machine_directive != xyes; then
2909           echo "*** This target requires an assembler supporting \".machine\"" >&2
2910           echo you can get it from: ftp://gcc.gnu.org/pub/gcc/infrastructure/cctools-528.5.dmg >&2
2911           test x$build = x$target && exit 1
2912         fi
2913         conftest_s='    .text
2914         mfcr r3,128';;
2915       *) conftest_s='   .machine power4
2916         .text
2917         mfcr 3,128';;
2918     esac
2919
2920     gcc_GAS_CHECK_FEATURE([mfcr field support],
2921       gcc_cv_as_powerpc_mfcrf, [2,14,0],,
2922       [$conftest_s],,
2923       [AC_DEFINE(HAVE_AS_MFCRF, 1,
2924           [Define if your assembler supports mfcr field.])])
2925
2926     case $target in
2927       *-*-aix*) conftest_s='    .machine "pwr5"
2928         .csect .text[[PR]]
2929         popcntb 3,3';;
2930       *) conftest_s='   .machine power5
2931         .text
2932         popcntb 3,3';;
2933     esac
2934
2935     gcc_GAS_CHECK_FEATURE([popcntb support],
2936       gcc_cv_as_powerpc_popcntb, [2,17,0],,
2937       [$conftest_s],,
2938       [AC_DEFINE(HAVE_AS_POPCNTB, 1,
2939           [Define if your assembler supports popcntb field.])])
2940
2941     case $target in
2942       *-*-aix*) conftest_s='    .machine "pwr5x"
2943         .csect .text[[PR]]
2944         frin 1,1';;
2945       *) conftest_s='   .machine power5
2946         .text
2947         frin 1,1';;
2948     esac
2949
2950     gcc_GAS_CHECK_FEATURE([fp round support],
2951       gcc_cv_as_powerpc_fprnd, [2,17,0],,
2952       [$conftest_s],,
2953       [AC_DEFINE(HAVE_AS_FPRND, 1,
2954           [Define if your assembler supports fprnd.])])
2955
2956     case $target in
2957       *-*-aix*) conftest_s='    .machine "pwr6"
2958         .csect .text[[PR]]
2959         mffgpr 1,3';;
2960       *) conftest_s='   .machine power6
2961         .text
2962         mffgpr 1,3';;
2963     esac
2964
2965     gcc_GAS_CHECK_FEATURE([move fp gpr support],
2966       gcc_cv_as_powerpc_mfpgpr, [9,99,0],,
2967       [$conftest_s],,
2968       [AC_DEFINE(HAVE_AS_MFPGPR, 1,
2969           [Define if your assembler supports mffgpr and mftgpr.])])
2970
2971     case $target in
2972       *-*-aix*) conftest_s='    .csect .text[[PR]]
2973 LCF..0:
2974         addis 11,30,_GLOBAL_OFFSET_TABLE_-LCF..0@ha';;
2975       *-*-darwin*)
2976         conftest_s='    .text
2977 LCF0:
2978         addis r11,r30,_GLOBAL_OFFSET_TABLE_-LCF0@ha';;
2979       *) conftest_s='   .text
2980 .LCF0:
2981         addis 11,30,_GLOBAL_OFFSET_TABLE_-.LCF0@ha';;
2982     esac
2983
2984     gcc_GAS_CHECK_FEATURE([rel16 relocs],
2985       gcc_cv_as_powerpc_rel16, [2,17,0], -a32,
2986       [$conftest_s],,
2987       [AC_DEFINE(HAVE_AS_REL16, 1,
2988           [Define if your assembler supports R_PPC_REL16 relocs.])])
2989
2990     case $target in
2991       *-*-aix*) conftest_s='    .machine "pwr6"
2992         .csect .text[[PR]]
2993         cmpb 3,4,5';;
2994       *) conftest_s='   .machine power6
2995         .text
2996         cmpb 3,4,5';;
2997     esac
2998
2999     gcc_GAS_CHECK_FEATURE([compare bytes support],
3000       gcc_cv_as_powerpc_cmpb, [9,99,0], -a32,
3001       [$conftest_s],,
3002       [AC_DEFINE(HAVE_AS_CMPB, 1,
3003           [Define if your assembler supports cmpb.])])
3004
3005     case $target in
3006       *-*-aix*) conftest_s='    .machine "pwr6"
3007         .csect .text[[PR]]
3008         dadd 1,2,3';;
3009       *) conftest_s='   .machine power6
3010         .text
3011         dadd 1,2,3';;
3012     esac
3013
3014     gcc_GAS_CHECK_FEATURE([decimal float support],
3015       gcc_cv_as_powerpc_dfp, [9,99,0], -a32,
3016       [$conftest_s],,
3017       [AC_DEFINE(HAVE_AS_DFP, 1,
3018           [Define if your assembler supports DFP instructions.])])
3019     ;;
3020
3021   mips*-*-*)
3022     gcc_GAS_CHECK_FEATURE([explicit relocation support],
3023       gcc_cv_as_mips_explicit_relocs, [2,14,0],,
3024 [       lw $4,%gp_rel(foo)($4)],,
3025       [if test x$target_cpu_default = x
3026        then target_cpu_default=MASK_EXPLICIT_RELOCS
3027        else target_cpu_default="($target_cpu_default)|MASK_EXPLICIT_RELOCS"
3028        fi])
3029     gcc_GAS_CHECK_FEATURE([-mno-shared support],
3030       gcc_cv_as_mips_no_shared, [2,16,0], [-mno-shared], [nop],,
3031       [AC_DEFINE(HAVE_AS_NO_SHARED, 1,
3032                  [Define if the assembler understands -mno-shared.])])
3033     ;;
3034 esac
3035
3036 # Mips and HP-UX need the GNU assembler.
3037 # Linux on IA64 might be able to use the Intel assembler.
3038
3039 case "$target" in
3040   mips*-*-* | *-*-hpux* )
3041     if test x$gas_flag = xyes \
3042        || test x"$host" != x"$build" \
3043        || test ! -x "$gcc_cv_as" \
3044        || "$gcc_cv_as" -v < /dev/null 2>&1 | grep GNU > /dev/null; then
3045       :
3046     else
3047       echo "*** This configuration requires the GNU assembler" >&2
3048       exit 1
3049     fi
3050     ;;
3051 esac
3052
3053 # ??? Not all targets support dwarf2 debug_line, even within a version
3054 # of gas.  Moreover, we need to emit a valid instruction to trigger any
3055 # info to the output file.  So, as supported targets are added to gas 2.11,
3056 # add some instruction here to (also) show we expect this might work.
3057 # ??? Once 2.11 is released, probably need to add first known working
3058 # version to the per-target configury.
3059 case "$target" in
3060   i?86*-*-* | mips*-*-* | alpha*-*-* | powerpc*-*-* | sparc*-*-* | m68*-*-* \
3061   | x86_64*-*-* | hppa*-*-* | arm*-*-* | strongarm*-*-* | xscale*-*-* \
3062   | xstormy16*-*-* | cris-*-* | xtensa-*-* | bfin-*-* | score*-*-* | spu-*-*)
3063     insn="nop"
3064     ;;
3065   ia64*-*-* | s390*-*-*)
3066     insn="nop 0"
3067     ;;
3068   mmix-*-*)
3069     insn="swym 0"
3070     ;;
3071 esac
3072 if test x"$insn" != x; then
3073  conftest_s="\
3074         .file 1 \"conftest.s\"
3075         .loc 1 3 0
3076         $insn"
3077  gcc_GAS_CHECK_FEATURE([dwarf2 debug_line support],
3078   gcc_cv_as_dwarf2_debug_line,
3079   [elf,2,11,0],, [$conftest_s],
3080   [if test x$gcc_cv_objdump != x \
3081    && $gcc_cv_objdump -h conftest.o 2> /dev/null \
3082       | grep debug_line > /dev/null 2>&1; then
3083      gcc_cv_as_dwarf2_debug_line=yes
3084    fi])
3085
3086 # The .debug_line file table must be in the exact order that
3087 # we specified the files, since these indices are also used
3088 # by DW_AT_decl_file.  Approximate this test by testing if
3089 # the assembler bitches if the same index is assigned twice.
3090  gcc_GAS_CHECK_FEATURE([buggy dwarf2 .file directive],
3091   gcc_cv_as_dwarf2_file_buggy,,,
3092 [       .file 1 "foo.s"
3093         .file 1 "bar.s"])
3094
3095  if test $gcc_cv_as_dwarf2_debug_line = yes \
3096  && test $gcc_cv_as_dwarf2_file_buggy = no; then
3097         AC_DEFINE(HAVE_AS_DWARF2_DEBUG_LINE, 1,
3098   [Define if your assembler supports dwarf2 .file/.loc directives,
3099    and preserves file table indices exactly as given.])
3100  fi
3101
3102  gcc_GAS_CHECK_FEATURE([--gdwarf2 option],
3103   gcc_cv_as_gdwarf2_flag,
3104   [elf,2,11,0], [--gdwarf2], [$insn],,
3105   [AC_DEFINE(HAVE_AS_GDWARF2_DEBUG_FLAG, 1,
3106 [Define if your assembler supports the --gdwarf2 option.])])
3107
3108  gcc_GAS_CHECK_FEATURE([--gstabs option],
3109   gcc_cv_as_gstabs_flag,
3110   [elf,2,11,0], [--gstabs], [$insn],
3111   [# The native Solaris 9/Intel assembler doesn't understand --gstabs
3112    # and warns about it, but still exits successfully.  So check for
3113    # this.
3114    if AC_TRY_COMMAND([$gcc_cv_as --gstabs -o conftest.o conftest.s 2>&1 | grep -i warning > /dev/null])
3115    then :
3116    else gcc_cv_as_gstabs_flag=yes
3117    fi],
3118   [AC_DEFINE(HAVE_AS_GSTABS_DEBUG_FLAG, 1,
3119 [Define if your assembler supports the --gstabs option.])])
3120 fi
3121
3122 AC_CACHE_CHECK([assembler for tolerance to line number 0],
3123  [gcc_cv_as_line_zero],
3124  [gcc_cv_as_line_zero=no
3125   if test $in_tree_gas = yes; then
3126     gcc_GAS_VERSION_GTE_IFELSE(2, 16, 91, [gcc_cv_as_line_zero=yes])
3127   elif test "x$gcc_cv_as" != x; then
3128     { echo '# 1 "test.s" 1'; echo '# 0 "" 2'; } > conftest.s
3129     if AC_TRY_COMMAND([$gcc_cv_as -o conftest.o conftest.s >&AS_MESSAGE_LOG_FD 2>conftest.out]) &&
3130        test "x`cat conftest.out`" = x
3131     then
3132       gcc_cv_as_line_zero=yes
3133     else
3134       echo "configure: failed program was" >&AS_MESSAGE_LOG_FD
3135       cat conftest.s >&AS_MESSAGE_LOG_FD
3136       echo "configure: error output was" >&AS_MESSAGE_LOG_FD
3137       cat conftest.out >&AS_MESSAGE_LOG_FD
3138     fi
3139     rm -f conftest.o conftest.s conftest.out
3140   fi])
3141 if test "x$gcc_cv_as_line_zero" = xyes; then
3142   AC_DEFINE([HAVE_AS_LINE_ZERO], 1,
3143 [Define if the assembler won't complain about a line such as # 0 "" 2.])
3144 fi
3145
3146 AC_MSG_CHECKING(linker read-only and read-write section mixing)
3147 gcc_cv_ld_ro_rw_mix=unknown
3148 if test $in_tree_ld = yes ; then
3149   if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 10 -o "$gcc_cv_gld_major_version" -gt 2 \
3150      && test $in_tree_ld_is_elf = yes; then
3151     gcc_cv_ld_ro_rw_mix=read-write
3152   fi
3153 elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x -a x$gcc_cv_objdump != x ; then
3154   echo '.section myfoosect, "a"' > conftest1.s
3155   echo '.section myfoosect, "aw"' > conftest2.s
3156   echo '.byte 1' >> conftest2.s
3157   echo '.section myfoosect, "a"' > conftest3.s
3158   echo '.byte 0' >> conftest3.s
3159   if $gcc_cv_as -o conftest1.o conftest1.s > /dev/null 2>&1 \
3160      && $gcc_cv_as -o conftest2.o conftest2.s > /dev/null 2>&1 \
3161      && $gcc_cv_as -o conftest3.o conftest3.s > /dev/null 2>&1 \
3162      && $gcc_cv_ld -shared -o conftest1.so conftest1.o \
3163         conftest2.o conftest3.o > /dev/null 2>&1; then
3164     gcc_cv_ld_ro_rw_mix=`$gcc_cv_objdump -h conftest1.so \
3165                          | sed -e '/myfoosect/!d' -e N`
3166     if echo "$gcc_cv_ld_ro_rw_mix" | grep CONTENTS > /dev/null; then
3167       if echo "$gcc_cv_ld_ro_rw_mix" | grep READONLY > /dev/null; then
3168         gcc_cv_ld_ro_rw_mix=read-only
3169       else
3170         gcc_cv_ld_ro_rw_mix=read-write
3171       fi
3172     fi
3173   fi
3174 changequote(,)dnl
3175   rm -f conftest.* conftest[123].*
3176 changequote([,])dnl
3177 fi
3178 if test x$gcc_cv_ld_ro_rw_mix = xread-write; then
3179         AC_DEFINE(HAVE_LD_RO_RW_SECTION_MIXING, 1,
3180   [Define if your linker links a mix of read-only
3181    and read-write sections into a read-write section.])
3182 fi
3183 AC_MSG_RESULT($gcc_cv_ld_ro_rw_mix)
3184
3185 AC_MSG_CHECKING(linker PT_GNU_EH_FRAME support)
3186 gcc_cv_ld_eh_frame_hdr=no
3187 if test $in_tree_ld = yes ; then
3188   if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 12 -o "$gcc_cv_gld_major_version" -gt 2 \
3189      && test $in_tree_ld_is_elf = yes; then
3190     gcc_cv_ld_eh_frame_hdr=yes
3191   fi
3192 elif test x$gcc_cv_ld != x; then
3193         # Check if linker supports --eh-frame-hdr option
3194         if $gcc_cv_ld --help 2>/dev/null | grep eh-frame-hdr > /dev/null; then
3195                 gcc_cv_ld_eh_frame_hdr=yes
3196         fi
3197 fi
3198 GCC_TARGET_TEMPLATE([HAVE_LD_EH_FRAME_HDR])
3199 if test x"$gcc_cv_ld_eh_frame_hdr" = xyes; then
3200         AC_DEFINE(HAVE_LD_EH_FRAME_HDR, 1,
3201 [Define if your linker supports --eh-frame-hdr option.])
3202 fi
3203 AC_MSG_RESULT($gcc_cv_ld_eh_frame_hdr)
3204
3205 AC_MSG_CHECKING(linker position independent executable support)
3206 gcc_cv_ld_pie=no
3207 if test $in_tree_ld = yes ; then
3208   if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 15 -o "$gcc_cv_gld_major_version" -gt 2 \
3209      && test $in_tree_ld_is_elf = yes; then
3210     gcc_cv_ld_pie=yes
3211   fi
3212 elif test x$gcc_cv_ld != x; then
3213         # Check if linker supports -pie option
3214         if $gcc_cv_ld --help 2>/dev/null | grep -- -pie > /dev/null; then
3215                 gcc_cv_ld_pie=yes
3216         fi
3217 fi
3218 if test x"$gcc_cv_ld_pie" = xyes; then
3219         AC_DEFINE(HAVE_LD_PIE, 1,
3220 [Define if your linker supports -pie option.])
3221 fi
3222 AC_MSG_RESULT($gcc_cv_ld_pie)
3223
3224 AC_MSG_CHECKING(linker EH-compatible garbage collection of sections)
3225 gcc_cv_ld_eh_gc_sections=no
3226 if test $in_tree_ld = yes ; then
3227   if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 17 -o "$gcc_cv_gld_major_version" -gt 2 \
3228      && test $in_tree_ld_is_elf = yes; then
3229     gcc_cv_ld_eh_gc_sections=yes
3230   fi
3231 elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x -a x$gcc_cv_objdump != x ; then
3232   cat > conftest.s <<EOF
3233         .section        .text
3234 .globl _start
3235         .type _start, @function
3236 _start:
3237         .long foo
3238         .size _start, .-_start
3239         .section        .text.foo,"ax",@progbits
3240         .type foo, @function
3241 foo:
3242         .long 0
3243         .size foo, .-foo
3244         .section        .gcc_except_table.foo,"a",@progbits
3245 .L0:
3246         .long 0
3247         .section        .eh_frame,"a",@progbits
3248         .long .L0
3249 EOF
3250   if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
3251     if $gcc_cv_ld -o conftest conftest.o --entry=_start --gc-sections 2>&1 \
3252          | grep "gc-sections option ignored" > /dev/null; then
3253       gcc_cv_ld_eh_gc_sections=no
3254     elif $gcc_cv_objdump -h conftest | grep gcc_except_table > /dev/null; then
3255       gcc_cv_ld_eh_gc_sections=yes
3256       # If no COMDAT groups, the compiler will emit .gnu.linkonce.t. sections.
3257       if test x$gcc_cv_as_comdat_group != xyes; then
3258         gcc_cv_ld_eh_gc_sections=no
3259         cat > conftest.s <<EOF
3260         .section        .text
3261 .globl _start
3262         .type _start, @function
3263 _start:
3264         .long foo
3265         .size _start, .-_start
3266         .section        .gnu.linkonce.t.foo,"ax",@progbits
3267         .type foo, @function
3268 foo:
3269         .long 0
3270         .size foo, .-foo
3271         .section        .gcc_except_table.foo,"a",@progbits
3272 .L0:
3273         .long 0
3274         .section        .eh_frame,"a",@progbits
3275         .long .L0
3276 EOF
3277         if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
3278           if $gcc_cv_ld -o conftest conftest.o --entry=_start --gc-sections 2>&1 \
3279                | grep "gc-sections option ignored" > /dev/null; then
3280             gcc_cv_ld_eh_gc_sections=no
3281           elif $gcc_cv_objdump -h conftest | grep gcc_except_table > /dev/null; then
3282             gcc_cv_ld_eh_gc_sections=yes
3283           fi
3284         fi
3285       fi
3286     fi
3287   fi
3288   rm -f conftest.s conftest.o conftest
3289 fi
3290 case "$target" in
3291   hppa*-*-linux*)
3292     # ??? This apparently exposes a binutils bug with PC-relative relocations.
3293     gcc_cv_ld_eh_gc_sections=no
3294     ;;
3295 esac
3296 if test x$gcc_cv_ld_eh_gc_sections = xyes; then
3297         AC_DEFINE(HAVE_LD_EH_GC_SECTIONS, 1,
3298   [Define if your linker supports garbage collection of
3299    sections in presence of EH frames.])
3300 fi
3301 AC_MSG_RESULT($gcc_cv_ld_eh_gc_sections)
3302
3303 # --------
3304 # UNSORTED
3305 # --------
3306
3307 AC_CACHE_CHECK(linker --as-needed support,
3308 gcc_cv_ld_as_needed,
3309 [gcc_cv_ld_as_needed=no
3310 if test $in_tree_ld = yes ; then
3311   if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 \
3312      && test $in_tree_ld_is_elf = yes; then
3313     gcc_cv_ld_as_needed=yes
3314   fi
3315 elif test x$gcc_cv_ld != x; then
3316         # Check if linker supports --as-needed and --no-as-needed options
3317         if $gcc_cv_ld --help 2>/dev/null | grep as-needed > /dev/null; then
3318                 gcc_cv_ld_as_needed=yes
3319         fi
3320 fi
3321 ])
3322 if test x"$gcc_cv_ld_as_needed" = xyes; then
3323         AC_DEFINE(HAVE_LD_AS_NEEDED, 1,
3324 [Define if your linker supports --as-needed and --no-as-needed options.])
3325 fi
3326
3327 case "$target:$tm_file" in
3328   powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*)
3329     AC_CACHE_CHECK(linker support for omitting dot symbols,
3330     gcc_cv_ld_no_dot_syms,
3331     [gcc_cv_ld_no_dot_syms=no
3332     if test $in_tree_ld = yes ; then
3333       if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2; then
3334         gcc_cv_ld_no_dot_syms=yes
3335       fi
3336     elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x ; then
3337       cat > conftest1.s <<EOF
3338         .text
3339         bl .foo
3340 EOF
3341       cat > conftest2.s <<EOF
3342         .section ".opd","aw"
3343         .align 3
3344         .globl foo
3345         .type foo,@function
3346 foo:
3347         .quad .LEfoo,.TOC.@tocbase,0
3348         .text
3349 .LEfoo:
3350         blr
3351         .size foo,.-.LEfoo
3352 EOF
3353       if $gcc_cv_as -a64 -o conftest1.o conftest1.s > /dev/null 2>&1 \
3354          && $gcc_cv_as -a64 -o conftest2.o conftest2.s > /dev/null 2>&1 \
3355          && $gcc_cv_ld -melf64ppc -o conftest conftest1.o conftest2.o > /dev/null 2>&1; then
3356         gcc_cv_ld_no_dot_syms=yes
3357       fi
3358       rm -f conftest conftest1.o conftest2.o conftest1.s conftest2.s
3359     fi
3360     ])
3361     if test x"$gcc_cv_ld_no_dot_syms" = xyes; then
3362       AC_DEFINE(HAVE_LD_NO_DOT_SYMS, 1,
3363     [Define if your PowerPC64 linker only needs function descriptor syms.])
3364     fi
3365     ;;
3366 esac
3367
3368 AC_CACHE_CHECK(linker --sysroot support,
3369   gcc_cv_ld_sysroot,
3370   [gcc_cv_ld_sysroot=no
3371   if test $in_tree_ld = yes ; then
3372       if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 ; then
3373         gcc_cv_ld_sysroot=yes
3374       fi
3375   elif test x$gcc_cv_ld != x; then 
3376     if $gcc_cv_ld --help 2>/dev/null | grep sysroot > /dev/null; then
3377       gcc_cv_ld_sysroot=yes
3378     fi
3379   fi])
3380 if test x"$gcc_cv_ld_sysroot" = xyes; then
3381   AC_DEFINE(HAVE_LD_SYSROOT, 1,
3382   [Define if your linker supports --sysroot.])
3383 fi        
3384
3385 if test x$with_sysroot = x && test x$host = x$target \
3386    && test "$prefix" != "/usr" && test "x$prefix" != "x$local_prefix" \
3387    && test "$prefix" != "NONE"; then
3388   AC_DEFINE_UNQUOTED(PREFIX_INCLUDE_DIR, "$prefix/include",
3389 [Define to PREFIX/include if cpp should also search that directory.])
3390 fi
3391
3392 # Test for stack protector support in target C library.
3393 AC_CACHE_CHECK(__stack_chk_fail in target C library,
3394       gcc_cv_libc_provides_ssp,
3395       [gcc_cv_libc_provides_ssp=no
3396     case "$target" in
3397        *-*-linux*)
3398       if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then
3399         if test "x$with_sysroot" = x; then
3400           glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-include"
3401         elif test "x$with_build_sysroot" != "x"; then
3402           glibc_header_dir="${with_build_sysroot}/usr/include"
3403         elif test "x$with_sysroot" = xyes; then
3404           glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-root/usr/include"
3405         else
3406           glibc_header_dir="${with_sysroot}/usr/include"
3407         fi
3408       else
3409         glibc_header_dir=/usr/include
3410       fi
3411       # glibc 2.4 and later provides __stack_chk_fail and
3412       # either __stack_chk_guard, or TLS access to stack guard canary.
3413       if test -f $glibc_header_dir/features.h \
3414          && $EGREP '^@<:@       @:>@*#[         ]*define[       ]+__GNU_LIBRARY__[      ]+([1-9][0-9]|[6-9])' \
3415             $glibc_header_dir/features.h > /dev/null; then
3416         if $EGREP '^@<:@        @:>@*#[         ]*define[       ]+__GLIBC__[    ]+([1-9][0-9]|[3-9])' \
3417            $glibc_header_dir/features.h > /dev/null; then
3418           gcc_cv_libc_provides_ssp=yes
3419         elif $EGREP '^@<:@      @:>@*#[         ]*define[       ]+__GLIBC__[    ]+2' \
3420              $glibc_header_dir/features.h > /dev/null \
3421              && $EGREP '^@<:@   @:>@*#[         ]*define[       ]+__GLIBC_MINOR__[      ]+([1-9][0-9]|[4-9])' \
3422              $glibc_header_dir/features.h > /dev/null; then
3423           gcc_cv_libc_provides_ssp=yes
3424         fi
3425         fi
3426         ;;
3427        *-*-darwin*)
3428          AC_CHECK_FUNC(__stack_chk_fail,[gcc_cv_libc_provides_ssp=yes],
3429            [echo "no __stack_chk_fail on this target"])
3430         ;;
3431   *) gcc_cv_libc_provides_ssp=no ;;
3432     esac])
3433
3434 if test x$gcc_cv_libc_provides_ssp = xyes; then
3435   AC_DEFINE(TARGET_LIBC_PROVIDES_SSP, 1,
3436             [Define if your target C library provides stack protector support])
3437 fi
3438
3439 # Check if TFmode long double should be used by default or not.
3440 # Some glibc targets used DFmode long double, but with glibc 2.4
3441 # and later they can use TFmode.
3442 case "$target" in
3443   powerpc*-*-linux* | \
3444   powerpc*-*-gnu* | \
3445   sparc*-*-linux* | \
3446   s390*-*-linux* | \
3447   alpha*-*-linux*)
3448     AC_ARG_WITH(long-double-128,
3449 [  --with-long-double-128  Use 128-bit long double by default.],
3450       gcc_cv_target_ldbl128="$with_long_double_128",
3451       [gcc_cv_target_ldbl128=no
3452       if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then
3453         if test "x$with_sysroot" = x; then
3454           glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-include"
3455         elif test "x$with_build_sysroot" != "x"; then
3456           glibc_header_dir="${with_build_sysroot}/usr/include"
3457         elif test "x$with_sysroot" = xyes; then
3458           glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-root/usr/include"
3459         else
3460           glibc_header_dir="${with_sysroot}/usr/include"
3461         fi
3462       else
3463         glibc_header_dir=/usr/include
3464       fi
3465 changequote(,)dnl
3466       grep '^[  ]*#[    ]*define[       ][      ]*__LONG_DOUBLE_MATH_OPTIONAL' \
3467         $glibc_header_dir/bits/wordsize.h > /dev/null 2>&1 \
3468       && gcc_cv_target_ldbl128=yes
3469 changequote([,])dnl
3470       ])
3471     ;;
3472 esac
3473 if test x$gcc_cv_target_ldbl128 = xyes; then
3474   AC_DEFINE(TARGET_DEFAULT_LONG_DOUBLE_128, 1,
3475             [Define if TFmode long double should be the default])
3476 fi
3477
3478 # Find out what GC implementation we want, or may, use.
3479 AC_ARG_WITH(gc,
3480 [  --with-gc={page,zone}   choose the garbage collection mechanism to use
3481                           with the compiler],
3482 [case "$withval" in
3483   page)
3484     GGC=ggc-$withval
3485     ;;
3486   zone)
3487     GGC=ggc-$withval
3488     AC_DEFINE(GGC_ZONE, 1, [Define if the zone collector is in use])
3489     ;;
3490   *)
3491     AC_MSG_ERROR([$withval is an invalid option to --with-gc])
3492     ;;
3493 esac],
3494 [GGC=ggc-page])
3495 AC_SUBST(GGC)
3496 echo "Using $GGC for garbage collection."
3497
3498 # Use the system's zlib library.
3499 zlibdir=-L../zlib
3500 zlibinc="-I\$(srcdir)/../zlib"
3501 AC_ARG_WITH(system-zlib,
3502 [  --with-system-zlib      use installed libz],
3503 zlibdir=
3504 zlibinc=
3505 )
3506 AC_SUBST(zlibdir)
3507 AC_SUBST(zlibinc)
3508
3509 dnl Very limited version of automake's enable-maintainer-mode
3510
3511 AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
3512   dnl maintainer-mode is disabled by default
3513   AC_ARG_ENABLE(maintainer-mode,
3514 [  --enable-maintainer-mode
3515                           enable make rules and dependencies not useful
3516                           (and sometimes confusing) to the casual installer],
3517       maintainer_mode=$enableval,
3518       maintainer_mode=no)
3519
3520 AC_MSG_RESULT($maintainer_mode)
3521
3522 if test "$maintainer_mode" = "yes"; then
3523   MAINT=''
3524 else
3525   MAINT='#'
3526 fi
3527 AC_SUBST(MAINT)dnl
3528
3529 # --------------
3530 # Language hooks
3531 # --------------
3532
3533 # Make empty files to contain the specs and options for each language.
3534 # Then add #include lines to for a compiler that has specs and/or options.
3535
3536 subdirs=
3537 lang_opt_files=
3538 lang_specs_files=
3539 lang_tree_files=
3540 # These (without "all_") are set in each config-lang.in.
3541 # `language' must be a single word so is spelled singularly.
3542 all_languages=
3543 all_compilers=
3544 all_outputs='Makefile gccbug libada-mk'
3545 # List of language makefile fragments.
3546 all_lang_makefrags=
3547 # List of language subdirectory makefiles.  Deprecated.
3548 all_lang_makefiles=
3549 # Additional files for gengtype
3550 all_gtfiles="$target_gtfiles"
3551
3552 # These are the languages that are set in --enable-languages,
3553 # and are available in the GCC tree.
3554 all_selected_languages=
3555
3556 # Add the language fragments.
3557 # Languages are added via two mechanisms.  Some information must be
3558 # recorded in makefile variables, these are defined in config-lang.in.
3559 # We accumulate them and plug them into the main Makefile.
3560 # The other mechanism is a set of hooks for each of the main targets
3561 # like `clean', `install', etc.
3562
3563 language_hooks="Make-hooks"
3564
3565 for lang in ${srcdir}/*/config-lang.in
3566 do
3567 changequote(,)dnl
3568         test "$lang" = "${srcdir}/*/config-lang.in" && continue
3569
3570         lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^   ]*\).*$,\1,p' $lang`
3571         if test "x$lang_alias" = x
3572         then
3573               echo "$lang doesn't set \$language." 1>&2
3574               exit 1
3575         fi
3576         subdir="`echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`"
3577         subdirs="$subdirs $subdir"
3578         case ",$enable_languages," in
3579         *,$lang_alias,*)
3580             all_selected_languages="$all_selected_languages $lang_alias"
3581             if test -f $srcdir/$subdir/lang-specs.h; then
3582                 lang_specs_files="$lang_specs_files $srcdir/$subdir/lang-specs.h"
3583             fi
3584             ;;
3585         esac
3586 changequote([,])dnl
3587
3588         language=
3589         boot_language=
3590         compilers=
3591         outputs=
3592         gtfiles=
3593         subdir_requires=
3594         . ${srcdir}/$subdir/config-lang.in
3595         if test "x$language" = x
3596         then
3597                 echo "${srcdir}/$subdir/config-lang.in doesn't set \$language." 1>&2
3598                 exit 1
3599         fi
3600
3601         ok=:
3602         case ",$enable_languages," in
3603                 *,$lang_alias,*) ;;
3604                 *)
3605                         for i in $subdir_requires; do
3606                                 test -f "${srcdir}/$i/config-lang.in" && continue
3607                                 ok=false
3608                                 break
3609                         done
3610                 ;;
3611         esac
3612         $ok || continue
3613
3614         all_lang_makefrags="$all_lang_makefrags \$(srcdir)/$subdir/Make-lang.in"
3615         if test -f $srcdir/$subdir/lang.opt; then
3616             lang_opt_files="$lang_opt_files $srcdir/$subdir/lang.opt"
3617         fi
3618         if test -f $srcdir/$subdir/$subdir-tree.def; then
3619             lang_tree_files="$lang_tree_files $srcdir/$subdir/$subdir-tree.def"
3620         fi
3621         if test -f ${srcdir}/$subdir/Makefile.in
3622                 then all_lang_makefiles="$subdir/Makefile"
3623         fi
3624         all_languages="$all_languages $language"
3625         all_compilers="$all_compilers $compilers"
3626         all_outputs="$all_outputs $outputs"
3627         all_gtfiles="$all_gtfiles [[$subdir]] $gtfiles"
3628 done
3629
3630 # Pick up gtfiles for c
3631 gtfiles=
3632 . ${srcdir}/c-config-lang.in
3633 all_gtfiles="$all_gtfiles [[c]] $gtfiles"
3634
3635 check_languages=
3636 for language in $all_selected_languages
3637 do
3638         check_languages="$check_languages check-$language"
3639 done
3640
3641 # We link each language in with a set of hooks, reached indirectly via
3642 # lang.${target}.  Only do so for selected languages.
3643
3644 rm -f Make-hooks
3645 touch Make-hooks
3646 target_list="all.cross start.encap rest.encap tags \
3647         install-common install-man install-info install-pdf dvi pdf \
3648         html uninstall info man srcextra srcman srcinfo \
3649         mostlyclean clean distclean maintainer-clean"
3650
3651 for t in $target_list
3652 do
3653         x=
3654         for lang in $all_selected_languages
3655         do
3656                 x="$x $lang.$t"
3657         done
3658         echo "lang.$t: $x" >> Make-hooks
3659 done
3660
3661 # --------
3662 # UNSORTED
3663 # --------
3664
3665 # Create .gdbinit.
3666
3667 echo "dir ." > .gdbinit
3668 echo "dir ${srcdir}" >> .gdbinit
3669 if test x$gdb_needs_out_file_path = xyes
3670 then
3671         echo "dir ${srcdir}/config/"`dirname ${out_file}` >> .gdbinit
3672 fi
3673 if test "x$subdirs" != x; then
3674         for s in $subdirs
3675         do
3676                 echo "dir ${srcdir}/$s" >> .gdbinit
3677         done
3678 fi
3679 echo "source ${srcdir}/gdbinit.in" >> .gdbinit
3680
3681 # If $(exec_prefix) exists and is not the same as $(prefix), then compute an
3682 # absolute path for gcc_tooldir based on inserting the number of up-directory
3683 # movements required to get from $(exec_prefix) to $(prefix) into the basic
3684 # $(libsubdir)/@(unlibsubdir) based path.
3685 # Don't set gcc_tooldir to tooldir since that's only passed in by the toplevel
3686 # make and thus we'd get different behavior depending on where we built the
3687 # sources.
3688 if test x$exec_prefix = xNONE -o x$exec_prefix = x$prefix; then
3689     gcc_tooldir='$(libsubdir)/$(unlibsubdir)/../$(target_noncanonical)'
3690 else
3691 changequote(<<, >>)dnl
3692 # An explanation of the sed strings:
3693 #  -e 's|^\$(prefix)||'   matches and eliminates 'prefix' from 'exec_prefix'
3694 #  -e 's|/$||'            match a trailing forward slash and eliminates it
3695 #  -e 's|^[^/]|/|'        forces the string to start with a forward slash (*)
3696 #  -e 's|/[^/]*|../|g'    replaces each occurrence of /<directory> with ../
3697 #
3698 # (*) Note this pattern overwrites the first character of the string
3699 # with a forward slash if one is not already present.  This is not a
3700 # problem because the exact names of the sub-directories concerned is
3701 # unimportant, just the number of them matters.
3702 #
3703 # The practical upshot of these patterns is like this:
3704 #
3705 #  prefix     exec_prefix        result
3706 #  ------     -----------        ------
3707 #   /foo        /foo/bar          ../
3708 #   /foo/       /foo/bar          ../
3709 #   /foo        /foo/bar/         ../
3710 #   /foo/       /foo/bar/         ../
3711 #   /foo        /foo/bar/ugg      ../../
3712 #
3713     dollar='$$'
3714     gcc_tooldir="\$(libsubdir)/\$(unlibsubdir)/\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/\$(dollar)||' -e 's|^[^/]|/|' -e 's|/[^/]*|../|g'\`\$(target_noncanonical)"
3715 changequote([, ])dnl
3716 fi
3717 AC_SUBST(gcc_tooldir)
3718 AC_SUBST(dollar)
3719
3720 # Find a directory in which to install a shared libgcc.
3721
3722 AC_ARG_ENABLE(version-specific-runtime-libs,
3723 [  --enable-version-specific-runtime-libs
3724                           specify that runtime libraries should be
3725                           installed in a compiler-specific directory])
3726
3727 AC_ARG_WITH(slibdir,
3728 [  --with-slibdir=DIR      shared libraries in DIR [[LIBDIR]]],
3729 slibdir="$with_slibdir",
3730 if test "${enable_version_specific_runtime_libs+set}" = set; then
3731   slibdir='$(libsubdir)'
3732 elif test "$host" != "$target"; then
3733   slibdir='$(build_tooldir)/lib'
3734 else
3735   slibdir='$(libdir)'
3736 fi)
3737 AC_SUBST(slibdir)
3738
3739 objdir=`${PWDCMD-pwd}`
3740 AC_SUBST(objdir)
3741
3742 AC_ARG_WITH(datarootdir,
3743 [  --with-datarootdir=DIR  Use DIR as the data root [[PREFIX/share]]],
3744 datarootdir="\${prefix}/$with_datarootdir",
3745 datarootdir='$(prefix)/share')
3746 AC_SUBST(datarootdir)
3747
3748 AC_ARG_WITH(docdir,
3749 [  --with-docdir=DIR       Install documentation in DIR [[DATAROOTDIR]]],
3750 docdir="\${prefix}/$with_docdir",
3751 docdir='$(datarootdir)')
3752 AC_SUBST(docdir)
3753
3754 AC_ARG_WITH(htmldir,
3755 [  --with-htmldir=DIR      html documentation in in DIR [[DOCDIR]]],
3756 htmldir="\${prefix}/$with_htmldir",
3757 htmldir='$(docdir)')
3758 AC_SUBST(htmldir)
3759
3760 # Substitute configuration variables
3761 AC_SUBST(subdirs)
3762 AC_SUBST(srcdir)
3763 AC_SUBST(all_compilers)
3764 AC_SUBST(all_gtfiles)
3765 AC_SUBST(all_lang_makefrags)
3766 AC_SUBST(all_lang_makefiles)
3767 AC_SUBST(all_languages)
3768 AC_SUBST(all_selected_languages)
3769 AC_SUBST(build_exeext)
3770 AC_SUBST(build_install_headers_dir)
3771 AC_SUBST(build_xm_file_list)
3772 AC_SUBST(build_xm_include_list)
3773 AC_SUBST(build_xm_defines)
3774 AC_SUBST(check_languages)
3775 AC_SUBST(cpp_install_dir)
3776 AC_SUBST(xmake_file)
3777 AC_SUBST(tmake_file)
3778 AC_SUBST(extra_gcc_objs)
3779 AC_SUBST(extra_headers_list)
3780 AC_SUBST(extra_objs)
3781 AC_SUBST(extra_parts)
3782 AC_SUBST(extra_passes)
3783 AC_SUBST(extra_programs)
3784 AC_SUBST(float_h_file)
3785 AC_SUBST(gcc_config_arguments)
3786 AC_SUBST(gcc_gxx_include_dir)
3787 AC_SUBST(host_exeext)
3788 AC_SUBST(host_xm_file_list)
3789 AC_SUBST(host_xm_include_list)
3790 AC_SUBST(host_xm_defines)
3791 AC_SUBST(out_host_hook_obj)
3792 AC_SUBST(install)
3793 AC_SUBST(lang_opt_files)
3794 AC_SUBST(lang_specs_files)
3795 AC_SUBST(lang_tree_files)
3796 AC_SUBST(local_prefix)
3797 AC_SUBST(md_file)
3798 AC_SUBST(objc_boehm_gc)
3799 AC_SUBST(out_file)
3800 AC_SUBST(out_object_file)
3801 AC_SUBST(thread_file)
3802 AC_SUBST(tm_file_list)
3803 AC_SUBST(tm_include_list)
3804 AC_SUBST(tm_defines)
3805 AC_SUBST(tm_p_file_list)
3806 AC_SUBST(tm_p_include_list)
3807 AC_SUBST(xm_file_list)
3808 AC_SUBST(xm_include_list)
3809 AC_SUBST(xm_defines)
3810 AC_SUBST(c_target_objs)
3811 AC_SUBST(cxx_target_objs)
3812 AC_SUBST(target_cpu_default)
3813
3814 AC_SUBST_FILE(language_hooks)
3815
3816 # Echo link setup.
3817 if test x${build} = x${host} ; then
3818   if test x${host} = x${target} ; then
3819     echo "Links are now set up to build a native compiler for ${target}." 1>&2
3820   else
3821     echo "Links are now set up to build a cross-compiler" 1>&2
3822     echo " from ${host} to ${target}." 1>&2
3823   fi
3824 else
3825   if test x${host} = x${target} ; then
3826     echo "Links are now set up to build (on ${build}) a native compiler" 1>&2
3827     echo " for ${target}." 1>&2
3828   else
3829     echo "Links are now set up to build (on ${build}) a cross-compiler" 1>&2
3830     echo " from ${host} to ${target}." 1>&2
3831   fi
3832 fi
3833
3834 AC_ARG_VAR(GMPLIBS,[How to link GMP])
3835 AC_ARG_VAR(GMPINC,[How to find GMP include files])
3836
3837 # Configure the subdirectories
3838 # AC_CONFIG_SUBDIRS($subdirs)
3839
3840 # Create the Makefile
3841 # and configure language subdirectories
3842 AC_CONFIG_FILES($all_outputs)
3843
3844 AC_CONFIG_COMMANDS([default],
3845 [
3846 case ${CONFIG_HEADERS} in
3847   *auto-host.h:config.in*)
3848   echo > cstamp-h ;;
3849 esac
3850 # Make sure all the subdirs exist.
3851 for d in $subdirs doc build
3852 do
3853     test -d $d || mkdir $d
3854 done
3855 ], 
3856 [subdirs='$subdirs'])
3857 AC_OUTPUT