2002-03-31 Segher Boessenkool <segher@koffie.nl>
[official-gcc.git] / gcc / configure.in
blobb48bd22bf7773b2bc6538da17ec5826139a0fbda
1 # configure.in for GCC
2 # Process this file with autoconf to generate a configuration script.
4 # Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003
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
12 #version.
14 #GCC is distributed in the hope that it will be useful, but WITHOUT
15 #ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 #FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
17 #for more details.
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, 59 Temple Place - Suite 330, Boston, MA
22 #02111-1307, USA.
24 # --------------------------------
25 # Initialization and sanity checks
26 # --------------------------------
28 AC_PREREQ(2.13)
29 AC_INIT(tree.c)
30 AC_CONFIG_HEADER(auto-host.h:config.in)
32 # Determine the host, build, and target systems
33 AC_CANONICAL_SYSTEM
35 # Define variables host_canonical and build_canonical
36 build_canonical=${build}
37 host_canonical=${host}
38 AC_SUBST(build_canonical)
39 AC_SUBST(host_canonical)
41 target_subdir=
42 if test "${host}" != "${target}" ; then
43     target_subdir=${target_alias}/
45 AC_SUBST(target_subdir)
46         
47 # Set program_transform_name
48 AC_ARG_PROGRAM
50 # Check for bogus environment variables.
51 # Test if LIBRARY_PATH contains the notation for the current directory
52 # since this would lead to problems installing/building glibc.
53 # LIBRARY_PATH contains the current directory if one of the following
54 # is true:
55 # - one of the terminals (":" and ";") is the first or last sign
56 # - two terminals occur directly after each other
57 # - the path contains an element with a dot in it
58 AC_MSG_CHECKING(LIBRARY_PATH variable)
59 changequote(,)dnl
60 case ${LIBRARY_PATH} in
61   [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
62     library_path_setting="contains current directory"
63     ;;
64   *)
65     library_path_setting="ok"
66     ;;
67 esac
68 changequote([,])dnl
69 AC_MSG_RESULT($library_path_setting)
70 if test "$library_path_setting" != "ok"; then
71 AC_MSG_ERROR([
72 *** LIBRARY_PATH shouldn't contain the current directory when
73 *** building gcc. Please change the environment variable
74 *** and run configure again.])
77 # Test if GCC_EXEC_PREFIX contains the notation for the current directory
78 # since this would lead to problems installing/building glibc.
79 # GCC_EXEC_PREFIX contains the current directory if one of the following
80 # is true:
81 # - one of the terminals (":" and ";") is the first or last sign
82 # - two terminals occur directly after each other
83 # - the path contains an element with a dot in it
84 AC_MSG_CHECKING(GCC_EXEC_PREFIX variable)
85 changequote(,)dnl
86 case ${GCC_EXEC_PREFIX} in
87   [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
88     gcc_exec_prefix_setting="contains current directory"
89     ;;
90   *)
91     gcc_exec_prefix_setting="ok"
92     ;;
93 esac
94 changequote([,])dnl
95 AC_MSG_RESULT($gcc_exec_prefix_setting)
96 if test "$gcc_exec_prefix_setting" != "ok"; then
97 AC_MSG_ERROR([
98 *** GCC_EXEC_PREFIX shouldn't contain the current directory when
99 *** building gcc. Please change the environment variable
100 *** and run configure again.])
103 # -----------
104 # Directories
105 # -----------
107 # Specify the local prefix
108 local_prefix=
109 AC_ARG_WITH(local-prefix,
110 [  --with-local-prefix=DIR specifies directory to put local include],
111 [case "${withval}" in
112 yes)    AC_MSG_ERROR(bad value ${withval} given for local include directory prefix) ;;
113 no)     ;;
114 *)      local_prefix=$with_local_prefix ;;
115 esac])
117 # Default local prefix if it is empty
118 if test x$local_prefix = x; then
119         local_prefix=/usr/local
122 # Don't set gcc_gxx_include_dir to gxx_include_dir since that's only
123 # passed in by the toplevel make and thus we'd get different behavior
124 # depending on where we built the sources.
125 gcc_gxx_include_dir=
126 # Specify the g++ header file directory
127 AC_ARG_WITH(gxx-include-dir,
128 [  --with-gxx-include-dir=DIR
129                           specifies directory to put g++ header files],
130 [case "${withval}" in
131 yes)    AC_MSG_ERROR(bad value ${withval} given for g++ include directory) ;;
132 no)     ;;
133 *)      gcc_gxx_include_dir=$with_gxx_include_dir ;;
134 esac])
136 if test x${gcc_gxx_include_dir} = x; then
137   if test x${enable_version_specific_runtime_libs} = xyes; then
138     gcc_gxx_include_dir='${libsubdir}/include/c++'
139   else
140     topsrcdir=${srcdir}/.. . ${srcdir}/../config.if
141 changequote(<<, >>)dnl
142     gcc_gxx_include_dir="\$(libsubdir)/\$(unlibsubdir)/..\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/[^/]*|/..|g'\`/include/"${libstdcxx_incdir}
143 changequote([, ])dnl
144   fi
147 AC_ARG_WITH(cpp_install_dir,
148 [  --with-cpp-install-dir=DIR
149                           install the user visible C preprocessor in DIR
150                           (relative to PREFIX) as well as PREFIX/bin],
151 [if test x$withval = xyes; then
152   AC_MSG_ERROR([option --with-cpp-install-dir requires an argument])
153 elif test x$withval != xno; then
154   cpp_install_dir=$withval
155 fi])
157 # -------------------
158 # Find default linker
159 # -------------------
161 # With GNU ld
162 AC_ARG_WITH(gnu-ld,
163 [  --with-gnu-ld           arrange to work with GNU ld.],
164 gnu_ld_flag="$with_gnu_ld",
165 gnu_ld_flag=no)
167 # With pre-defined ld
168 AC_ARG_WITH(ld,
169 [  --with-ld               arrange to use the specified ld (full pathname)],
170 DEFAULT_LINKER="$with_ld")
171 if test x"${DEFAULT_LINKER+set}" = x"set"; then
172   if test ! -x "$DEFAULT_LINKER"; then
173     AC_MSG_WARN([cannot execute: $DEFAULT_LINKER: check --with-ld or env. var. DEFAULT_LINKER])
174   elif $DEFAULT_LINKER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
175     gnu_ld_flag=yes
176   fi
177   AC_DEFINE_UNQUOTED(DEFAULT_LINKER,"$DEFAULT_LINKER",
178         [Define to enable the use of a default linker.])
181 AC_MSG_CHECKING([whether a default linker was specified])
182 if test x"${DEFAULT_LINKER+set}" = x"set"; then
183   if test x"$gnu_ld_flag" = x"no"; then
184     AC_MSG_RESULT([yes ($DEFAULT_LINKER)])
185   else
186     AC_MSG_RESULT([yes ($DEFAULT_LINKER - GNU ld)])
187   fi
188 else
189   AC_MSG_RESULT(no)
192 # ----------------------
193 # Find default assembler
194 # ----------------------
196 # With GNU as
197 AC_ARG_WITH(gnu-as,
198 [  --with-gnu-as           arrange to work with GNU as],
199 gas_flag="$with_gnu_as",
200 gas_flag=no)
202 AC_ARG_WITH(as,
203 [  --with-as               arrange to use the specified as (full pathname)],
204 DEFAULT_ASSEMBLER="$with_as")
205 if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
206   if test ! -x "$DEFAULT_ASSEMBLER"; then
207     AC_MSG_WARN([cannot execute: $DEFAULT_ASSEMBLER: check --with-as or env. var. DEFAULT_ASSEMBLER])
208   elif $DEFAULT_ASSEMBLER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
209     gas_flag=yes
210   fi
211   AC_DEFINE_UNQUOTED(DEFAULT_ASSEMBLER,"$DEFAULT_ASSEMBLER",
212         [Define to enable the use of a default assembler.])
215 AC_MSG_CHECKING([whether a default assembler was specified])
216 if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
217   if test x"$gas_flag" = x"no"; then
218     AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER)])
219   else
220     AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER - GNU as)])
221   fi
222 else
223   AC_MSG_RESULT(no)
226 # ---------------
227 # Find C compiler
228 # ---------------
230 # Find the native compiler
231 AC_PROG_CC
232 AC_PROG_CC_C_O
233 # autoconf is lame and doesn't give us any substitution variable for this.
234 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
235   NO_MINUS_C_MINUS_O=yes
236 else
237   OUTPUT_OPTION='-o $@'
239 AC_SUBST(NO_MINUS_C_MINUS_O)
240 AC_SUBST(OUTPUT_OPTION)
242 # -------------------------
243 # Check C compiler features
244 # -------------------------
246 AC_CACHE_CHECK(whether ${CC-cc} accepts -Wno-long-long,
247 ac_cv_prog_cc_no_long_long,
248 [save_CFLAGS="$CFLAGS"
249 CFLAGS="-Wno-long-long"
250 AC_TRY_COMPILE(,,ac_cv_prog_cc_no_long_long=yes,
251                ac_cv_prog_cc_no_long_long=no)
252 CFLAGS="$save_CFLAGS"])
254 AC_PROG_CPP
255 AC_C_INLINE
256 gcc_AC_C_VOLATILE
258 gcc_AC_C_LONG_DOUBLE
259 gcc_AC_C_LONG_LONG
260 gcc_AC_C__BOOL
262 # sizeof(char) is 1 by definition.
263 AC_COMPILE_CHECK_SIZEOF(short)
264 AC_COMPILE_CHECK_SIZEOF(int)
265 AC_COMPILE_CHECK_SIZEOF(long)
266 if test $ac_cv_c_long_long = yes; then
267   AC_COMPILE_CHECK_SIZEOF(long long)
269 if test $ac_cv_c___int64 = yes; then
270   AC_COMPILE_CHECK_SIZEOF(__int64)
273 gcc_AC_C_CHARSET
275 # -----------------
276 # Find Ada compiler
277 # -----------------
279 # See if GNAT has been installed
280 gcc_AC_PROG_GNAT
282 if test x$have_gnat != xno ; then 
283 AC_CACHE_CHECK(whether ${ADAC} accepts -Wno-long-long,
284 ac_cv_prog_adac_no_long_long,
285 [cat >conftest.adb <<EOF
286 procedure conftest is begin null; end conftest;
288 if $ADAC -Wno-long-long -c conftest.adb 1>&5 2>&5 ; then
289   ac_cv_prog_adac_no_long_long=yes
290 else
291   ac_cv_prog_adac_no_long_long=no
293 rm -f conftest*])
294 else
295   ac_cv_prog_adac_no_long_long=yes
298 # ---------------------
299 # Warnings and checking
300 # ---------------------
302 strict1_warn=
303 if test $ac_cv_prog_cc_no_long_long = yes && \
304     test $ac_cv_prog_adac_no_long_long = yes ; then
305   strict1_warn="-pedantic -Wno-long-long"
307 AC_SUBST(strict1_warn)
309 # If the native compiler is GCC, we can enable warnings even in stage1.  
310 # That's useful for people building cross-compilers, or just running a
311 # quick `make'.
312 warn_cflags=
313 if test "x$GCC" = "xyes"; then
314   warn_cflags='$(GCC_WARN_CFLAGS)'
316 AC_SUBST(warn_cflags)
318 # Enable -Werror in bootstrap stage2 and later.
319 # Change the default to "no" on release branches.
320 AC_ARG_ENABLE(werror, 
321 [  --enable-werror         enable -Werror in bootstrap stage2 and later], [],
322 [enable_werror=yes])
323 if test x$enable_werror = xyes ; then
324   WERROR=-Werror
326 AC_SUBST(WERROR)
328 # Enable expensive internal checks
329 AC_ARG_ENABLE(checking,
330 [  --enable-checking[=LIST]
331                           enable expensive run-time checks.  With LIST,
332                           enable only specific categories of checks.
333                           Categories are: misc,tree,rtl,rtlflag,gc,gcac;
334                           default is misc,tree,gc,rtlflag],
335 [ac_checking=
336 ac_tree_checking=
337 ac_rtl_checking=
338 ac_rtlflag_checking=
339 ac_gc_checking=
340 ac_gc_always_collect=
341 case "${enableval}" in
342 yes)    ac_checking=1 ; ac_tree_checking=1 ; ac_gc_checking=1 ;
343         ac_rtlflag_checking=1 ;;
344 no)     ;;
345 *)      IFS="${IFS=     }"; ac_save_IFS="$IFS"; IFS="$IFS,"
346         set fnord $enableval; shift
347         IFS="$ac_save_IFS"
348         for check
349         do
350                 case $check in
351                 misc)   ac_checking=1 ;;
352                 tree)   ac_tree_checking=1 ;;
353                 rtlflag)        ac_rtlflag_checking=1 ;;
354                 rtl)    ac_rtl_checking=1 ;;
355                 gc)     ac_gc_checking=1 ;;
356                 gcac)   ac_gc_always_collect=1 ;;
357                 valgrind)       ac_checking_valgrind=1 ;;
358                 *)      AC_MSG_ERROR(unknown check category $check) ;;
359                 esac
360         done
361         ;;
362 esac
363 ], 
364 # Enable some checks by default for development versions of GCC
365 [ac_checking=1; ac_tree_checking=1; ac_gc_checking=1; ac_rtlflag_checking=1;])
366 nocommon_flag=""
367 if test x$ac_checking != x ; then
368   AC_DEFINE(ENABLE_CHECKING, 1,
369 [Define if you want more run-time sanity checks.  This one gets a grab
370    bag of miscellaneous but relatively cheap checks.])
371   nocommon_flag=-fno-common
373 AC_SUBST(nocommon_flag)
374 if test x$ac_tree_checking != x ; then
375   AC_DEFINE(ENABLE_TREE_CHECKING, 1,
376 [Define if you want all operations on trees (the basic data
377    structure of the front ends) to be checked for dynamic type safety
378    at runtime.  This is moderately expensive.])
380 if test x$ac_rtl_checking != x ; then
381   AC_DEFINE(ENABLE_RTL_CHECKING, 1,
382 [Define if you want all operations on RTL (the basic data structure
383    of the optimizer and back end) to be checked for dynamic type safety
384    at runtime.  This is quite expensive.])
386 if test x$ac_rtlflag_checking != x ; then
387   AC_DEFINE(ENABLE_RTL_FLAG_CHECKING, 1,
388 [Define if you want RTL flag accesses to be checked against the RTL
389    codes that are supported for each access macro.  This is relatively
390    cheap.])
392 if test x$ac_gc_checking != x ; then
393   AC_DEFINE(ENABLE_GC_CHECKING, 1,
394 [Define if you want the garbage collector to do object poisoning and
395    other memory allocation checks.  This is quite expensive.])
397 if test x$ac_gc_always_collect != x ; then
398   AC_DEFINE(ENABLE_GC_ALWAYS_COLLECT, 1,
399 [Define if you want the garbage collector to operate in maximally
400    paranoid mode, validating the entire heap and collecting garbage at
401    every opportunity.  This is extremely expensive.])
403 valgrind_path_defines=
404 valgrind_command=
405 if test x$ac_checking_valgrind != x ; then
406   # It is certainly possible that there's valgrind but no valgrind.h.
407   # GCC relies on making annotations so we must have both.
408   AC_MSG_CHECKING(for VALGRIND_DISCARD in <memcheck.h>)
409   AC_TRY_CPP(
410     [#include <memcheck.h>
411 #ifndef VALGRIND_DISCARD
412 #error VALGRIND_DISCARD not defined
413 #endif],
414   [gcc_cv_header_memcheck_h=yes], 
415   gcc_cv_header_memcheck_h=no)
416   AC_MSG_RESULT($gcc_cv_header_memcheck_h)
417   AC_CHECK_HEADER(valgrind.h, have_valgrind_h=yes, have_valgrind_h=no)
418   AM_PATH_PROG_WITH_TEST(valgrind_path, valgrind,
419         [$ac_dir/$ac_word --version | grep valgrind- >/dev/null 2>&1])
420   if test "x$valgrind_path" = "x" || (test $have_valgrind_h = no && test $gcc_cv_header_memcheck_h = no); then
421         AC_MSG_ERROR([*** Can't find both valgrind and valgrind.h/memcheck.h])
422   fi
423   valgrind_path_defines=-DVALGRIND_PATH='\"'$valgrind_path'\"'
424   valgrind_command="$valgrind_path -q"
425   AC_DEFINE(ENABLE_VALGRIND_CHECKING, 1,
426 [Define if you want to run subprograms and generated programs
427    through valgrind (a memory checker).  This is extremely expensive.])
428   if test $gcc_cv_header_memcheck_h = yes; then
429     AC_DEFINE(HAVE_MEMCHECK_H, 1,
430         [Define if valgrind's memcheck.h header is installed.])
431   fi
433 AC_SUBST(valgrind_path_defines)
434 AC_SUBST(valgrind_command)
436 # Enable code coverage collection
437 AC_ARG_ENABLE(coverage,
438 [  --enable-coverage[=LEVEL]
439                           enable compiler\'s code coverage collection.
440                           Use to measure compiler performance and locate
441                           unused parts of the compiler. With LEVEL, specify
442                           optimization. Values are opt, noopt,
443                           default is noopt],
444 [case "${enableval}" in
445 yes|noopt)
446         coverage_flags="-fprofile-arcs -ftest-coverage -O0 -DSELF_COVERAGE=1"
447         ;;
448 opt)
449         coverage_flags="-fprofile-arcs -ftest-coverage -O2 -DSELF_COVERAGE=2"
450         ;;
452         AC_MSG_ERROR(unknown coverage setting $enableval)
453         ;;
454 esac],
455 [coverage_flags=""])
456 AC_SUBST(coverage_flags)
458 # -------------------------------
459 # Miscenalleous configure options
460 # -------------------------------
462 # With stabs
463 AC_ARG_WITH(stabs,
464 [  --with-stabs            arrange to use stabs instead of host debug format],
465 stabs="$with_stabs",
466 stabs=no)
468 # With ELF
469 AC_ARG_WITH(elf,
470 [  --with-elf              arrange to use ELF instead of host debug format],
471 elf="$with_elf",
472 elf=no)
474 # Determine whether or not multilibs are enabled.
475 AC_ARG_ENABLE(multilib,
476 [  --enable-multilib       enable library support for multiple ABIs],
477 [], [enable_multilib=yes])
478 AC_SUBST(enable_multilib)
480 # Enable __cxa_atexit for C++.
481 AC_ARG_ENABLE(__cxa_atexit,
482 [  --enable-__cxa_atexit   enable __cxa_atexit for C++],
483 [], [])
484 if test x$enable___cxa_atexit = xyes; then
485   AC_DEFINE(DEFAULT_USE_CXA_ATEXIT, 1,
486   [Define if you want to use __cxa_atexit, rather than atexit, to
487    register C++ destructors for local statics and global objects.
488    This is essential for fully standards-compliant handling of
489    destructors, but requires __cxa_atexit in libc.])
491   
492 # Enable Multibyte Characters for C/C++
493 AC_ARG_ENABLE(c-mbchar,
494 [  --enable-c-mbchar       enable multibyte characters for C and C++],
495 if test x$enable_c_mbchar != xno; then
496   AC_DEFINE(MULTIBYTE_CHARS, 1,
497   [Define if you want the C and C++ compilers to support multibyte
498    character sets for source code.])
500   
501 # Enable threads
502 # Pass with no value to take the default
503 # Pass with a value to specify a thread package
504 AC_ARG_ENABLE(threads,
505 [  --enable-threads        enable thread usage for target GCC
506   --enable-threads=LIB    use LIB thread package for target GCC],,
507 enable_threads='')
509 enable_threads_flag=$enable_threads
510 # Check if a valid thread package
511 case x${enable_threads_flag} in
512         x | xno)
513                 # No threads
514                 target_thread_file='single'
515                 ;;
516         xyes)
517                 # default
518                 target_thread_file=''
519                 ;;
520         xdecosf1 | xirix | xmach | xos2 | xposix | xpthreads | xsingle | \
521         xsolaris | xwin32 | xdce | xrtems| xvxworks | xaix)
522                 target_thread_file=$enable_threads_flag
523                 ;;
524         *)
525                 echo "$enable_threads is an unknown thread package" 1>&2
526                 exit 1
527                 ;;
528 esac
530 AC_ARG_ENABLE(objc-gc,
531 [  --enable-objc-gc       enable the use of Boehm's garbage collector with
532                           the GNU Objective-C runtime],
533 if test x$enable_objc_gc = xno; then
534         objc_boehm_gc=''
535 else
536         objc_boehm_gc=1
538 objc_boehm_gc='')
540 AC_ARG_WITH(dwarf2,
541 [  --with-dwarf2           force the default debug format to be DWARF 2],
542 dwarf2="$with_dwarf2",
543 dwarf2=no)
545 AC_ARG_ENABLE(shared,
546 [  --disable-shared        don't provide a shared libgcc],
548   case $enable_shared in
549   yes | no) ;;
550   *)
551     enable_shared=no
552     IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
553     for pkg in $enableval; do
554       if test "X$pkg" = "Xgcc" || test "X$pkg" = "Xlibgcc"; then
555         enable_shared=yes
556       fi
557     done
558     IFS="$ac_save_ifs"
559     ;;
560   esac
561 ], [enable_shared=yes])
562 AC_SUBST(enable_shared)
564 AC_ARG_WITH(sysroot,
565 [  --with-sysroot[=DIR] Search for usr/lib, usr/include, et al, within DIR.],
567  case ${with_sysroot} in
568  yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
569  *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
570  esac
571    
572  TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
573  CROSS_SYSTEM_HEADER_DIR='$(TARGET_SYSTEM_ROOT)$(NATIVE_SYSTEM_HEADER_DIR)'
575  if test "x$exec_prefix" = xNONE; then
576   if test "x$prefix" = xNONE; then
577    test_prefix=/usr/local
578   else
579    test_prefix=$prefix
580   fi
581  else
582   test_prefix=$exec_prefix
583  fi
584  case ${TARGET_SYSTEM_ROOT} in
585  "${test_prefix}"|"${test_prefix}/"*|\
586  '${exec_prefix}'|'${exec_prefix}/'*)
587    t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
588    TARGET_SYSTEM_ROOT_DEFINE="$t"
589    ;;
590  esac
591 ], [
592  TARGET_SYSTEM_ROOT=
593  TARGET_SYSTEM_ROOT_DEFINE=
594  CROSS_SYSTEM_HEADER_DIR='$(gcc_tooldir)/sys-include'
596 AC_SUBST(TARGET_SYSTEM_ROOT)
597 AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
598 AC_SUBST(CROSS_SYSTEM_HEADER_DIR)
600 # -------------------------
601 # Checks for other programs
602 # -------------------------
604 AC_PROG_MAKE_SET
606 # Find some useful tools
607 AC_PROG_AWK
608 gcc_AC_PROG_LN
609 gcc_AC_PROG_LN_S
610 AC_PROG_RANLIB
611 gcc_AC_PROG_INSTALL
613 # See if we have the mktemp command.
614 AC_CHECK_PROG(have_mktemp_command, mktemp, yes, no)
616 # Do we have a single-tree copy of texinfo?
617 if test -f $srcdir/../texinfo/Makefile.in; then
618   MAKEINFO='$(objdir)/../texinfo/makeinfo/makeinfo'
619   gcc_cv_prog_makeinfo_modern=yes
620   AC_MSG_RESULT([Using makeinfo from the unified source tree.])
621 else
622   # See if makeinfo has been installed and is modern enough
623   # that we can use it.
624   gcc_AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
625   [GNU texinfo.* \([0-9][0-9.]*\)],
626   [4.[2-9]*])
629 if test $gcc_cv_prog_makeinfo_modern = no; then
630   AC_MSG_WARN([
631 *** Makeinfo is missing or too old.
632 *** Info documentation will not be built.])
633   BUILD_INFO=
634 else
635   BUILD_INFO=info               AC_SUBST(BUILD_INFO)
638 # Is pod2man recent enough to regenerate manpages?
639 AC_MSG_CHECKING([for recent Pod::Man])
640 if (perl -e 'use 1.10 Pod::Man') >/dev/null 2>&1; then
641   AC_MSG_RESULT(yes)
642   GENERATED_MANPAGES=generated-manpages         AC_SUBST(GENERATED_MANPAGES)
643 else
644   AC_MSG_RESULT(no)
645   GENERATED_MANPAGES=
648 # How about lex?
649 dnl Don't use AC_PROG_LEX; we insist on flex.
650 dnl LEXLIB is not useful in gcc.
651 if test -f $srcdir/../flex/skel.c; then
652   FLEX='$(objdir)/../flex/flex'
653 else
654   AC_CHECK_PROG(FLEX, flex, flex, ${CONFIG_SHELL-/bin/sh} ${srcdir}/../missing flex)
657 # Bison?
658 # The -L switch is so bison can find its skeleton file.
659 if test -f $srcdir/../bison/bison.simple; then
660   BISON='$(objdir)/../bison/bison -L $(srcdir)/../bison/'
661 else
662   AC_CHECK_PROG(BISON, bison, bison, ${CONFIG_SHELL-/bin/sh} ${srcdir}/../missing bison)
665 # --------------------
666 # Checks for C headers
667 # --------------------
669 AC_MSG_CHECKING(for GNU C library)
670 AC_CACHE_VAL(gcc_cv_glibc,
671 [AC_TRY_COMPILE(
672   [#include <features.h>],[
673 #if ! (defined __GLIBC__ || defined __GNU_LIBRARY__)
674 #error Not a GNU C library system
675 #endif], 
676   [gcc_cv_glibc=yes], 
677   gcc_cv_glibc=no)])
678 AC_MSG_RESULT($gcc_cv_glibc)
679 if test $gcc_cv_glibc = yes; then
680   AC_DEFINE(_GNU_SOURCE, 1, [Always define this when using the GNU C Library])
683 AC_HEADER_STDC
684 AC_HEADER_TIME
685 gcc_AC_HEADER_STDBOOL
686 gcc_AC_HEADER_STRING
687 AC_HEADER_SYS_WAIT
688 AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h time.h \
689                  fcntl.h unistd.h sys/file.h sys/time.h \
690                  sys/resource.h sys/param.h sys/times.h sys/stat.h \
691                  direct.h malloc.h langinfo.h ldfcn.h)
693 # Check for thread headers.
694 AC_CHECK_HEADER(thread.h, [have_thread_h=yes], [have_thread_h=])
695 AC_CHECK_HEADER(pthread.h, [have_pthread_h=yes], [have_pthread_h=])
697 # These tests can't be done till we know if we have limits.h.
698 gcc_AC_C_CHAR_BIT
699 AC_C_BIGENDIAN_CROSS
701 # --------
702 # UNSORTED
703 # --------
705 # Stage specific cflags for build.
706 stage1_cflags=
707 case $build in
708 vax-*-*)
709   if test x$GCC = xyes
710   then
711     stage1_cflags="-Wa,-J"
712   else
713     stage1_cflags="-J"
714   fi
715   ;;
716 powerpc-*-darwin*)
717   # The spiffy cpp-precomp chokes on some legitimate constructs in GCC
718   # sources; use -no-cpp-precomp to get to GNU cpp.
719   # Apple's GCC has bugs in designated initializer handling, so disable
720   # that too.
721   stage1_cflags="-no-cpp-precomp -DHAVE_DESIGNATED_INITIALIZERS=0"
722   ;;
723 esac
724 AC_SUBST(stage1_cflags)
726 # These libraries may be used by collect2.
727 # We may need a special search path to get them linked.
728 AC_CACHE_CHECK(for collect2 libraries, gcc_cv_collect2_libs,
729 [save_LIBS="$LIBS"
730 for libs in '' -lld -lmld \
731                 '-L/usr/lib/cmplrs/cc2.11 -lmld' \
732                 '-L/usr/lib/cmplrs/cc3.11 -lmld'
734         LIBS="$libs"
735         AC_TRY_LINK_FUNC(ldopen,
736                 [gcc_cv_collect2_libs="$libs"; break])
737 done
738 LIBS="$save_LIBS"
739 test -z "$gcc_cv_collect2_libs" && gcc_cv_collect2_libs='none required'])
740 case $gcc_cv_collect2_libs in
741         "none required")        ;;
742         *)      COLLECT2_LIBS=$gcc_cv_collect2_libs ;;
743 esac
744 AC_SUBST(COLLECT2_LIBS)
746 # When building Ada code on Alpha, we need exc_resume which is usually in
747 # -lexc.  So test for it.
748 save_LIBS="$LIBS"
749 LIBS=
750 AC_SEARCH_LIBS(exc_resume, exc)
751 GNAT_LIBEXC="$LIBS"
752 LIBS="$save_LIBS"
753 AC_SUBST(GNAT_LIBEXC)
755 # Some systems put ldexp and frexp in libm instead of libc; assume
756 # they're both in the same place.  jcf-dump needs them.
757 save_LIBS="$LIBS"
758 LIBS=
759 AC_SEARCH_LIBS(ldexp, m)
760 LDEXP_LIB="$LIBS"
761 LIBS="$save_LIBS"
762 AC_SUBST(LDEXP_LIB)
764 # See if the stage1 system preprocessor understands the ANSI C
765 # preprocessor stringification operator.  (Used by symcat.h.)
766 AC_C_STRINGIZE
768 # Use <inttypes.h> only if it exists,
769 # doesn't clash with <sys/types.h>, and declares intmax_t.
770 AC_MSG_CHECKING(for inttypes.h)
771 AC_CACHE_VAL(gcc_cv_header_inttypes_h,
772 [AC_TRY_COMPILE(
773   [#include <sys/types.h>
774 #include <inttypes.h>],
775   [intmax_t i = -1;],
776   [gcc_cv_header_inttypes_h=yes],
777   gcc_cv_header_inttypes_h=no)])
778 AC_MSG_RESULT($gcc_cv_header_inttypes_h)
779 if test $gcc_cv_header_inttypes_h = yes; then
780   AC_DEFINE(HAVE_INTTYPES_H, 1,
781         [Define if you have a working <inttypes.h> header file.])
784 dnl Disabled until we have a complete test for buggy enum bitfields.
785 dnl gcc_AC_C_ENUM_BF_UNSIGNED
787 AC_CHECK_FUNCS(times clock dup2 kill getrlimit setrlimit atoll atoq \
788         sysconf strsignal putc_unlocked fputc_unlocked fputs_unlocked \
789         fwrite_unlocked fprintf_unlocked getrusage nl_langinfo lstat \
790         scandir alphasort)
792 AC_CHECK_TYPE(ssize_t, int)
794 # Try to determine the array type of the second argument of getgroups
795 # for the target system (int or gid_t).
796 AC_TYPE_GETGROUPS
797 if test "${target}" = "${build}"; then
798   TARGET_GETGROUPS_T=$ac_cv_type_getgroups
799 else
800   case "${target}" in
801         # This condition may need some tweaking.  It should include all
802         # targets where the array type of the second argument of getgroups
803         # is int and the type of gid_t is not equivalent to int.
804         *-*-sunos* | *-*-ultrix*)
805                 TARGET_GETGROUPS_T=int
806                 ;;
807         *)
808                 TARGET_GETGROUPS_T=gid_t
809                 ;;
810   esac
812 AC_SUBST(TARGET_GETGROUPS_T)
814 gcc_AC_FUNC_PRINTF_PTR
816 case "${host}" in
817 *-*-uwin*)
818   AC_MSG_ERROR([
819 *** UWIN may not be used as a host platform because
820 *** linking with posix.dll is not allowed by the GNU GPL])
821   ;;
822 *-*-*vms*)
823   # Under VMS, vfork works very different than on Unix. The standard test 
824   # won't work, and it isn't easily adaptable. It makes more sense to
825   # just force it.
826   ac_cv_func_vfork_works=yes
827   ;;
828 esac
829 AC_FUNC_VFORK
830 AC_FUNC_MMAP_ANYWHERE
831 AC_FUNC_MMAP_FILE
833 AM_ICONV
835 # We will need to find libiberty.h and ansidecl.h
836 saved_CFLAGS="$CFLAGS"
837 CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include"
838 gcc_AC_CHECK_DECLS(getenv atol sbrk abort atof getcwd getwd \
839         strsignal putc_unlocked fputs_unlocked fwrite_unlocked \
840         fprintf_unlocked strstr errno vasprintf \
841         malloc realloc calloc free basename getopt clock, , ,[
842 #include "ansidecl.h"
843 #include "system.h"])
845 gcc_AC_CHECK_DECLS(getrlimit setrlimit getrusage, , ,[
846 #include "ansidecl.h"
847 #include "system.h"
848 #ifdef HAVE_SYS_RESOURCE_H
849 #include <sys/resource.h>
850 #endif
853 AC_TRY_COMPILE([
854 #include "ansidecl.h"
855 #include "system.h"
856 #ifdef HAVE_SYS_RESOURCE_H
857 #include <sys/resource.h>
858 #endif
859 ],[rlim_t l = 0;],,[AC_DEFINE([rlim_t],[long],
860 [Define to \`long' if <sys/resource.h> doesn't define.])])
862 gcc_AC_CHECK_DECLS(ldgetname, , ,[
863 #include "ansidecl.h"
864 #include "system.h"
865 #ifdef HAVE_LDFCN_H
866 #include <ldfcn.h>
867 #endif
870 gcc_AC_CHECK_DECLS(times, , ,[
871 #include "ansidecl.h"
872 #include "system.h"
873 #ifdef HAVE_SYS_TIMES_H
874 #include <sys/times.h>
875 #endif
878 # More time-related stuff.
879 AC_CACHE_CHECK(for struct tms, ac_cv_struct_tms, [
880 AC_TRY_COMPILE([
881 #include "ansidecl.h"
882 #include "system.h"
883 #ifdef HAVE_SYS_TIMES_H
884 #include <sys/times.h>
885 #endif
886 ], [struct tms tms;], ac_cv_struct_tms=yes, ac_cv_struct_tms=no)])
887 if test $ac_cv_struct_tms = yes; then
888   AC_DEFINE(HAVE_STRUCT_TMS, 1,
889   [Define if <sys/times.h> defines struct tms.])
892 # use gcc_cv_* here because this doesn't match the behavior of AC_CHECK_TYPE.
893 # revisit after autoconf 2.50.
894 AC_CACHE_CHECK(for clock_t, gcc_cv_type_clock_t, [
895 AC_TRY_COMPILE([
896 #include "ansidecl.h"
897 #include "system.h"
898 ], [clock_t x;], gcc_cv_type_clock_t=yes, gcc_cv_type_clock_t=no)])
899 if test $gcc_cv_type_clock_t = yes; then
900   AC_DEFINE(HAVE_CLOCK_T, 1,
901   [Define if <time.h> defines clock_t.])
904 AC_CACHE_CHECK(for uchar, gcc_cv_type_uchar,
905 [AC_TRY_COMPILE([
906 #include "ansidecl.h"
907 #include "system.h"
908 ], 
909 [if ((uchar *)0) return 0;
910  if (sizeof(uchar)) return 0;],
911 ac_cv_type_uchar=yes, ac_cv_type_uchar=no)])
912 if test $ac_cv_type_uchar = yes; then
913   AC_DEFINE(HAVE_UCHAR, 1,
914   [Define if <sys/types.h> defines \`uchar'.])
917 # Restore CFLAGS from before the gcc_AC_NEED_DECLARATIONS tests.
918 CFLAGS="$saved_CFLAGS"
920 gcc_AC_INITFINI_ARRAY
922 # mkdir takes a single argument on some systems. 
923 gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG
925 # File extensions
926 manext='.1'
927 objext='.o'
928 AC_SUBST(manext)
929 AC_SUBST(objext)
931 # With Setjmp/Longjmp based exception handling.
932 AC_ARG_ENABLE(sjlj-exceptions,
933 [  --enable-sjlj-exceptions
934                           arrange to use setjmp/longjmp exception handling],
935 [sjlj=`if test $enableval = yes; then echo 1; else echo 0; fi`
936 AC_DEFINE_UNQUOTED(CONFIG_SJLJ_EXCEPTIONS, $sjlj,
937   [Define 0/1 to force the choice for exception handling model.])])
939 AC_CHECK_LIB(unwind, main, use_libunwind_default=yes, use_libunwind_default=no)
940 # Use libunwind based exception handling.
941 AC_ARG_ENABLE(libunwind-exceptions,
942 [  --enable-libunwind-exceptions  force use libunwind for exceptions],
943 use_libunwind_exceptions=$enableval,
944 use_libunwind_exceptions=$use_libunwind_default)
945 if test x"$use_libunwind_exceptions" = xyes; then
946    AC_DEFINE(USE_LIBUNWIND_EXCEPTIONS, 1,
947         [Define if gcc should use -lunwind.])
950 # --------------------------------------------------------
951 # Build, host, and target specific configuration fragments
952 # --------------------------------------------------------
954 target_gtfiles=
955 build_xm_file=
956 build_xm_defines=
957 build_install_headers_dir=install-headers-tar
958 build_exeext=
959 host_xm_file=
960 host_xm_defines=
961 host_xmake_file=
962 host_truncate_target=
963 host_exeext=
965 # Decode the host machine, then the target machine.
966 # For the host machine, we save the xm_file variable as host_xm_file;
967 # then we decode the target machine and forget everything else
968 # that came from the host machine.
969 for machine in $build $host $target; do
970         . ${srcdir}/config.gcc
971 done
973 extra_objs="${host_extra_objs} ${extra_objs}"
975 # Default the target-machine variables that were not explicitly set.
976 if test x"$tm_file" = x
977 then tm_file=$cpu_type/$cpu_type.h; fi
979 if test x"$extra_headers" = x
980 then extra_headers=; fi
982 if test x$md_file = x
983 then md_file=$cpu_type/$cpu_type.md; fi
985 if test x$out_file = x
986 then out_file=$cpu_type/$cpu_type.c; fi
988 if test x"$tmake_file" = x
989 then tmake_file=$cpu_type/t-$cpu_type
992 if test x"$dwarf2" = xyes
993 then tm_file="$tm_file tm-dwarf2.h"
996 # Say what files are being used for the output code and MD file.
997 echo "Using \`$srcdir/config/$out_file' for machine-specific logic."
998 echo "Using \`$srcdir/config/$md_file' as machine description file."
1000 # If any of the xm_file variables contain nonexistent files, warn
1001 # about them and drop them.
1004 for x in $build_xm_file; do
1005   if    test -f $srcdir/config/$x
1006   then      bx="$bx $x"
1007   else      AC_MSG_WARN($srcdir/config/$x does not exist.)
1008   fi
1009 done
1010 build_xm_file="$bx"
1013 for x in $host_xm_file; do
1014   if    test -f $srcdir/config/$x
1015   then      hx="$hx $x"
1016   else      AC_MSG_WARN($srcdir/config/$x does not exist.)
1017   fi
1018 done
1019 host_xm_file="$hx"
1022 for x in $xm_file; do
1023   if    test -f $srcdir/config/$x
1024   then      tx="$tx $x"
1025   else      AC_MSG_WARN($srcdir/config/$x does not exist.)
1026   fi
1027 done
1028 xm_file="$tx"
1030 count=a
1031 for f in $tm_file; do
1032         count=${count}x
1033 done
1034 if test $count = ax; then
1035         echo "Using \`$srcdir/config/$tm_file' as target machine macro file."
1036 else
1037         echo "Using the following target machine macro files:"
1038         for f in $tm_file; do
1039                 echo "  $srcdir/config/$f"
1040         done
1043 if test x$need_64bit_hwint = xyes; then
1044         AC_DEFINE(NEED_64BIT_HOST_WIDE_INT, 1,
1045 [Define to 1 if HOST_WIDE_INT must be 64 bits wide (see hwint.h).])
1048 count=a
1049 for f in $host_xm_file; do
1050         count=${count}x
1051 done
1052 if test $count = a; then
1053         :
1054 elif test $count = ax; then
1055         echo "Using \`$srcdir/config/$host_xm_file' as host machine macro file."
1056 else
1057         echo "Using the following host machine macro files:"
1058         for f in $host_xm_file; do
1059                 echo "  $srcdir/config/$f"
1060         done
1062 echo "Using ${out_host_hook_obj} for host machine hooks."
1064 if test "$host_xm_file" != "$build_xm_file"; then
1065         count=a
1066         for f in $build_xm_file; do
1067                 count=${count}x
1068         done
1069         if test $count = a; then
1070                 :
1071         elif test $count = ax; then
1072                 echo "Using \`$srcdir/config/$build_xm_file' as build machine macro file."
1073         else
1074                 echo "Using the following build machine macro files:"
1075                 for f in $build_xm_file; do
1076                         echo "  $srcdir/config/$f"
1077                 done
1078         fi
1081 if test x$thread_file = x; then
1082         if test x$target_thread_file != x; then
1083                 thread_file=$target_thread_file
1084         else
1085                 thread_file='single'
1086         fi
1089 # Look for a file containing extra machine modes.
1090 if test -n "$extra_modes" && test -f $srcdir/config/$extra_modes; then
1091   extra_modes_file='$(srcdir)'/config/${extra_modes}
1092   AC_SUBST(extra_modes_file)
1093   AC_DEFINE_UNQUOTED(EXTRA_MODES_FILE, "$extra_modes",
1094   [Define to the name of a file containing a list of extra machine modes
1095    for this architecture.])
1096   AC_DEFINE(EXTRA_CC_MODES, 1,
1097   [Define if the target architecture needs extra machine modes to represent
1098    the results of comparisons.])
1101 # auto-host.h is the file containing items generated by autoconf and is
1102 # the first file included by config.h.
1103 # If host=build, it is correct to have bconfig include auto-host.h
1104 # as well.  If host!=build, we are in error and need to do more 
1105 # work to find out the build config parameters.
1106 if test x$host = x$build
1107 then
1108         build_auto=auto-host.h
1109         FORBUILD=..
1110 else
1111         # We create a subdir, then run autoconf in the subdir.
1112         # To prevent recursion we set host and build for the new
1113         # invocation of configure to the build for this invocation
1114         # of configure. 
1115         tempdir=build.$$
1116         rm -rf $tempdir
1117         mkdir $tempdir
1118         cd $tempdir
1119         case ${srcdir} in
1120         /* | [A-Za-z]:[\\/]* ) realsrcdir=${srcdir};;
1121         *) realsrcdir=../${srcdir};;
1122         esac
1123         saved_CFLAGS="${CFLAGS}"
1124         CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
1125         ${realsrcdir}/configure \
1126                 --target=$target_alias --host=$build_alias --build=$build_alias
1127         CFLAGS="${saved_CFLAGS}"
1129         # We just finished tests for the build machine, so rename
1130         # the file auto-build.h in the gcc directory.
1131         mv auto-host.h ../auto-build.h
1132         cd ..
1133         rm -rf $tempdir
1134         build_auto=auto-build.h
1135         FORBUILD=../build-$build_alias
1137 AC_SUBST(FORBUILD)
1139 tm_file="${tm_file} defaults.h"
1140 tm_p_file="${tm_p_file} tm-preds.h"
1141 host_xm_file="auto-host.h ansidecl.h ${host_xm_file}"
1142 build_xm_file="${build_auto} ansidecl.h ${build_xm_file}"
1143 # We don't want ansidecl.h in target files, write code there in ISO/GNU C.
1144 # put this back in temporarily.
1145 xm_file="ansidecl.h ${xm_file}"
1147 # --------
1148 # UNSORTED
1149 # --------
1151 # Truncate the target if necessary
1152 if test x$host_truncate_target != x; then
1153         target=`echo $target | sed -e 's/\(..............\).*/\1/'`
1156 # Get the version trigger filename from the toplevel
1157 if test "${with_gcc_version_trigger+set}" = set; then
1158         gcc_version_trigger=$with_gcc_version_trigger
1159 else
1160         gcc_version_trigger=${srcdir}/version.c
1162 changequote(,)dnl
1163 gcc_version_full=`grep version_string ${gcc_version_trigger} | sed -e 's/.*"\([^"]*\)".*/\1/'`
1164 gcc_version=`echo ${gcc_version_full} | sed -e 's/\([^ ]*\) .*/\1/'`
1166 # Compile in configure arguments.
1167 if test -f configargs.h ; then
1168         # Being re-configured.
1169         gcc_config_arguments=`grep configuration_arguments configargs.h | sed -e 's/.*"\([^"]*\)".*/\1/'`
1170         gcc_config_arguments="$gcc_config_arguments : (reconfigured) $TOPLEVEL_CONFIGURE_ARGUMENTS"
1171 else
1172         gcc_config_arguments="$TOPLEVEL_CONFIGURE_ARGUMENTS"
1174 cat > configargs.h <<EOF
1175 /* Generated automatically. */
1176 static const char configuration_arguments[] = "$gcc_config_arguments";
1177 static const char thread_model[] = "$thread_file";
1179 changequote([,])dnl
1181 # Internationalization
1182 PACKAGE=gcc
1183 VERSION="$gcc_version"
1184 AC_SUBST(PACKAGE)
1185 AC_SUBST(VERSION)
1187 # Enable NLS support by default
1188 AC_ARG_ENABLE(nls,
1189   [  --enable-nls            use Native Language Support (default)],
1190   , enable_nls=yes)
1192 # if cross compiling, disable NLS support.
1193 # It's not worth the trouble, at least for now.
1195 if test "${build}" != "${host}" && test "x$enable_nls" = "xyes"; then
1196   AC_MSG_WARN(Disabling NLS support for canadian cross compiler.)
1197   enable_nls=no
1200 AM_GNU_GETTEXT
1202 # Windows32 Registry support for specifying GCC installation paths.
1203 AC_ARG_ENABLE(win32-registry,
1204 [  --disable-win32-registry
1205                           disable lookup of installation paths in the
1206                           Registry on Windows hosts
1207   --enable-win32-registry enable registry lookup (default)
1208   --enable-win32-registry=KEY
1209                           use KEY instead of GCC version as the last portion
1210                           of the registry key],,)
1211 case $host_os in
1212         win32 | pe | cygwin* | mingw32* | uwin*)
1213 AC_MSG_CHECKING(whether windows registry support is requested)
1214 if test "x$enable_win32_registry" != xno; then
1215   AC_DEFINE(ENABLE_WIN32_REGISTRY, 1,
1216 [Define to 1 if installation paths should be looked up in Windows32
1217    Registry. Ignored on non windows32 hosts.])
1218   AC_MSG_RESULT(yes)
1219   AC_SEARCH_LIBS(RegOpenKeyExA, advapi32)
1220 else
1221   AC_MSG_RESULT(no)
1224 # Check if user specified a different registry key.
1225 case "x${enable_win32_registry}" in
1226 x | xyes)
1227   # default.
1228   gcc_cv_win32_registry_key="$VERSION"
1229   ;;
1230 xno)
1231   # no registry lookup.
1232   gcc_cv_win32_registry_key=''
1233   ;;
1235   # user-specified key.
1236   gcc_cv_win32_registry_key="$enable_win32_registry"
1237   ;;
1238 esac
1240 if test "x$enable_win32_registry" != xno; then
1241   AC_MSG_CHECKING(registry key on windows hosts)
1242   AC_DEFINE_UNQUOTED(WIN32_REGISTRY_KEY, "$gcc_cv_win32_registry_key",
1243         [Define to be the last portion of registry key on windows hosts.])
1244   AC_MSG_RESULT($gcc_cv_win32_registry_key)
1247 esac
1249 # Get an absolute path to the GCC top-level source directory
1250 holddir=`${PWDCMD-pwd}`
1251 cd $srcdir
1252 topdir=`${PWDCMD-pwd}`
1253 cd $holddir
1255 # Conditionalize the makefile for this host machine.
1256 # Make-host contains the concatenation of all host makefile fragments
1257 # [there can be more than one].  This file is built by configure.frag.
1258 host_overrides=Make-host
1259 dep_host_xmake_file=
1260 for f in .. ${host_xmake_file}
1262         if test -f ${srcdir}/config/$f
1263         then
1264                 dep_host_xmake_file="${dep_host_xmake_file} ${srcdir}/config/$f"
1265         fi
1266 done
1268 # Conditionalize the makefile for this target machine.
1269 # Make-target contains the concatenation of all host makefile fragments
1270 # [there can be more than one].  This file is built by configure.frag.
1271 target_overrides=Make-target
1272 dep_tmake_file=
1273 for f in .. ${tmake_file}
1275         if test -f ${srcdir}/config/$f
1276         then
1277                 dep_tmake_file="${dep_tmake_file} ${srcdir}/config/$f"
1278         fi
1279 done
1281 symbolic_link='ln -s'
1283 # If the host doesn't support symlinks, modify CC in
1284 # FLAGS_TO_PASS so CC="stage1/xgcc -Bstage1/" works.
1285 # Otherwise, we can use "CC=$(CC)".
1286 rm -f symtest.tem
1287 if $symbolic_link $srcdir/gcc.c symtest.tem 2>/dev/null
1288 then
1289         cc_set_by_configure="\$(CC)"
1290         quoted_cc_set_by_configure="\$(CC)"
1291         stage_prefix_set_by_configure="\$(STAGE_PREFIX)"
1292         quoted_stage_prefix_set_by_configure="\$(STAGE_PREFIX)"
1293 else
1294         rm -f symtest.tem
1295         if cp -p $srcdir/gcc.c symtest.tem 2>/dev/null
1296         then
1297                 symbolic_link="cp -p"
1298         else
1299                 symbolic_link="cp"
1300         fi
1301         cc_set_by_configure="\`case '\$(CC)' in stage*) echo '\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\$(CC)';; esac\`"
1302         quoted_cc_set_by_configure="\\\`case '\\\$(CC)' in stage*) echo '\\\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\\\$(CC)';; esac\\\`"
1303         stage_prefix_set_by_configure="\`case '\$(STAGE_PREFIX)' in stage*) echo '\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\$(STAGE_PREFIX)';; esac\`"
1304         quoted_stage_prefix_set_by_configure="\\\`case '\\\$(STAGE_PREFIX)' in stage*) echo '\\\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\\\$(STAGE_PREFIX)';; esac\\\`"
1306 rm -f symtest.tem
1308 out_object_file=`basename $out_file .c`.o
1310 tm_file_list=
1311 for f in $tm_file; do
1312   case $f in
1313     ansidecl.h )
1314        tm_file_list="${tm_file_list} \$(srcdir)/../include/ansidecl.h" ;;
1315     defaults.h )
1316        tm_file_list="${tm_file_list} \$(srcdir)/$f" ;;
1317     *) tm_file_list="${tm_file_list} \$(srcdir)/config/$f" ;;
1318   esac
1319 done
1321 tm_p_file_list=
1322 for f in $tm_p_file; do
1323   case $f in
1324     tm-preds.h )
1325        tm_p_file_list="${tm_p_file_list} $f" ;;
1326     *) tm_p_file_list="${tm_p_file_list} \$(srcdir)/config/$f" ;;
1327   esac
1328 done
1330 host_xm_file_list=
1331 for f in $host_xm_file; do
1332   case $f in
1333     ansidecl.h )
1334        host_xm_file_list="${host_xm_file_list} \$(srcdir)/../include/ansidecl.h" ;;
1335     auto-host.h )
1336        host_xm_file_list="${host_xm_file_list} $f" ;;
1337     defaults.h )
1338        host_xm_file_list="${host_xm_file_list} \$(srcdir)/$f" ;;
1339     *) host_xm_file_list="${host_xm_file_list} \$(srcdir)/config/$f" ;;
1340   esac
1341 done
1343 build_xm_file_list=
1344 for f in $build_xm_file; do
1345   case $f in
1346     ansidecl.h )
1347        build_xm_file_list="${build_xm_file_list} \$(srcdir)/../include/ansidecl.h" ;;
1348     auto-build.h | auto-host.h )
1349        build_xm_file_list="${build_xm_file_list} $f" ;;
1350     defaults.h )
1351        host_xm_file_list="${host_xm_file_list} \$(srcdir)/$f" ;;
1352     *) build_xm_file_list="${build_xm_file_list} \$(srcdir)/config/$f" ;;
1353   esac
1354 done
1356 # Define macro CROSS_COMPILE in compilation if this is a cross-compiler.
1357 # Also use all.cross instead of all.internal and adjust SYSTEM_HEADER_DIR.
1358 CROSS=                                          AC_SUBST(CROSS)
1359 ALL=all.internal                                AC_SUBST(ALL)
1360 SYSTEM_HEADER_DIR='$(NATIVE_SYSTEM_HEADER_DIR)' AC_SUBST(SYSTEM_HEADER_DIR)
1361 if test x$host != x$target
1362 then
1363         CROSS="-DCROSS_COMPILE"
1364         ALL=all.cross
1365         SYSTEM_HEADER_DIR='$(CROSS_SYSTEM_HEADER_DIR)'
1366         case "$host","$target" in
1367             i?86-*-*,x86_64-*-* \
1368             | powerpc*-*-*,powerpc64*-*-*)
1369                 CROSS="$CROSS -DNATIVE_CROSS" ;;
1370         esac
1373 # If this is a cross-compiler that does not
1374 # have its own set of headers then define
1375 # inhibit_libc
1377 # If this is using newlib, then define inhibit_libc in LIBGCC2_CFLAGS.
1378 # This prevents libgcc2 from containing any code which requires libc
1379 # support.
1380 inhibit_libc=
1381 if { test x$host != x$target && test "x$with_headers" = x &&
1382      test "x$with_sysroot" = x ; } || test x$with_newlib = xyes ; then
1383        inhibit_libc=-Dinhibit_libc
1385 AC_SUBST(inhibit_libc)
1387 # When building gcc with a cross-compiler, we need to adjust things so
1388 # that the generator programs are still built with the native compiler.
1389 # Also, we cannot run fixincludes or fix-header.
1391 # These are the normal (build=host) settings:
1392 BUILD_PREFIX=                   AC_SUBST(BUILD_PREFIX)
1393 BUILD_PREFIX_1=ignore-          AC_SUBST(BUILD_PREFIX_1)
1394 BUILD_CC='$(CC)'                AC_SUBST(BUILD_CC)
1395 BUILD_CFLAGS='$(ALL_CFLAGS)'    AC_SUBST(BUILD_CFLAGS)
1397 STMP_FIXINC=stmp-fixinc         AC_SUBST(STMP_FIXINC)
1398 STMP_FIXPROTO=stmp-fixproto     AC_SUBST(STMP_FIXPROTO)
1400 # And these apply if build != host.
1401 if test x$build != x$host
1402 then
1403     BUILD_PREFIX=build-
1404     BUILD_PREFIX_1=build-
1405     BUILD_CC='$(CC_FOR_BUILD)'
1406     BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD) $(XCFLAGS)'
1408     STMP_FIXINC=
1409     STMP_FIXPROTO=
1412 # Expand extra_headers to include complete path.
1413 # This substitutes for lots of t-* files.
1414 extra_headers_list=
1415 if test "x$extra_headers" = x
1416 then true
1417 else
1418         # Prepend ${srcdir}/config/${cpu_type}/ to every entry in extra_headers.
1419         for file in $extra_headers;
1420         do
1421                 extra_headers_list="${extra_headers_list} \$(srcdir)/config/${cpu_type}/${file}"
1422         done
1425 # Add a definition of USE_COLLECT2 if system wants one.
1426 case $use_collect2 in
1427   no) use_collect2= ;;
1428   "") ;;
1429   *) 
1430     host_xm_defines="${host_xm_defines} USE_COLLECT2"
1431     xm_defines="${xm_defines} USE_COLLECT2"
1432     ;;
1433 esac
1435 # If we have gas in the build tree, make a link to it.
1436 if test -f ../gas/Makefile; then
1437         rm -f as; $symbolic_link ../gas/as-new$host_exeext as$host_exeext 2>/dev/null
1440 # If we have nm and objdump in the build tree, make a link to them.
1441 if test -f ../binutils/Makefile; then
1442         rm -f nm; $symbolic_link ../binutils/nm-new$host_exeext nm$host_exeext 2>/dev/null
1443         rm -f objdump; $symbolic_link ../binutils/objdump$host_exeext objdump$host_exeext 2>/dev/null
1446 # If we have ld in the build tree, make a link to it.
1447 if test -f ../ld/Makefile; then
1448         rm -f collect-ld; $symbolic_link ../ld/ld-new$host_exeext collect-ld$host_exeext 2>/dev/null
1451 # Identify the assembler which will work hand-in-glove with the newly
1452 # built GCC, so that we can examine its features.  This is the assembler
1453 # which will be driven by the driver program.
1455 # If build != host, and we aren't building gas in-tree, we identify a
1456 # build->target assembler and hope that it will have the same features
1457 # as the host->target assembler we'll be using.
1458 AC_MSG_CHECKING(what assembler to use)
1459 in_tree_gas=no
1460 gcc_cv_as=
1461 gcc_cv_gas_major_version=
1462 gcc_cv_gas_minor_version=
1463 gcc_cv_as_gas_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/gas
1464 if test -x "$DEFAULT_ASSEMBLER"; then
1465         gcc_cv_as="$DEFAULT_ASSEMBLER"
1466 elif test -x "$AS"; then
1467         gcc_cv_as="$AS"
1468 elif test -x as$host_exeext; then
1469         # Build using assembler in the current directory.
1470         gcc_cv_as=./as$host_exeext
1471 elif test -f $gcc_cv_as_gas_srcdir/configure.in \
1472      && test -f ../gas/Makefile; then
1473   # Single tree build which includes gas.
1474   in_tree_gas=yes
1475   _gcc_COMPUTE_GAS_VERSION
1478 if test "x$gcc_cv_as" = x; then
1479         # Search the same directories that the installed compiler will
1480         # search.  Else we may find the wrong assembler and lose.  If we
1481         # do not find a suitable assembler binary, then try the user's
1482         # path.
1483         #
1484         # Also note we have to check MD_EXEC_PREFIX before checking the
1485         # user's path.  Unfortunately, there is no good way to get at the
1486         # value of MD_EXEC_PREFIX here.  So we do a brute force search
1487         # through all the known MD_EXEC_PREFIX values.  Ugh.  This needs
1488         # to be fixed as part of the make/configure rewrite too.
1490         if test "x$exec_prefix" = xNONE; then
1491                 if test "x$prefix" = xNONE; then
1492                         test_prefix=/usr/local
1493                 else
1494                         test_prefix=$prefix
1495                 fi
1496         else
1497                 test_prefix=$exec_prefix
1498         fi
1500         # If the loop below does not find an assembler, then use whatever
1501         # one we can find in the users's path.
1502         # user's path.
1503         if test "x$program_prefix" != xNONE; then
1504                 gcc_cv_as=${program_prefix}as$host_exeext
1505         else
1506                 gcc_cv_as=`echo as | sed ${program_transform_name}`$host_exeext
1507         fi
1509         test_dirs="$test_prefix/lib/gcc-lib/$target_alias/$gcc_version \
1510                    $test_prefix/lib/gcc-lib/$target_alias \
1511                    /usr/lib/gcc/$target_alias/$gcc_version \
1512                    /usr/lib/gcc/$target_alias \
1513                    $test_prefix/$target_alias/bin/$target_alias/$gcc_version \
1514                    $test_prefix/$target_alias/bin"
1516         if test x$host = x$target; then
1517             test_dirs="$test_dirs \
1518                    /usr/libexec \
1519                    /usr/ccs/gcc \
1520                    /usr/ccs/bin \
1521                    /udk/usr/ccs/bin \
1522                    /bsd43/usr/lib/cmplrs/cc \
1523                    /usr/cross64/usr/bin \
1524                    /usr/lib/cmplrs/cc \
1525                    /sysv/usr/lib/cmplrs/cc \
1526                    /svr4/usr/lib/cmplrs/cc \
1527                    /usr/bin"
1528         fi
1530         for dir in $test_dirs; do
1531                 if test -x $dir/as$host_exeext; then
1532                         gcc_cv_as=$dir/as$host_exeext
1533                         break;
1534                 fi
1535         done
1537 case $in_tree_gas in
1538   yes)
1539     AC_MSG_RESULT("newly built gas")
1540     ;;
1541   no)
1542     AC_MSG_RESULT($gcc_cv_as)
1543     ;;
1544 esac
1546 # Identify the linker which will work hand-in-glove with the newly
1547 # built GCC, so that we can examine its features.  This is the linker
1548 # which will be driven by the driver program.
1550 # If build != host, and we aren't building gas in-tree, we identify a
1551 # build->target linker and hope that it will have the same features
1552 # as the host->target linker we'll be using.
1553 AC_MSG_CHECKING(what linker to use)
1554 in_tree_ld=no
1555 gcc_cv_ld=
1556 gcc_cv_gld_major_version=
1557 gcc_cv_gld_minor_version=
1558 gcc_cv_ld_gld_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/ld
1559 gcc_cv_ld_bfd_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/bfd
1560 if test -x "$DEFAULT_LINKER"; then
1561         gcc_cv_ld="$DEFAULT_LINKER"
1562 elif test -x "$LD"; then
1563         gcc_cv_ld="$LD"
1564 elif test -x ld$host_exeext; then
1565         # Build using linker in the current directory.
1566         gcc_cv_ld=./ld$host_exeext
1567 elif test -f $gcc_cv_ld_gld_srcdir/configure.in \
1568      && test -f ../ld/Makefile; then
1569         # Single tree build which includes ld.
1570         in_tree_ld=yes
1571         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
1572         do
1573 changequote(,)dnl
1574                 gcc_cv_gld_version=`grep '^VERSION=[0-9]*\.[0-9]*' $f`
1575 changequote([,])dnl
1576                 if test x$gcc_cv_gld_version != x; then
1577                         break
1578                 fi
1579         done
1580 changequote(,)dnl
1581         gcc_cv_gld_major_version=`expr "$gcc_cv_gld_version" : "VERSION=\([0-9]*\)"`
1582         gcc_cv_gld_minor_version=`expr "$gcc_cv_gld_version" : "VERSION=[0-9]*\.\([0-9]*\)"`
1583 changequote([,])dnl
1586 if test "x$gcc_cv_ld" = x; then
1587         # Search the same directories that the installed compiler will
1588         # search.  Else we may find the wrong linker and lose.  If we
1589         # do not find a suitable linker binary, then try the user's
1590         # path.
1591         #
1592         # Also note we have to check MD_EXEC_PREFIX before checking the
1593         # user's path.  Unfortunately, there is no good way to get at the
1594         # value of MD_EXEC_PREFIX here.  So we do a brute force search
1595         # through all the known MD_EXEC_PREFIX values.  Ugh.  This needs
1596         # to be fixed as part of the make/configure rewrite too.
1598         if test "x$exec_prefix" = xNONE; then
1599                 if test "x$prefix" = xNONE; then
1600                         test_prefix=/usr/local
1601                 else
1602                         test_prefix=$prefix
1603                 fi
1604         else
1605                 test_prefix=$exec_prefix
1606         fi
1608         # If the loop below does not find an linker, then use whatever
1609         # one we can find in the users's path.
1610         # user's path.
1611         if test "x$program_prefix" != xNONE; then
1612                 gcc_cv_ld=${program_prefix}ld$host_exeext
1613         else
1614                 gcc_cv_ld=`echo ld | sed ${program_transform_name}`$host_exeext
1615         fi
1617         test_dirs="$test_prefix/lib/gcc-lib/$target_alias/$gcc_version \
1618                    $test_prefix/lib/gcc-lib/$target_alias \
1619                    /usr/lib/gcc/$target_alias/$gcc_version \
1620                    /usr/lib/gcc/$target_alias \
1621                    $test_prefix/$target_alias/bin/$target_alias/$gcc_version \
1622                    $test_prefix/$target_alias/bin"
1624         if test x$host = x$target; then
1625             test_dirs="$test_dirs \
1626                    /usr/libexec \
1627                    /usr/ccs/gcc \
1628                    /usr/ccs/bin \
1629                    /udk/usr/ccs/bin \
1630                    /bsd43/usr/lib/cmplrs/cc \
1631                    /usr/cross64/usr/bin \
1632                    /usr/lib/cmplrs/cc \
1633                    /sysv/usr/lib/cmplrs/cc \
1634                    /svr4/usr/lib/cmplrs/cc \
1635                    /usr/bin"
1636         fi
1638         for dir in $test_dirs; do
1639                 if test -x $dir/ld$host_exeext; then
1640                         gcc_cv_ld=$dir/ld$host_exeext
1641                         break;
1642                 fi
1643         done
1645 case $in_tree_ld in
1646   yes)
1647     AC_MSG_RESULT("newly built ld")
1648     ;;
1649   no)
1650     AC_MSG_RESULT($gcc_cv_ld)
1651     ;;
1652 esac
1654 # Figure out what nm we will be using.
1655 AC_MSG_CHECKING(what nm to use)
1656 if test -x nm$host_exeext; then
1657         gcc_cv_nm=./nm$host_exeext
1658 elif test "x$program_prefix" != xNONE; then
1659         gcc_cv_nm=${program_prefix}nm$host_exeext
1660 else
1661         gcc_cv_nm=`echo nm | sed ${program_transform_name}`$host_exeext
1663 AC_MSG_RESULT($gcc_cv_nm)
1665 # Figure out what objdump we will be using.
1666 AC_MSG_CHECKING(what objdump to use)
1667 if test -x objdump$host_exeext; then
1668         gcc_cv_objdump=./objdump$host_exeext
1669 elif test "x$program_prefix" != xNONE; then
1670         gcc_cv_objdump=${program_prefix}objdump$host_exeext
1671 else
1672         gcc_cv_objdump=`echo objdump | sed ${program_transform_name}`$host_exeext
1674 AC_MSG_RESULT($gcc_cv_objdump)
1676 # Figure out what assembler alignment features are present.
1677 AC_MSG_CHECKING(assembler alignment features)
1678 gcc_cv_as_alignment_features=none
1679 if test $in_tree_gas = yes; then
1680   # Gas version 2.6 and later support for .balign and .p2align.
1681   gcc_GAS_VERSION_GTE_IFELSE(2,6,0,[
1682     gcc_cv_as_alignment_features=".balign and .p2align"
1683     AC_DEFINE(HAVE_GAS_BALIGN_AND_P2ALIGN)
1684   ])
1685   # Gas version 2.8 and later support specifying the maximum
1686   # bytes to skip when using .p2align.
1687   gcc_GAS_VERSION_GTE_IFELSE(2,8,0,[
1688     gcc_cv_as_alignment_features=".p2align including maximum skip"
1689     AC_DEFINE(HAVE_GAS_MAX_SKIP_P2ALIGN)
1690   ])
1691 elif test x$gcc_cv_as != x; then
1692         # Check if we have .balign and .p2align
1693         echo ".balign  4" > conftest.s
1694         echo ".p2align  2" >> conftest.s
1695         if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1696                 gcc_cv_as_alignment_features=".balign and .p2align"
1697                 AC_DEFINE(HAVE_GAS_BALIGN_AND_P2ALIGN)
1698         fi
1699         rm -f conftest.s conftest.o
1700         # Check if specifying the maximum bytes to skip when
1701         # using .p2align is supported.
1702         echo ".p2align 4,,7" > conftest.s
1703         if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1704                 gcc_cv_as_alignment_features=".p2align including maximum skip"
1705                 AC_DEFINE(HAVE_GAS_MAX_SKIP_P2ALIGN)
1706         fi
1707         rm -f conftest.s conftest.o
1709 AC_MSG_RESULT($gcc_cv_as_alignment_features)
1711 AC_MSG_CHECKING(assembler subsection support)
1712 gcc_cv_as_subsections=no
1713 if test $in_tree_gas = yes ; then
1714   gcc_GAS_VERSION_GTE_IFELSE(2,9,0,[
1715     if grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
1716       gcc_cv_as_subsections="working .subsection -1"
1717     fi
1718   ])
1719 elif test x$gcc_cv_as != x; then
1720         # Check if we have .subsection
1721         echo ".subsection 1" > conftest.s
1722         if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1723                 gcc_cv_as_subsections=".subsection"
1724                 if test x$gcc_cv_nm != x; then
1725                         cat > conftest.s <<EOF
1726 conftest_label1: .word 0
1727 .subsection -1
1728 conftest_label2: .word 0
1729 .previous
1731                         if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1732                                 $gcc_cv_nm conftest.o | grep conftest_label1 > conftest.nm1
1733                                 $gcc_cv_nm conftest.o | grep conftest_label2 | sed -e 's/label2/label1/' > conftest.nm2
1734                                 if cmp conftest.nm1 conftest.nm2 > /dev/null 2>&1; then
1735                                         :
1736                                 else
1737                                         gcc_cv_as_subsections="working .subsection -1"
1738                                 fi
1739                         fi
1740                 fi
1741         fi
1742         rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1744 if test x"$gcc_cv_as_subsections" = x"working .subsection -1"; then
1745         AC_DEFINE(HAVE_GAS_SUBSECTION_ORDERING, 1,
1746 [Define if your assembler supports .subsection and .subsection -1 starts
1747    emitting at the beginning of your section.])
1749 AC_MSG_RESULT($gcc_cv_as_subsections)
1751 AC_MSG_CHECKING(assembler weak support)
1752 gcc_cv_as_weak=no
1753 if test $in_tree_gas = yes ; then
1754   gcc_GAS_VERSION_GTE_IFELSE(2,2,0,[
1755     gcc_cv_as_weak="yes"
1756   ])
1757 elif test x$gcc_cv_as != x; then
1758         # Check if we have .weak
1759         echo "  .weak foobar" > conftest.s
1760         if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1761                 gcc_cv_as_weak="yes"
1762         fi
1763         rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1765 if test x"$gcc_cv_as_weak" = xyes; then
1766         AC_DEFINE(HAVE_GAS_WEAK, 1, [Define if your assembler supports .weak.])
1768 AC_MSG_RESULT($gcc_cv_as_weak)
1770 AC_MSG_CHECKING(assembler hidden support)
1771 gcc_cv_as_hidden=no
1772 if test $in_tree_gas = yes ; then
1773   gcc_GAS_VERSION_GTE_IFELSE(2,12,1,[
1774     if grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
1775       gcc_cv_as_hidden="yes"
1776     fi
1777   ])
1778 elif test x$gcc_cv_as != x; then
1779         # Check if we have .hidden
1780         echo "  .hidden foobar" > conftest.s
1781         echo "foobar:" >> conftest.s
1782         if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1783                 gcc_cv_as_hidden="yes"
1784         fi
1785         rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1787         # GNU LD versions before 2.12.1 have buggy support for STV_HIDDEN.
1788         # This is irritatingly difficult to feature test for.  Look for 
1789         # the date string after the version number.
1790         ld_ver=`$gcc_cv_ld --version 2>/dev/null | head -1`
1791         if echo "$ld_ver" | grep GNU > /dev/null; then
1792 changequote(,)dnl
1793                 ld_vers=`echo $ld_ver | sed -n 's,^.*[  ]\([0-9][0-9]*\.[0-9][0-9]*\(\|\.[0-9][0-9]*\)\)\([     ].*\|\)$,\1,p'`
1794                 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'`
1795                 if test 0"$ld_date" -lt 20020404; then
1796                         if test -n "$ld_date"; then
1797                                 # If there was date string, but was earlier than 2002-04-04, fail
1798                                 gcc_cv_as_hidden="no"
1799                         elif test -z "$ld_vers"; then
1800                                 # If there was no date string nor ld version number, something is wrong
1801                                 gcc_cv_as_hidden="no"
1802                         else
1803                                 ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'`
1804                                 ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'`
1805                                 ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
1806                                 test -z "$ld_vers_patch" && ld_vers_patch=0
1807                                 if test "$ld_vers_major" -lt 2; then
1808                                         gcc_cv_as_hidden="no"
1809                                 elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 12; then
1810                                         gcc_cv_as_hidden="no"
1811                                 elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -eq 12 \
1812                                           -a "$ld_vers_patch" -eq 0; then
1813                                         gcc_cv_as_hidden="no"
1814                                 fi
1815                         fi
1816                 fi
1817 changequote([,])dnl
1818         fi
1820 if test x"$gcc_cv_as_hidden" = xyes; then
1821         AC_DEFINE(HAVE_GAS_HIDDEN, 1,
1822                 [Define if your assembler supports .hidden.])
1824 AC_MSG_RESULT($gcc_cv_as_hidden)
1825 libgcc_visibility=$gcc_cv_as_hidden
1826 case "$target" in
1827   mips-sgi-irix6*)
1828     if test x"$gnu_ld_flag" = x"no"; then
1829       # Even if using gas with .hidden support, the resulting object files
1830       # cannot be linked with the IRIX 6 O32 linker.  With the N32 and
1831       # N64 linkers, the problem is that the linker refuses to accept
1832       # -call_shared (passed by default to the linker) and -r (used to
1833       # link the object file generated without .hidden directives with
1834       # one that hides symbols), so we also lose.
1835       libgcc_visibility=no
1836     fi
1837     ;;
1838 esac
1839 AC_SUBST(libgcc_visibility)
1841 AC_MSG_CHECKING(assembler leb128 support)
1842 gcc_cv_as_leb128=no
1843 if test $in_tree_gas = yes ; then
1844   gcc_GAS_VERSION_GTE_IFELSE(2,11,0,[
1845     if grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
1846       gcc_cv_as_leb128="yes"
1847     fi
1848   ])
1849 elif test x$gcc_cv_as != x; then
1850         # Check if we have .[us]leb128, and support symbol arithmetic with it.
1851         cat > conftest.s <<EOF
1852         .data
1853         .uleb128 L2 - L1
1855         .uleb128 1280
1856         .sleb128 -1010
1859         if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1860                 gcc_cv_as_leb128="yes"
1862                 # GAS versions before 2.11 do not support uleb128,
1863                 # despite appearing to.
1864                 # ??? There exists an elf-specific test that will crash
1865                 # the assembler.  Perhaps it's better to figure out whether
1866                 # arbitrary sections are supported and try the test.
1867                 as_ver=`$gcc_cv_as --version 2>/dev/null | head -1`
1868                 if echo "$as_ver" | grep GNU > /dev/null; then
1869 changequote(,)dnl
1870                         as_ver=`echo $as_ver | sed -e 's/GNU assembler \([0-9.][0-9.]*\).*/\1/'`
1871                         as_major=`echo $as_ver | sed 's/\..*//'`
1872                         as_minor=`echo $as_ver | sed 's/[^.]*\.\([0-9]*\).*/\1/'`
1873 changequote([,])dnl
1874                         if test $as_major -eq 2 -a $as_minor -lt 11; then
1875                                 gcc_cv_as_leb128="no"
1876                         fi
1877                 fi
1878         fi
1879         rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1881 if test x"$gcc_cv_as_leb128" = xyes; then
1882         AC_DEFINE(HAVE_AS_LEB128, 1,
1883                 [Define if your assembler supports .uleb128.])
1885 AC_MSG_RESULT($gcc_cv_as_leb128)
1887 AC_MSG_CHECKING(assembler eh_frame optimization)
1888 gcc_cv_as_eh_frame=no
1889 if test $in_tree_gas = yes ; then
1890   gcc_GAS_VERSION_GTE_IFELSE(2,12,0,[
1891     if grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
1892       gcc_cv_as_eh_frame="yes"
1893     fi
1894   ])
1895 elif test x$gcc_cv_as != x; then
1896         # Check if this is GAS.
1897         as_ver=`$gcc_cv_as --version < /dev/null 2> /dev/null | head -1`
1898         rm -f a.out 2> /dev/null
1899         if echo "$as_ver" | grep GNU > /dev/null; then
1900                 # Versions up to and including 2.11.0 may mis-optimize
1901                 # .eh_frame data.  Try something.
1902                 cat > conftest.s <<EOF
1903         .text
1904 .LFB1:
1905         .4byte  0
1906 .L1:
1907         .4byte  0
1908 .LFE1:
1909         .section        .eh_frame,"aw",@progbits
1910 __FRAME_BEGIN__:
1911         .4byte  .LECIE1-.LSCIE1
1912 .LSCIE1:
1913         .4byte  0x0
1914         .byte   0x1
1915         .ascii "z\0"
1916         .byte   0x1
1917         .byte   0x78
1918         .byte   0x1a
1919         .byte   0x0
1920         .byte   0x4
1921         .4byte  1
1922         .p2align 1
1923 .LECIE1:
1924 .LSFDE1:
1925         .4byte  .LEFDE1-.LASFDE1
1926 .LASFDE1:
1927         .4byte  .LASFDE1-__FRAME_BEGIN__
1928         .4byte  .LFB1
1929         .4byte  .LFE1-.LFB1
1930         .byte   0x4
1931         .4byte  .LFE1-.LFB1
1932         .byte   0x4
1933         .4byte  .L1-.LFB1
1934 .LEFDE1:
1936                 cat > conftest.lit <<EOF
1937  0000 10000000 00000000 017a0001 781a0004  .........z..x...
1938  0010 01000000 12000000 18000000 00000000  ................
1939  0020 08000000 04080000 0044               .........D      
1941                 cat > conftest.big <<EOF
1942  0000 00000010 00000000 017a0001 781a0004  .........z..x...
1943  0010 00000001 00000012 00000018 00000000  ................
1944  0020 00000008 04000000 0844               .........D      
1946                 # If the assembler didn't choke, and we can objdump,
1947                 # and we got the correct data, then succeed.
1948                 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
1949                    && $gcc_cv_objdump -s -j .eh_frame conftest.o 2>/dev/null \
1950                       | tail -3 > conftest.got \
1951                    && { cmp conftest.lit conftest.got > /dev/null 2>&1 \
1952                         || cmp conftest.big conftest.got > /dev/null 2>&1; }
1953                 then
1954                         gcc_cv_as_eh_frame="yes"
1955                 else
1956                         gcc_cv_as_eh_frame="bad"
1957                         if $gcc_cv_as -o conftest.o --traditional-format /dev/null; then
1958                                 AC_DEFINE(USE_AS_TRADITIONAL_FORMAT, 1,
1959         [Define if your assembler mis-optimizes .eh_frame data.])
1960                         fi
1961                 fi
1962         fi
1963         rm -f conftest.*
1965 AC_MSG_RESULT($gcc_cv_as_eh_frame)
1967 AC_MSG_CHECKING(assembler section merging support)
1968 gcc_cv_as_shf_merge=no
1969 if test $in_tree_gas = yes ; then
1970   gcc_GAS_VERSION_GTE_IFELSE(2,12,0,[
1971     if grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
1972       gcc_cv_as_shf_merge=yes
1973     fi
1974   ])
1975 elif test x$gcc_cv_as != x; then
1976         # Check if we support SHF_MERGE sections
1977         echo '.section .rodata.str, "aMS", @progbits, 1' > conftest.s
1978         if $gcc_cv_as --fatal-warnings -o conftest.o conftest.s > /dev/null 2>&1; then
1979                 gcc_cv_as_shf_merge=yes
1980         fi
1981         rm -f conftest.s conftest.o
1983 if test x"$gcc_cv_as_shf_merge" = xyes; then
1984         AC_DEFINE(HAVE_GAS_SHF_MERGE, 1,
1985 [Define if your assembler supports marking sections with SHF_MERGE flag.])
1987 AC_MSG_RESULT($gcc_cv_as_shf_merge)
1989 AC_MSG_CHECKING(assembler thread-local storage support)
1990 gcc_cv_as_tls=no
1991 conftest_s=
1992 tls_first_major=
1993 tls_first_minor=
1994 case "$target" in
1995 changequote(,)dnl
1996   alpha*-*-*)
1997     conftest_s='
1998         .section ".tdata","awT",@progbits
1999 foo:    .long   25
2000         .text
2001         ldq     $27,__tls_get_addr($29)         !literal!1
2002         lda     $16,foo($29)                    !tlsgd!1
2003         jsr     $26,($27),__tls_get_addr        !lituse_tlsgd!1
2004         ldq     $27,__tls_get_addr($29)         !literal!2
2005         lda     $16,foo($29)                    !tlsldm!2
2006         jsr     $26,($27),__tls_get_addr        !lituse_tlsldm!2
2007         ldq     $1,foo($29)                     !gotdtprel
2008         ldah    $2,foo($29)                     !dtprelhi
2009         lda     $3,foo($2)                      !dtprello
2010         lda     $4,foo($29)                     !dtprel
2011         ldq     $1,foo($29)                     !gottprel
2012         ldah    $2,foo($29)                     !tprelhi
2013         lda     $3,foo($2)                      !tprello
2014         lda     $4,foo($29)                     !tprel'
2015         tls_first_major=2
2016         tls_first_minor=13
2017         ;;
2018   i[34567]86-*-*)
2019 changequote([,])dnl
2020     conftest_s='
2021         .section ".tdata","awT",@progbits
2022 foo:    .long   25
2023         .text
2024         movl    %gs:0, %eax
2025         leal    foo@TLSGD(,%ebx,1), %eax
2026         leal    foo@TLSLDM(%ebx), %eax
2027         leal    foo@DTPOFF(%eax), %edx
2028         movl    foo@GOTTPOFF(%ebx), %eax
2029         subl    foo@GOTTPOFF(%ebx), %eax
2030         addl    foo@GOTNTPOFF(%ebx), %eax
2031         movl    foo@INDNTPOFF, %eax
2032         movl    $foo@TPOFF, %eax
2033         subl    $foo@TPOFF, %eax
2034         leal    foo@NTPOFF(%ecx), %eax'
2035         tls_first_major=2
2036         tls_first_minor=14
2037         ;;
2038   x86_64-*-*)
2039     conftest_s='
2040         .section ".tdata","awT",@progbits
2041 foo:    .long   25
2042         .text
2043         movq    %fs:0, %rax
2044         leaq    foo@TLSGD(%rip), %rdi
2045         leaq    foo@TLSLD(%rip), %rdi
2046         leaq    foo@DTPOFF(%rax), %rdx
2047         movq    foo@GOTTPOFF(%rip), %rax
2048         movq    $foo@TPOFF, %rax'
2049         tls_first_major=2
2050         tls_first_minor=14
2051         ;;
2052   ia64-*-*)
2053     conftest_s='
2054         .section ".tdata","awT",@progbits
2055 foo:    data8   25
2056         .text
2057         addl    r16 = @ltoff(@dtpmod(foo#)), gp
2058         addl    r17 = @ltoff(@dtprel(foo#)), gp
2059         addl    r18 = @ltoff(@tprel(foo#)), gp
2060         addl    r19 = @dtprel(foo#), gp
2061         adds    r21 = @dtprel(foo#), r13
2062         movl    r23 = @dtprel(foo#)
2063         addl    r20 = @tprel(foo#), gp
2064         adds    r22 = @tprel(foo#), r13
2065         movl    r24 = @tprel(foo#)'
2066         tls_first_major=2
2067         tls_first_minor=13
2068         ;;
2069   s390-*-*)
2070     conftest_s='
2071         .section ".tdata","awT",@progbits
2072 foo:    .long   25
2073         .text
2074         .long   foo@TLSGD
2075         .long   foo@TLSLDM
2076         .long   foo@DTPOFF
2077         .long   foo@NTPOFF
2078         .long   foo@GOTNTPOFF
2079         .long   foo@INDNTPOFF
2080         l       %r1,foo@GOTNTPOFF(%r12)
2081         l       %r1,0(%r1):tls_load:foo
2082         bas     %r14,0(%r1,%r13):tls_gdcall:foo
2083         bas     %r14,0(%r1,%r13):tls_ldcall:foo'
2084         tls_first_major=2
2085         tls_first_minor=14
2086         ;;
2087   s390x-*-*)
2088     conftest_s='
2089         .section ".tdata","awT",@progbits
2090 foo:    .long   25
2091         .text
2092         .quad   foo@TLSGD
2093         .quad   foo@TLSLDM
2094         .quad   foo@DTPOFF
2095         .quad   foo@NTPOFF
2096         .quad   foo@GOTNTPOFF
2097         lg      %r1,foo@GOTNTPOFF(%r12)
2098         larl    %r1,foo@INDNTPOFF
2099         brasl   %r14,__tls_get_offset@PLT:tls_gdcall:foo
2100         brasl   %r14,__tls_get_offset@PLT:tls_ldcall:foo'
2101         tls_first_major=2
2102         tls_first_minor=14
2103         ;;
2104 esac
2105 if test -z "$tls_first_major"; then
2106   :
2107 elif test $in_tree_gas = yes ; then
2108   gcc_GAS_VERSION_GTE_IFELSE($tls_first_major,$tls_first_minor,0,[
2109     gcc_cv_as_tls=yes
2110   ])
2111 elif test x$gcc_cv_as != x; then
2112   echo "$conftest_s" > conftest.s
2113   if $gcc_cv_as --fatal-warnings -o conftest.o conftest.s > /dev/null 2>&1
2114   then
2115     gcc_cv_as_tls=yes
2116   fi
2117   rm -f conftest.s conftest.o
2119 if test "$gcc_cv_as_tls" = yes; then
2120   AC_DEFINE(HAVE_AS_TLS, 1,
2121             [Define if your assembler supports thread-local storage.])
2123 AC_MSG_RESULT($gcc_cv_as_tls)
2125 case "$target" in
2126   # All TARGET_ABI_OSF targets.
2127   alpha*-*-osf* | alpha*-*-linux* | alpha*-*-*bsd*)
2128     AC_CACHE_CHECK([assembler supports explicit relocations],
2129         gcc_cv_as_explicit_relocs, [
2130         gcc_cv_as_explicit_relocs=unknown
2131         if test $in_tree_gas = yes ; then
2132            gcc_GAS_VERSION_GTE_IFELSE(2,12,0,[
2133               gcc_cv_as_explicit_relocs=yes
2134            ])
2135         elif test x$gcc_cv_as != x; then
2136             cat > conftest.s << 'EOF'
2137         .set nomacro
2138         .text
2139         extbl   $3, $2, $3      !lituse_bytoff!1
2140         ldq     $2, a($29)      !literal!1
2141         ldq     $4, b($29)      !literal!2
2142         ldq_u   $3, 0($2)       !lituse_base!1
2143         ldq     $27, f($29)     !literal!5
2144         jsr     $26, ($27), f   !lituse_jsr!5
2145         ldah    $29, 0($26)     !gpdisp!3
2146         lda     $0, c($29)      !gprel
2147         ldah    $1, d($29)      !gprelhigh
2148         lda     $1, d($1)       !gprellow
2149         lda     $29, 0($29)     !gpdisp!3
2151             if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
2152                 gcc_cv_as_explicit_relocs=yes
2153             else
2154                 gcc_cv_as_explicit_relocs=no
2155             fi
2156             rm -f conftest.s conftest.o
2157         fi
2158     ])
2159     if test "x$gcc_cv_as_explicit_relocs" = xyes; then
2160         AC_DEFINE(HAVE_AS_EXPLICIT_RELOCS, 1,
2161                 [Define if your assembler supports explicit relocations.])
2162     fi
2163     ;;
2164   sparc*-*-*)
2165     AC_CACHE_CHECK([assembler .register pseudo-op support],
2166         gcc_cv_as_register_pseudo_op, [
2167         gcc_cv_as_register_pseudo_op=unknown
2168         if test x$gcc_cv_as != x; then
2169             # Check if we have .register
2170             echo ".register %g2, #scratch" > conftest.s
2171             if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
2172                 gcc_cv_as_register_pseudo_op=yes
2173             else
2174                 gcc_cv_as_register_pseudo_op=no
2175             fi
2176             rm -f conftest.s conftest.o
2177         fi
2178     ])
2179     if test "x$gcc_cv_as_register_pseudo_op" = xyes; then
2180         AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP, 1,
2181                 [Define if your assembler supports .register.])
2182     fi
2184     AC_CACHE_CHECK([assembler supports -relax],
2185         gcc_cv_as_relax_opt, [
2186         gcc_cv_as_relax_opt=unknown
2187         if test x$gcc_cv_as != x; then
2188             # Check if gas supports -relax
2189             echo ".text" > conftest.s
2190             if $gcc_cv_as -relax -o conftest.o conftest.s > /dev/null 2>&1; then
2191                 gcc_cv_as_relax_opt=yes
2192             else
2193                 gcc_cv_as_relax_opt=no
2194             fi
2195             rm -f conftest.s conftest.o
2196         fi
2197     ])
2198     if test "x$gcc_cv_as_relax_opt" = xyes; then
2199         AC_DEFINE(HAVE_AS_RELAX_OPTION, 1,
2200                 [Define if your assembler supports -relax option.])
2201     fi
2203     AC_CACHE_CHECK([assembler and linker support unaligned pc related relocs],
2204         gcc_cv_as_sparc_ua_pcrel, [
2205         gcc_cv_as_sparc_ua_pcrel=unknown
2206         if test x$gcc_cv_as != x -a x$gcc_cv_ld != x; then
2207             gcc_cv_as_sparc_ua_pcrel=no
2208             echo ".text; foo: nop; .data; .align 4; .byte 0; .uaword %r_disp32(foo)" > conftest.s
2209             if $gcc_cv_as -K PIC -o conftest.o conftest.s > /dev/null 2>&1 \
2210                && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then
2211                 gcc_cv_as_sparc_ua_pcrel=yes
2212             fi
2213             rm -f conftest.s conftest.o conftest
2214         fi
2215     ])
2216     if test "x$gcc_cv_as_sparc_ua_pcrel" = xyes; then
2217         AC_DEFINE(HAVE_AS_SPARC_UA_PCREL, 1,
2218                 [Define if your assembler and linker support unaligned PC relative relocs.])
2219     fi
2221     AC_CACHE_CHECK([assembler and linker support unaligned pc related relocs against hidden symbols],
2222         gcc_cv_as_sparc_ua_pcrel_hidden, [
2223         if test "x$gcc_cv_as_sparc_ua_pcrel" = xyes; then
2224             gcc_cv_as_sparc_ua_pcrel_hidden=unknown
2225             if test x$gcc_cv_objdump != x; then
2226                 gcc_cv_as_sparc_ua_pcrel_hidden=no
2227                 echo ".data; .align 4; .byte 0x31; .uaword %r_disp32(foo)" > conftest.s
2228                 echo ".byte 0x32, 0x33, 0x34; .global foo; .hidden foo" >> conftest.s
2229                 echo "foo: .skip 4" >> conftest.s
2230                 if $gcc_cv_as -K PIC -o conftest.o conftest.s > /dev/null 2>&1 \
2231                    && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1 \
2232                    && $gcc_cv_objdump -s -j .data conftest 2> /dev/null \
2233                       | grep ' 31000000 07323334' > /dev/null 2>&1; then
2234                     if $gcc_cv_objdump -R conftest 2> /dev/null \
2235                        | grep 'DISP32' > /dev/null 2>&1; then
2236                         :
2237                     else
2238                         gcc_cv_as_sparc_ua_pcrel_hidden=yes
2239                     fi
2240                 fi
2241             fi
2242             rm -f conftest.s conftest.o conftest
2243         else
2244             gcc_cv_as_sparc_ua_pcrel_hidden="$gcc_cv_as_sparc_ua_pcrel"
2245         fi
2246     ])
2247     if test "x$gcc_cv_as_sparc_ua_pcrel_hidden" = xyes; then
2248         AC_DEFINE(HAVE_AS_SPARC_UA_PCREL_HIDDEN, 1,
2249                 [Define if your assembler and linker support unaligned PC relative relocs against hidden symbols.])
2250     fi
2252     AC_CACHE_CHECK([for assembler offsetable %lo() support],
2253         gcc_cv_as_offsetable_lo10, [
2254         gcc_cv_as_offsetable_lo10=unknown
2255         if test "x$gcc_cv_as" != x; then
2256             # Check if assembler has offsetable %lo()
2257             echo "or %g1, %lo(ab) + 12, %g1" > conftest.s
2258             echo "or %g1, %lo(ab + 12), %g1" > conftest1.s
2259             if $gcc_cv_as -xarch=v9 -o conftest.o conftest.s \
2260                     > /dev/null 2>&1 &&
2261                $gcc_cv_as -xarch=v9 -o conftest1.o conftest1.s \
2262                     > /dev/null 2>&1; then
2263                 if cmp conftest.o conftest1.o > /dev/null 2>&1; then
2264                     gcc_cv_as_offsetable_lo10=no
2265                 else
2266                     gcc_cv_as_offsetable_lo10=yes
2267                 fi
2268             else
2269                 gcc_cv_as_offsetable_lo10=no
2270             fi
2271             rm -f conftest.s conftest.o conftest1.s conftest1.o
2272         fi
2273     ])
2274     if test "x$gcc_cv_as_offsetable_lo10" = xyes; then
2275         AC_DEFINE(HAVE_AS_OFFSETABLE_LO10, 1,
2276             [Define if your assembler supports offsetable %lo().])
2277     fi
2279     ;;
2281 changequote(,)dnl
2282   i[34567]86-*-* | x86_64-*-*)
2283 changequote([,])dnl
2284     AC_MSG_CHECKING(assembler instructions)
2285     gcc_cv_as_instructions=
2286     if test $in_tree_gas = yes ; then 
2287       gcc_GAS_VERSION_GTE_IFELSE(2,9,0,[
2288         gcc_cv_as_instructions="filds fists"
2289       ])
2290     elif test x$gcc_cv_as != x; then
2291         set "filds fists" "filds mem; fists mem"
2292         while test $# -gt 0
2293         do
2294                 echo "$2" > conftest.s
2295                 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
2296                         gcc_cv_as_instructions=${gcc_cv_as_instructions}$1" "
2297                 fi
2298                 shift 2
2299         done
2300         rm -f conftest.s conftest.o
2301     fi
2302     if test x"$gcc_cv_as_instructions" != x; then
2303         AC_DEFINE_UNQUOTED(HAVE_GAS_`echo "$gcc_cv_as_instructions" | sed -e 's/ $//' | tr '[a-z ]' '[A-Z_]'`)
2304     fi
2305     AC_MSG_RESULT($gcc_cv_as_instructions)
2307     AC_MSG_CHECKING(assembler GOTOFF in data directives)
2308     gcc_cv_as_gotoff_in_data=no
2309     if test $in_tree_gas = yes ; then
2310       gcc_GAS_VERSION_GTE_IFELSE(2,11,0,[
2311         gcc_cv_as_gotoff_in_data=yes
2312       ])
2313     elif test x$gcc_cv_as != x; then
2314         cat > conftest.s <<EOF
2315         .text
2316 .L0:
2317         nop
2318         .data
2319         .long .L0@GOTOFF
2321         if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
2322           gcc_cv_as_gotoff_in_data=yes
2323         fi
2324     fi
2325     AC_DEFINE_UNQUOTED(HAVE_AS_GOTOFF_IN_DATA,
2326       [`if test $gcc_cv_as_gotoff_in_data = yes; then echo 1; else echo 0; fi`],
2327       [Define true if the assembler supports '.long foo@GOTOFF'.])
2328     AC_MSG_RESULT($gcc_cv_as_gotoff_in_data)
2329     ;;
2331   ia64*-*-*)
2332     AC_CACHE_CHECK([assembler supports ltoffx and ldxmov],
2333         gcc_cv_as_ltoffx_ldxmov_relocs, [
2334         gcc_cv_as_ltoffx_ldxmov_relocs=unknown
2335         if test $in_tree_gas = yes ; then
2336           gcc_GAS_VERSION_GTE_IFELSE(2,14,0,[
2337             gcc_cv_as_ltoffx_ldxmov_relocs=yes
2338           ])
2339         elif test x$gcc_cv_as != x; then
2340             cat > conftest.s << 'EOF'
2341 changequote(,)dnl
2342         .text
2343         addl r15 = @ltoffx(x#), gp
2344         ;;
2345         ld8.mov r16 = [r15], x#
2347 changequote([,])dnl
2348             if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
2349                 gcc_cv_as_ltoffx_ldxmov_relocs=yes
2350             else
2351                 gcc_cv_as_ltoffx_ldxmov_relocs=no
2352             fi
2353             rm -f conftest.s conftest.o
2354         fi
2355     ])
2356     if test "x$gcc_cv_as_ltoffx_ldxmov_relocs" = xyes; then
2357         AC_DEFINE(HAVE_AS_LTOFFX_LDXMOV_RELOCS, 1,
2358           [Define if your assembler supports ltoffx and ldxmov relocations.])
2359     fi
2360     ;;
2361 esac
2363 AC_MSG_CHECKING(assembler dwarf2 debug_line support)
2364 gcc_cv_as_dwarf2_debug_line=no
2365 # ??? Not all targets support dwarf2 debug_line, even within a version
2366 # of gas.  Moreover, we need to emit a valid instruction to trigger any
2367 # info to the output file.  So, as supported targets are added to gas 2.11,
2368 # add some instruction here to (also) show we expect this might work.
2369 # ??? Once 2.11 is released, probably need to add first known working
2370 # version to the per-target configury.
2371 case "$target" in
2372   i?86*-*-* | mips*-*-* | alpha*-*-* | powerpc*-*-* | sparc*-*-* | m68*-*-* \
2373   | x86_64*-*-* | hppa*-*-* | arm*-*-* | strongarm*-*-* | xscale*-*-*)
2374     insn="nop"
2375     ;;
2376   ia64*-*-*)
2377     insn="nop 0"
2378     ;;
2379   esac
2380 if test $in_tree_gas = yes ; then
2381   gcc_GAS_VERSION_GTE_IFELSE(2,11,0,[
2382     if grep 'obj_format = elf' ../gas/Makefile > /dev/null \
2383         && test x"$insn" != x ; then
2384       gcc_cv_as_dwarf2_debug_line="yes"
2385     fi
2386   ])
2387 elif test x$gcc_cv_as != x -a x"$insn" != x ; then
2388         echo '  .file 1 "conftest.s"' > conftest.s
2389         echo '  .loc 1 3 0' >> conftest.s
2390         echo "  $insn" >> conftest.s
2391         # ??? This fails with non-gnu grep.
2392         if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
2393            && grep debug_line conftest.o > /dev/null 2>&1 ; then
2394                 # The .debug_line file table must be in the exact order that
2395                 # we specified the files, since these indices are also used
2396                 # by DW_AT_decl_file.  Approximate this test by testing if
2397                 # the assembler bitches if the same index is assigned twice.
2398                 echo '  .file 1 "foo.s"' > conftest.s
2399                 echo '  .file 1 "bar.s"' >> conftest.s
2400                 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1
2401                 then
2402                   gcc_cv_as_dwarf2_debug_line="no"
2403                 else
2404                   gcc_cv_as_dwarf2_debug_line="yes"
2405                 fi
2406         fi
2407         rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
2409 if test x"$gcc_cv_as_dwarf2_debug_line" = xyes; then
2410         AC_DEFINE(HAVE_AS_DWARF2_DEBUG_LINE, 1,
2411 [Define if your assembler supports dwarf2 .file/.loc directives,
2412    and preserves file table indices exactly as given.])
2414 AC_MSG_RESULT($gcc_cv_as_dwarf2_debug_line)
2416 AC_MSG_CHECKING(assembler --gdwarf2 support)
2417 gcc_cv_as_gdwarf2_flag=no
2418 if test $in_tree_gas = yes ; then
2419   gcc_GAS_VERSION_GTE_IFELSE(2,11,0,[
2420     if grep 'obj_format = elf' ../gas/Makefile > /dev/null \
2421         && test x"$insn" != x ; then
2422       gcc_cv_as_gdwarf2_flag="yes"
2423     fi
2424   ])
2425 elif test x$gcc_cv_as != x -a x"$insn" != x ; then
2426         echo '' > conftest.s
2427         # ??? This fails with non-gnu grep.
2428         if $gcc_cv_as --gdwarf2 -o conftest.o conftest.s > /dev/null 2>&1
2429           then
2430           gcc_cv_as_gdwarf2_flag="yes"
2431         fi
2432         rm -f conftest.s conftest.o
2434 if test x"$gcc_cv_as_gdwarf2_flag" = xyes; then
2435         AC_DEFINE(HAVE_AS_GDWARF2_DEBUG_FLAG, 1,
2436 [Define if your assembler supports the --gdwarf2 option.])
2438 AC_MSG_RESULT($gcc_cv_as_gdwarf2_flag)
2440 AC_MSG_CHECKING(assembler --gstabs support)
2441 gcc_cv_as_gstabs_flag=no
2442 if test $in_tree_gas = yes ; then
2443   gcc_GAS_VERSION_GTE_IFELSE(2,11,0,[
2444     if grep 'obj_format = elf' ../gas/Makefile > /dev/null \
2445         && test x"$insn" != x ; then
2446       gcc_cv_as_gstabs_flag="yes"
2447     fi
2448   ])
2449 elif test x$gcc_cv_as != x -a x"$insn" != x ; then
2450         echo '' > conftest.s
2451         # ??? This fails with non-gnu grep.
2452         if $gcc_cv_as --gstabs -o conftest.o conftest.s > /dev/null 2>&1 ; then
2453           gcc_cv_as_gstabs_flag="yes"
2454         fi
2455         rm -f conftest.s conftest.o
2457 if test x"$gcc_cv_as_gstabs_flag" = xyes; then
2458         AC_DEFINE(HAVE_AS_GSTABS_DEBUG_FLAG, 1,
2459 [Define if your assembler supports the --gstabs option.])
2461 AC_MSG_RESULT($gcc_cv_as_gstabs_flag)
2463 AC_MSG_CHECKING(linker read-only and read-write section mixing)
2464 gcc_cv_ld_ro_rw_mix=unknown
2465 if test $in_tree_ld = yes ; then
2466   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 && grep 'EMUL = elf' ../ld/Makefile > /dev/null; then
2467     gcc_cv_ld_ro_rw_mix=read-write
2468   fi
2469 elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x -a x$gcc_cv_objdump != x ; then
2470   echo '.section "myfoosect", "a"' > conftest1.s
2471   echo '.section "myfoosect", "aw"' > conftest2.s
2472   echo '.byte 1' >> conftest2.s
2473   echo '.section "myfoosect", "a"' > conftest3.s
2474   echo '.byte 0' >> conftest3.s
2475   if $gcc_cv_as -o conftest1.o conftest1.s > /dev/null 2>&1 \
2476      && $gcc_cv_as -o conftest2.o conftest2.s > /dev/null 2>&1 \
2477      && $gcc_cv_as -o conftest3.o conftest3.s > /dev/null 2>&1 \
2478      && $gcc_cv_ld -shared -o conftest1.so conftest1.o \
2479         conftest2.o conftest3.o; then
2480     gcc_cv_ld_ro_rw_mix=`$gcc_cv_objdump -h conftest1.so \
2481                          | grep -A1 myfoosect`
2482     if echo "$gcc_cv_ld_ro_rw_mix" | grep CONTENTS > /dev/null; then
2483       if echo "$gcc_cv_ld_ro_rw_mix" | grep READONLY > /dev/null; then
2484         gcc_cv_ld_ro_rw_mix=read-only
2485       else
2486         gcc_cv_ld_ro_rw_mix=read-write
2487       fi
2488     fi
2489   fi
2490 changequote(,)dnl
2491   rm -f conftest.* conftest[123].*
2492 changequote([,])dnl
2494 if test x$gcc_cv_ld_ro_rw_mix = xread-write; then
2495         AC_DEFINE(HAVE_LD_RO_RW_SECTION_MIXING, 1,
2496   [Define if your linker links a mix of read-only
2497    and read-write sections into a read-write section.])
2499 AC_MSG_RESULT($gcc_cv_ld_ro_rw_mix)
2501 AC_MSG_CHECKING(linker PT_GNU_EH_FRAME support)
2502 gcc_cv_ld_eh_frame_hdr=no
2503 if test $in_tree_ld = yes ; then
2504   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 && grep 'EMUL = elf' ../ld/Makefile > /dev/null; then
2505     gcc_cv_ld_eh_frame_hdr=yes
2506   fi
2507 elif test x$gcc_cv_ld != x; then
2508         # Check if linker supports --eh-frame-hdr option
2509         if $gcc_cv_ld --help 2>/dev/null | grep eh-frame-hdr > /dev/null; then
2510                 gcc_cv_ld_eh_frame_hdr=yes
2511         fi
2513 if test x"$gcc_cv_ld_eh_frame_hdr" = xyes; then
2514         AC_DEFINE(HAVE_LD_EH_FRAME_HDR, 1,
2515 [Define if your linker supports --eh-frame-hdr option.])
2517 AC_MSG_RESULT($gcc_cv_ld_eh_frame_hdr)
2519 # Miscellaneous target-specific checks.
2520 case "$target" in
2521   mips*-*-*)
2522     AC_MSG_CHECKING(whether libgloss uses STARTUP directives consistently)
2523     gcc_cv_mips_libgloss_startup=no
2524     gcc_cv_libgloss_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/libgloss
2525     if test "x$exec_prefix" = xNONE; then
2526       if test "x$prefix" = xNONE; then
2527         test_prefix=/usr/local
2528       else
2529         test_prefix=$prefix
2530       fi
2531     else
2532       test_prefix=$exec_prefix
2533     fi
2534     for f in $gcc_cv_libgloss_srcdir/mips/idt.ld $test_prefix/$target_alias/lib/idt.ld
2535     do
2536       if grep '^STARTUP' $f > /dev/null 2>&1; then
2537         gcc_cv_mips_libgloss_startup=yes
2538         break
2539       fi
2540     done
2541     if test x"$gcc_cv_mips_libgloss_startup" = xyes; then
2542       AC_DEFINE(HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES, 1,
2543         [Define if your MIPS libgloss linker scripts consistently include STARTUP directives.])
2544     fi
2545     AC_MSG_RESULT($gcc_cv_mips_libgloss_startup)
2546     ;;
2547 esac
2549 if test x$with_sysroot = x && test x$host = x$target \
2550    && test "$prefix" != "/usr" && test "x$prefix" != "x$local_prefix" ; then
2551   AC_DEFINE_UNQUOTED(PREFIX_INCLUDE_DIR, "$prefix/include")
2554 # Figure out what language subdirectories are present.
2555 # Look if the user specified --enable-languages="..."; if not, use
2556 # the environment variable $LANGUAGES if defined. $LANGUAGES might
2557 # go away some day.
2558 # NB:  embedded tabs in this IF block -- do not untabify
2559 if test x"${enable_languages+set}" != xset; then
2560         if test x"${LANGUAGES+set}" = xset; then
2561                 enable_languages="${LANGUAGES}"
2562                 AC_MSG_WARN([setting LANGUAGES is deprecated, use --enable-languages instead])
2564         else
2565                 enable_languages=all
2566         fi
2567 else
2568         if test x"${enable_languages}" = x \
2569         || test x"${enable_languages}" = xyes;
2570         then
2571                 AC_MSG_ERROR([--enable-languages needs at least one language argument])
2572         fi
2574 enable_languages=`echo "${enable_languages}" | sed -e 's/[[     ,]][[   ,]]*/,/g' -e 's/,$//'`
2576 # First scan to see if an enabled language requires some other language.
2577 # We assume that a given config-lang.in will list all the language
2578 # front ends it requires, even if some are required indirectly.
2579 for lang in ${srcdir}/*/config-lang.in ..
2581    case $lang in
2582     ..)
2583        ;;
2584     # The odd quoting in the next line works around
2585     # an apparent bug in bash 1.12 on linux.
2586 changequote(,)dnl
2587     ${srcdir}/[*]/config-lang.in)
2588        ;;
2589     *)
2590        lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^      ]*\).*$,\1,p' $lang`
2591        this_lang_requires=`sed -n -e 's,^lang_requires=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^lang_requires=\([^    ]*\).*$,\1,p' $lang`
2592        for other in $this_lang_requires
2593        do
2594           case ,${enable_languages}, in
2595            *,$other,*)
2596               ;;
2597            *,all,*)
2598               ;;
2599            *,$lang_alias,*)
2600               enable_languages="$enable_languages,$other"
2601               ;;
2602           esac
2603        done
2604        ;;
2605 changequote([,])dnl
2606    esac
2607 done
2609 expected_languages=`echo ,${enable_languages}, | sed -e 's:,: :g' -e 's:  *: :g' -e 's:  *: :g' -e 's:^ ::' -e 's: $::'`
2610 found_languages=
2611 subdirs=
2612 for lang in ${srcdir}/*/config-lang.in ..
2614         case $lang in
2615         ..) ;;
2616         # The odd quoting in the next line works around
2617         # an apparent bug in bash 1.12 on linux.
2618 changequote(,)dnl
2619         ${srcdir}/[*]/config-lang.in) ;;
2620         *)
2621           lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^   ]*\).*$,\1,p' $lang`
2622           this_lang_libs=`sed -n -e 's,^target_libs=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^target_libs=\([^         ]*\).*$,\1,p' $lang`
2623           build_by_default=`sed -n -e 's,^build_by_default=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^build_by_default=\([^     ]*\).*$,\1,p' $lang`
2624           if test "x$lang_alias" = x
2625           then
2626                 echo "$lang doesn't set \$language." 1>&2
2627                 exit 1
2628           fi
2629           case ${build_by_default},${enable_languages}, in
2630           *,$lang_alias,*) add_this_lang=yes ;;
2631           no,*) add_this_lang=no ;;
2632           *,all,*) add_this_lang=yes ;;
2633           *) add_this_lang=no ;;
2634           esac
2635           found_languages="${found_languages} ${lang_alias}"
2636           if test x"${add_this_lang}" = xyes; then
2637                 case $lang in
2638                     ${srcdir}/ada/config-lang.in)
2639                         if test x$have_gnat = xyes ; then
2640                                 subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`"
2641                         fi
2642                         ;;
2643                     *)
2644                         subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`"
2645                         ;;
2646                 esac
2647           fi
2648           ;;
2649 changequote([,])dnl
2650         esac
2651 done
2653 missing_languages=
2654 for expected_language in ${expected_languages} ..
2655 do 
2656     if test "${expected_language}" != ..; then
2657         missing_language="${expected_language}"
2658         if test "${expected_language}" = "c" \
2659            || test "${expected_language}" = "all"; then
2660                 missing_language=
2661         fi
2662         for found_language in ${found_languages} ..
2663         do 
2664             if test "${found_language}" != ..; then
2665                 if test "${expected_language}" = "${found_language}"; then
2666                     missing_language=
2667                 fi
2668             fi
2669         done
2670         if test "x${missing_language}" != x; then
2671            missing_languages="${missing_languages} ${missing_language}"
2672         fi
2673     fi
2674 done
2676 if test "x$missing_languages" != x; then
2677   AC_MSG_ERROR([
2678 The following requested languages were not found:${missing_languages}
2679 The following languages were available: c${found_languages}])
2682 # Make gthr-default.h if we have a thread file.
2683 gthread_flags=
2684 if test $thread_file != single; then
2685     rm -f gthr-default.h
2686     echo "#include \"gthr-${thread_file}.h\"" > gthr-default.h
2687     gthread_flags=-DHAVE_GTHR_DEFAULT
2689 AC_SUBST(gthread_flags)
2691 # Find out what GC implementation we want, or may, use.
2692 AC_ARG_WITH(gc,
2693 [  --with-gc={simple,page} choose the garbage collection mechanism to use
2694                           with the compiler],
2695 [case "$withval" in
2696   simple | page)
2697     GGC=ggc-$withval
2698     ;;
2699   *)
2700     AC_MSG_ERROR([$withval is an invalid option to --with-gc])
2701     ;;
2702 esac],
2703 [GGC=ggc-page])
2704 AC_SUBST(GGC)
2705 echo "Using $GGC for garbage collection."
2707 # Use the system's zlib library.
2708 zlibdir=-L../zlib
2709 zlibinc="-I\$(srcdir)/../zlib"
2710 AC_ARG_WITH(system-zlib,
2711 [  --with-system-zlib      use installed libz],
2712 zlibdir=
2713 zlibinc=
2715 AC_SUBST(zlibdir)
2716 AC_SUBST(zlibinc)
2718 dnl Very limited version of automake's enable-maintainer-mode
2720 AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
2721   dnl maintainer-mode is disabled by default
2722   AC_ARG_ENABLE(maintainer-mode,
2723 [  --enable-maintainer-mode
2724                           enable make rules and dependencies not useful
2725                           (and sometimes confusing) to the casual installer],
2726       maintainer_mode=$enableval,
2727       maintainer_mode=no)
2729 AC_MSG_RESULT($maintainer_mode)
2731 if test "$maintainer_mode" = "yes"; then
2732   MAINT=''
2733 else
2734   MAINT='#'
2736 AC_SUBST(MAINT)dnl
2738 # Make empty files to contain the specs and options for each language.
2739 # Then add #include lines to for a compiler that has specs and/or options.
2741 lang_specs_files=
2742 lang_options_files=
2743 lang_tree_files=
2744 for subdir in . $subdirs
2746         if test -f $srcdir/$subdir/lang-specs.h; then
2747             lang_specs_files="$lang_specs_files $srcdir/$subdir/lang-specs.h"
2748         fi
2749         if test -f $srcdir/$subdir/lang-options.h; then
2750             lang_options_files="$lang_options_files $srcdir/$subdir/lang-options.h"
2751         fi
2752         if test -f $srcdir/$subdir/$subdir-tree.def; then
2753             lang_tree_files="$lang_tree_files $srcdir/$subdir/$subdir-tree.def"
2754         fi
2755 done
2757 # These (without "all_") are set in each config-lang.in.
2758 # `language' must be a single word so is spelled singularly.
2759 all_languages=
2760 all_boot_languages=
2761 all_compilers=
2762 all_stagestuff=
2763 all_outputs='Makefile intl/Makefile fixinc/Makefile gccbug mklibgcc mkheaders'
2764 # List of language makefile fragments.
2765 all_lang_makefiles=
2766 # Files for gengtype
2767 all_gtfiles="$target_gtfiles"
2768 # Files for gengtype with language
2769 all_gtfiles_files_langs=
2770 all_gtfiles_files_files=
2772 # Add the language fragments.
2773 # Languages are added via two mechanisms.  Some information must be
2774 # recorded in makefile variables, these are defined in config-lang.in.
2775 # We accumulate them and plug them into the main Makefile.
2776 # The other mechanism is a set of hooks for each of the main targets
2777 # like `clean', `install', etc.
2779 language_fragments="Make-lang"
2780 language_hooks="Make-hooks"
2782 for s in .. $subdirs
2784         if test $s != ".."
2785         then
2786                 language=
2787                 boot_language=
2788                 compilers=
2789                 stagestuff=
2790                 outputs=
2791                 gtfiles=
2792                 . ${srcdir}/$s/config-lang.in
2793                 if test "x$language" = x
2794                 then
2795                         echo "${srcdir}/$s/config-lang.in doesn't set \$language." 1>&2
2796                         exit 1
2797                 fi
2798                 all_lang_makefiles="$all_lang_makefiles ${srcdir}/$s/Make-lang.in"
2799                 if test -f ${srcdir}/$s/Makefile.in
2800                 then all_lang_makefiles="$all_lang_makefiles ${srcdir}/$s/Makefile.in"
2801                 fi
2802                 all_languages="$all_languages $language"
2803                 if test "x$boot_language" = xyes
2804                 then
2805                         all_boot_languages="$all_boot_languages $language"
2806                 fi
2807                 all_compilers="$all_compilers $compilers"
2808                 all_stagestuff="$all_stagestuff $stagestuff"
2809                 all_outputs="$all_outputs $outputs"
2810                 all_gtfiles="$all_gtfiles $gtfiles"
2811                 for f in .. $gtfiles
2812                 do
2813                      if test $f != ".."
2814                      then
2815                          all_gtfiles_files_langs="$all_gtfiles_files_langs ${s} "
2816                          all_gtfiles_files_files="$all_gtfiles_files_files ${f} "
2817                      fi
2818                 done
2819         fi
2820 done
2822 # Pick up gtfiles for c
2823 gtfiles=
2824 s="c"
2825 . ${srcdir}/c-config-lang.in
2826 all_gtfiles="$all_gtfiles $gtfiles"
2827 for f in .. $gtfiles
2829      if test $f != ".."
2830      then
2831         all_gtfiles_files_langs="$all_gtfiles_files_langs ${s} "
2832         all_gtfiles_files_files="$all_gtfiles_files_files ${f} "
2833      fi
2834 done
2836 check_languages=
2837 for language in .. $all_languages
2839         if test $language != ".."
2840         then
2841                 check_languages="$check_languages check-$language"
2842         fi
2843 done
2845 # Since we can't use `::' targets, we link each language in
2846 # with a set of hooks, reached indirectly via lang.${target}.
2848 rm -f Make-hooks
2849 touch Make-hooks
2850 target_list="all.build all.cross start.encap rest.encap tags \
2851         info dvi generated-manpages \
2852         install-normal install-common install-info install-man \
2853         uninstall \
2854         mostlyclean clean distclean extraclean maintainer-clean \
2855         stage1 stage2 stage3 stage4"
2856 for t in $target_list
2858         x=
2859         for lang in .. $all_languages
2860         do
2861                 if test $lang != ".."; then
2862                         x="$x $lang.$t"
2863                 fi
2864         done
2865         echo "lang.$t: $x" >> Make-hooks
2866 done
2868 # Create .gdbinit.
2870 echo "dir ." > .gdbinit
2871 echo "dir ${srcdir}" >> .gdbinit
2872 if test x$gdb_needs_out_file_path = xyes
2873 then
2874         echo "dir ${srcdir}/config/"`dirname ${out_file}` >> .gdbinit
2876 if test "x$subdirs" != x; then
2877         for s in $subdirs
2878         do
2879                 echo "dir ${srcdir}/$s" >> .gdbinit
2880         done
2882 echo "source ${srcdir}/gdbinit.in" >> .gdbinit
2884 # If $(exec_prefix) exists and is not the same as $(prefix), then compute an
2885 # absolute path for gcc_tooldir based on inserting the number of up-directory
2886 # movements required to get from $(exec_prefix) to $(prefix) into the basic
2887 # $(libsubdir)/@(unlibsubdir) based path.
2888 # Don't set gcc_tooldir to tooldir since that's only passed in by the toplevel
2889 # make and thus we'd get different behavior depending on where we built the
2890 # sources.
2891 if test x$exec_prefix = xNONE -o x$exec_prefix = x$prefix; then
2892     gcc_tooldir='$(libsubdir)/$(unlibsubdir)/../$(target_alias)'
2893 else
2894 changequote(<<, >>)dnl
2895 # An explanation of the sed strings:
2896 #  -e 's|^\$(prefix)||'   matches and eliminates 'prefix' from 'exec_prefix'
2897 #  -e 's|/$||'            match a trailing forward slash and eliminates it
2898 #  -e 's|^[^/]|/|'        forces the string to start with a forward slash (*)
2899 #  -e 's|/[^/]*|../|g'    replaces each occurrence of /<directory> with ../
2901 # (*) Note this pattern overwrites the first character of the string
2902 # with a forward slash if one is not already present.  This is not a
2903 # problem because the exact names of the sub-directories concerned is
2904 # unimportant, just the number of them matters.
2906 # The practical upshot of these patterns is like this:
2908 #  prefix     exec_prefix        result
2909 #  ------     -----------        ------
2910 #   /foo        /foo/bar          ../
2911 #   /foo/       /foo/bar          ../
2912 #   /foo        /foo/bar/         ../
2913 #   /foo/       /foo/bar/         ../
2914 #   /foo        /foo/bar/ugg      ../../
2916     dollar='$$'
2917     gcc_tooldir="\$(libsubdir)/\$(unlibsubdir)/\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/\$(dollar)||' -e 's|^[^/]|/|' -e 's|/[^/]*|../|g'\`\$(target_alias)"
2918 changequote([, ])dnl
2920 AC_SUBST(gcc_tooldir)
2921 AC_SUBST(dollar)
2923 # Find a directory in which to install a shared libgcc.
2925 AC_ARG_ENABLE(version-specific-runtime-libs,
2926 [  --enable-version-specific-runtime-libs
2927                           specify that runtime libraries should be
2928                           installed in a compiler-specific directory])
2930 AC_ARG_WITH(slibdir,
2931 [  --with-slibdir=DIR      shared libraries in DIR [LIBDIR]],
2932 slibdir="$with_slibdir",
2933 if test "${enable_version_specific_runtime_libs+set}" = set; then
2934   slibdir='$(libsubdir)'
2935 elif test "$host" != "$target"; then
2936   slibdir='$(build_tooldir)/lib'
2937 else
2938   slibdir='$(libdir)'
2940 AC_SUBST(slibdir)
2942 objdir=`${PWDCMD-pwd}`
2943 AC_SUBST(objdir)
2945 # Process the language and host/target makefile fragments.
2946 ${CONFIG_SHELL-/bin/sh} $srcdir/configure.frag $srcdir "$subdirs" "$dep_host_xmake_file" "$dep_tmake_file"
2948 # Substitute configuration variables
2949 AC_SUBST(subdirs)
2950 AC_SUBST(srcdir)
2951 AC_SUBST(all_boot_languages)
2952 AC_SUBST(all_compilers)
2953 AC_SUBST(all_gtfiles)
2954 AC_SUBST(all_gtfiles_files_langs)
2955 AC_SUBST(all_gtfiles_files_files)
2956 AC_SUBST(all_lang_makefiles)
2957 AC_SUBST(all_languages)
2958 AC_SUBST(all_stagestuff)
2959 AC_SUBST(build_exeext)
2960 AC_SUBST(build_install_headers_dir)
2961 AC_SUBST(build_xm_file_list)
2962 AC_SUBST(build_xm_file)
2963 AC_SUBST(build_xm_defines)
2964 AC_SUBST(check_languages)
2965 AC_SUBST(cc_set_by_configure)
2966 AC_SUBST(quoted_cc_set_by_configure)
2967 AC_SUBST(cpp_install_dir)
2968 AC_SUBST(dep_host_xmake_file)
2969 AC_SUBST(dep_tmake_file)
2970 AC_SUBST(extra_headers_list)
2971 AC_SUBST(extra_objs)
2972 AC_SUBST(extra_parts)
2973 AC_SUBST(extra_passes)
2974 AC_SUBST(extra_programs)
2975 AC_SUBST(float_h_file)
2976 AC_SUBST(gcc_config_arguments)
2977 AC_SUBST(gcc_gxx_include_dir)
2978 AC_SUBST(libstdcxx_incdir)
2979 AC_SUBST(gcc_version)
2980 AC_SUBST(gcc_version_full)
2981 AC_SUBST(gcc_version_trigger)
2982 AC_SUBST(host_exeext)
2983 AC_SUBST(host_extra_gcc_objs)
2984 AC_SUBST(host_xm_file_list)
2985 AC_SUBST(host_xm_file)
2986 AC_SUBST(host_xm_defines)
2987 AC_SUBST(out_host_hook_obj)
2988 AC_SUBST(install)
2989 AC_SUBST(lang_options_files)
2990 AC_SUBST(lang_specs_files)
2991 AC_SUBST(lang_tree_files)
2992 AC_SUBST(local_prefix)
2993 AC_SUBST(md_file)
2994 AC_SUBST(objc_boehm_gc)
2995 AC_SUBST(out_file)
2996 AC_SUBST(out_object_file)
2997 AC_SUBST(stage_prefix_set_by_configure)
2998 AC_SUBST(quoted_stage_prefix_set_by_configure)
2999 AC_SUBST(symbolic_link)
3000 AC_SUBST(thread_file)
3001 AC_SUBST(tm_file_list)
3002 AC_SUBST(tm_file)
3003 AC_SUBST(tm_defines)
3004 AC_SUBST(tm_p_file_list)
3005 AC_SUBST(tm_p_file)
3006 AC_SUBST(xm_file)
3007 AC_SUBST(xm_defines)
3008 AC_SUBST(target_alias)
3009 AC_SUBST(c_target_objs)
3010 AC_SUBST(cxx_target_objs)
3011 AC_SUBST(target_cpu_default)
3013 AC_SUBST_FILE(target_overrides)
3014 AC_SUBST_FILE(host_overrides)
3015 AC_SUBST_FILE(language_fragments)
3016 AC_SUBST_FILE(language_hooks)
3018 # Echo that links are built
3019 if test x$host = x$target
3020 then
3021         str1="native "
3022 else
3023         str1="cross-"
3024         str2=" from $host"
3027 if test x$host != x$build
3028 then
3029         str3=" on a $build system"
3032 if test "x$str2" != x || test "x$str3" != x
3033 then
3034         str4=
3037 echo "Links are now set up to build a ${str1}compiler for ${target}$str4" 1>&2
3039 if test "x$str2" != x || test "x$str3" != x
3040 then
3041         echo " ${str2}${str3}." 1>&2
3044 # Truncate the target if necessary
3045 if test x$host_truncate_target != x; then
3046         target=`echo $target | sed -e 's/\(..............\).*/\1/'`
3049 # Configure the subdirectories
3050 # AC_CONFIG_SUBDIRS($subdirs)
3052 # Create the Makefile
3053 # and configure language subdirectories
3054 AC_OUTPUT($all_outputs,
3056 case x$CONFIG_HEADERS in
3057 xauto-host.h:config.in)
3058 echo > cstamp-h ;;
3059 esac
3060 # If the host supports symlinks, point stage[1234] at ../stage[1234] so
3061 # bootstrapping and the installation procedure can still use
3062 # CC="stage1/xgcc -Bstage1/".  If the host doesn't support symlinks,
3063 # FLAGS_TO_PASS has been modified to solve the problem there.
3064 # This is virtually a duplicate of what happens in configure.lang; we do
3065 # an extra check to make sure this only happens if ln -s can be used.
3066 if test "$symbolic_link" = "ln -s"; then
3067  for d in .. ${subdirs} fixinc ; do
3068    if test $d != ..; then
3069         STARTDIR=`${PWDCMD-pwd}`
3070         cd $d
3071         for t in stage1 stage2 stage3 stage4 include
3072         do
3073                 rm -f $t
3074                 $symbolic_link ../$t $t 2>/dev/null
3075         done
3076         cd $STARTDIR
3077    fi
3078  done
3079 else true ; fi
3080 # Avoid having to add intl to our include paths.
3081 if test -f intl/libintl.h; then
3082   echo creating libintl.h
3083   echo '#include "intl/libintl.h"' >libintl.h
3085 ], 
3086 [subdirs='$subdirs'
3087 symbolic_link='$symbolic_link'