OSDN Git Service

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