2 # Process this file with autoconf to generate a configuration script.
4 # Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
5 # Free Software Foundation, Inc.
7 #This file is part of GCC.
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
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
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
24 # --------------------------------
25 # Initialization and sanity checks
26 # --------------------------------
30 AC_CONFIG_SRCDIR(tree.c)
31 AC_CONFIG_HEADER(auto-host.h:config.in)
33 gcc_version=`cat $srcdir/BASE-VER`
35 # Determine the host, build, and target systems
40 # Determine the noncanonical target name, for directory use.
41 ACX_NONCANONICAL_TARGET
43 # Determine the target- and build-specific subdirectories
46 # Set program_transform_name
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
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)
59 case ${LIBRARY_PATH} in
60 [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
61 library_path_setting="contains current directory"
64 library_path_setting="ok"
68 AC_MSG_RESULT($library_path_setting)
69 if test "$library_path_setting" != "ok"; then
71 *** LIBRARY_PATH shouldn't contain the current directory when
72 *** building gcc. Please change the environment variable
73 *** and run configure again.])
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
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)
85 case ${GCC_EXEC_PREFIX} in
86 [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
87 gcc_exec_prefix_setting="contains current directory"
90 gcc_exec_prefix_setting="ok"
94 AC_MSG_RESULT($gcc_exec_prefix_setting)
95 if test "$gcc_exec_prefix_setting" != "ok"; then
97 *** GCC_EXEC_PREFIX shouldn't contain the current directory when
98 *** building gcc. Please change the environment variable
99 *** and run configure again.])
106 # Specify the 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) ;;
113 *) local_prefix=$with_local_prefix ;;
116 # Default local prefix if it is empty
117 if test x$local_prefix = x; then
118 local_prefix=/usr/local
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.
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) ;;
132 *) gcc_gxx_include_dir=$with_gxx_include_dir ;;
135 if test x${gcc_gxx_include_dir} = x; then
136 if test x${enable_version_specific_runtime_libs} = xyes; then
137 gcc_gxx_include_dir='${libsubdir}/include/c++'
139 libstdcxx_incdir='c++/$(version)'
140 changequote(<<, >>)dnl
141 gcc_gxx_include_dir="\$(libsubdir)/\$(unlibsubdir)/..\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/[^/]*|/..|g'\`/include/"${libstdcxx_incdir}
146 AC_ARG_WITH(cpp_install_dir,
147 [ --with-cpp-install-dir=DIR
148 install the user visible C preprocessor in DIR
149 (relative to PREFIX) as well as PREFIX/bin],
150 [if test x$withval = xyes; then
151 AC_MSG_ERROR([option --with-cpp-install-dir requires an argument])
152 elif test x$withval != xno; then
153 cpp_install_dir=$withval
156 # We would like to our source tree to be readonly. However when releases or
157 # pre-releases are generated, the flex/bison generated files as well as the
158 # various formats of manuals need to be included along with the rest of the
159 # sources. Therefore we have --enable-generated-files-in-srcdir to do
162 AC_MSG_CHECKING([whether to place generated files in the source directory])
163 dnl generated-files-in-srcdir is disabled by default
164 AC_ARG_ENABLE(generated-files-in-srcdir,
165 [ --enable-generated-files-in-srcdir
166 put copies of generated files in source dir
167 intended for creating source tarballs for users
168 without texinfo bison or flex.],
169 generated_files_in_srcdir=$enableval,
170 generated_files_in_srcdir=no)
172 AC_MSG_RESULT($generated_files_in_srcdir)
174 if test "$generated_files_in_srcdir" = "yes"; then
181 # -------------------
182 # Find default linker
183 # -------------------
187 [ --with-gnu-ld arrange to work with GNU ld.],
188 gnu_ld_flag="$with_gnu_ld",
191 # With pre-defined ld
193 [ --with-ld arrange to use the specified ld (full pathname)],
194 DEFAULT_LINKER="$with_ld")
195 if test x"${DEFAULT_LINKER+set}" = x"set"; then
196 if test ! -x "$DEFAULT_LINKER"; then
197 AC_MSG_ERROR([cannot execute: $DEFAULT_LINKER: check --with-ld or env. var. DEFAULT_LINKER])
198 elif $DEFAULT_LINKER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
201 AC_DEFINE_UNQUOTED(DEFAULT_LINKER,"$DEFAULT_LINKER",
202 [Define to enable the use of a default linker.])
205 AC_MSG_CHECKING([whether a default linker was specified])
206 if test x"${DEFAULT_LINKER+set}" = x"set"; then
207 if test x"$gnu_ld_flag" = x"no"; then
208 AC_MSG_RESULT([yes ($DEFAULT_LINKER)])
210 AC_MSG_RESULT([yes ($DEFAULT_LINKER - GNU ld)])
216 # With demangler in GNU ld
217 AC_ARG_WITH(demangler-in-ld,
218 [ --with-demangler-in-ld try to use demangler in GNU ld.],
219 demangler_in_ld="$with_demangler_in_ld",
222 # ----------------------
223 # Find default assembler
224 # ----------------------
228 [ --with-gnu-as arrange to work with GNU as],
229 gas_flag="$with_gnu_as",
233 [ --with-as arrange to use the specified as (full pathname)],
234 DEFAULT_ASSEMBLER="$with_as")
235 if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
236 if test ! -x "$DEFAULT_ASSEMBLER"; then
237 AC_MSG_ERROR([cannot execute: $DEFAULT_ASSEMBLER: check --with-as or env. var. DEFAULT_ASSEMBLER])
238 elif $DEFAULT_ASSEMBLER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
241 AC_DEFINE_UNQUOTED(DEFAULT_ASSEMBLER,"$DEFAULT_ASSEMBLER",
242 [Define to enable the use of a default assembler.])
245 AC_MSG_CHECKING([whether a default assembler was specified])
246 if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
247 if test x"$gas_flag" = x"no"; then
248 AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER)])
250 AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER - GNU as)])
260 # If a non-executable a.out is present (e.g. created by GNU as above even if
261 # invoked with -v only), the IRIX 6 native ld just overwrites the existing
262 # file, even when creating an executable, so an execution test fails.
263 # Remove possible default executable files to avoid this.
265 # FIXME: This really belongs into AC_PROG_CC and can be removed once
266 # Autoconf includes it.
267 rm -f a.out a.exe b.out
269 # Find the native compiler
272 # autoconf is lame and doesn't give us any substitution variable for this.
273 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
274 NO_MINUS_C_MINUS_O=yes
276 OUTPUT_OPTION='-o $@'
278 AC_SUBST(NO_MINUS_C_MINUS_O)
279 AC_SUBST(OUTPUT_OPTION)
281 # -------------------------
282 # Check C compiler features
283 # -------------------------
288 # sizeof(char) is 1 by definition.
289 AC_CHECK_SIZEOF(void *)
290 AC_CHECK_SIZEOF(short)
292 AC_CHECK_SIZEOF(long)
293 AC_CHECK_TYPES([long long], [AC_CHECK_SIZEOF(long long)])
294 AC_CHECK_TYPES([__int64], [AC_CHECK_SIZEOF(__int64)])
296 # ---------------------
297 # Warnings and checking
298 # ---------------------
300 # Check $CC warning features (if it's GCC).
301 # We want to use -pedantic, but we don't want warnings about
304 # So, we only use -pedantic if we can disable those warnings.
307 [whether ${CC} accepts -Wno-long-long],
308 [ac_cv_prog_cc_w_no_long_long],
309 [save_CFLAGS="$CFLAGS"
310 CFLAGS="-Wno-long-long"
311 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
312 [ac_cv_prog_cc_w_no_long_long=yes],
313 [ac_cv_prog_cc_w_no_long_long=no])
314 CFLAGS="$save_CFLAGS"
318 [whether ${CC} accepts -Wno-variadic-macros],
319 [ac_cv_prog_cc_w_no_variadic_macros],
320 [save_CFLAGS="$CFLAGS"
321 CFLAGS="-Wno-variadic-macros"
322 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
323 [ac_cv_prog_cc_w_no_variadic_macros=yes],
324 [ac_cv_prog_cc_w_no_variadic_macros=no])
325 CFLAGS="$save_CFLAGS"
329 if test $ac_cv_prog_cc_w_no_long_long = yes \
330 && test $ac_cv_prog_cc_w_no_variadic_macros = yes ; then
331 strict1_warn="-pedantic -Wno-long-long -Wno-variadic-macros"
334 # Add -Wold-style-definition if it's accepted
336 [whether ${CC} accepts -Wold-style-definition],
337 [ac_cv_prog_cc_w_old_style_definition],
338 [save_CFLAGS="$CFLAGS"
339 CFLAGS="-Wold-style-definition"
340 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
341 [ac_cv_prog_cc_w_old_style_definition=yes],
342 [ac_cv_prog_cc_w_old_style_definition=no])
343 CFLAGS="$save_CFLAGS"
345 if test $ac_cv_prog_cc_w_old_style_definition = yes ; then
346 strict1_warn="${strict1_warn} -Wold-style-definition"
349 # Add -Wmissing-format-attribute if it's accepted
351 [whether ${CC} accepts -Wmissing-format-attribute],
352 [ac_cv_prog_cc_w_missing_format_attribute],
353 [save_CFLAGS="$CFLAGS"
354 CFLAGS="-Wmissing-format-attribute"
355 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
356 [ac_cv_prog_cc_w_missing_format_attribute=yes],
357 [ac_cv_prog_cc_w_missing_format_attribute=no])
358 CFLAGS="$save_CFLAGS"
360 if test $ac_cv_prog_cc_w_missing_format_attribute = yes ; then
361 strict1_warn="${strict1_warn} -Wmissing-format-attribute"
364 # Enable -Werror, period.
365 AC_ARG_ENABLE(werror_always,
366 [ --enable-werror-always enable -Werror always], [],
367 [enable_werror_always=no])
368 if test x${enable_werror_always} = xyes ; then
369 strict1_warn="${strict1_warn} -Werror"
373 AC_SUBST(strict1_warn)
375 # If the native compiler is GCC, we can enable warnings even in stage1.
376 # That's useful for people building cross-compilers, or just running a
379 if test "x$GCC" = "xyes"; then
380 warn_cflags='$(GCC_WARN_CFLAGS)'
382 AC_SUBST(warn_cflags)
384 # Enable -Werror in bootstrap stage2 and later.
386 if test x"`cat $srcdir/DEV-PHASE`" != xexperimental; then
389 AC_ARG_ENABLE(werror,
390 [ --enable-werror enable -Werror in bootstrap stage2 and later], [],
391 [if test x$is_release = x ; then
392 # Default to "yes" on development branches.
395 # Default to "no" on release branches.
398 if test x$enable_werror = xyes ; then
403 # Enable expensive internal checks
404 AC_ARG_ENABLE(checking,
405 [ --enable-checking[=LIST]
406 enable expensive run-time checks. With LIST,
407 enable only specific categories of checks.
408 Categories are: yes,no,all,none,release.
409 Flags are: assert,fold,gc,gcac,misc,
410 rtlflag,rtl,runtime,tree,valgrind.],
411 [ac_checking_flags="${enableval}"],[
412 # Determine the default checks.
413 if test x$is_release = x ; then
414 ac_checking_flags=yes
416 ac_checking_flags=release
422 ac_gc_always_collect=
425 ac_runtime_checking=1
427 ac_valgrind_checking=
428 IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS,"
429 for check in $ac_checking_flags
432 # these set all the flags to specific states
433 yes) ac_assert_checking=1 ; ac_checking=1 ;
434 ac_fold_checking= ; ac_gc_checking=1 ;
435 ac_gc_always_collect= ; ac_rtl_checking= ;
436 ac_rtlflag_checking=1 ; ac_runtime_checking=1 ;
437 ac_tree_checking=1 ; ac_valgrind_checking= ;;
438 no|none) ac_assert_checking= ; ac_checking= ;
439 ac_fold_checking= ; ac_gc_checking= ;
440 ac_gc_always_collect= ; ac_rtl_checking= ;
441 ac_rtlflag_checking= ; ac_runtime_checking= ;
442 ac_tree_checking= ; ac_valgrind_checking= ;;
443 all) ac_assert_checking=1 ; ac_checking=1 ;
444 ac_fold_checking=1 ; ac_gc_checking=1 ;
445 ac_gc_always_collect=1 ; ac_rtl_checking=1 ;
446 ac_rtlflag_checking=1 ; ac_runtime_checking=1 ;
447 ac_tree_checking=1 ; ac_valgrind_checking= ;;
448 release) ac_assert_checking=1 ; ac_checking= ;
449 ac_fold_checking= ; ac_gc_checking= ;
450 ac_gc_always_collect= ; ac_rtl_checking= ;
451 ac_rtlflag_checking= ; ac_runtime_checking=1 ;
452 ac_tree_checking= ; ac_valgrind_checking= ;;
453 # these enable particular checks
454 assert) ac_assert_checking=1 ;;
455 fold) ac_fold_checking=1 ;;
456 gc) ac_gc_checking=1 ;;
457 gcac) ac_gc_always_collect=1 ;;
458 misc) ac_checking=1 ;;
459 rtl) ac_rtl_checking=1 ;;
460 rtlflag) ac_rtlflag_checking=1 ;;
461 runtime) ac_runtime_checking=1 ;;
462 tree) ac_tree_checking=1 ;;
463 valgrind) ac_valgrind_checking=1 ;;
464 *) AC_MSG_ERROR(unknown check category $check) ;;
470 if test x$ac_checking != x ; then
471 AC_DEFINE(ENABLE_CHECKING, 1,
472 [Define if you want more run-time sanity checks. This one gets a grab
473 bag of miscellaneous but relatively cheap checks.])
474 nocommon_flag=-fno-common
476 AC_SUBST(nocommon_flag)
477 if test x$ac_assert_checking != x ; then
478 AC_DEFINE(ENABLE_ASSERT_CHECKING, 1,
479 [Define if you want assertions enabled. This is a cheap check.])
481 GCC_TARGET_TEMPLATE(ENABLE_RUNTIME_CHECKING)
482 if test x$ac_runtime_checking != x ; then
483 AC_DEFINE(ENABLE_RUNTIME_CHECKING, 1,
484 [Define if you want runtime assertions enabled. This is a cheap check.])
486 if test x$ac_tree_checking != x ; then
487 AC_DEFINE(ENABLE_TREE_CHECKING, 1,
488 [Define if you want all operations on trees (the basic data
489 structure of the front ends) to be checked for dynamic type safety
490 at runtime. This is moderately expensive. The tree browser debugging
491 routines will also be enabled by this option.
493 TREEBROWSER=tree-browser.o
495 AC_SUBST(TREEBROWSER)
496 if test x$ac_rtl_checking != x ; then
497 AC_DEFINE(ENABLE_RTL_CHECKING, 1,
498 [Define if you want all operations on RTL (the basic data structure
499 of the optimizer and back end) to be checked for dynamic type safety
500 at runtime. This is quite expensive.])
502 if test x$ac_rtlflag_checking != x ; then
503 AC_DEFINE(ENABLE_RTL_FLAG_CHECKING, 1,
504 [Define if you want RTL flag accesses to be checked against the RTL
505 codes that are supported for each access macro. This is relatively
508 if test x$ac_gc_checking != x ; then
509 AC_DEFINE(ENABLE_GC_CHECKING, 1,
510 [Define if you want the garbage collector to do object poisoning and
511 other memory allocation checks. This is quite expensive.])
513 if test x$ac_gc_always_collect != x ; then
514 AC_DEFINE(ENABLE_GC_ALWAYS_COLLECT, 1,
515 [Define if you want the garbage collector to operate in maximally
516 paranoid mode, validating the entire heap and collecting garbage at
517 every opportunity. This is extremely expensive.])
519 if test x$ac_fold_checking != x ; then
520 AC_DEFINE(ENABLE_FOLD_CHECKING, 1,
521 [Define if you want fold checked that it never destructs its argument.
522 This is quite expensive.])
524 valgrind_path_defines=
527 dnl # This check AC_REQUIREs various stuff, so it *must not* be inside
528 dnl # an if statement. This was the source of very frustrating bugs
529 dnl # in converting to autoconf 2.5x!
530 AC_CHECK_HEADER(valgrind.h, have_valgrind_h=yes, have_valgrind_h=no)
532 if test x$ac_valgrind_checking != x ; then
533 # It is certainly possible that there's valgrind but no valgrind.h.
534 # GCC relies on making annotations so we must have both.
535 AC_MSG_CHECKING(for VALGRIND_DISCARD in <valgrind/memcheck.h>)
536 AC_PREPROC_IFELSE([AC_LANG_SOURCE(
537 [[#include <valgrind/memcheck.h>
538 #ifndef VALGRIND_DISCARD
539 #error VALGRIND_DISCARD not defined
541 [gcc_cv_header_valgrind_memcheck_h=yes],
542 [gcc_cv_header_valgrind_memcheck_h=no])
543 AC_MSG_RESULT($gcc_cv_header_valgrind_memcheck_h)
544 AC_MSG_CHECKING(for VALGRIND_DISCARD in <memcheck.h>)
545 AC_PREPROC_IFELSE([AC_LANG_SOURCE(
546 [[#include <memcheck.h>
547 #ifndef VALGRIND_DISCARD
548 #error VALGRIND_DISCARD not defined
550 [gcc_cv_header_memcheck_h=yes],
551 [gcc_cv_header_memcheck_h=no])
552 AC_MSG_RESULT($gcc_cv_header_memcheck_h)
553 AM_PATH_PROG_WITH_TEST(valgrind_path, valgrind,
554 [$ac_dir/$ac_word --version | grep valgrind- >/dev/null 2>&1])
555 if test "x$valgrind_path" = "x" \
556 || (test $have_valgrind_h = no \
557 && test $gcc_cv_header_memcheck_h = no \
558 && test $gcc_cv_header_valgrind_memcheck_h = no); then
559 AC_MSG_ERROR([*** Can't find both valgrind and valgrind/memcheck.h, memcheck.h or valgrind.h])
561 valgrind_path_defines=-DVALGRIND_PATH='\"'$valgrind_path'\"'
562 valgrind_command="$valgrind_path -q"
563 AC_DEFINE(ENABLE_VALGRIND_CHECKING, 1,
564 [Define if you want to run subprograms and generated programs
565 through valgrind (a memory checker). This is extremely expensive.])
566 if test $gcc_cv_header_valgrind_memcheck_h = yes; then
567 AC_DEFINE(HAVE_VALGRIND_MEMCHECK_H, 1,
568 [Define if valgrind's valgrind/memcheck.h header is installed.])
570 if test $gcc_cv_header_memcheck_h = yes; then
571 AC_DEFINE(HAVE_MEMCHECK_H, 1,
572 [Define if valgrind's memcheck.h header is installed.])
575 AC_SUBST(valgrind_path_defines)
576 AC_SUBST(valgrind_command)
578 AC_ARG_ENABLE(mapped-location,
579 [ --enable-mapped-location location_t is fileline integer cookie],,
580 enable_mapped_location=no)
582 if test "$enable_mapped_location" = yes ; then
583 AC_DEFINE(USE_MAPPED_LOCATION, 1,
584 [Define if location_t is fileline integer cookie.])
587 # Enable code coverage collection
588 AC_ARG_ENABLE(coverage,
589 [ --enable-coverage[=LEVEL]
590 enable compiler's code coverage collection.
591 Use to measure compiler performance and locate
592 unused parts of the compiler. With LEVEL, specify
593 optimization. Values are opt, noopt,
595 [case "${enableval}" in
597 coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O0"
600 coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O2"
603 # a.k.a. --disable-coverage
607 AC_MSG_ERROR(unknown coverage setting $enableval)
611 AC_SUBST(coverage_flags)
613 AC_ARG_ENABLE(gather-detailed-mem-stats,
614 [ --enable-gather-detailed-mem-stats enable detailed memory allocation stats gathering], [],
615 [enable_gather_detailed_mem_stats=no])
616 if test x$enable_gather_detailed_mem_stats = xyes ; then
617 AC_DEFINE(GATHER_STATISTICS, 1,
618 [Define to enable detailed memory allocation stats gathering.])
621 # -------------------------------
622 # Miscenalleous configure options
623 # -------------------------------
627 [ --with-stabs arrange to use stabs instead of host debug format],
631 # Determine whether or not multilibs are enabled.
632 AC_ARG_ENABLE(multilib,
633 [ --enable-multilib enable library support for multiple ABIs],
634 [], [enable_multilib=yes])
635 AC_SUBST(enable_multilib)
637 # Enable __cxa_atexit for C++.
638 AC_ARG_ENABLE(__cxa_atexit,
639 [ --enable-__cxa_atexit enable __cxa_atexit for C++],
642 # Enable C extension for decimal float if target supports it.
643 AC_ARG_ENABLE(decimal-float,
644 [ --enable-decimal-float enable decimal float extension to C],
646 if test x$enablevar = xyes ; then
648 powerpc*-*-linux* | i?86*-*-linux*)
651 AC_MSG_WARN(decimal float is not supported for this target, ignored)
652 enable_decimal_float=no
660 enable_decimal_float=yes
663 enable_decimal_float=no
668 AC_SUBST(enable_decimal_float)
670 dfp=`if test $enable_decimal_float = yes; then echo 1; else echo 0; fi`
671 AC_DEFINE_UNQUOTED(ENABLE_DECIMAL_FLOAT, $dfp,
672 [Define to 1 to enable decimal float extension to C.])
675 # Pass with no value to take the default
676 # Pass with a value to specify a thread package
677 AC_ARG_ENABLE(threads,
678 [ --enable-threads enable thread usage for target GCC
679 --enable-threads=LIB use LIB thread package for target GCC],,
682 AC_ARG_ENABLE(objc-gc,
683 [ --enable-objc-gc enable the use of Boehm's garbage collector with
684 the GNU Objective-C runtime],
685 if test x$enable_objc_gc = xno; then
693 [ --with-dwarf2 force the default debug format to be DWARF 2],
694 dwarf2="$with_dwarf2",
697 AC_ARG_ENABLE(shared,
698 [ --disable-shared don't provide a shared libgcc],
700 case $enable_shared in
704 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
705 for pkg in $enableval; do
706 if test "X$pkg" = "Xgcc" || test "X$pkg" = "Xlibgcc"; then
713 ], [enable_shared=yes])
714 AC_SUBST(enable_shared)
716 AC_ARG_WITH(build-sysroot,
717 [ --with-build-sysroot=sysroot
718 use sysroot as the system root during the build])
721 [ --with-sysroot[=DIR] Search for usr/lib, usr/include, et al, within DIR.],
723 case ${with_sysroot} in
724 yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_noncanonical}/sys-root' ;;
725 *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
728 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
729 CROSS_SYSTEM_HEADER_DIR='$(TARGET_SYSTEM_ROOT)$(NATIVE_SYSTEM_HEADER_DIR)'
731 if test "x$exec_prefix" = xNONE; then
732 if test "x$prefix" = xNONE; then
733 test_prefix=/usr/local
738 test_prefix=$exec_prefix
740 case ${TARGET_SYSTEM_ROOT} in
741 "${test_prefix}"|"${test_prefix}/"*|\
742 '${exec_prefix}'|'${exec_prefix}/'*)
743 t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
744 TARGET_SYSTEM_ROOT_DEFINE="$t"
749 TARGET_SYSTEM_ROOT_DEFINE=
750 CROSS_SYSTEM_HEADER_DIR='$(gcc_tooldir)/sys-include'
752 AC_SUBST(TARGET_SYSTEM_ROOT)
753 AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
754 AC_SUBST(CROSS_SYSTEM_HEADER_DIR)
756 # Build with intermodule optimisations
757 AC_ARG_ENABLE(intermodule,
758 [ --enable-intermodule build the compiler in one step],
759 [case ${enable_intermodule} in
760 yes) onestep="-onestep";;
766 # Sanity check enable_languages in case someone does not run the toplevel
767 # configure # script.
768 AC_ARG_ENABLE(languages,
769 [ --enable-languages=LIST specify which front-ends to build],
770 [case ,${enable_languages}, in
772 # go safe -- we cannot be much sure without the toplevel
774 # analysis of which target libs are present and usable
778 AC_MSG_ERROR([only the toplevel supports --enable-languages=all])
783 enable_languages=c,${enable_languages}
786 [enable_languages=c])
789 for lang in ${srcdir}/*/config-lang.in
792 # The odd quoting in the next line works around
793 # an apparent bug in bash 1.12 on linux.
795 ${srcdir}/[*]/config-lang.in) ;;
797 lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang`
798 if test "x$lang_alias" = x
800 echo "$lang doesn't set \$language." 1>&2
803 case ",$enable_languages," in
805 subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`" ;;
813 # -------------------------
814 # Checks for other programs
815 # -------------------------
819 # Find some useful tools
821 # We need awk to create options.c and options.h.
822 # Bail out if it's missing.
824 "") AC_MSG_ERROR([can't build without awk, bailing out]) ;;
832 # By default, the Darwin ranlib will not treat common symbols as
833 # definitions when building the archive table of contents. Other
834 # ranlibs do that; pass an option to the Darwin ranlib that makes
835 # it behave similarly.
841 AC_SUBST(ranlib_flags)
845 # See if cmp has --ignore-initial.
846 gcc_AC_PROG_CMP_IGNORE_INITIAL
848 # See if we have the mktemp command.
849 AC_CHECK_PROG(have_mktemp_command, mktemp, yes, no)
851 MISSING="${CONFIG_SHELL-/bin/sh} $srcdir/../missing"
853 # See if makeinfo has been installed and is modern enough
854 # that we can use it.
855 gcc_AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
856 [GNU texinfo.* \([0-9][0-9.]*\)],
858 if test $gcc_cv_prog_makeinfo_modern = no; then
859 MAKEINFO="$MISSING makeinfo"
861 *** Makeinfo is missing or too old.
862 *** Info documentation will not be built.])
869 # Is pod2man recent enough to regenerate manpages?
870 AC_MSG_CHECKING([for recent Pod::Man])
871 if (perl -e 'use 1.10 Pod::Man') >/dev/null 2>&1; then
873 GENERATED_MANPAGES=generated-manpages
878 AC_SUBST(GENERATED_MANPAGES)
881 dnl Don't use AC_PROG_LEX; we insist on flex.
882 dnl LEXLIB is not useful in gcc.
883 AC_CHECK_PROGS([FLEX], flex, [$MISSING flex])
886 AC_CHECK_PROGS([BISON], bison, [$MISSING bison])
888 # Binutils are not build modules, unlike bison/flex/makeinfo. So we
889 # check for build == host before using them.
892 if test x${build} = x${host} && test -f $srcdir/../binutils/nm.c \
893 && test -d ../binutils ; then
894 NM='$(objdir)/../binutils/nm-new'
896 AC_CHECK_PROG(NM, nm, nm, ${CONFIG_SHELL-/bin/sh} ${srcdir}/../missing nm)
900 if test x${build} = x${host} && test -f $srcdir/../binutils/ar.c \
901 && test -d ../binutils ; then
902 AR='$(objdir)/../binutils/ar'
904 AC_CHECK_PROG(AR, ar, ar, ${CONFIG_SHELL-/bin/sh} ${srcdir}/../missing ar)
908 # --------------------
909 # Checks for C headers
910 # --------------------
912 AC_MSG_CHECKING(for GNU C library)
913 AC_CACHE_VAL(gcc_cv_glibc,
914 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
915 [[#include <features.h>]], [[
916 #if ! (defined __GLIBC__ || defined __GNU_LIBRARY__)
917 #error Not a GNU C library system
921 AC_MSG_RESULT($gcc_cv_glibc)
922 if test $gcc_cv_glibc = yes; then
923 AC_DEFINE(_GNU_SOURCE, 1, [Always define this when using the GNU C Library])
926 # Need to reject headers which give warnings, so that the -Werror bootstrap
927 # works later. *sigh* This needs to come before all header checks.
934 AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h time.h iconv.h \
935 fcntl.h unistd.h sys/file.h sys/time.h sys/mman.h \
936 sys/resource.h sys/param.h sys/times.h sys/stat.h \
937 direct.h malloc.h langinfo.h ldfcn.h locale.h wchar.h)
939 # Check for thread headers.
940 AC_CHECK_HEADER(thread.h, [have_thread_h=yes], [have_thread_h=])
941 AC_CHECK_HEADER(pthread.h, [have_pthread_h=yes], [have_pthread_h=])
943 # These tests can't be done till we know if we have limits.h.
951 # Stage specific cflags for build.
957 stage1_cflags="-Wa,-J"
963 # The spiffy cpp-precomp chokes on some legitimate constructs in GCC
964 # sources; use -no-cpp-precomp to get to GNU cpp.
965 # Apple's GCC has bugs in designated initializer handling, so disable
967 stage1_cflags="-no-cpp-precomp -DHAVE_DESIGNATED_INITIALIZERS=0"
970 AC_SUBST(stage1_cflags)
972 # These libraries may be used by collect2.
973 # We may need a special search path to get them linked.
974 AC_CACHE_CHECK(for collect2 libraries, gcc_cv_collect2_libs,
976 for libs in '' -lld -lmld \
977 '-L/usr/lib/cmplrs/cc2.11 -lmld' \
978 '-L/usr/lib/cmplrs/cc3.11 -lmld'
981 AC_TRY_LINK_FUNC(ldopen,
982 [gcc_cv_collect2_libs="$libs"; break])
985 test -z "$gcc_cv_collect2_libs" && gcc_cv_collect2_libs='none required'])
986 case $gcc_cv_collect2_libs in
988 *) COLLECT2_LIBS=$gcc_cv_collect2_libs ;;
990 AC_SUBST(COLLECT2_LIBS)
992 # When building Ada code on Alpha, we need exc_resume which is usually in
993 # -lexc. So test for it.
996 AC_SEARCH_LIBS(exc_resume, exc)
999 AC_SUBST(GNAT_LIBEXC)
1001 # Some systems put ldexp and frexp in libm instead of libc; assume
1002 # they're both in the same place. jcf-dump needs them.
1005 AC_SEARCH_LIBS(ldexp, m)
1010 # Use <inttypes.h> only if it exists,
1011 # doesn't clash with <sys/types.h>, and declares intmax_t.
1012 AC_MSG_CHECKING(for inttypes.h)
1013 AC_CACHE_VAL(gcc_cv_header_inttypes_h,
1014 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1015 [[#include <sys/types.h>
1016 #include <inttypes.h>]],
1017 [[intmax_t i = -1;]])],
1018 [gcc_cv_header_inttypes_h=yes],
1019 [gcc_cv_header_inttypes_h=no])])
1020 AC_MSG_RESULT($gcc_cv_header_inttypes_h)
1021 if test $gcc_cv_header_inttypes_h = yes; then
1022 AC_DEFINE(HAVE_INTTYPES_H, 1,
1023 [Define if you have a working <inttypes.h> header file.])
1026 dnl Disabled until we have a complete test for buggy enum bitfields.
1027 dnl gcc_AC_C_ENUM_BF_UNSIGNED
1029 define(gcc_UNLOCKED_FUNCS, clearerr_unlocked feof_unlocked dnl
1030 ferror_unlocked fflush_unlocked fgetc_unlocked fgets_unlocked dnl
1031 fileno_unlocked fprintf_unlocked fputc_unlocked fputs_unlocked dnl
1032 fread_unlocked fwrite_unlocked getchar_unlocked getc_unlocked dnl
1033 putchar_unlocked putc_unlocked)
1034 AC_CHECK_FUNCS(times clock kill getrlimit setrlimit atoll atoq \
1035 sysconf strsignal getrusage nl_langinfo scandir alphasort \
1036 gettimeofday mbstowcs wcswidth mmap mincore setlocale \
1039 if test x$ac_cv_func_mbstowcs = xyes; then
1040 AC_CACHE_CHECK(whether mbstowcs works, gcc_cv_func_mbstowcs_works,
1041 [ AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdlib.h>
1047 [gcc_cv_func_mbstowcs_works=yes],
1048 [gcc_cv_func_mbstowcs_works=no],
1049 [gcc_cv_func_mbstowcs_works=yes])])
1050 if test x$gcc_cv_func_mbstowcs_works = xyes; then
1051 AC_DEFINE(HAVE_WORKING_MBSTOWCS, 1,
1052 [Define this macro if mbstowcs does not crash when its
1053 first argument is NULL.])
1057 AC_CHECK_TYPE(ssize_t, int)
1059 # Try to determine the array type of the second argument of getgroups
1060 # for the target system (int or gid_t).
1062 if test "${target}" = "${build}"; then
1063 TARGET_GETGROUPS_T=$ac_cv_type_getgroups
1066 # This condition may need some tweaking. It should include all
1067 # targets where the array type of the second argument of getgroups
1068 # is int and the type of gid_t is not equivalent to int.
1069 *-*-sunos* | *-*-ultrix*)
1070 TARGET_GETGROUPS_T=int
1073 TARGET_GETGROUPS_T=gid_t
1077 AC_SUBST(TARGET_GETGROUPS_T)
1079 gcc_AC_FUNC_MMAP_BLACKLIST
1083 # Under VMS, vfork works very differently than on Unix. The standard test
1084 # won't work, and it isn't easily adaptable. It makes more sense to
1086 ac_cv_func_vfork_works=yes
1092 # Until we have in-tree GNU iconv:
1094 AC_SUBST(LIBICONV_DEP)
1100 # We will need to find libiberty.h and ansidecl.h
1101 saved_CFLAGS="$CFLAGS"
1102 CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include"
1103 gcc_AC_CHECK_DECLS(getenv atol asprintf sbrk abort atof getcwd getwd \
1104 strsignal strstr strverscmp \
1105 errno snprintf vsnprintf vasprintf malloc realloc calloc \
1106 free basename getopt clock getpagesize gcc_UNLOCKED_FUNCS, , ,[
1107 #include "ansidecl.h"
1108 #include "system.h"])
1110 gcc_AC_CHECK_DECLS(getrlimit setrlimit getrusage, , ,[
1111 #include "ansidecl.h"
1113 #ifdef HAVE_SYS_RESOURCE_H
1114 #include <sys/resource.h>
1118 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1119 #include "ansidecl.h"
1121 #ifdef HAVE_SYS_RESOURCE_H
1122 #include <sys/resource.h>
1124 ]], [[rlim_t l = 0;]])],[],[AC_DEFINE([rlim_t],[long],
1125 [Define to \`long' if <sys/resource.h> doesn't define.])])
1127 # On AIX 5.2, <ldfcn.h> conflicts with <fcntl.h>, as both define incompatible
1128 # FREAD and FWRITE macros. Fortunately, for GCC's single usage of ldgetname
1129 # in collect2.c, <fcntl.h> isn't visible, but the configure test below needs
1130 # to undef these macros to get the correct value for HAVE_DECL_LDGETNAME.
1131 gcc_AC_CHECK_DECLS(ldgetname, , ,[
1132 #include "ansidecl.h"
1141 gcc_AC_CHECK_DECLS(times, , ,[
1142 #include "ansidecl.h"
1144 #ifdef HAVE_SYS_TIMES_H
1145 #include <sys/times.h>
1149 # More time-related stuff.
1150 AC_CACHE_CHECK(for struct tms, ac_cv_struct_tms, [
1151 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1152 #include "ansidecl.h"
1154 #ifdef HAVE_SYS_TIMES_H
1155 #include <sys/times.h>
1157 ]], [[struct tms tms;]])],[ac_cv_struct_tms=yes],[ac_cv_struct_tms=no])])
1158 if test $ac_cv_struct_tms = yes; then
1159 AC_DEFINE(HAVE_STRUCT_TMS, 1,
1160 [Define if <sys/times.h> defines struct tms.])
1163 # use gcc_cv_* here because this doesn't match the behavior of AC_CHECK_TYPE.
1164 # revisit after autoconf 2.50.
1165 AC_CACHE_CHECK(for clock_t, gcc_cv_type_clock_t, [
1166 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1167 #include "ansidecl.h"
1169 ]], [[clock_t x;]])],[gcc_cv_type_clock_t=yes],[gcc_cv_type_clock_t=no])])
1170 if test $gcc_cv_type_clock_t = yes; then
1171 AC_DEFINE(HAVE_CLOCK_T, 1,
1172 [Define if <time.h> defines clock_t.])
1175 # Restore CFLAGS from before the gcc_AC_NEED_DECLARATIONS tests.
1176 CFLAGS="$saved_CFLAGS"
1178 gcc_AC_INITFINI_ARRAY
1180 # mkdir takes a single argument on some systems.
1181 gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG
1189 # With Setjmp/Longjmp based exception handling.
1190 AC_ARG_ENABLE(sjlj-exceptions,
1191 [ --enable-sjlj-exceptions
1192 arrange to use setjmp/longjmp exception handling],
1193 [sjlj=`if test $enableval = yes; then echo 1; else echo 0; fi`
1194 AC_DEFINE_UNQUOTED(CONFIG_SJLJ_EXCEPTIONS, $sjlj,
1195 [Define 0/1 to force the choice for exception handling model.])])
1197 # For platforms with the unwind ABI which includes an unwind library,
1198 # libunwind, we can choose to use the system libunwind.
1199 AC_ARG_WITH(system-libunwind,
1200 [ --with-system-libunwind use installed libunwind])
1202 # --------------------------------------------------------
1203 # Build, host, and target specific configuration fragments
1204 # --------------------------------------------------------
1206 # Collect build-machine-specific information.
1207 . ${srcdir}/config.build
1209 # Collect host-machine-specific information.
1210 . ${srcdir}/config.host
1214 # Collect target-machine-specific information.
1215 . ${srcdir}/config.gcc
1217 extra_objs="${host_extra_objs} ${extra_objs}"
1218 extra_gcc_objs="${host_extra_gcc_objs} ${extra_gcc_objs}"
1220 # Default the target-machine variables that were not explicitly set.
1221 if test x"$tm_file" = x
1222 then tm_file=$cpu_type/$cpu_type.h; fi
1224 if test x"$extra_headers" = x
1225 then extra_headers=; fi
1227 if test x$md_file = x
1228 then md_file=$cpu_type/$cpu_type.md; fi
1230 if test x$out_file = x
1231 then out_file=$cpu_type/$cpu_type.c; fi
1233 if test x"$tmake_file" = x
1234 then tmake_file=$cpu_type/t-$cpu_type
1237 if test x"$dwarf2" = xyes
1238 then tm_file="$tm_file tm-dwarf2.h"
1241 # Say what files are being used for the output code and MD file.
1242 echo "Using \`$srcdir/config/$out_file' for machine-specific logic."
1243 echo "Using \`$srcdir/config/$md_file' as machine description file."
1245 # If any of the xm_file variables contain nonexistent files, warn
1246 # about them and drop them.
1249 for x in $build_xm_file; do
1250 if test -f $srcdir/config/$x
1252 else AC_MSG_WARN($srcdir/config/$x does not exist.)
1258 for x in $host_xm_file; do
1259 if test -f $srcdir/config/$x
1261 else AC_MSG_WARN($srcdir/config/$x does not exist.)
1267 for x in $xm_file; do
1268 if test -f $srcdir/config/$x
1270 else AC_MSG_WARN($srcdir/config/$x does not exist.)
1276 for f in $tm_file; do
1279 if test $count = ax; then
1280 echo "Using \`$srcdir/config/$tm_file' as target machine macro file."
1282 echo "Using the following target machine macro files:"
1283 for f in $tm_file; do
1284 echo " $srcdir/config/$f"
1288 if test x$need_64bit_hwint = xyes; then
1289 AC_DEFINE(NEED_64BIT_HOST_WIDE_INT, 1,
1290 [Define to 1 if HOST_WIDE_INT must be 64 bits wide (see hwint.h).])
1293 if test x$use_long_long_for_widest_fast_int = xyes; then
1294 AC_DEFINE(USE_LONG_LONG_FOR_WIDEST_FAST_INT, 1,
1295 [Define to 1 if the 'long long' (or '__int64') is wider than 'long' but still
1296 efficiently supported by the host hardware.])
1300 for f in $host_xm_file; do
1303 if test $count = a; then
1305 elif test $count = ax; then
1306 echo "Using \`$srcdir/config/$host_xm_file' as host machine macro file."
1308 echo "Using the following host machine macro files:"
1309 for f in $host_xm_file; do
1310 echo " $srcdir/config/$f"
1313 echo "Using ${out_host_hook_obj} for host machine hooks."
1315 if test "$host_xm_file" != "$build_xm_file"; then
1317 for f in $build_xm_file; do
1320 if test $count = a; then
1322 elif test $count = ax; then
1323 echo "Using \`$srcdir/config/$build_xm_file' as build machine macro file."
1325 echo "Using the following build machine macro files:"
1326 for f in $build_xm_file; do
1327 echo " $srcdir/config/$f"
1336 # Check if a valid thread package
1337 case ${enable_threads} in
1340 target_thread_file='single'
1344 target_thread_file='single'
1346 aix | dce | gnat | irix | posix | posix95 | rtems | \
1347 single | solaris | vxworks | win32 )
1348 target_thread_file=${enable_threads}
1351 echo "${enable_threads} is an unknown thread package" 1>&2
1356 if test x${thread_file} = x; then
1357 # No thread file set by target-specific clauses in config.gcc,
1358 # so use file chosen by default logic above
1359 thread_file=${target_thread_file}
1362 # Make gthr-default.h if we have a thread file.
1364 if test $thread_file != single; then
1365 rm -f gthr-default.h
1366 echo "#include \"gthr-${thread_file}.h\"" > gthr-default.h
1367 gthread_flags=-DHAVE_GTHR_DEFAULT
1369 AC_SUBST(gthread_flags)
1376 if test x$enable___cxa_atexit = xyes || \
1377 test x$enable___cxa_atexit = x -a x$default_use_cxa_atexit = xyes; then
1378 if test x$host = x$target; then
1379 AC_CHECK_FUNC(__cxa_atexit,[use_cxa_atexit=yes],
1380 [echo "__cxa_atexit can't be enabled on this target"])
1382 # We can't check for __cxa_atexit when building a cross, so assume
1386 if test x$use_cxa_atexit = xyes; then
1387 AC_DEFINE(DEFAULT_USE_CXA_ATEXIT, 1,
1388 [Define if you want to use __cxa_atexit, rather than atexit, to
1389 register C++ destructors for local statics and global objects.
1390 This is essential for fully standards-compliant handling of
1391 destructors, but requires __cxa_atexit in libc.])
1395 # Look for a file containing extra machine modes.
1396 if test -n "$extra_modes" && test -f $srcdir/config/$extra_modes; then
1397 extra_modes_file='$(srcdir)'/config/${extra_modes}
1398 AC_SUBST(extra_modes_file)
1399 AC_DEFINE_UNQUOTED(EXTRA_MODES_FILE, "config/$extra_modes",
1400 [Define to the name of a file containing a list of extra machine modes
1401 for this architecture.])
1404 # Convert extra_options into a form suitable for Makefile use.
1406 for f in $extra_options; do
1407 extra_opt_files="$extra_opt_files \$(srcdir)/config/$f"
1409 AC_SUBST(extra_opt_files)
1411 # auto-host.h is the file containing items generated by autoconf and is
1412 # the first file included by config.h.
1413 # If host=build, it is correct to have bconfig include auto-host.h
1414 # as well. If host!=build, we are in error and need to do more
1415 # work to find out the build config parameters.
1416 if test x$host = x$build
1418 build_auto=auto-host.h
1420 # We create a subdir, then run autoconf in the subdir.
1421 # To prevent recursion we set host and build for the new
1422 # invocation of configure to the build for this invocation
1429 /* | [A-Za-z]:[\\/]* ) realsrcdir=${srcdir};;
1430 *) realsrcdir=../${srcdir};;
1432 saved_CFLAGS="${CFLAGS}"
1433 CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
1434 ${realsrcdir}/configure \
1435 --enable-languages=${enable_languages-all} \
1436 --target=$target_alias --host=$build_alias --build=$build_alias
1437 CFLAGS="${saved_CFLAGS}"
1439 # We just finished tests for the build machine, so rename
1440 # the file auto-build.h in the gcc directory.
1441 mv auto-host.h ../auto-build.h
1444 build_auto=auto-build.h
1446 AC_SUBST(build_subdir)
1448 tm_file="${tm_file} defaults.h"
1449 tm_p_file="${tm_p_file} tm-preds.h"
1450 host_xm_file="auto-host.h ansidecl.h ${host_xm_file}"
1451 build_xm_file="${build_auto} ansidecl.h ${build_xm_file}"
1452 # We don't want ansidecl.h in target files, write code there in ISO/GNU C.
1453 # put this back in temporarily.
1454 xm_file="auto-host.h ansidecl.h ${xm_file}"
1461 # Compile in configure arguments.
1462 if test -f configargs.h ; then
1463 # Being re-configured.
1464 gcc_config_arguments=`grep configuration_arguments configargs.h | sed -e 's/.*"\([^"]*\)".*/\1/'`
1465 gcc_config_arguments="$gcc_config_arguments : (reconfigured) $TOPLEVEL_CONFIGURE_ARGUMENTS"
1467 gcc_config_arguments="$TOPLEVEL_CONFIGURE_ARGUMENTS"
1470 # Double all backslashes and backslash all quotes to turn
1471 # gcc_config_arguments into a C string.
1472 sed -e 's/\\/\\\\/g; s/"/\\"/g' <<EOF >conftest.out
1473 $gcc_config_arguments
1475 gcc_config_arguments_str=`cat conftest.out`
1478 cat > configargs.h <<EOF
1479 /* Generated automatically. */
1480 static const char configuration_arguments[] = "$gcc_config_arguments_str";
1481 static const char thread_model[] = "$thread_file";
1483 static const struct {
1484 const char *name, *value;
1485 } configure_default_options[] = $configure_default_options;
1489 # Internationalization
1490 ZW_GNU_GETTEXT_SISTER_DIR
1492 # If LIBINTL contains LIBICONV, then clear LIBICONV so we don't get
1493 # -liconv on the link line twice.
1494 case "$LIBINTL" in *$LIBICONV*)
1498 AC_ARG_ENABLE(secureplt,
1499 [ --enable-secureplt enable -msecure-plt by default for PowerPC],
1502 # Windows32 Registry support for specifying GCC installation paths.
1503 AC_ARG_ENABLE(win32-registry,
1504 [ --disable-win32-registry
1505 disable lookup of installation paths in the
1506 Registry on Windows hosts
1507 --enable-win32-registry enable registry lookup (default)
1508 --enable-win32-registry=KEY
1509 use KEY instead of GCC version as the last portion
1510 of the registry key],,)
1513 win32 | pe | cygwin* | mingw32* | uwin*)
1514 if test "x$enable_win32_registry" != xno; then
1515 AC_SEARCH_LIBS(RegOpenKeyExA, advapi32,, [enable_win32_registry=no])
1518 if test "x$enable_win32_registry" != xno; then
1519 AC_DEFINE(ENABLE_WIN32_REGISTRY, 1,
1520 [Define to 1 if installation paths should be looked up in the Windows
1521 Registry. Ignored on non-Windows hosts.])
1523 if test "x$enable_win32_registry" != xyes \
1524 && test "x$enable_win32_registry" != x; then
1525 AC_DEFINE_UNQUOTED(WIN32_REGISTRY_KEY, "$enable_win32_registry",
1526 [Define to be the last component of the Windows registry key under which
1527 to look for installation paths. The full key used will be
1528 HKEY_LOCAL_MACHINE/SOFTWARE/Free Software Foundation/{WIN32_REGISTRY_KEY}.
1529 The default is the GCC version number.])
1535 # Get an absolute path to the GCC top-level source directory
1536 holddir=`${PWDCMD-pwd}`
1538 topdir=`${PWDCMD-pwd}`
1541 # Conditionalize the makefile for this host machine.
1543 for f in ${host_xmake_file}
1545 if test -f ${srcdir}/config/$f
1547 xmake_file="${xmake_file} \$(srcdir)/config/$f"
1551 # Conditionalize the makefile for this target machine.
1553 for f in ${tmake_file}
1555 if test -f ${srcdir}/config/$f
1557 tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
1560 tmake_file="${tmake_file_}"
1562 # If the host doesn't support symlinks, modify CC in
1563 # FLAGS_TO_PASS so CC="stage1/xgcc -Bstage1/" works.
1564 # Otherwise, we can use "CC=$(CC)".
1568 cc_set_by_configure="\$(CC)"
1569 quoted_cc_set_by_configure="\$(CC)"
1570 stage_prefix_set_by_configure="\$(STAGE_PREFIX)"
1571 quoted_stage_prefix_set_by_configure="\$(STAGE_PREFIX)"
1574 cc_set_by_configure="\`case '\$(CC)' in stage*) echo '\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\$(CC)';; esac\`"
1575 quoted_cc_set_by_configure="\\\`case '\\\$(CC)' in stage*) echo '\\\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\\\$(CC)';; esac\\\`"
1576 stage_prefix_set_by_configure="\`case '\$(STAGE_PREFIX)' in stage*) echo '\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\$(STAGE_PREFIX)';; esac\`"
1577 quoted_stage_prefix_set_by_configure="\\\`case '\\\$(STAGE_PREFIX)' in stage*) echo '\\\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\\\$(STAGE_PREFIX)';; esac\\\`"
1581 # This is a terrible hack which will go away some day.
1582 host_cc_for_libada=${CC}
1583 AC_SUBST(host_cc_for_libada)
1585 out_object_file=`basename $out_file .c`.o
1587 tm_file_list="options.h"
1588 tm_include_list="options.h"
1589 for f in $tm_file; do
1592 tm_file_list="${tm_file_list} \$(srcdir)/$f"
1593 tm_include_list="${tm_include_list} $f"
1596 tm_file_list="${tm_file_list} \$(srcdir)/config/$f"
1597 tm_include_list="${tm_include_list} config/$f"
1604 for f in $tm_p_file; do
1607 tm_p_file_list="${tm_p_file_list} $f"
1608 tm_p_include_list="${tm_p_include_list} $f"
1611 tm_p_file_list="${tm_p_file_list} \$(srcdir)/config/$f"
1612 tm_p_include_list="${tm_p_include_list} config/$f"
1618 for f in $xm_file; do
1621 xm_file_list="${xm_file_list} \$(srcdir)/../include/$f"
1622 xm_include_list="${xm_include_list} $f"
1625 xm_file_list="${xm_file_list} $f"
1626 xm_include_list="${xm_include_list} $f"
1629 xm_file_list="${xm_file_list} \$(srcdir)/config/$f"
1630 xm_include_list="${xm_include_list} config/$f"
1636 host_xm_include_list=
1637 for f in $host_xm_file; do
1640 host_xm_file_list="${host_xm_file_list} \$(srcdir)/../include/$f"
1641 host_xm_include_list="${host_xm_include_list} $f"
1644 host_xm_file_list="${host_xm_file_list} $f"
1645 host_xm_include_list="${host_xm_include_list} $f"
1648 host_xm_file_list="${host_xm_file_list} \$(srcdir)/config/$f"
1649 host_xm_include_list="${host_xm_include_list} config/$f"
1655 for f in $build_xm_file; do
1658 build_xm_file_list="${build_xm_file_list} \$(srcdir)/../include/$f"
1659 build_xm_include_list="${build_xm_include_list} $f"
1661 auto-build.h | auto-host.h )
1662 build_xm_file_list="${build_xm_file_list} $f"
1663 build_xm_include_list="${build_xm_include_list} $f"
1666 build_xm_file_list="${build_xm_file_list} \$(srcdir)/config/$f"
1667 build_xm_include_list="${build_xm_include_list} config/$f"
1672 # Define macro CROSS_COMPILE in compilation if this is a cross-compiler.
1673 # Also use all.cross instead of all.internal and adjust SYSTEM_HEADER_DIR.
1674 CROSS= AC_SUBST(CROSS)
1675 ALL=all.internal AC_SUBST(ALL)
1676 SYSTEM_HEADER_DIR='$(NATIVE_SYSTEM_HEADER_DIR)' AC_SUBST(SYSTEM_HEADER_DIR)
1678 if test "x$with_build_sysroot" != x; then
1679 build_system_header_dir=$with_build_sysroot'$(NATIVE_SYSTEM_HEADER_DIR)'
1681 # This value is used, even on a native system, because
1682 # CROSS_SYSTEM_HEADER_DIR is just
1683 # $(TARGET_SYSTEM_ROOT)$(NATIVE_SYSTEM_HEADER_DIR).
1684 build_system_header_dir='$(CROSS_SYSTEM_HEADER_DIR)'
1687 if test x$host != x$target
1689 CROSS="-DCROSS_COMPILE"
1691 SYSTEM_HEADER_DIR=$build_system_header_dir
1692 case "$host","$target" in
1693 # Darwin crosses can use the host system's libraries and headers,
1694 # because of the fat library support. Of course, it must be the
1695 # same version of Darwin on both sides. Allow the user to
1696 # just say --target=foo-darwin without a version number to mean
1697 # "the version on this system".
1698 *-*-darwin*,*-*-darwin*)
1699 hostos=`echo $host | sed 's/.*-darwin/darwin/'`
1700 targetos=`echo $target | sed 's/.*-darwin/darwin/'`
1701 if test $hostos = $targetos -o $targetos = darwin ; then
1703 SYSTEM_HEADER_DIR='$(NATIVE_SYSTEM_HEADER_DIR)'
1708 i?86-*-*,x86_64-*-* \
1709 | powerpc*-*-*,powerpc64*-*-*)
1710 CROSS="$CROSS -DNATIVE_CROSS" ;;
1712 elif test "x$TARGET_SYSTEM_ROOT" != x; then
1713 SYSTEM_HEADER_DIR=$build_system_header_dir
1716 # If this is a cross-compiler that does not
1717 # have its own set of headers then define
1720 # If this is using newlib, without having the headers available now,
1721 # then define inhibit_libc in LIBGCC2_CFLAGS.
1722 # This prevents libgcc2 from containing any code which requires libc
1725 if { { test x$host != x$target && test "x$with_sysroot" = x ; } ||
1726 test x$with_newlib = xyes ; } &&
1727 { test "x$with_headers" = x || test "x$with_headers" = xno ; } ; then
1730 AC_SUBST(inhibit_libc)
1732 # When building gcc with a cross-compiler, we need to adjust things so
1733 # that the generator programs are still built with the native compiler.
1734 # Also, we cannot run fixincludes or fix-header.
1736 # These are the normal (build=host) settings:
1737 CC_FOR_BUILD='$(CC)' AC_SUBST(CC_FOR_BUILD)
1738 BUILD_CFLAGS='$(ALL_CFLAGS)' AC_SUBST(BUILD_CFLAGS)
1739 STMP_FIXINC=stmp-fixinc AC_SUBST(STMP_FIXINC)
1741 # Possibly disable fixproto, on a per-target basis.
1742 case ${use_fixproto} in
1747 STMP_FIXPROTO=stmp-fixproto
1750 AC_SUBST(STMP_FIXPROTO)
1752 # And these apply if build != host, or we are generating coverage data
1753 if test x$build != x$host || test "x$coverage_flags" != x
1755 BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)'
1757 if test "x$TARGET_SYSTEM_ROOT" = x; then
1758 if test "x$STMP_FIXPROTO" != x; then
1759 STMP_FIXPROTO=stmp-install-fixproto
1764 # Expand extra_headers to include complete path.
1765 # This substitutes for lots of t-* files.
1767 # Prepend $(srcdir)/config/${cpu_type}/ to every entry in extra_headers.
1768 for file in ${extra_headers} ; do
1769 extra_headers_list="${extra_headers_list} \$(srcdir)/config/${cpu_type}/${file}"
1772 # Define collect2 in Makefile.
1773 case $host_can_use_collect2 in
1775 *) collect2='collect2$(exeext)' ;;
1777 AC_SUBST([collect2])
1779 # Add a definition of USE_COLLECT2 if system wants one.
1780 case $use_collect2 in
1781 no) use_collect2= ;;
1784 host_xm_defines="${host_xm_defines} USE_COLLECT2"
1785 xm_defines="${xm_defines} USE_COLLECT2"
1786 case $host_can_use_collect2 in
1788 AC_MSG_ERROR([collect2 is required but cannot be built on this system])
1794 # ---------------------------
1795 # Assembler & linker features
1796 # ---------------------------
1798 # Identify the assembler which will work hand-in-glove with the newly
1799 # built GCC, so that we can examine its features. This is the assembler
1800 # which will be driven by the driver program.
1802 # If build != host, and we aren't building gas in-tree, we identify a
1803 # build->target assembler and hope that it will have the same features
1804 # as the host->target assembler we'll be using.
1807 gcc_cv_gas_major_version=
1808 gcc_cv_gas_minor_version=
1809 gcc_cv_as_gas_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/gas
1810 if test -x "$DEFAULT_ASSEMBLER"; then
1811 gcc_cv_as="$DEFAULT_ASSEMBLER"
1812 elif test -f $gcc_cv_as_gas_srcdir/configure.in \
1813 && test -f ../gas/Makefile \
1814 && test x$build = x$host; then
1815 # Single tree build which includes gas. We want to prefer it
1816 # over whatever linker top-level may have detected, since
1817 # we'll use what we're building after installation anyway.
1819 _gcc_COMPUTE_GAS_VERSION
1820 gcc_cv_as=../gas/as-new$build_exeext
1821 in_tree_gas_is_elf=no
1822 if grep 'obj_format = elf' ../gas/Makefile > /dev/null \
1823 || (grep 'obj_format = multi' ../gas/Makefile \
1824 && grep 'extra_objects =.* obj-elf' ../gas/Makefile) > /dev/null
1826 in_tree_gas_is_elf=yes
1828 m4_pattern_allow([AS_FOR_TARGET])dnl
1829 elif test -x as$build_exeext; then
1830 # Build using assembler in the current directory.
1831 gcc_cv_as=./as$build_exeext
1834 gcc_AC_CHECK_TOOL(gcc_cv_as, as, ORIGINAL_AS_FOR_TARGET, AS_FOR_TARGET, AS)
1835 AC_MSG_CHECKING(what assembler to use)
1836 case $in_tree_gas in
1838 AC_MSG_RESULT("newly built gas")
1841 AC_MSG_RESULT($gcc_cv_as)
1845 # Identify the linker which will work hand-in-glove with the newly
1846 # built GCC, so that we can examine its features. This is the linker
1847 # which will be driven by the driver program.
1849 # If build != host, and we aren't building gas in-tree, we identify a
1850 # build->target linker and hope that it will have the same features
1851 # as the host->target linker we'll be using.
1854 gcc_cv_gld_major_version=
1855 gcc_cv_gld_minor_version=
1856 gcc_cv_ld_gld_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/ld
1857 gcc_cv_ld_bfd_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/bfd
1858 if test -x "$DEFAULT_LINKER"; then
1859 gcc_cv_ld="$DEFAULT_LINKER"
1860 elif test -f $gcc_cv_ld_gld_srcdir/configure.in \
1861 && test -f ../ld/Makefile \
1862 && test x$build = x$host; then
1863 # Single tree build which includes ld. We want to prefer it
1864 # over whatever linker top-level may have detected, since
1865 # we'll use what we're building after installation anyway.
1867 in_tree_ld_is_elf=no
1868 if (grep 'EMUL = .*elf' ../ld/Makefile \
1869 || grep 'EMUL = .*linux' ../ld/Makefile \
1870 || grep 'EMUL = .*lynx' ../ld/Makefile) > /dev/null; then
1871 in_tree_ld_is_elf=yes
1873 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
1876 gcc_cv_gld_version=`sed -n -e 's/^[ ]*\(VERSION=[0-9]*\.[0-9]*.*\)/\1/p' < $f`
1878 if test x$gcc_cv_gld_version != x; then
1883 gcc_cv_gld_major_version=`expr "$gcc_cv_gld_version" : "VERSION=\([0-9]*\)"`
1884 gcc_cv_gld_minor_version=`expr "$gcc_cv_gld_version" : "VERSION=[0-9]*\.\([0-9]*\)"`
1886 gcc_cv_ld=../ld/ld-new$build_exeext
1887 elif test -x collect-ld$build_exeext; then
1888 # Build using linker in the current directory.
1889 gcc_cv_ld=./collect-ld$build_exeext
1892 gcc_AC_CHECK_TOOL(gcc_cv_ld, ld, ORIGINAL_LD_FOR_TARGET, LD_FOR_TARGET, LD)
1893 AC_MSG_CHECKING(what linker to use)
1896 AC_MSG_RESULT("newly built ld")
1899 AC_MSG_RESULT($gcc_cv_ld)
1903 # Figure out what nm we will be using.
1904 gcc_cv_binutils_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/binutils
1907 if test -f $gcc_cv_binutils_srcdir/configure.in \
1908 && test -f ../binutils/Makefile; then
1909 # Single tree build which includes binutils.
1911 gcc_cv_nm=../binutils/nm-new$build_exeext
1912 elif test -x nm$build_exeext; then
1913 gcc_cv_nm=./nm$build_exeext
1916 gcc_AC_CHECK_TOOL(gcc_cv_nm, nm, ORIGINAL_NM_FOR_TARGET, NM_FOR_TARGET, NM)
1917 AC_MSG_CHECKING(what nm to use)
1919 yes) AC_MSG_RESULT("newly built nm") ;;
1920 no) AC_MSG_RESULT($gcc_cv_nm) ;;
1923 # Figure out what objdump we will be using.
1926 if test -f $gcc_cv_binutils_srcdir/configure.in \
1927 && test -f ../binutils/Makefile; then
1928 # Single tree build which includes binutils.
1930 gcc_cv_objdump=../binutils/objdump$build_exeext
1931 elif test -x objdump$build_exeext; then
1932 gcc_cv_objdump=./objdump$build_exeext
1935 gcc_AC_CHECK_TOOL(gcc_cv_objdump, objdump, ORIGINAL_OBJDUMP_FOR_TARGET,
1936 OBJDUMP_FOR_TARGET, OBJDUMP)
1937 AC_MSG_CHECKING(what objdump to use)
1938 case $in_tree_objdump in
1939 yes) AC_MSG_RESULT("newly built objdump") ;;
1940 no) AC_MSG_RESULT($gcc_cv_objdump) ;;
1943 # Figure out what assembler alignment features are present.
1944 gcc_GAS_CHECK_FEATURE([.balign and .p2align], gcc_cv_as_balign_and_p2align,
1948 [AC_DEFINE(HAVE_GAS_BALIGN_AND_P2ALIGN, 1,
1949 [Define if your assembler supports .balign and .p2align.])])
1951 gcc_GAS_CHECK_FEATURE([.p2align with maximum skip], gcc_cv_as_max_skip_p2align,
1954 [AC_DEFINE(HAVE_GAS_MAX_SKIP_P2ALIGN, 1,
1955 [Define if your assembler supports specifying the maximum number
1956 of bytes to skip when using the GAS .p2align command.])])
1958 gcc_GAS_CHECK_FEATURE([working .subsection -1], gcc_cv_as_subsection_m1,
1960 [conftest_label1: .word 0
1962 conftest_label2: .word 0
1964 [if test x$gcc_cv_nm != x; then
1965 $gcc_cv_nm conftest.o | grep conftest_label1 > conftest.nm1
1966 $gcc_cv_nm conftest.o | grep conftest_label2 | sed -e 's/label2/label1/' > conftest.nm2
1967 if cmp conftest.nm1 conftest.nm2 > /dev/null 2>&1
1969 else gcc_cv_as_subsection_m1=yes
1971 rm -f conftest.nm1 conftest.nm2
1973 [AC_DEFINE(HAVE_GAS_SUBSECTION_ORDERING, 1,
1974 [Define if your assembler supports .subsection and .subsection -1 starts
1975 emitting at the beginning of your section.])])
1977 gcc_GAS_CHECK_FEATURE([.weak], gcc_cv_as_weak,
1980 [AC_DEFINE(HAVE_GAS_WEAK, 1, [Define if your assembler supports .weak.])])
1982 gcc_GAS_CHECK_FEATURE([.weakref], gcc_cv_as_weakref,
1984 [ .weakref foobar, barfnot],,
1985 [AC_DEFINE(HAVE_GAS_WEAKREF, 1, [Define if your assembler supports .weakref.])])
1987 gcc_GAS_CHECK_FEATURE([.nsubspa comdat], gcc_cv_as_nsubspa_comdat,
1990 .NSUBSPA $CODE$,COMDAT],,
1991 [AC_DEFINE(HAVE_GAS_NSUBSPA_COMDAT, 1, [Define if your assembler supports .nsubspa comdat option.])])
1993 # .hidden needs to be supported in both the assembler and the linker,
1994 # because GNU LD versions before 2.12.1 have buggy support for STV_HIDDEN.
1995 # This is irritatingly difficult to feature test for; we have to check the
1996 # date string after the version number. If we've got an in-tree
1997 # ld, we don't know its patchlevel version, so we set the baseline at 2.13
1999 # The gcc_GAS_CHECK_FEATURE call just sets a cache variable.
2000 gcc_GAS_CHECK_FEATURE([.hidden], gcc_cv_as_hidden,
2005 AC_CACHE_CHECK(linker for .hidden support, gcc_cv_ld_hidden,
2006 [if test $in_tree_ld = yes ; then
2008 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 \
2009 && test $in_tree_ld_is_elf = yes; then
2010 gcc_cv_ld_hidden=yes
2013 gcc_cv_ld_hidden=yes
2014 ld_ver=`$gcc_cv_ld --version 2>/dev/null | sed 1q`
2015 if echo "$ld_ver" | grep GNU > /dev/null; then
2017 ld_vers=`echo $ld_ver | sed -n \
2018 -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
2019 -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
2020 -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
2021 -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p' \
2022 -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p' \
2023 -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p' \
2024 -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p'`
2025 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'`
2026 ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'`
2027 ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'`
2028 ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
2029 if test 0"$ld_date" -lt 20020404; then
2030 if test -n "$ld_date"; then
2031 # If there was date string, but was earlier than 2002-04-04, fail
2033 elif test -z "$ld_vers"; then
2034 # If there was no date string nor ld version number, something is wrong
2037 test -z "$ld_vers_patch" && ld_vers_patch=0
2038 if test "$ld_vers_major" -lt 2; then
2040 elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 12; then
2041 gcc_cv_ld_hidden="no"
2042 elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -eq 12 -a "$ld_vers_patch" -eq 0; then
2050 hppa64*-*-hpux* | ia64*-*-hpux*)
2051 gcc_cv_ld_hidden=yes
2059 libgcc_visibility=no
2060 AC_SUBST(libgcc_visibility)
2061 GCC_TARGET_TEMPLATE([HAVE_GAS_HIDDEN])
2062 if test $gcc_cv_as_hidden = yes && test $gcc_cv_ld_hidden = yes; then
2063 libgcc_visibility=yes
2064 AC_DEFINE(HAVE_GAS_HIDDEN, 1,
2065 [Define if your assembler and linker support .hidden.])
2068 # Check if we have .[us]leb128, and support symbol arithmetic with it.
2069 gcc_GAS_CHECK_FEATURE([.sleb128 and .uleb128], gcc_cv_as_leb128,
2077 [# GAS versions before 2.11 do not support uleb128,
2078 # despite appearing to.
2079 # ??? There exists an elf-specific test that will crash
2080 # the assembler. Perhaps it's better to figure out whether
2081 # arbitrary sections are supported and try the test.
2082 as_ver=`$gcc_cv_as --version 2>/dev/null | sed 1q`
2083 if echo "$as_ver" | grep GNU > /dev/null; then
2085 as_ver=`echo $as_ver | sed -e 's/GNU assembler \([0-9.][0-9.]*\).*/\1/'`
2086 as_major=`echo $as_ver | sed 's/\..*//'`
2087 as_minor=`echo $as_ver | sed 's/[^.]*\.\([0-9]*\).*/\1/'`
2089 if test $as_major -eq 2 && test $as_minor -lt 11
2091 else gcc_cv_as_leb128=yes
2094 [AC_DEFINE(HAVE_AS_LEB128, 1,
2095 [Define if your assembler supports .sleb128 and .uleb128.])])
2097 # GAS versions up to and including 2.11.0 may mis-optimize
2099 gcc_GAS_CHECK_FEATURE(eh_frame optimization, gcc_cv_as_eh_frame,
2107 .section .eh_frame,"aw",@progbits
2109 .4byte .LECIE1-.LSCIE1
2123 .4byte .LEFDE1-.LASFDE1
2125 .4byte .LASFDE1-__FRAME_BEGIN__
2133 [ dnl # For autoconf 2.5x, must protect trailing spaces with @&t@.
2134 cat > conftest.lit <<EOF
2135 0000 10000000 00000000 017a0001 781a0004 .........z..x...
2136 0010 01000000 12000000 18000000 00000000 ................
2137 0020 08000000 04080000 0044 .........D @&t@
2139 cat > conftest.big <<EOF
2140 0000 00000010 00000000 017a0001 781a0004 .........z..x...
2141 0010 00000001 00000012 00000018 00000000 ................
2142 0020 00000008 04000000 0844 .........D @&t@
2144 # If the assembler didn't choke, and we can objdump,
2145 # and we got the correct data, then succeed.
2146 if test x$gcc_cv_objdump != x \
2147 && $gcc_cv_objdump -s -j .eh_frame conftest.o 2>/dev/null \
2148 | tail -3 > conftest.got \
2149 && { cmp conftest.lit conftest.got > /dev/null 2>&1 \
2150 || cmp conftest.big conftest.got > /dev/null 2>&1; }
2152 gcc_cv_as_eh_frame=yes
2153 elif AC_TRY_COMMAND($gcc_cv_as -o conftest.o --traditional-format /dev/null); then
2154 gcc_cv_as_eh_frame=buggy
2156 # Uh oh, what do we do now?
2157 gcc_cv_as_eh_frame=no
2160 if test $gcc_cv_as_eh_frame = buggy; then
2161 AC_DEFINE(USE_AS_TRADITIONAL_FORMAT, 1,
2162 [Define if your assembler mis-optimizes .eh_frame data.])
2165 gcc_GAS_CHECK_FEATURE(section merging support, gcc_cv_as_shf_merge,
2166 [elf,2,12,0], [--fatal-warnings],
2167 [.section .rodata.str, "aMS", @progbits, 1])
2168 if test $gcc_cv_as_shf_merge = no; then
2169 gcc_GAS_CHECK_FEATURE(section merging support, gcc_cv_as_shf_merge,
2170 [elf,2,12,0], [--fatal-warnings],
2171 [.section .rodata.str, "aMS", %progbits, 1])
2173 AC_DEFINE_UNQUOTED(HAVE_GAS_SHF_MERGE,
2174 [`if test $gcc_cv_as_shf_merge = yes; then echo 1; else echo 0; fi`],
2175 [Define 0/1 if your assembler supports marking sections with SHF_MERGE flag.])
2177 gcc_GAS_CHECK_FEATURE(COMDAT group support, gcc_cv_as_comdat_group,
2178 [elf,2,16,0], [--fatal-warnings],
2179 [.section .text,"axG",@progbits,.foo,comdat])
2180 if test $gcc_cv_as_comdat_group = yes; then
2181 gcc_cv_as_comdat_group_percent=no
2183 gcc_GAS_CHECK_FEATURE(COMDAT group support, gcc_cv_as_comdat_group_percent,
2184 [elf,2,16,0], [--fatal-warnings],
2185 [.section .text,"axG",%progbits,.foo,comdat])
2187 if test $in_tree_ld != yes && test x"$ld_vers" != x; then
2189 if test 0"$ld_date" -lt 20050308; then
2190 if test -n "$ld_date"; then
2191 # If there was date string, but was earlier than 2005-03-08, fail
2193 elif test "$ld_vers_major" -lt 2; then
2195 elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 16; then
2199 if test $comdat_group = no; then
2200 gcc_cv_as_comdat_group=no
2201 gcc_cv_as_comdat_group_percent=no
2204 AC_DEFINE_UNQUOTED(HAVE_COMDAT_GROUP,
2205 [`if test $gcc_cv_as_comdat_group = yes || test $gcc_cv_as_comdat_group_percent = yes; then echo 1; else echo 0; fi`],
2206 [Define 0/1 if your assembler and linker support COMDAT groups.])
2208 # Thread-local storage - the check is heavily parametrized.
2217 .section ".tdata","awT",@progbits
2220 ldq $27,__tls_get_addr($29) !literal!1
2221 lda $16,foo($29) !tlsgd!1
2222 jsr $26,($27),__tls_get_addr !lituse_tlsgd!1
2223 ldq $27,__tls_get_addr($29) !literal!2
2224 lda $16,foo($29) !tlsldm!2
2225 jsr $26,($27),__tls_get_addr !lituse_tlsldm!2
2226 ldq $1,foo($29) !gotdtprel
2227 ldah $2,foo($29) !dtprelhi
2228 lda $3,foo($2) !dtprello
2229 lda $4,foo($29) !dtprel
2230 ldq $1,foo($29) !gottprel
2231 ldah $2,foo($29) !tprelhi
2232 lda $3,foo($2) !tprello
2233 lda $4,foo($29) !tprel'
2236 tls_as_opt=--fatal-warnings
2240 .section ".tdata","awT",@progbits
2252 .section ".tdata","awT",@progbits
2256 addil LT%foo-$tls_gdidx$,gp
2257 ldo RT%foo-$tls_gdidx$(%r1),%arg0
2260 addil LT%foo-$tls_ldidx$,gp
2262 ldo RT%foo-$tls_ldidx$(%r1),%arg0
2263 addil LR%foo-$tls_dtpoff$,%ret0
2264 ldo RR%foo-$tls_dtpoff$(%r1),%t1
2266 addil LT%foo-$tls_ieoff$,gp
2267 ldw RT%foo-$tls_ieoff$(%r1),%t2
2270 addil LR%foo-$tls_leoff$,%t1
2271 ldo RR%foo-$tls_leoff$(%r1),%t2'
2274 tls_as_opt=--fatal-warnings
2278 .section ".tdata","awT",%progbits
2291 .section ".tdata","awT",@progbits
2295 leal foo@TLSGD(,%ebx,1), %eax
2296 leal foo@TLSLDM(%ebx), %eax
2297 leal foo@DTPOFF(%eax), %edx
2298 movl foo@GOTTPOFF(%ebx), %eax
2299 subl foo@GOTTPOFF(%ebx), %eax
2300 addl foo@GOTNTPOFF(%ebx), %eax
2301 movl foo@INDNTPOFF, %eax
2302 movl $foo@TPOFF, %eax
2303 subl $foo@TPOFF, %eax
2304 leal foo@NTPOFF(%ecx), %eax'
2307 tls_as_opt=--fatal-warnings
2311 .section ".tdata","awT",@progbits
2315 leaq foo@TLSGD(%rip), %rdi
2316 leaq foo@TLSLD(%rip), %rdi
2317 leaq foo@DTPOFF(%rax), %rdx
2318 movq foo@GOTTPOFF(%rip), %rax
2319 movq $foo@TPOFF, %rax'
2322 tls_as_opt=--fatal-warnings
2326 .section ".tdata","awT",@progbits
2329 addl r16 = @ltoff(@dtpmod(foo#)), gp
2330 addl r17 = @ltoff(@dtprel(foo#)), gp
2331 addl r18 = @ltoff(@tprel(foo#)), gp
2332 addl r19 = @dtprel(foo#), gp
2333 adds r21 = @dtprel(foo#), r13
2334 movl r23 = @dtprel(foo#)
2335 addl r20 = @tprel(foo#), gp
2336 adds r22 = @tprel(foo#), r13
2337 movl r24 = @tprel(foo#)'
2340 tls_as_opt=--fatal-warnings
2344 .section .tdata,"awT",@progbits
2348 addiu $4, $28, %tlsgd(x)
2349 addiu $4, $28, %tlsldm(x)
2350 lui $4, %dtprel_hi(x)
2351 addiu $4, $4, %dtprel_lo(x)
2352 lw $4, %gottprel(x)($28)
2353 lui $4, %tprel_hi(x)
2354 addiu $4, $4, %tprel_lo(x)'
2357 tls_as_opt='-32 --fatal-warnings'
2361 .section ".tdata","awT",@progbits
2369 addi 3,31,ld0@got@tlsgd
2371 addi 3,31,x1@got@tlsld
2374 addis 9,3,x2@dtprel@ha
2375 addi 9,9,x2@dtprel@l
2376 lwz 9,x3@got@tprel(31)
2379 addis 9,2,x2@tprel@ha
2380 addi 9,9,x2@tprel@l'
2383 tls_as_opt="-a32 --fatal-warnings"
2387 .section ".tdata","awT",@progbits
2395 addi 3,2,ld0@got@tlsgd
2401 addi 3,2,x1@got@tlsld
2407 addis 9,3,x2@dtprel@ha
2408 addi 9,9,x2@dtprel@l
2411 ld 9,x3@got@dtprel(2)
2417 tls_as_opt="-a64 --fatal-warnings"
2421 .section ".tdata","awT",@progbits
2430 l %r1,foo@GOTNTPOFF(%r12)
2431 l %r1,0(%r1):tls_load:foo
2432 bas %r14,0(%r1,%r13):tls_gdcall:foo
2433 bas %r14,0(%r1,%r13):tls_ldcall:foo'
2436 tls_as_opt="-m31 --fatal-warnings"
2440 .section ".tdata","awT",@progbits
2448 lg %r1,foo@GOTNTPOFF(%r12)
2449 larl %r1,foo@INDNTPOFF
2450 brasl %r14,__tls_get_offset@PLT:tls_gdcall:foo
2451 brasl %r14,__tls_get_offset@PLT:tls_ldcall:foo'
2454 tls_as_opt="-m64 -Aesame --fatal-warnings"
2456 sh-*-* | sh[34]-*-*)
2458 .section ".tdata","awT",@progbits
2468 tls_as_opt=--fatal-warnings
2472 sparc*-sun-solaris2.*)
2479 if test x$on_solaris = xyes && test x$gas_flag = xno; then
2481 .section ".tdata",#alloc,#write,#tls
2484 sethi %tgd_hi22(foo), %o0
2485 add %o0, %tgd_lo10(foo), %o1
2486 add %l7, %o1, %o0, %tgd_add(foo)
2487 call __tls_get_addr, %tgd_call(foo)
2488 sethi %tldm_hi22(foo), %l1
2489 add %l1, %tldm_lo10(foo), %l2
2490 add %l7, %l2, %o0, %tldm_add(foo)
2491 call __tls_get_addr, %tldm_call(foo)
2492 sethi %tldo_hix22(foo), %l3
2493 xor %l3, %tldo_lox10(foo), %l4
2494 add %o0, %l4, %l5, %tldo_add(foo)
2495 sethi %tie_hi22(foo), %o3
2496 add %o3, %tie_lo10(foo), %o3
2497 ld [%l7 + %o3], %o2, %tie_ld(foo)
2498 add %g7, %o2, %o4, %tie_add(foo)
2499 sethi %tle_hix22(foo), %l1
2500 xor %l1, %tle_lox10(foo), %o5
2501 ld [%g7 + %o5], %o1'
2506 .section ".tdata","awT",@progbits
2509 sethi %tgd_hi22(foo), %o0
2510 add %o0, %tgd_lo10(foo), %o1
2511 add %l7, %o1, %o0, %tgd_add(foo)
2512 call __tls_get_addr, %tgd_call(foo)
2513 sethi %tldm_hi22(foo), %l1
2514 add %l1, %tldm_lo10(foo), %l2
2515 add %l7, %l2, %o0, %tldm_add(foo)
2516 call __tls_get_addr, %tldm_call(foo)
2517 sethi %tldo_hix22(foo), %l3
2518 xor %l3, %tldo_lox10(foo), %l4
2519 add %o0, %l4, %l5, %tldo_add(foo)
2520 sethi %tie_hi22(foo), %o3
2521 add %o3, %tie_lo10(foo), %o3
2522 ld [%l7 + %o3], %o2, %tie_ld(foo)
2523 add %g7, %o2, %o4, %tie_add(foo)
2524 sethi %tle_hix22(foo), %l1
2525 xor %l1, %tle_lox10(foo), %o5
2526 ld [%g7 + %o5], %o1'
2529 tls_as_opt="-32 --fatal-warnings"
2534 if test -z "$tls_first_major"; then
2535 : # If we don't have a check, assume no support.
2537 gcc_GAS_CHECK_FEATURE(thread-local storage support, gcc_cv_as_tls,
2538 [$tls_first_major,$tls_first_minor,0], [$tls_as_opt], [$conftest_s],,
2539 [AC_DEFINE(HAVE_AS_TLS, 1,
2540 [Define if your assembler supports thread-local storage.])])
2543 # Target-specific assembler checks.
2545 AC_MSG_CHECKING(linker -Bstatic/-Bdynamic option)
2546 gcc_cv_ld_static_dynamic=no
2547 if test $in_tree_ld = yes ; then
2548 if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 10; then
2549 gcc_cv_ld_static_dynamic=yes
2551 elif test x$gcc_cv_ld != x; then
2552 # Check if linker supports -Bstatic/-Bdynamic option
2553 if $gcc_cv_ld --help 2>/dev/null | grep -- -Bstatic > /dev/null \
2554 && $gcc_cv_ld --help 2>/dev/null | grep -- -Bdynamic > /dev/null; then
2555 gcc_cv_ld_static_dynamic=yes
2558 if test x"$gcc_cv_ld_static_dynamic" = xyes; then
2559 AC_DEFINE(HAVE_LD_STATIC_DYNAMIC, 1,
2560 [Define if your linker supports -Bstatic/-Bdynamic option.])
2562 AC_MSG_RESULT($gcc_cv_ld_static_dynamic)
2564 if test x"$demangler_in_ld" = xyes; then
2565 AC_MSG_CHECKING(linker --demangle support)
2566 gcc_cv_ld_demangle=no
2567 if test $in_tree_ld = yes; then
2568 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 \
2569 gcc_cv_ld_demangle=yes
2571 elif test x$gcc_cv_ld != x -a x"$gnu_ld" = xyes; then
2572 # Check if the GNU linker supports --demangle option
2573 if $gcc_cv_ld --help 2>/dev/null | grep no-demangle > /dev/null; then
2574 gcc_cv_ld_demangle=yes
2577 if test x"$gcc_cv_ld_demangle" = xyes; then
2578 AC_DEFINE(HAVE_LD_DEMANGLE, 1,
2579 [Define if your linker supports --demangle option.])
2581 AC_MSG_RESULT($gcc_cv_ld_demangle)
2585 # All TARGET_ABI_OSF targets.
2586 alpha*-*-osf* | alpha*-*-linux* | alpha*-*-*bsd*)
2587 gcc_GAS_CHECK_FEATURE([explicit relocation support],
2588 gcc_cv_as_alpha_explicit_relocs, [2,12,0],,
2591 extbl $3, $2, $3 !lituse_bytoff!1
2592 ldq $2, a($29) !literal!1
2593 ldq $4, b($29) !literal!2
2594 ldq_u $3, 0($2) !lituse_base!1
2595 ldq $27, f($29) !literal!5
2596 jsr $26, ($27), f !lituse_jsr!5
2597 ldah $29, 0($26) !gpdisp!3
2598 lda $0, c($29) !gprel
2599 ldah $1, d($29) !gprelhigh
2600 lda $1, d($1) !gprellow
2601 lda $29, 0($29) !gpdisp!3],,
2602 [AC_DEFINE(HAVE_AS_EXPLICIT_RELOCS, 1,
2603 [Define if your assembler supports explicit relocations.])])
2604 gcc_GAS_CHECK_FEATURE([jsrdirect relocation support],
2605 gcc_cv_as_alpha_jsrdirect_relocs, [2,16,90],,
2608 ldq $27, a($29) !literal!1
2609 jsr $26, ($27), a !lituse_jsrdirect!1],,
2610 [AC_DEFINE(HAVE_AS_JSRDIRECT_RELOCS, 1,
2611 [Define if your assembler supports the lituse_jsrdirect relocation.])])
2615 gcc_GAS_CHECK_FEATURE([-no-mul-bug-abort option],
2616 gcc_cv_as_cris_no_mul_bug,[2,15,91],
2617 [-no-mul-bug-abort], [.text],,
2618 [AC_DEFINE(HAVE_AS_NO_MUL_BUG_ABORT_OPTION, 1,
2619 [Define if your assembler supports the -no-mul-bug-abort option.])])
2623 gcc_GAS_CHECK_FEATURE([.register], gcc_cv_as_sparc_register_op,,,
2624 [.register %g2, #scratch],,
2625 [AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP, 1,
2626 [Define if your assembler supports .register.])])
2628 gcc_GAS_CHECK_FEATURE([-relax option], gcc_cv_as_sparc_relax,,
2630 [AC_DEFINE(HAVE_AS_RELAX_OPTION, 1,
2631 [Define if your assembler supports -relax option.])])
2633 gcc_GAS_CHECK_FEATURE([unaligned pcrel relocs],
2634 gcc_cv_as_sparc_ua_pcrel,,
2642 .uaword %r_disp32(foo)],
2643 [if test x$gcc_cv_ld != x \
2644 && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then
2645 gcc_cv_as_sparc_ua_pcrel=yes
2648 [AC_DEFINE(HAVE_AS_SPARC_UA_PCREL, 1,
2649 [Define if your assembler and linker support unaligned PC relative relocs.])
2651 gcc_GAS_CHECK_FEATURE([unaligned pcrel relocs against hidden symbols],
2652 gcc_cv_as_sparc_ua_pcrel_hidden,,
2657 .uaword %r_disp32(foo)
2658 .byte 0x32, 0x33, 0x34
2663 [if test x$gcc_cv_ld != x && test x$gcc_cv_objdump != x \
2664 && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1 \
2665 && $gcc_cv_objdump -s -j .data conftest 2> /dev/null \
2666 | grep ' 31000000 07323334' > /dev/null 2>&1; then
2667 if $gcc_cv_objdump -R conftest 2> /dev/null \
2668 | grep 'DISP32' > /dev/null 2>&1; then
2671 gcc_cv_as_sparc_ua_pcrel_hidden=yes
2675 [AC_DEFINE(HAVE_AS_SPARC_UA_PCREL_HIDDEN, 1,
2676 [Define if your assembler and linker support unaligned PC relative relocs against hidden symbols.])])
2677 ]) # unaligned pcrel relocs
2679 gcc_GAS_CHECK_FEATURE([offsetable %lo()],
2680 gcc_cv_as_sparc_offsetable_lo10,,
2683 or %g1, %lo(ab) + 12, %g1
2684 or %g1, %lo(ab + 12), %g1],
2685 [if test x$gcc_cv_objdump != x \
2686 && $gcc_cv_objdump -s -j .text conftest.o 2> /dev/null \
2687 | grep ' 82106000 82106000' > /dev/null 2>&1; then
2688 gcc_cv_as_sparc_offsetable_lo10=yes
2690 [AC_DEFINE(HAVE_AS_OFFSETABLE_LO10, 1,
2691 [Define if your assembler supports offsetable %lo().])])
2695 i[34567]86-*-* | x86_64-*-*)
2698 cygwin* | pe | mingw32*)
2699 # Used for DWARF 2 in PE
2700 gcc_GAS_CHECK_FEATURE([.secrel32 relocs],
2701 gcc_cv_as_ix86_pe_secrel32,
2707 [if test x$gcc_cv_ld != x \
2708 && $gcc_cv_ld -o conftest conftest.o > /dev/null 2>&1; then
2709 gcc_cv_as_ix86_pe_secrel32=yes
2712 [AC_DEFINE(HAVE_GAS_PE_SECREL32_RELOC, 1,
2713 [Define if your assembler and linker support 32-bit section relative relocs via '.secrel32 label'.])])
2717 gcc_GAS_CHECK_FEATURE([filds and fists mnemonics],
2718 gcc_cv_as_ix86_filds_fists,
2719 [2,9,0],, [filds mem; fists mem],,
2720 [AC_DEFINE(HAVE_GAS_FILDS_FISTS, 1,
2721 [Define if your assembler uses the new HImode fild and fist notation.])])
2723 gcc_GAS_CHECK_FEATURE([cmov syntax],
2724 gcc_cv_as_ix86_cmov_sun_syntax,,,
2725 [cmovl.l %edx, %eax],,
2726 [AC_DEFINE(HAVE_AS_IX86_CMOV_SUN_SYNTAX, 1,
2727 [Define if your assembler supports the Sun syntax for cmov.])])
2729 # This one is used unconditionally by i386.[ch]; it is to be defined
2730 # to 1 if the feature is present, 0 otherwise.
2731 gcc_GAS_CHECK_FEATURE([GOTOFF in data],
2732 gcc_cv_as_ix86_gotoff_in_data, [2,11,0],,
2738 AC_DEFINE_UNQUOTED(HAVE_AS_GOTOFF_IN_DATA,
2739 [`if test $gcc_cv_as_ix86_gotoff_in_data = yes; then echo 1; else echo 0; fi`],
2740 [Define true if the assembler supports '.long foo@GOTOFF'.])
2744 gcc_GAS_CHECK_FEATURE([ltoffx and ldxmov relocs],
2745 gcc_cv_as_ia64_ltoffx_ldxmov_relocs, [2,14,0],,
2747 addl r15 = @ltoffx(x#), gp
2749 ld8.mov r16 = [[r15]], x#],,
2750 [AC_DEFINE(HAVE_AS_LTOFFX_LDXMOV_RELOCS, 1,
2751 [Define if your assembler supports ltoffx and ldxmov relocations.])])
2757 *-*-aix*) conftest_s=' .machine "pwr5"
2761 gcc_GAS_CHECK_FEATURE([.machine directive support],
2762 gcc_cv_as_machine_directive,,,
2763 [ .machine ppc7400])
2764 if test x$gcc_cv_as_machine_directive != xyes; then
2765 echo "*** This target requires an assembler supporting \".machine\"" >&2
2766 echo you can get it from: ftp://gcc.gnu.org/pub/gcc/infrastructure/cctools-528.5.dmg >&2
2767 test x$build = x$target && exit 1
2771 *) conftest_s=' .machine power4
2776 gcc_GAS_CHECK_FEATURE([mfcr field support],
2777 gcc_cv_as_powerpc_mfcrf, [2,14,0],,
2779 [AC_DEFINE(HAVE_AS_MFCRF, 1,
2780 [Define if your assembler supports mfcr field.])])
2783 *-*-aix*) conftest_s=' .machine "pwr5"
2786 *) conftest_s=' .machine power5
2791 gcc_GAS_CHECK_FEATURE([popcntb support],
2792 gcc_cv_as_powerpc_popcntb, [2,17,0],,
2794 [AC_DEFINE(HAVE_AS_POPCNTB, 1,
2795 [Define if your assembler supports popcntb field.])])
2798 *-*-aix*) conftest_s=' .machine "pwr5x"
2801 *) conftest_s=' .machine power5
2806 gcc_GAS_CHECK_FEATURE([fp round support],
2807 gcc_cv_as_powerpc_fprnd, [2,17,0],,
2809 [AC_DEFINE(HAVE_AS_FPRND, 1,
2810 [Define if your assembler supports fprnd.])])
2813 *-*-aix*) conftest_s=' .csect .text[[PR]]
2815 addis 11,30,_GLOBAL_OFFSET_TABLE_-LCF..0@ha';;
2819 addis r11,r30,_GLOBAL_OFFSET_TABLE_-LCF0@ha';;
2820 *) conftest_s=' .text
2822 addis 11,30,_GLOBAL_OFFSET_TABLE_-.LCF0@ha';;
2825 gcc_GAS_CHECK_FEATURE([rel16 relocs],
2826 gcc_cv_as_powerpc_rel16, [2,17,0], -a32,
2828 [AC_DEFINE(HAVE_AS_REL16, 1,
2829 [Define if your assembler supports R_PPC_REL16 relocs.])])
2833 gcc_GAS_CHECK_FEATURE([explicit relocation support],
2834 gcc_cv_as_mips_explicit_relocs, [2,14,0],,
2835 [ lw $4,%gp_rel(foo)($4)],,
2836 [if test x$target_cpu_default = x
2837 then target_cpu_default=MASK_EXPLICIT_RELOCS
2838 else target_cpu_default="($target_cpu_default)|MASK_EXPLICIT_RELOCS"
2843 # Mips and HP-UX need the GNU assembler.
2844 # Linux on IA64 might be able to use the Intel assembler.
2847 mips*-*-* | *-*-hpux* )
2848 if test x$gas_flag = xyes \
2849 || test x"$host" != x"$build" \
2850 || test ! -x "$gcc_cv_as" \
2851 || "$gcc_cv_as" -v < /dev/null 2>&1 | grep GNU > /dev/null; then
2854 echo "*** This configuration requires the GNU assembler" >&2
2860 # ??? Not all targets support dwarf2 debug_line, even within a version
2861 # of gas. Moreover, we need to emit a valid instruction to trigger any
2862 # info to the output file. So, as supported targets are added to gas 2.11,
2863 # add some instruction here to (also) show we expect this might work.
2864 # ??? Once 2.11 is released, probably need to add first known working
2865 # version to the per-target configury.
2867 i?86*-*-* | mips*-*-* | alpha*-*-* | powerpc*-*-* | sparc*-*-* | m68*-*-* \
2868 | x86_64*-*-* | hppa*-*-* | arm*-*-* | strongarm*-*-* | xscale*-*-* \
2869 | xstormy16*-*-* | cris-*-* | xtensa-*-* | bfin-*-*)
2872 ia64*-*-* | s390*-*-*)
2879 if test x"$insn" != x; then
2881 .file 1 \"conftest.s\"
2884 gcc_GAS_CHECK_FEATURE([dwarf2 debug_line support],
2885 gcc_cv_as_dwarf2_debug_line,
2886 [elf,2,11,0],, [$conftest_s],
2887 [if test x$gcc_cv_objdump != x \
2888 && $gcc_cv_objdump -h conftest.o 2> /dev/null \
2889 | grep debug_line > /dev/null 2>&1; then
2890 gcc_cv_as_dwarf2_debug_line=yes
2893 # The .debug_line file table must be in the exact order that
2894 # we specified the files, since these indices are also used
2895 # by DW_AT_decl_file. Approximate this test by testing if
2896 # the assembler bitches if the same index is assigned twice.
2897 gcc_GAS_CHECK_FEATURE([buggy dwarf2 .file directive],
2898 gcc_cv_as_dwarf2_file_buggy,,,
2902 if test $gcc_cv_as_dwarf2_debug_line = yes \
2903 && test $gcc_cv_as_dwarf2_file_buggy = no; then
2904 AC_DEFINE(HAVE_AS_DWARF2_DEBUG_LINE, 1,
2905 [Define if your assembler supports dwarf2 .file/.loc directives,
2906 and preserves file table indices exactly as given.])
2909 gcc_GAS_CHECK_FEATURE([--gdwarf2 option],
2910 gcc_cv_as_gdwarf2_flag,
2911 [elf,2,11,0], [--gdwarf2], [$insn],,
2912 [AC_DEFINE(HAVE_AS_GDWARF2_DEBUG_FLAG, 1,
2913 [Define if your assembler supports the --gdwarf2 option.])])
2915 gcc_GAS_CHECK_FEATURE([--gstabs option],
2916 gcc_cv_as_gstabs_flag,
2917 [elf,2,11,0], [--gstabs], [$insn],
2918 [# The native Solaris 9/Intel assembler doesn't understand --gstabs
2919 # and warns about it, but still exits successfully. So check for
2921 if AC_TRY_COMMAND([$gcc_cv_as --gstabs -o conftest.o conftest.s 2>&1 | grep -i warning > /dev/null])
2923 else gcc_cv_as_gstabs_flag=yes
2925 [AC_DEFINE(HAVE_AS_GSTABS_DEBUG_FLAG, 1,
2926 [Define if your assembler supports the --gstabs option.])])
2929 AC_MSG_CHECKING(linker read-only and read-write section mixing)
2930 gcc_cv_ld_ro_rw_mix=unknown
2931 if test $in_tree_ld = yes ; then
2932 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 \
2933 && test $in_tree_ld_is_elf = yes; then
2934 gcc_cv_ld_ro_rw_mix=read-write
2936 elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x -a x$gcc_cv_objdump != x ; then
2937 echo '.section myfoosect, "a"' > conftest1.s
2938 echo '.section myfoosect, "aw"' > conftest2.s
2939 echo '.byte 1' >> conftest2.s
2940 echo '.section myfoosect, "a"' > conftest3.s
2941 echo '.byte 0' >> conftest3.s
2942 if $gcc_cv_as -o conftest1.o conftest1.s > /dev/null 2>&1 \
2943 && $gcc_cv_as -o conftest2.o conftest2.s > /dev/null 2>&1 \
2944 && $gcc_cv_as -o conftest3.o conftest3.s > /dev/null 2>&1 \
2945 && $gcc_cv_ld -shared -o conftest1.so conftest1.o \
2946 conftest2.o conftest3.o > /dev/null 2>&1; then
2947 gcc_cv_ld_ro_rw_mix=`$gcc_cv_objdump -h conftest1.so \
2948 | sed -e '/myfoosect/!d' -e N`
2949 if echo "$gcc_cv_ld_ro_rw_mix" | grep CONTENTS > /dev/null; then
2950 if echo "$gcc_cv_ld_ro_rw_mix" | grep READONLY > /dev/null; then
2951 gcc_cv_ld_ro_rw_mix=read-only
2953 gcc_cv_ld_ro_rw_mix=read-write
2958 rm -f conftest.* conftest[123].*
2961 if test x$gcc_cv_ld_ro_rw_mix = xread-write; then
2962 AC_DEFINE(HAVE_LD_RO_RW_SECTION_MIXING, 1,
2963 [Define if your linker links a mix of read-only
2964 and read-write sections into a read-write section.])
2966 AC_MSG_RESULT($gcc_cv_ld_ro_rw_mix)
2968 AC_MSG_CHECKING(linker PT_GNU_EH_FRAME support)
2969 gcc_cv_ld_eh_frame_hdr=no
2970 if test $in_tree_ld = yes ; then
2971 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 \
2972 && test $in_tree_ld_is_elf = yes; then
2973 gcc_cv_ld_eh_frame_hdr=yes
2975 elif test x$gcc_cv_ld != x; then
2976 # Check if linker supports --eh-frame-hdr option
2977 if $gcc_cv_ld --help 2>/dev/null | grep eh-frame-hdr > /dev/null; then
2978 gcc_cv_ld_eh_frame_hdr=yes
2981 GCC_TARGET_TEMPLATE([HAVE_LD_EH_FRAME_HDR])
2982 if test x"$gcc_cv_ld_eh_frame_hdr" = xyes; then
2983 AC_DEFINE(HAVE_LD_EH_FRAME_HDR, 1,
2984 [Define if your linker supports --eh-frame-hdr option.])
2986 AC_MSG_RESULT($gcc_cv_ld_eh_frame_hdr)
2988 AC_MSG_CHECKING(linker position independent executable support)
2990 if test $in_tree_ld = yes ; then
2991 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 \
2992 && test $in_tree_ld_is_elf = yes; then
2995 elif test x$gcc_cv_ld != x; then
2996 # Check if linker supports -pie option
2997 if $gcc_cv_ld --help 2>/dev/null | grep -- -pie > /dev/null; then
3001 if test x"$gcc_cv_ld_pie" = xyes; then
3002 AC_DEFINE(HAVE_LD_PIE, 1,
3003 [Define if your linker supports -pie option.])
3005 AC_MSG_RESULT($gcc_cv_ld_pie)
3011 AC_CACHE_CHECK(linker --as-needed support,
3012 gcc_cv_ld_as_needed,
3013 [gcc_cv_ld_as_needed=no
3014 if test $in_tree_ld = yes ; then
3015 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 \
3016 && test $in_tree_ld_is_elf = yes; then
3017 gcc_cv_ld_as_needed=yes
3019 elif test x$gcc_cv_ld != x; then
3020 # Check if linker supports --as-needed and --no-as-needed options
3021 if $gcc_cv_ld --help 2>/dev/null | grep as-needed > /dev/null; then
3022 gcc_cv_ld_as_needed=yes
3026 if test x"$gcc_cv_ld_as_needed" = xyes; then
3027 AC_DEFINE(HAVE_LD_AS_NEEDED, 1,
3028 [Define if your linker supports --as-needed and --no-as-needed options.])
3031 case "$target:$tm_file" in
3032 powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*)
3033 AC_CACHE_CHECK(linker support for omitting dot symbols,
3034 gcc_cv_ld_no_dot_syms,
3035 [gcc_cv_ld_no_dot_syms=no
3036 if test $in_tree_ld = yes ; then
3037 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
3038 gcc_cv_ld_no_dot_syms=yes
3040 elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x ; then
3041 cat > conftest1.s <<EOF
3045 cat > conftest2.s <<EOF
3046 .section ".opd","aw"
3051 .quad .LEfoo,.TOC.@tocbase,0
3057 if $gcc_cv_as -a64 -o conftest1.o conftest1.s > /dev/null 2>&1 \
3058 && $gcc_cv_as -a64 -o conftest2.o conftest2.s > /dev/null 2>&1 \
3059 && $gcc_cv_ld -melf64ppc -o conftest conftest1.o conftest2.o > /dev/null 2>&1; then
3060 gcc_cv_ld_no_dot_syms=yes
3062 rm -f conftest conftest1.o conftest2.o conftest1.s conftest2.s
3065 if test x"$gcc_cv_ld_no_dot_syms" = xyes; then
3066 AC_DEFINE(HAVE_LD_NO_DOT_SYMS, 1,
3067 [Define if your PowerPC64 linker only needs function descriptor syms.])
3072 AC_CACHE_CHECK(linker --sysroot support,
3074 [gcc_cv_ld_sysroot=no
3075 if test $in_tree_ld = yes ; then
3076 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
3077 gcc_cv_ld_sysroot=yes
3079 elif test x$gcc_cv_ld != x; then
3080 if $gcc_cv_ld --help 2>/dev/null | grep sysroot > /dev/null; then
3081 gcc_cv_ld_sysroot=yes
3084 if test x"$gcc_cv_ld_sysroot" = xyes; then
3085 AC_DEFINE(HAVE_LD_SYSROOT, 1,
3086 [Define if your linker supports --sysroot.])
3089 if test x$with_sysroot = x && test x$host = x$target \
3090 && test "$prefix" != "/usr" && test "x$prefix" != "x$local_prefix" ; then
3091 AC_DEFINE_UNQUOTED(PREFIX_INCLUDE_DIR, "$prefix/include",
3092 [Define to PREFIX/include if cpp should also search that directory.])
3095 # Test for stack protector support in target C library.
3098 AC_CACHE_CHECK(__stack_chk_fail in target GNU C library,
3099 gcc_cv_libc_provides_ssp,
3100 [gcc_cv_libc_provides_ssp=no
3101 if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then
3102 if test "x$with_sysroot" = x; then
3103 glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-include"
3104 elif test "x$with_sysroot" = xyes; then
3105 glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-root/usr/include"
3107 glibc_header_dir="${with_sysroot}/usr/include"
3110 glibc_header_dir=/usr/include
3112 # glibc 2.4 and later provides __stack_chk_fail and
3113 # either __stack_chk_guard, or TLS access to stack guard canary.
3114 if test -f $glibc_header_dir/features.h \
3115 && $EGREP '^@<:@ @:>@*#[ ]*define[ ]+__GNU_LIBRARY__[ ]+([1-9][0-9]|[6-9])' \
3116 $glibc_header_dir/features.h > /dev/null; then
3117 if $EGREP '^@<:@ @:>@*#[ ]*define[ ]+__GLIBC__[ ]+([1-9][0-9]|[3-9])' \
3118 $glibc_header_dir/features.h > /dev/null; then
3119 gcc_cv_libc_provides_ssp=yes
3120 elif $EGREP '^@<:@ @:>@*#[ ]*define[ ]+__GLIBC__[ ]+2' \
3121 $glibc_header_dir/features.h > /dev/null \
3122 && $EGREP '^@<:@ @:>@*#[ ]*define[ ]+__GLIBC_MINOR__[ ]+([1-9][0-9]|[4-9])' \
3123 $glibc_header_dir/features.h > /dev/null; then
3124 gcc_cv_libc_provides_ssp=yes
3127 *) gcc_cv_libc_provides_ssp=no ;;
3129 if test x$gcc_cv_libc_provides_ssp = xyes; then
3130 AC_DEFINE(TARGET_LIBC_PROVIDES_SSP, 1,
3131 [Define if your target C library provides stack protector support])
3134 # Find out what GC implementation we want, or may, use.
3136 [ --with-gc={page,zone} choose the garbage collection mechanism to use
3144 AC_DEFINE(GGC_ZONE, 1, [Define if the zone collector is in use])
3147 AC_MSG_ERROR([$withval is an invalid option to --with-gc])
3152 echo "Using $GGC for garbage collection."
3154 # Use the system's zlib library.
3156 zlibinc="-I\$(srcdir)/../zlib"
3157 AC_ARG_WITH(system-zlib,
3158 [ --with-system-zlib use installed libz],
3165 dnl Very limited version of automake's enable-maintainer-mode
3167 AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
3168 dnl maintainer-mode is disabled by default
3169 AC_ARG_ENABLE(maintainer-mode,
3170 [ --enable-maintainer-mode
3171 enable make rules and dependencies not useful
3172 (and sometimes confusing) to the casual installer],
3173 maintainer_mode=$enableval,
3176 AC_MSG_RESULT($maintainer_mode)
3178 if test "$maintainer_mode" = "yes"; then
3189 # Make empty files to contain the specs and options for each language.
3190 # Then add #include lines to for a compiler that has specs and/or options.
3195 for subdir in . $subdirs
3197 if test -f $srcdir/$subdir/lang.opt; then
3198 lang_opt_files="$lang_opt_files $srcdir/$subdir/lang.opt"
3200 if test -f $srcdir/$subdir/lang-specs.h; then
3201 lang_specs_files="$lang_specs_files $srcdir/$subdir/lang-specs.h"
3203 if test -f $srcdir/$subdir/$subdir-tree.def; then
3204 lang_tree_files="$lang_tree_files $srcdir/$subdir/$subdir-tree.def"
3208 # These (without "all_") are set in each config-lang.in.
3209 # `language' must be a single word so is spelled singularly.
3214 all_outputs='Makefile gccbug mklibgcc libada-mk'
3215 # List of language makefile fragments.
3217 # List of language subdirectory makefiles. Deprecated.
3219 # Files for gengtype
3220 all_gtfiles="$target_gtfiles"
3221 # Files for gengtype with language
3222 all_gtfiles_files_langs=
3223 all_gtfiles_files_files=
3225 # Add the language fragments.
3226 # Languages are added via two mechanisms. Some information must be
3227 # recorded in makefile variables, these are defined in config-lang.in.
3228 # We accumulate them and plug them into the main Makefile.
3229 # The other mechanism is a set of hooks for each of the main targets
3230 # like `clean', `install', etc.
3232 language_hooks="Make-hooks"
3242 . ${srcdir}/$s/config-lang.in
3243 if test "x$language" = x
3245 echo "${srcdir}/$s/config-lang.in doesn't set \$language." 1>&2
3248 all_lang_makefrags="$all_lang_makefrags \$(srcdir)/$s/Make-lang.in"
3249 if test -f ${srcdir}/$s/Makefile.in
3250 then all_lang_makefiles="$s/Makefile"
3252 all_languages="$all_languages $language"
3253 if test "x$boot_language" = xyes
3255 all_boot_languages="$all_boot_languages $language"
3257 all_compilers="$all_compilers $compilers"
3258 all_stagestuff="$all_stagestuff $stagestuff"
3259 all_outputs="$all_outputs $outputs"
3260 all_gtfiles="$all_gtfiles $gtfiles"
3263 all_gtfiles_files_langs="$all_gtfiles_files_langs ${s} "
3264 all_gtfiles_files_files="$all_gtfiles_files_files ${f} "
3268 # Pick up gtfiles for c
3271 . ${srcdir}/c-config-lang.in
3272 all_gtfiles="$all_gtfiles $gtfiles"
3275 all_gtfiles_files_langs="$all_gtfiles_files_langs ${s} "
3276 all_gtfiles_files_files="$all_gtfiles_files_files ${f} "
3280 for language in $all_languages
3282 check_languages="$check_languages check-$language"
3285 # We link each language in with a set of hooks, reached indirectly via
3290 target_list="all.cross start.encap rest.encap tags \
3291 install-common install-man \
3292 uninstall info man srcextra srcman srcinfo \
3293 mostlyclean clean distclean maintainer-clean \
3294 stage1 stage2 stage3 stage4 stageprofile stagefeedback"
3295 for t in $target_list
3298 for lang in $all_languages
3302 echo "lang.$t: $x" >> Make-hooks
3311 echo "dir ." > .gdbinit
3312 echo "dir ${srcdir}" >> .gdbinit
3313 if test x$gdb_needs_out_file_path = xyes
3315 echo "dir ${srcdir}/config/"`dirname ${out_file}` >> .gdbinit
3317 if test "x$subdirs" != x; then
3320 echo "dir ${srcdir}/$s" >> .gdbinit
3323 echo "source ${srcdir}/gdbinit.in" >> .gdbinit
3325 # If $(exec_prefix) exists and is not the same as $(prefix), then compute an
3326 # absolute path for gcc_tooldir based on inserting the number of up-directory
3327 # movements required to get from $(exec_prefix) to $(prefix) into the basic
3328 # $(libsubdir)/@(unlibsubdir) based path.
3329 # Don't set gcc_tooldir to tooldir since that's only passed in by the toplevel
3330 # make and thus we'd get different behavior depending on where we built the
3332 if test x$exec_prefix = xNONE -o x$exec_prefix = x$prefix; then
3333 gcc_tooldir='$(libsubdir)/$(unlibsubdir)/../$(target_noncanonical)'
3335 changequote(<<, >>)dnl
3336 # An explanation of the sed strings:
3337 # -e 's|^\$(prefix)||' matches and eliminates 'prefix' from 'exec_prefix'
3338 # -e 's|/$||' match a trailing forward slash and eliminates it
3339 # -e 's|^[^/]|/|' forces the string to start with a forward slash (*)
3340 # -e 's|/[^/]*|../|g' replaces each occurrence of /<directory> with ../
3342 # (*) Note this pattern overwrites the first character of the string
3343 # with a forward slash if one is not already present. This is not a
3344 # problem because the exact names of the sub-directories concerned is
3345 # unimportant, just the number of them matters.
3347 # The practical upshot of these patterns is like this:
3349 # prefix exec_prefix result
3350 # ------ ----------- ------
3352 # /foo/ /foo/bar ../
3353 # /foo /foo/bar/ ../
3354 # /foo/ /foo/bar/ ../
3355 # /foo /foo/bar/ugg ../../
3358 gcc_tooldir="\$(libsubdir)/\$(unlibsubdir)/\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/\$(dollar)||' -e 's|^[^/]|/|' -e 's|/[^/]*|../|g'\`\$(target_noncanonical)"
3359 changequote([, ])dnl
3361 AC_SUBST(gcc_tooldir)
3364 # Find a directory in which to install a shared libgcc.
3366 AC_ARG_ENABLE(version-specific-runtime-libs,
3367 [ --enable-version-specific-runtime-libs
3368 specify that runtime libraries should be
3369 installed in a compiler-specific directory])
3371 AC_ARG_WITH(slibdir,
3372 [ --with-slibdir=DIR shared libraries in DIR [LIBDIR]],
3373 slibdir="$with_slibdir",
3374 if test "${enable_version_specific_runtime_libs+set}" = set; then
3375 slibdir='$(libsubdir)'
3376 elif test "$host" != "$target"; then
3377 slibdir='$(build_tooldir)/lib'
3383 objdir=`${PWDCMD-pwd}`
3386 # Substitute configuration variables
3389 AC_SUBST(all_boot_languages)
3390 AC_SUBST(all_compilers)
3391 AC_SUBST(all_gtfiles)
3392 AC_SUBST(all_gtfiles_files_langs)
3393 AC_SUBST(all_gtfiles_files_files)
3394 AC_SUBST(all_lang_makefrags)
3395 AC_SUBST(all_lang_makefiles)
3396 AC_SUBST(all_languages)
3397 AC_SUBST(all_stagestuff)
3398 AC_SUBST(build_exeext)
3399 AC_SUBST(build_install_headers_dir)
3400 AC_SUBST(build_xm_file_list)
3401 AC_SUBST(build_xm_include_list)
3402 AC_SUBST(build_xm_defines)
3403 AC_SUBST(check_languages)
3404 AC_SUBST(cc_set_by_configure)
3405 AC_SUBST(quoted_cc_set_by_configure)
3406 AC_SUBST(cpp_install_dir)
3407 AC_SUBST(xmake_file)
3408 AC_SUBST(tmake_file)
3409 AC_SUBST(extra_gcc_objs)
3410 AC_SUBST(extra_headers_list)
3411 AC_SUBST(extra_objs)
3412 AC_SUBST(extra_parts)
3413 AC_SUBST(extra_passes)
3414 AC_SUBST(extra_programs)
3415 AC_SUBST(float_h_file)
3416 AC_SUBST(gcc_config_arguments)
3417 AC_SUBST(gcc_gxx_include_dir)
3418 AC_SUBST(libstdcxx_incdir)
3419 AC_SUBST(host_exeext)
3420 AC_SUBST(host_xm_file_list)
3421 AC_SUBST(host_xm_include_list)
3422 AC_SUBST(host_xm_defines)
3423 AC_SUBST(out_host_hook_obj)
3425 AC_SUBST(lang_opt_files)
3426 AC_SUBST(lang_specs_files)
3427 AC_SUBST(lang_tree_files)
3428 AC_SUBST(local_prefix)
3430 AC_SUBST(objc_boehm_gc)
3432 AC_SUBST(out_object_file)
3433 AC_SUBST(stage_prefix_set_by_configure)
3434 AC_SUBST(quoted_stage_prefix_set_by_configure)
3435 AC_SUBST(thread_file)
3436 AC_SUBST(tm_file_list)
3437 AC_SUBST(tm_include_list)
3438 AC_SUBST(tm_defines)
3439 AC_SUBST(tm_p_file_list)
3440 AC_SUBST(tm_p_include_list)
3441 AC_SUBST(xm_file_list)
3442 AC_SUBST(xm_include_list)
3443 AC_SUBST(xm_defines)
3444 AC_SUBST(c_target_objs)
3445 AC_SUBST(cxx_target_objs)
3446 AC_SUBST(target_cpu_default)
3448 AC_SUBST_FILE(language_hooks)
3451 if test x${build} = x${host} ; then
3452 if test x${host} = x${target} ; then
3453 echo "Links are now set up to build a native compiler for ${target}." 1>&2
3455 echo "Links are now set up to build a cross-compiler" 1>&2
3456 echo " from ${host} to ${target}." 1>&2
3459 if test x${host} = x${target} ; then
3460 echo "Links are now set up to build (on ${build}) a native compiler" 1>&2
3461 echo " for ${target}." 1>&2
3463 echo "Links are now set up to build (on ${build}) a cross-compiler" 1>&2
3464 echo " from ${host} to ${target}." 1>&2
3468 AC_ARG_VAR(GMPLIBS,[How to link GMP])
3469 AC_ARG_VAR(GMPINC,[How to find GMP include files])
3471 # Configure the subdirectories
3472 # AC_CONFIG_SUBDIRS($subdirs)
3474 # Create the Makefile
3475 # and configure language subdirectories
3476 AC_CONFIG_FILES($all_outputs)
3478 AC_CONFIG_COMMANDS([default],
3480 case ${CONFIG_HEADERS} in
3481 *auto-host.h:config.in*)
3484 # Make sure all the subdirs exist.
3485 for d in $subdirs doc build
3487 test -d $d || mkdir $d
3489 # If the host supports symlinks, point stage[1234] at ../stage[1234] so
3490 # bootstrapping and the installation procedure can still use
3491 # CC="stage1/xgcc -Bstage1/". If the host doesn't support symlinks,
3492 # FLAGS_TO_PASS has been modified to solve the problem there.
3493 # This is virtually a duplicate of what happens in configure.lang; we do
3494 # an extra check to make sure this only happens if ln -s can be used.
3497 for d in ${subdirs} ; do
3498 STARTDIR=`${PWDCMD-pwd}`
3500 for t in stage1 stage2 stage3 stage4 stageprofile stagefeedback include
3503 $LN_S ../$t $t 2>/dev/null
3510 [subdirs='$subdirs'])