2002-11-21 Phil Edwards <pme@gcc.gnu.org>
[official-gcc.git] / gcc / configure.in
blobd50bb392d918d9703cac2dfe0eb7bc8c3e26153c
1 # configure.in for GCC
2 # Process this file with autoconf to generate a configuration script.
4 # Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
6 #This file is part of GCC.
8 #GCC is free software; you can redistribute it and/or modify it under
9 #the terms of the GNU General Public License as published by the Free
10 #Software Foundation; either version 2, or (at your option) any later
11 #version.
13 #GCC is distributed in the hope that it will be useful, but WITHOUT
14 #ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 #FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
16 #for more details.
18 #You should have received a copy of the GNU General Public License
19 #along with GCC; see the file COPYING.  If not, write to the Free
20 #Software Foundation, 59 Temple Place - Suite 330, Boston, MA
21 #02111-1307, USA.
23 # Initialization and defaults
24 AC_PREREQ(2.13)
25 AC_INIT(tree.c)
26 AC_CONFIG_HEADER(auto-host.h:config.in)
28 remove=rm
29 hard_link=ln
30 symbolic_link='ln -s'
31 copy=cp
33 # Check for bogus environment variables.
34 # Test if LIBRARY_PATH contains the notation for the current directory
35 # since this would lead to problems installing/building glibc.
36 # LIBRARY_PATH contains the current directory if one of the following
37 # is true:
38 # - one of the terminals (":" and ";") is the first or last sign
39 # - two terminals occur directly after each other
40 # - the path contains an element with a dot in it
41 AC_MSG_CHECKING(LIBRARY_PATH variable)
42 changequote(,)dnl
43 case ${LIBRARY_PATH} in
44   [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
45     library_path_setting="contains current directory"
46     ;;
47   *)
48     library_path_setting="ok"
49     ;;
50 esac
51 changequote([,])dnl
52 AC_MSG_RESULT($library_path_setting)
53 if test "$library_path_setting" != "ok"; then
54 AC_MSG_ERROR([
55 *** LIBRARY_PATH shouldn't contain the current directory when
56 *** building gcc. Please change the environment variable
57 *** and run configure again.])
60 # Test if GCC_EXEC_PREFIX contains the notation for the current directory
61 # since this would lead to problems installing/building glibc.
62 # GCC_EXEC_PREFIX contains the current directory if one of the following
63 # is true:
64 # - one of the terminals (":" and ";") is the first or last sign
65 # - two terminals occur directly after each other
66 # - the path contains an element with a dot in it
67 AC_MSG_CHECKING(GCC_EXEC_PREFIX variable)
68 changequote(,)dnl
69 case ${GCC_EXEC_PREFIX} in
70   [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
71     gcc_exec_prefix_setting="contains current directory"
72     ;;
73   *)
74     gcc_exec_prefix_setting="ok"
75     ;;
76 esac
77 changequote([,])dnl
78 AC_MSG_RESULT($gcc_exec_prefix_setting)
79 if test "$gcc_exec_prefix_setting" != "ok"; then
80 AC_MSG_ERROR([
81 *** GCC_EXEC_PREFIX shouldn't contain the current directory when
82 *** building gcc. Please change the environment variable
83 *** and run configure again.])
86 # Check for additional parameters
88 # With GNU ld
89 AC_ARG_WITH(gnu-ld,
90 [  --with-gnu-ld           arrange to work with GNU ld.],
91 gnu_ld_flag="$with_gnu_ld",
92 gnu_ld_flag=no)
94 # With pre-defined ld
95 AC_ARG_WITH(ld,
96 [  --with-ld               arrange to use the specified ld (full pathname)],
97 DEFAULT_LINKER="$with_ld")
98 if test x"${DEFAULT_LINKER+set}" = x"set"; then
99   if test ! -x "$DEFAULT_LINKER"; then
100     AC_MSG_WARN([cannot execute: $DEFAULT_LINKER: check --with-ld or env. var. DEFAULT_LINKER])
101   elif $DEFAULT_LINKER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
102     gnu_ld_flag=yes
103   fi
104   AC_DEFINE_UNQUOTED(DEFAULT_LINKER,"$DEFAULT_LINKER",
105         [Define to enable the use of a default linker.])
108 # With GNU as
109 AC_ARG_WITH(gnu-as,
110 [  --with-gnu-as           arrange to work with GNU as],
111 gas_flag="$with_gnu_as",
112 gas_flag=no)
114 AC_ARG_WITH(as,
115 [  --with-as               arrange to use the specified as (full pathname)],
116 DEFAULT_ASSEMBLER="$with_as")
117 if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
118   if test ! -x "$DEFAULT_ASSEMBLER"; then
119     AC_MSG_WARN([cannot execute: $DEFAULT_ASSEMBLER: check --with-as or env. var. DEFAULT_ASSEMBLER])
120   elif $DEFAULT_ASSEMBLER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
121     gas_flag=yes
122   fi
123   AC_DEFINE_UNQUOTED(DEFAULT_ASSEMBLER,"$DEFAULT_ASSEMBLER",
124         [Define to enable the use of a default assembler.])
127 # With stabs
128 AC_ARG_WITH(stabs,
129 [  --with-stabs            arrange to use stabs instead of host debug format],
130 stabs="$with_stabs",
131 stabs=no)
133 # With ELF
134 AC_ARG_WITH(elf,
135 [  --with-elf              arrange to use ELF instead of host debug format],
136 elf="$with_elf",
137 elf=no)
139 # Specify the local prefix
140 local_prefix=
141 AC_ARG_WITH(local-prefix,
142 [  --with-local-prefix=DIR specifies directory to put local include],
143 [case "${withval}" in
144 yes)    AC_MSG_ERROR(bad value ${withval} given for local include directory prefix) ;;
145 no)     ;;
146 *)      local_prefix=$with_local_prefix ;;
147 esac])
149 # Default local prefix if it is empty
150 if test x$local_prefix = x; then
151         local_prefix=/usr/local
154 # Don't set gcc_gxx_include_dir to gxx_include_dir since that's only
155 # passed in by the toplevel make and thus we'd get different behavior
156 # depending on where we built the sources.
157 gcc_gxx_include_dir=
158 # Specify the g++ header file directory
159 AC_ARG_WITH(gxx-include-dir,
160 [  --with-gxx-include-dir=DIR
161                           specifies directory to put g++ header files],
162 [case "${withval}" in
163 yes)    AC_MSG_ERROR(bad value ${withval} given for g++ include directory) ;;
164 no)     ;;
165 *)      gcc_gxx_include_dir=$with_gxx_include_dir ;;
166 esac])
168 if test x${gcc_gxx_include_dir} = x; then
169   if test x${enable_version_specific_runtime_libs} = xyes; then
170     gcc_gxx_include_dir='${libsubdir}/include/c++'
171   else
172     topsrcdir=${srcdir}/.. . ${srcdir}/../config.if
173 changequote(<<, >>)dnl
174     gcc_gxx_include_dir="\$(libsubdir)/\$(unlibsubdir)/..\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/[^/]*|/..|g'\`/include/"${libstdcxx_incdir}
175 changequote([, ])dnl
176   fi
179 # Find the native compiler
180 AC_PROG_CC
181 AC_PROG_CC_C_O
182 # autoconf is lame and doesn't give us any substitution variable for this.
183 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
184   NO_MINUS_C_MINUS_O=yes
185 else
186   OUTPUT_OPTION='-o $@'
188 AC_SUBST(NO_MINUS_C_MINUS_O)
189 AC_SUBST(OUTPUT_OPTION)
191 # See if GNAT has been installed
192 gcc_AC_PROG_GNAT
194 AC_CACHE_CHECK(whether ${CC-cc} accepts -Wno-long-long,
195 ac_cv_prog_cc_no_long_long,
196 [save_CFLAGS="$CFLAGS"
197 CFLAGS="-Wno-long-long"
198 AC_TRY_COMPILE(,,ac_cv_prog_cc_no_long_long=yes,
199                ac_cv_prog_cc_no_long_long=no)
200 CFLAGS="$save_CFLAGS"])
202 if test x$have_gnat != xno ; then 
203 AC_CACHE_CHECK(whether ${ADAC} accepts -Wno-long-long,
204 ac_cv_prog_adac_no_long_long,
205 [cat >conftest.adb <<EOF
206 procedure conftest is begin null; end conftest;
208 if $ADAC -Wno-long-long -c conftest.adb 1>&5 2>&5 ; then
209   ac_cv_prog_adac_no_long_long=yes
210 else
211   ac_cv_prog_adac_no_long_long=no
213 rm -f conftest*])
214 else
215   ac_cv_prog_adac_no_long_long=yes
218 strict1_warn=
219 if test $ac_cv_prog_cc_no_long_long = yes && \
220     test $ac_cv_prog_adac_no_long_long = yes ; then
221   strict1_warn="-pedantic -Wno-long-long"
223 AC_SUBST(strict1_warn)
225 AC_PROG_CPP
226 AC_C_INLINE
227 gcc_AC_C_VOLATILE
229 gcc_AC_C_LONG_DOUBLE
230 gcc_AC_C_LONG_LONG
231 gcc_AC_C__BOOL
233 # sizeof(char) is 1 by definition.
234 gcc_AC_COMPILE_CHECK_SIZEOF(short)
235 gcc_AC_COMPILE_CHECK_SIZEOF(int)
236 gcc_AC_COMPILE_CHECK_SIZEOF(long)
237 if test $ac_cv_c_long_long = yes; then
238   gcc_AC_COMPILE_CHECK_SIZEOF(long long)
240 if test $ac_cv_c___int64 = yes; then
241   gcc_AC_COMPILE_CHECK_SIZEOF(__int64)
244 gcc_AC_C_CHARSET
246 # If the native compiler is GCC, we can enable warnings even in stage1.  
247 # That's useful for people building cross-compilers, or just running a
248 # quick `make'.
249 warn_cflags=
250 if test "x$GCC" = "xyes"; then
251   warn_cflags='$(GCC_WARN_CFLAGS)'
253 AC_SUBST(warn_cflags)
255 # Determine whether or not multilibs are enabled.
256 AC_ARG_ENABLE(multilib,
257 [  --enable-multilib       enable library support for multiple ABIs],
258 [], [enable_multilib=yes])
259 AC_SUBST(enable_multilib)
261 # Enable expensive internal checks
262 AC_ARG_ENABLE(checking,
263 [  --enable-checking[=LIST]
264                           enable expensive run-time checks.  With LIST,
265                           enable only specific categories of checks.
266                           Categories are: misc,tree,rtl,rtlflag,gc,gcac;
267                           default is misc,tree,gc,rtlflag],
268 [ac_checking=
269 ac_tree_checking=
270 ac_rtl_checking=
271 ac_rtlflag_checking=
272 ac_gc_checking=
273 ac_gc_always_collect=
274 case "${enableval}" in
275 yes)    ac_checking=1 ; ac_tree_checking=1 ; ac_gc_checking=1 ;
276         ac_rtlflag_checking=1 ;;
277 no)     ;;
278 *)      IFS="${IFS=     }"; ac_save_IFS="$IFS"; IFS="$IFS,"
279         set fnord $enableval; shift
280         IFS="$ac_save_IFS"
281         for check
282         do
283                 case $check in
284                 misc)   ac_checking=1 ;;
285                 tree)   ac_tree_checking=1 ;;
286                 rtlflag)        ac_rtlflag_checking=1 ;;
287                 rtl)    ac_rtl_checking=1 ;;
288                 gc)     ac_gc_checking=1 ;;
289                 gcac)   ac_gc_always_collect=1 ;;
290                 valgrind)       ac_checking_valgrind=1 ;;
291                 *)      AC_MSG_ERROR(unknown check category $check) ;;
292                 esac
293         done
294         ;;
295 esac
296 ], 
297 # Enable some checks by default for development versions of GCC
298 [ac_checking=1; ac_tree_checking=1; ac_gc_checking=1; ac_rtlflag_checking=1;])
299 nocommon_flag=""
300 if test x$ac_checking != x ; then
301   AC_DEFINE(ENABLE_CHECKING, 1,
302 [Define if you want more run-time sanity checks.  This one gets a grab
303    bag of miscellaneous but relatively cheap checks.])
304   nocommon_flag=-fno-common
306 AC_SUBST(nocommon_flag)
307 if test x$ac_tree_checking != x ; then
308   AC_DEFINE(ENABLE_TREE_CHECKING, 1,
309 [Define if you want all operations on trees (the basic data
310    structure of the front ends) to be checked for dynamic type safety
311    at runtime.  This is moderately expensive.])
313 if test x$ac_rtl_checking != x ; then
314   AC_DEFINE(ENABLE_RTL_CHECKING, 1,
315 [Define if you want all operations on RTL (the basic data structure
316    of the optimizer and back end) to be checked for dynamic type safety
317    at runtime.  This is quite expensive.])
319 if test x$ac_rtlflag_checking != x ; then
320   AC_DEFINE(ENABLE_RTL_FLAG_CHECKING, 1,
321 [Define if you want RTL flag accesses to be checked against the RTL
322    codes that are supported for each access macro.  This is relatively
323    cheap.])
325 if test x$ac_gc_checking != x ; then
326   AC_DEFINE(ENABLE_GC_CHECKING, 1,
327 [Define if you want the garbage collector to do object poisoning and
328    other memory allocation checks.  This is quite expensive.])
330 if test x$ac_gc_always_collect != x ; then
331   AC_DEFINE(ENABLE_GC_ALWAYS_COLLECT, 1,
332 [Define if you want the garbage collector to operate in maximally
333    paranoid mode, validating the entire heap and collecting garbage at
334    every opportunity.  This is extremely expensive.])
336 valgrind_path_defines=
337 valgrind_command=
338 if test x$ac_checking_valgrind != x ; then
339   # It is certainly possible that there's valgrind but no valgrind.h.
340   # GCC relies on making annotations so we must have both.
341   AC_CHECK_HEADER(valgrind.h, have_valgrind_h=yes, have_valgrind_h=no)
342   AM_PATH_PROG_WITH_TEST(valgrind_path, valgrind,
343         [$ac_dir/$ac_word --version | grep valgrind- >/dev/null 2>&1])
344   if test "x$valgrind_path" = "x" || test $have_valgrind_h = no; then
345         AC_MSG_ERROR([*** Can't find both valgrind and valgrind.h])
346   fi
347   valgrind_path_defines=-DVALGRIND_PATH='\"'$valgrind_path'\"'
348   valgrind_command="$valgrind_path -q"
349   AC_DEFINE(ENABLE_VALGRIND_CHECKING, 1,
350 [Define if you want to run subprograms and generated programs
351    through valgrind (a memory checker).  This is extremely expensive.])
353 AC_SUBST(valgrind_path_defines)
354 AC_SUBST(valgrind_command)
356 # Enable code coverage collection
357 AC_ARG_ENABLE(coverage,
358 [  --enable-coverage[=LEVEL]
359                           enable compiler\'s code coverage collection.
360                           Use to measure compiler performance and locate
361                           unused parts of the compiler. With LEVEL, specificy
362                           optimization. Values are opt, noopt,
363                           default is noopt],
364 [case "${enableval}" in
365 yes|noopt)
366         coverage_flags="-fprofile-arcs -ftest-coverage -O0"
367         ;;
368 opt)
369         coverage_flags="-fprofile-arcs -ftest-coverage -O2"
370         ;;
372         AC_MSG_ERROR(unknown coverage setting $enableval)
373         ;;
374 esac],
375 [coverage_flags=""])
376 AC_SUBST(coverage_flags)
378 AC_ARG_WITH(cpp_install_dir,
379 [  --with-cpp-install-dir=DIR
380                           install the user visible C preprocessor in DIR
381                           (relative to PREFIX) as well as PREFIX/bin],
382 [if test x$withval = xyes; then
383   AC_MSG_ERROR([option --with-cpp-install-dir requires an argument])
384 elif test x$withval != xno; then
385   cpp_install_dir=$withval
386 fi])
388 # Enable __cxa_atexit for C++.
389 AC_ARG_ENABLE(__cxa_atexit,
390 [  --enable-__cxa_atexit   enable __cxa_atexit for C++],
391 [], [])
392 if test x$enable___cxa_atexit = xyes; then
393   AC_DEFINE(DEFAULT_USE_CXA_ATEXIT, 1,
394   [Define if you want to use __cxa_atexit, rather than atexit, to
395    register C++ destructors for local statics and global objects.
396    This is essential for fully standards-compliant handling of
397    destructors, but requires __cxa_atexit in libc.])
399   
400 # Enable Multibyte Characters for C/C++
401 AC_ARG_ENABLE(c-mbchar,
402 [  --enable-c-mbchar       enable multibyte characters for C and C++],
403 if test x$enable_c_mbchar != xno; then
404   AC_DEFINE(MULTIBYTE_CHARS, 1,
405   [Define if you want the C and C++ compilers to support multibyte
406    character sets for source code.])
408   
409 # Enable threads
410 # Pass with no value to take the default
411 # Pass with a value to specify a thread package
412 AC_ARG_ENABLE(threads,
413 [  --enable-threads        enable thread usage for target GCC
414   --enable-threads=LIB    use LIB thread package for target GCC],,
415 enable_threads='')
417 enable_threads_flag=$enable_threads
418 # Check if a valid thread package
419 case x${enable_threads_flag} in
420         x | xno)
421                 # No threads
422                 target_thread_file='single'
423                 ;;
424         xyes)
425                 # default
426                 target_thread_file=''
427                 ;;
428         xdecosf1 | xirix | xmach | xos2 | xposix | xpthreads | xsingle | \
429         xsolaris | xwin32 | xdce | xrtems| xvxworks | xaix)
430                 target_thread_file=$enable_threads_flag
431                 ;;
432         *)
433                 echo "$enable_threads is an unknown thread package" 1>&2
434                 exit 1
435                 ;;
436 esac
438 AC_ARG_ENABLE(objc-gc,
439 [  --enable-objc-gc       enable the use of Boehm's garbage collector with
440                           the GNU Objective-C runtime],
441 if test x$enable_objc_gc = xno; then
442         objc_boehm_gc=''
443 else
444         objc_boehm_gc=1
446 objc_boehm_gc='')
448 AC_ARG_WITH(dwarf2,
449 [  --with-dwarf2           force the default debug format to be DWARF 2],
450 dwarf2="$with_dwarf2",
451 dwarf2=no)
453 AC_ARG_ENABLE(shared,
454 [  --disable-shared        don't provide a shared libgcc],
456   case $enable_shared in
457   yes | no) ;;
458   *)
459     enable_shared=no
460     IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
461     for pkg in $enableval; do
462       if test "X$pkg" = "Xgcc" || test "X$pkg" = "Xlibgcc"; then
463         enable_shared=yes
464       fi
465     done
466     IFS="$ac_save_ifs"
467     ;;
468   esac
469 ], [enable_shared=yes])
470 AC_SUBST(enable_shared)
472 # Determine the host, build, and target systems
473 AC_CANONICAL_SYSTEM
475 # Set program_transform_name
476 AC_ARG_PROGRAM
478 # Stage specific cflags for build.
479 stage1_cflags=
480 case $build in
481 vax-*-*)
482   if test x$GCC = xyes
483   then
484     stage1_cflags="-Wa,-J"
485   else
486     stage1_cflags="-J"
487   fi
488   ;;
489 powerpc-*-darwin*)
490   # The spiffy cpp-precomp chokes on some legitimate constructs in GCC
491   # sources; use -no-cpp-precomp to get to GNU cpp.
492   # Apple's GCC has bugs in designated initializer handling, so disable
493   # that too.
494   stage1_cflags="-no-cpp-precomp -DHAVE_DESIGNATED_INITIALIZERS=0"
495   ;;
496 esac
497 AC_SUBST(stage1_cflags)
499 AC_PROG_MAKE_SET
501 AC_MSG_CHECKING([whether a default assembler was specified])
502 if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
503     if test x"$gas_flag" = x"no"; then
504         AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER)])
505     else
506         AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER - GNU as)])
507     fi
508 else
509     AC_MSG_RESULT(no)
512 AC_MSG_CHECKING([whether a default linker was specified])
513 if test x"${DEFAULT_LINKER+set}" = x"set"; then
514     if test x"$gnu_ld_flag" = x"no"; then
515         AC_MSG_RESULT([yes ($DEFAULT_LINKER)])
516     else
517         AC_MSG_RESULT([yes ($DEFAULT_LINKER - GNU ld)])
518     fi
519 else
520     AC_MSG_RESULT(no)
523 AC_MSG_CHECKING(for GNU C library)
524 AC_CACHE_VAL(gcc_cv_glibc,
525 [AC_TRY_COMPILE(
526   [#include <features.h>],[
527 #if ! (defined __GLIBC__ || defined __GNU_LIBRARY__)
528 #error Not a GNU C library system
529 #endif], 
530   [gcc_cv_glibc=yes], 
531   gcc_cv_glibc=no)])
532 AC_MSG_RESULT($gcc_cv_glibc)
533 if test $gcc_cv_glibc = yes; then
534   AC_DEFINE(_GNU_SOURCE, 1, [Always define this when using the GNU C Library])
537 # Find some useful tools
538 AC_PROG_AWK
539 gcc_AC_PROG_LN
540 gcc_AC_PROG_LN_S
541 AC_PROG_RANLIB
542 gcc_AC_PROG_INSTALL
544 AC_HEADER_STDC
545 AC_HEADER_TIME
546 gcc_AC_HEADER_STDBOOL
547 gcc_AC_HEADER_STRING
548 AC_HEADER_SYS_WAIT
549 AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h time.h \
550                  fcntl.h unistd.h sys/file.h sys/time.h \
551                  sys/resource.h sys/param.h sys/times.h sys/stat.h \
552                  direct.h malloc.h langinfo.h)
554 # Check for thread headers.
555 AC_CHECK_HEADER(thread.h, [have_thread_h=yes], [have_thread_h=])
556 AC_CHECK_HEADER(pthread.h, [have_pthread_h=yes], [have_pthread_h=])
558 # These tests can't be done till we know if we have limits.h.
559 gcc_AC_C_CHAR_BIT
560 gcc_AC_C_COMPILE_ENDIAN
561 gcc_AC_C_FLOAT_FORMAT
563 # See if we have the mktemp command.
564 AC_CHECK_PROG(have_mktemp_command, mktemp, yes, no)
566 # Do we have a single-tree copy of texinfo?
567 if test -f $srcdir/../texinfo/Makefile.in; then
568   MAKEINFO='$(objdir)/../texinfo/makeinfo/makeinfo'
569   gcc_cv_prog_makeinfo_modern=yes
570   AC_MSG_RESULT([Using makeinfo from the unified source tree.])
571 else
572   # See if makeinfo has been installed and is modern enough
573   # that we can use it.
574   gcc_AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
575   [GNU texinfo.* \([0-9][0-9.]*\)],
576   [4.[1-9]*])
579 if test $gcc_cv_prog_makeinfo_modern = no; then
580   AC_MSG_WARN([
581 *** Makeinfo is missing or too old.
582 *** Info documentation will not be built.])
583   BUILD_INFO=
584 else
585   BUILD_INFO=info               AC_SUBST(BUILD_INFO)
588 # Is pod2man recent enough to regenerate manpages?
589 AC_MSG_CHECKING([for recent Pod::Man])
590 if (perl -e 'use 1.10 Pod::Man') >/dev/null 2>&1; then
591   AC_MSG_RESULT(yes)
592   GENERATED_MANPAGES=generated-manpages         AC_SUBST(GENERATED_MANPAGES)
593 else
594   AC_MSG_RESULT(no)
595   GENERATED_MANPAGES=
598 # How about lex?
599 dnl Don't use AC_PROG_LEX; we insist on flex.
600 dnl LEXLIB is not useful in gcc.
601 if test -f $srcdir/../flex/skel.c; then
602   FLEX='$(objdir)/../flex/flex'
603 else
604   AC_CHECK_PROG(FLEX, flex, flex, false)
607 # Bison?
608 # The -L switch is so bison can find its skeleton file.
609 if test -f $srcdir/../bison/bison.simple; then
610   BISON='$(objdir)/../bison/bison -L $(srcdir)/../bison/'
611 else
612   AC_CHECK_PROG(BISON, bison, bison, false)
615 # These libraries may be used by collect2.
616 # We may need a special search path to get them linked.
617 AC_CACHE_CHECK(for collect2 libraries, gcc_cv_collect2_libs,
618 [save_LIBS="$LIBS"
619 for libs in '' -lld -lmld \
620                 '-L/usr/lib/cmplrs/cc2.11 -lmld' \
621                 '-L/usr/lib/cmplrs/cc3.11 -lmld'
623         LIBS="$libs"
624         AC_TRY_LINK_FUNC(ldopen,
625                 [gcc_cv_collect2_libs="$libs"; break])
626 done
627 LIBS="$save_LIBS"
628 test -z "$gcc_cv_collect2_libs" && gcc_cv_collect2_libs='none required'])
629 case $gcc_cv_collect2_libs in
630         "none required")        ;;
631         *)      COLLECT2_LIBS=$gcc_cv_collect2_libs ;;
632 esac
633 AC_SUBST(COLLECT2_LIBS)
635 # When building Ada code on Alpha, we need exc_resume which is usually in
636 # -lexc.  So test for it.
637 save_LIBS="$LIBS"
638 LIBS=
639 AC_SEARCH_LIBS(exc_resume, exc)
640 GNAT_LIBEXC="$LIBS"
641 LIBS="$save_LIBS"
642 AC_SUBST(GNAT_LIBEXC)
644 # See if the stage1 system preprocessor understands the ANSI C
645 # preprocessor stringification operator.  (Used by symcat.h.)
646 AC_C_STRINGIZE
648 # Use <inttypes.h> only if it exists,
649 # doesn't clash with <sys/types.h>, and declares intmax_t.
650 AC_MSG_CHECKING(for inttypes.h)
651 AC_CACHE_VAL(gcc_cv_header_inttypes_h,
652 [AC_TRY_COMPILE(
653   [#include <sys/types.h>
654 #include <inttypes.h>],
655   [intmax_t i = -1;],
656   [gcc_cv_header_inttypes_h=yes],
657   gcc_cv_header_inttypes_h=no)])
658 AC_MSG_RESULT($gcc_cv_header_inttypes_h)
659 if test $gcc_cv_header_inttypes_h = yes; then
660   AC_DEFINE(HAVE_INTTYPES_H, 1,
661         [Define if you have a working <inttypes.h> header file.])
664 dnl Disabled until we have a complete test for buggy enum bitfields.
665 dnl gcc_AC_C_ENUM_BF_UNSIGNED
667 AC_CHECK_FUNCS(times clock dup2 kill getrlimit setrlimit atoll atoq \
668         sysconf strsignal putc_unlocked fputc_unlocked fputs_unlocked \
669         fwrite_unlocked fprintf_unlocked getrusage nl_langinfo lstat \
670         scandir alphasort)
672 AC_CHECK_TYPE(ssize_t, int)
674 # Try to determine the array type of the second argument of getgroups
675 # for the target system (int or gid_t).
676 AC_TYPE_GETGROUPS
677 if test "${target}" = "${build}"; then
678   TARGET_GETGROUPS_T=$ac_cv_type_getgroups
679 else
680   case "${target}" in
681         # This condition may need some tweaking.  It should include all
682         # targets where the array type of the second argument of getgroups
683         # is int and the type of gid_t is not equivalent to int.
684         *-*-sunos* | *-*-ultrix*)
685                 TARGET_GETGROUPS_T=int
686                 ;;
687         *)
688                 TARGET_GETGROUPS_T=gid_t
689                 ;;
690   esac
692 AC_SUBST(TARGET_GETGROUPS_T)
694 gcc_AC_FUNC_PRINTF_PTR
696 case "${host}" in
697 *-*-uwin*)
698   AC_MSG_ERROR([
699 *** UWIN may not be used as a host platform because
700 *** linking with posix.dll is not allowed by the GNU GPL])
701   ;;
702 *-*-*vms*)
703   # Under VMS, vfork works very different than on Unix. The standard test 
704   # won't work, and it isn't easily adaptable. It makes more sense to
705   # just force it.
706   ac_cv_func_vfork_works=yes
707   ;;
708 esac
709 AC_FUNC_VFORK
710 AC_FUNC_MMAP_ANYWHERE
711 AC_FUNC_MMAP_FILE
713 AM_ICONV
715 # We will need to find libiberty.h and ansidecl.h
716 saved_CFLAGS="$CFLAGS"
717 CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include"
718 gcc_AC_CHECK_DECLS(getenv atol sbrk abort atof getcwd getwd \
719         strsignal putc_unlocked fputs_unlocked fwrite_unlocked \
720         fprintf_unlocked strstr errno vasprintf \
721         malloc realloc calloc free basename getopt clock, , ,[
722 #include "ansidecl.h"
723 #include "system.h"])
725 gcc_AC_CHECK_DECLS(getrlimit setrlimit getrusage, , ,[
726 #include "ansidecl.h"
727 #include "system.h"
728 #ifdef HAVE_SYS_RESOURCE_H
729 #include <sys/resource.h>
730 #endif
733 gcc_AC_CHECK_DECLS(times, , ,[
734 #include "ansidecl.h"
735 #include "system.h"
736 #ifdef HAVE_SYS_TIMES_H
737 #include <sys/times.h>
738 #endif
741 # More time-related stuff.
742 AC_CACHE_CHECK(for struct tms, ac_cv_struct_tms, [
743 AC_TRY_COMPILE([
744 #include "ansidecl.h"
745 #include "system.h"
746 #ifdef HAVE_SYS_TIMES_H
747 #include <sys/times.h>
748 #endif
749 ], [struct tms tms;], ac_cv_struct_tms=yes, ac_cv_struct_tms=no)])
750 if test $ac_cv_struct_tms = yes; then
751   AC_DEFINE(HAVE_STRUCT_TMS, 1,
752   [Define if <sys/times.h> defines struct tms.])
755 # use gcc_cv_* here because this doesn't match the behavior of AC_CHECK_TYPE.
756 # revisit after autoconf 2.50.
757 AC_CACHE_CHECK(for clock_t, gcc_cv_type_clock_t, [
758 AC_TRY_COMPILE([
759 #include "ansidecl.h"
760 #include "system.h"
761 ], [clock_t x;], gcc_cv_type_clock_t=yes, gcc_cv_type_clock_t=no)])
762 if test $gcc_cv_type_clock_t = yes; then
763   AC_DEFINE(HAVE_CLOCK_T, 1,
764   [Define if <time.h> defines clock_t.])
767 AC_ARG_ENABLE(initfini-array,
768         [  --enable-initfini-array      use .init_array/.fini_array sections],
769         gcc_cv_initfinit_array=$enableval, [gcc_AC_INITFINI_ARRAY])
771 # Restore CFLAGS from before the gcc_AC_NEED_DECLARATIONS tests.
772 CFLAGS="$saved_CFLAGS"
774 # mkdir takes a single argument on some systems. 
775 gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG
777 # File extensions
778 manext='.1'
779 objext='.o'
780 AC_SUBST(manext)
781 AC_SUBST(objext)
783 target_gtfiles=
784 build_xm_file=
785 build_xm_defines=
786 build_install_headers_dir=install-headers-tar
787 build_exeext=
788 host_xm_file=
789 host_xm_defines=
790 host_xmake_file=
791 host_truncate_target=
792 host_exeext=
794 # Decode the host machine, then the target machine.
795 # For the host machine, we save the xm_file variable as host_xm_file;
796 # then we decode the target machine and forget everything else
797 # that came from the host machine.
798 for machine in $build $host $target; do
799         . ${srcdir}/config.gcc
800 done
802 extra_objs="${host_extra_objs} ${extra_objs}"
804 # Default the target-machine variables that were not explicitly set.
805 if test x"$tm_file" = x
806 then tm_file=$cpu_type/$cpu_type.h; fi
808 if test x"$extra_headers" = x
809 then extra_headers=; fi
811 if test x$md_file = x
812 then md_file=$cpu_type/$cpu_type.md; fi
814 if test x$out_file = x
815 then out_file=$cpu_type/$cpu_type.c; fi
817 if test x"$tmake_file" = x
818 then tmake_file=$cpu_type/t-$cpu_type
821 if test x"$dwarf2" = xyes
822 then tm_file="$tm_file tm-dwarf2.h"
825 # Say what files are being used for the output code and MD file.
826 echo "Using \`$srcdir/config/$out_file' for machine-specific logic."
827 echo "Using \`$srcdir/config/$md_file' as machine description file."
829 # If any of the xm_file variables contain nonexistent files, warn
830 # about them and drop them.
833 for x in $build_xm_file; do
834   if    test -f $srcdir/config/$x
835   then      bx="$bx $x"
836   else      AC_MSG_WARN($srcdir/config/$x does not exist.)
837   fi
838 done
839 build_xm_file="$bx"
842 for x in $host_xm_file; do
843   if    test -f $srcdir/config/$x
844   then      hx="$hx $x"
845   else      AC_MSG_WARN($srcdir/config/$x does not exist.)
846   fi
847 done
848 host_xm_file="$hx"
851 for x in $xm_file; do
852   if    test -f $srcdir/config/$x
853   then      tx="$tx $x"
854   else      AC_MSG_WARN($srcdir/config/$x does not exist.)
855   fi
856 done
857 xm_file="$tx"
859 count=a
860 for f in $tm_file; do
861         count=${count}x
862 done
863 if test $count = ax; then
864         echo "Using \`$srcdir/config/$tm_file' as target machine macro file."
865 else
866         echo "Using the following target machine macro files:"
867         for f in $tm_file; do
868                 echo "  $srcdir/config/$f"
869         done
872 count=a
873 for f in $host_xm_file; do
874         count=${count}x
875 done
876 if test $count = a; then
877         :
878 elif test $count = ax; then
879         echo "Using \`$srcdir/config/$host_xm_file' as host machine macro file."
880 else
881         echo "Using the following host machine macro files:"
882         for f in $host_xm_file; do
883                 echo "  $srcdir/config/$f"
884         done
887 if test "$host_xm_file" != "$build_xm_file"; then
888         count=a
889         for f in $build_xm_file; do
890                 count=${count}x
891         done
892         if test $count = a; then
893                 :
894         elif test $count = ax; then
895                 echo "Using \`$srcdir/config/$build_xm_file' as build machine macro file."
896         else
897                 echo "Using the following build machine macro files:"
898                 for f in $build_xm_file; do
899                         echo "  $srcdir/config/$f"
900                 done
901         fi
904 if test x$thread_file = x; then
905         if test x$target_thread_file != x; then
906                 thread_file=$target_thread_file
907         else
908                 thread_file='single'
909         fi
912 # Look for a file containing extra machine modes.
913 if test -n "$extra_modes" && test -f $srcdir/config/$extra_modes; then
914   extra_modes_file='$(srcdir)'/config/${extra_modes}
915   AC_SUBST(extra_modes_file)
916   AC_DEFINE_UNQUOTED(EXTRA_MODES_FILE, "$extra_modes",
917   [Define to the name of a file containing a list of extra machine modes
918    for this architecture.])
919   AC_DEFINE(EXTRA_CC_MODES, 1,
920   [Define if the target architecture needs extra machine modes to represent
921    the results of comparisons.])
924 # auto-host.h is the file containing items generated by autoconf and is
925 # the first file included by config.h.
926 # If host=build, it is correct to have hconfig include auto-host.h
927 # as well.  If host!=build, we are in error and need to do more 
928 # work to find out the build config parameters.
929 if test x$host = x$build
930 then
931         build_auto=auto-host.h
932         FORBUILD=..
933 else
934         # We create a subdir, then run autoconf in the subdir.
935         # To prevent recursion we set host and build for the new
936         # invocation of configure to the build for this invocation
937         # of configure. 
938         tempdir=build.$$
939         rm -rf $tempdir
940         mkdir $tempdir
941         cd $tempdir
942         case ${srcdir} in
943         /* | [A-Za-z]:[\\/]* ) realsrcdir=${srcdir};;
944         *) realsrcdir=../${srcdir};;
945         esac
946         saved_CFLAGS="${CFLAGS}"
947         CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
948         ${realsrcdir}/configure \
949                 --target=$target_alias --host=$build_alias --build=$build_alias
950         CFLAGS="${saved_CFLAGS}"
952         # We just finished tests for the build machine, so rename
953         # the file auto-build.h in the gcc directory.
954         mv auto-host.h ../auto-build.h
955         cd ..
956         rm -rf $tempdir
957         build_auto=auto-build.h
958         FORBUILD=../$build_alias
960 AC_SUBST(FORBUILD)
962 tm_file="${tm_file} defaults.h"
963 host_xm_file="auto-host.h ansidecl.h ${host_xm_file} ${tm_file}"
964 build_xm_file="${build_auto} ansidecl.h ${build_xm_file} ${tm_file}"
965 xm_file="ansidecl.h ${xm_file} ${tm_file}"
967 # Truncate the target if necessary
968 if test x$host_truncate_target != x; then
969         target=`echo $target | sed -e 's/\(..............\).*/\1/'`
972 # Get the version trigger filename from the toplevel
973 if test "${with_gcc_version_trigger+set}" = set; then
974         gcc_version_trigger=$with_gcc_version_trigger
975 else
976         gcc_version_trigger=${srcdir}/version.c
978 changequote(,)dnl
979 gcc_version_full=`grep version_string ${gcc_version_trigger} | sed -e 's/.*"\([^"]*\)".*/\1/'`
980 gcc_version=`echo ${gcc_version_full} | sed -e 's/\([^ ]*\) .*/\1/'`
982 # Compile in configure arguments.
983 if test -f configargs.h ; then
984         # Being re-configured.
985         gcc_config_arguments=`grep configuration_arguments configargs.h | sed -e 's/.*"\([^"]*\)".*/\1/'`
986         gcc_config_arguments="$gcc_config_arguments : (reconfigured) $TOPLEVEL_CONFIGURE_ARGUMENTS"
987 else
988         gcc_config_arguments="$TOPLEVEL_CONFIGURE_ARGUMENTS"
990 cat > configargs.h <<EOF
991 /* Generated automatically. */
992 static const char configuration_arguments[] = "$gcc_config_arguments";
993 static const char thread_model[] = "$thread_file";
995 changequote([,])dnl
997 # Internationalization
998 PACKAGE=gcc
999 VERSION="$gcc_version"
1000 AC_SUBST(PACKAGE)
1001 AC_SUBST(VERSION)
1003 # Enable NLS support by default
1004 AC_ARG_ENABLE(nls,
1005   [  --enable-nls            use Native Language Support (default)],
1006   , enable_nls=yes)
1008 # if cross compiling, disable NLS support.
1009 # It's not worth the trouble, at least for now.
1011 if test "${build}" != "${host}" && test "x$enable_nls" = "xyes"; then
1012   AC_MSG_WARN(Disabling NLS support for canadian cross compiler.)
1013   enable_nls=no
1016 AM_GNU_GETTEXT
1018 # Windows32 Registry support for specifying GCC installation paths.
1019 AC_ARG_ENABLE(win32-registry,
1020 [  --disable-win32-registry
1021                           disable lookup of installation paths in the
1022                           Registry on Windows hosts
1023   --enable-win32-registry enable registry lookup (default)
1024   --enable-win32-registry=KEY
1025                           use KEY instead of GCC version as the last portion
1026                           of the registry key],,)
1027 case $host_os in
1028         win32 | pe | cygwin* | mingw32* | uwin*)
1029 AC_MSG_CHECKING(whether windows registry support is requested)
1030 if test "x$enable_win32_registry" != xno; then
1031   AC_DEFINE(ENABLE_WIN32_REGISTRY, 1,
1032 [Define to 1 if installation paths should be looked up in Windows32
1033    Registry. Ignored on non windows32 hosts.])
1034   AC_MSG_RESULT(yes)
1035   AC_SEARCH_LIBS(RegOpenKeyExA, advapi32)
1036 else
1037   AC_MSG_RESULT(no)
1040 # Check if user specified a different registry key.
1041 case "x${enable_win32_registry}" in
1042 x | xyes)
1043   # default.
1044   gcc_cv_win32_registry_key="$VERSION"
1045   ;;
1046 xno)
1047   # no registry lookup.
1048   gcc_cv_win32_registry_key=''
1049   ;;
1051   # user-specified key.
1052   gcc_cv_win32_registry_key="$enable_win32_registry"
1053   ;;
1054 esac
1056 if test "x$enable_win32_registry" != xno; then
1057   AC_MSG_CHECKING(registry key on windows hosts)
1058   AC_DEFINE_UNQUOTED(WIN32_REGISTRY_KEY, "$gcc_cv_win32_registry_key",
1059         [Define to be the last portion of registry key on windows hosts.])
1060   AC_MSG_RESULT($gcc_cv_win32_registry_key)
1063 esac
1065 # Get an absolute path to the GCC top-level source directory
1066 holddir=`${PWDCMD-pwd}`
1067 cd $srcdir
1068 topdir=`${PWDCMD-pwd}`
1069 cd $holddir
1071 # Conditionalize the makefile for this host machine.
1072 # Make-host contains the concatenation of all host makefile fragments
1073 # [there can be more than one].  This file is built by configure.frag.
1074 host_overrides=Make-host
1075 dep_host_xmake_file=
1076 for f in .. ${host_xmake_file}
1078         if test -f ${srcdir}/config/$f
1079         then
1080                 dep_host_xmake_file="${dep_host_xmake_file} ${srcdir}/config/$f"
1081         fi
1082 done
1084 # Conditionalize the makefile for this target machine.
1085 # Make-target contains the concatenation of all host makefile fragments
1086 # [there can be more than one].  This file is built by configure.frag.
1087 target_overrides=Make-target
1088 dep_tmake_file=
1089 for f in .. ${tmake_file}
1091         if test -f ${srcdir}/config/$f
1092         then
1093                 dep_tmake_file="${dep_tmake_file} ${srcdir}/config/$f"
1094         fi
1095 done
1097 # If the host doesn't support symlinks, modify CC in
1098 # FLAGS_TO_PASS so CC="stage1/xgcc -Bstage1/" works.
1099 # Otherwise, we can use "CC=$(CC)".
1100 rm -f symtest.tem
1101 if $symbolic_link $srcdir/gcc.c symtest.tem 2>/dev/null
1102 then
1103         cc_set_by_configure="\$(CC)"
1104         quoted_cc_set_by_configure="\$(CC)"
1105         stage_prefix_set_by_configure="\$(STAGE_PREFIX)"
1106         quoted_stage_prefix_set_by_configure="\$(STAGE_PREFIX)"
1107 else
1108         rm -f symtest.tem
1109         if cp -p $srcdir/gcc.c symtest.tem 2>/dev/null
1110         then
1111                 symbolic_link="cp -p"
1112         else
1113                 symbolic_link="cp"
1114         fi
1115         cc_set_by_configure="\`case '\$(CC)' in stage*) echo '\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\$(CC)';; esac\`"
1116         quoted_cc_set_by_configure="\\\`case '\\\$(CC)' in stage*) echo '\\\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\\\$(CC)';; esac\\\`"
1117         stage_prefix_set_by_configure="\`case '\$(STAGE_PREFIX)' in stage*) echo '\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\$(STAGE_PREFIX)';; esac\`"
1118         quoted_stage_prefix_set_by_configure="\\\`case '\\\$(STAGE_PREFIX)' in stage*) echo '\\\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\\\$(STAGE_PREFIX)';; esac\\\`"
1120 rm -f symtest.tem
1122 out_object_file=`basename $out_file .c`.o
1124 tm_file_list=
1125 for f in $tm_file; do
1126   case $f in
1127     ansidecl.h )
1128        tm_file_list="${tm_file_list} \$(srcdir)/../include/ansidecl.h" ;;
1129     defaults.h )
1130        tm_file_list="${tm_file_list} \$(srcdir)/$f" ;;
1131     *) tm_file_list="${tm_file_list} \$(srcdir)/config/$f" ;;
1132   esac
1133 done
1135 tm_p_file_list=
1136 for f in $tm_p_file; do
1137     tm_p_file_list="${tm_p_file_list} \$(srcdir)/config/$f"
1138 done
1140 host_xm_file_list=
1141 for f in $host_xm_file; do
1142   case $f in
1143     ansidecl.h )
1144        host_xm_file_list="${host_xm_file_list} \$(srcdir)/../include/ansidecl.h" ;;
1145     auto-host.h )
1146        host_xm_file_list="${host_xm_file_list} $f" ;;
1147     defaults.h )
1148        host_xm_file_list="${host_xm_file_list} \$(srcdir)/$f" ;;
1149     *) host_xm_file_list="${host_xm_file_list} \$(srcdir)/config/$f" ;;
1150   esac
1151 done
1153 build_xm_file_list=
1154 for f in $build_xm_file; do
1155   case $f in
1156     ansidecl.h )
1157        build_xm_file_list="${build_xm_file_list} \$(srcdir)/../include/ansidecl.h" ;;
1158     auto-build.h | auto-host.h )
1159        build_xm_file_list="${build_xm_file_list} $f" ;;
1160     defaults.h )
1161        host_xm_file_list="${host_xm_file_list} \$(srcdir)/$f" ;;
1162     *) build_xm_file_list="${build_xm_file_list} \$(srcdir)/config/$f" ;;
1163   esac
1164 done
1166 # Define macro CROSS_COMPILE in compilation if this is a cross-compiler.
1167 # Also use all.cross instead of all.internal and adjust SYSTEM_HEADER_DIR.
1168 CROSS=                                          AC_SUBST(CROSS)
1169 ALL=all.internal                                AC_SUBST(ALL)
1170 SYSTEM_HEADER_DIR='$(NATIVE_SYSTEM_HEADER_DIR)' AC_SUBST(SYSTEM_HEADER_DIR)
1171 if test x$host != x$target
1172 then
1173         CROSS="-DCROSS_COMPILE"
1174         ALL=all.cross
1175         SYSTEM_HEADER_DIR='$(CROSS_SYSTEM_HEADER_DIR)'
1176         case "$host","$target" in
1177             i?86-*-*,x86_64-*-* \
1178             | powerpc*-*-*,powerpc64*-*-*)
1179                 CROSS="$CROSS -DNATIVE_CROSS" ;;
1180         esac
1183 # If this is a cross-compiler that does not
1184 # have its own set of headers then define
1185 # inhibit_libc
1187 # If this is using newlib, then define inhibit_libc in LIBGCC2_CFLAGS.
1188 # This prevents libgcc2 from containing any code which requires libc
1189 # support.
1190 inhibit_libc=
1191 if [test x$host != x$target] && [test x$with_headers = x]; then
1192        inhibit_libc=-Dinhibit_libc
1193 else
1194        if [test x$with_newlib = xyes]; then
1195                inhibit_libc=-Dinhibit_libc
1196        fi
1198 AC_SUBST(inhibit_libc)
1200 # When building gcc with a cross-compiler, we need to adjust things so
1201 # that the generator programs are still built with the native compiler.
1202 # Also, we cannot run fixincludes or fix-header.
1203 # Note that the terminology here is wrong; it should be BUILD_* throughout.
1204 # FIXME.
1206 # These are the normal (build=host) settings:
1207 BUILD_PREFIX=                   AC_SUBST(BUILD_PREFIX)
1208 BUILD_PREFIX_1=ignore-          AC_SUBST(BUILD_PREFIX_1)
1209 HOST_CC='$(CC)'                 AC_SUBST(HOST_CC)
1210 HOST_CFLAGS='$(ALL_CFLAGS)'     AC_SUBST(HOST_CFLAGS)
1212 STMP_FIXINC=stmp-fixinc         AC_SUBST(STMP_FIXINC)
1213 STMP_FIXPROTO=stmp-fixproto     AC_SUBST(STMP_FIXPROTO)
1215 # And these apply if build != host.
1216 if test x$build != x$host
1217 then
1218     BUILD_PREFIX=build-
1219     BUILD_PREFIX_1=build-
1220     HOST_CC='$(CC_FOR_BUILD)'
1221     HOST_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD) $(XCFLAGS)'
1223     STMP_FIXINC=
1224     STMP_FIXPROTO=
1227 # Expand extra_headers to include complete path.
1228 # This substitutes for lots of t-* files.
1229 extra_headers_list=
1230 if test "x$extra_headers" = x
1231 then true
1232 else
1233         # Prepend ${srcdir}/config/${cpu_type}/ to every entry in extra_headers.
1234         for file in $extra_headers;
1235         do
1236                 extra_headers_list="${extra_headers_list} \$(srcdir)/config/${cpu_type}/${file}"
1237         done
1240 if test x$use_collect2 = xno; then
1241         use_collect2=
1244 # Add a definition of USE_COLLECT2 if system wants one.
1245 if test x$use_collect2 != x
1246 then
1247         host_xm_defines="${host_xm_defines} USE_COLLECT2"
1248         xm_defines="${xm_defines} USE_COLLECT2"
1251 # If we have gas in the build tree, make a link to it.
1252 if test -f ../gas/Makefile; then
1253         rm -f as; $symbolic_link ../gas/as-new$host_exeext as$host_exeext 2>/dev/null
1256 # If we have nm and objdump in the build tree, make a link to them.
1257 if test -f ../binutils/Makefile; then
1258         rm -f nm; $symbolic_link ../binutils/nm-new$host_exeext nm$host_exeext 2>/dev/null
1259         rm -f objdump; $symbolic_link ../binutils/objdump$host_exeext objdump$host_exeext 2>/dev/null
1262 # If we have ld in the build tree, make a link to it.
1263 if test -f ../ld/Makefile; then
1264         rm -f collect-ld; $symbolic_link ../ld/ld-new$host_exeext collect-ld$host_exeext 2>/dev/null
1267 # Figure out what assembler we will be using.
1268 AC_MSG_CHECKING(what assembler to use)
1269 gcc_cv_as=
1270 gcc_cv_gas_major_version=
1271 gcc_cv_gas_minor_version=
1272 gcc_cv_as_gas_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/gas
1273 gcc_cv_as_bfd_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/bfd
1274 if test -x "$DEFAULT_ASSEMBLER"; then
1275         gcc_cv_as="$DEFAULT_ASSEMBLER"
1276 elif test -x "$AS"; then
1277         gcc_cv_as="$AS"
1278 elif test -x as$host_exeext; then
1279         # Build using assembler in the current directory.
1280         gcc_cv_as=./as$host_exeext
1281 elif test -f $gcc_cv_as_gas_srcdir/configure.in -a -f ../gas/Makefile; then
1282         # Single tree build which includes gas.
1283         for f in $gcc_cv_as_bfd_srcdir/configure $gcc_cv_as_gas_srcdir/configure $gcc_cv_as_gas_srcdir/configure.in $gcc_cv_as_gas_srcdir/Makefile.in
1284         do
1285 changequote(,)dnl
1286                 gcc_cv_gas_version=`grep '^VERSION=[0-9]*\.[0-9]*' $f`
1287 changequote([,])dnl
1288                 if test x$gcc_cv_gas_version != x; then
1289                         break
1290                 fi
1291         done
1292 changequote(,)dnl
1293         gcc_cv_gas_major_version=`expr "$gcc_cv_gas_version" : "VERSION=\([0-9]*\)"`
1294         gcc_cv_gas_minor_version=`expr "$gcc_cv_gas_version" : "VERSION=[0-9]*\.\([0-9]*\)"`
1295         gcc_cv_gas_patch_version=`expr "$gcc_cv_gas_version" : "VERSION=[0-9]*\.[0-9]*\.\([0-9]*\)"`
1296 changequote([,])dnl
1299 if test "x$gcc_cv_as" = x; then
1300         # Search the same directories that the installed compiler will
1301         # search.  Else we may find the wrong assembler and lose.  If we
1302         # do not find a suitable assembler binary, then try the user's
1303         # path.
1304         #
1305         # Also note we have to check MD_EXEC_PREFIX before checking the
1306         # user's path.  Unfortunately, there is no good way to get at the
1307         # value of MD_EXEC_PREFIX here.  So we do a brute force search
1308         # through all the known MD_EXEC_PREFIX values.  Ugh.  This needs
1309         # to be fixed as part of the make/configure rewrite too.
1311         if test "x$exec_prefix" = xNONE; then
1312                 if test "x$prefix" = xNONE; then
1313                         test_prefix=/usr/local
1314                 else
1315                         test_prefix=$prefix
1316                 fi
1317         else
1318                 test_prefix=$exec_prefix
1319         fi
1321         # If the loop below does not find an assembler, then use whatever
1322         # one we can find in the users's path.
1323         # user's path.
1324         if test "x$program_prefix" != xNONE; then
1325                 gcc_cv_as=${program_prefix}as$host_exeext
1326         else
1327                 gcc_cv_as=`echo as | sed ${program_transform_name}`$host_exeext
1328         fi
1330         test_dirs="$test_prefix/lib/gcc-lib/$target_alias/$gcc_version \
1331                    $test_prefix/lib/gcc-lib/$target_alias \
1332                    /usr/lib/gcc/$target_alias/$gcc_version \
1333                    /usr/lib/gcc/$target_alias \
1334                    $test_prefix/$target_alias/bin/$target_alias/$gcc_version \
1335                    $test_prefix/$target_alias/bin"
1337         if test x$host = x$target; then
1338             test_dirs="$test_dirs \
1339                    /usr/libexec \
1340                    /usr/ccs/gcc \
1341                    /usr/ccs/bin \
1342                    /udk/usr/ccs/bin \
1343                    /bsd43/usr/lib/cmplrs/cc \
1344                    /usr/cross64/usr/bin \
1345                    /usr/lib/cmplrs/cc \
1346                    /sysv/usr/lib/cmplrs/cc \
1347                    /svr4/usr/lib/cmplrs/cc \
1348                    /usr/bin"
1349         fi
1351         for dir in $test_dirs; do
1352                 if test -x $dir/as$host_exeext; then
1353                         gcc_cv_as=$dir/as$host_exeext
1354                         break;
1355                 fi
1356         done
1358 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1359   AC_MSG_RESULT("newly built gas")
1360 else
1361   AC_MSG_RESULT($gcc_cv_as)
1364 # Figure out what linker we will be using.
1365 AC_MSG_CHECKING(what linker to use)
1366 gcc_cv_ld=
1367 gcc_cv_gld_major_version=
1368 gcc_cv_gld_minor_version=
1369 gcc_cv_ld_gld_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/ld
1370 gcc_cv_ld_bfd_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/bfd
1371 if test -x "$DEFAULT_LINKER"; then
1372         gcc_cv_ld="$DEFAULT_LINKER"
1373 elif test -x "$LD"; then
1374         gcc_cv_ld="$LD"
1375 elif test -x ld$host_exeext; then
1376         # Build using linker in the current directory.
1377         gcc_cv_ld=./ld$host_exeext
1378 elif test -f $gcc_cv_ld_gld_srcdir/configure.in -a -f ../ld/Makefile; then
1379         # Single tree build which includes ld.
1380         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
1381         do
1382 changequote(,)dnl
1383                 gcc_cv_gld_version=`grep '^VERSION=[0-9]*\.[0-9]*' $f`
1384 changequote([,])dnl
1385                 if test x$gcc_cv_gld_version != x; then
1386                         break
1387                 fi
1388         done
1389 changequote(,)dnl
1390         gcc_cv_gld_major_version=`expr "$gcc_cv_gld_version" : "VERSION=\([0-9]*\)"`
1391         gcc_cv_gld_minor_version=`expr "$gcc_cv_gld_version" : "VERSION=[0-9]*\.\([0-9]*\)"`
1392 changequote([,])dnl
1395 if test "x$gcc_cv_ld" = x; then
1396         # Search the same directories that the installed compiler will
1397         # search.  Else we may find the wrong linker and lose.  If we
1398         # do not find a suitable linker binary, then try the user's
1399         # path.
1400         #
1401         # Also note we have to check MD_EXEC_PREFIX before checking the
1402         # user's path.  Unfortunately, there is no good way to get at the
1403         # value of MD_EXEC_PREFIX here.  So we do a brute force search
1404         # through all the known MD_EXEC_PREFIX values.  Ugh.  This needs
1405         # to be fixed as part of the make/configure rewrite too.
1407         if test "x$exec_prefix" = xNONE; then
1408                 if test "x$prefix" = xNONE; then
1409                         test_prefix=/usr/local
1410                 else
1411                         test_prefix=$prefix
1412                 fi
1413         else
1414                 test_prefix=$exec_prefix
1415         fi
1417         # If the loop below does not find an linker, then use whatever
1418         # one we can find in the users's path.
1419         # user's path.
1420         if test "x$program_prefix" != xNONE; then
1421                 gcc_cv_ld=${program_prefix}ld$host_exeext
1422         else
1423                 gcc_cv_ld=`echo ld | sed ${program_transform_name}`$host_exeext
1424         fi
1426         test_dirs="$test_prefix/lib/gcc-lib/$target_alias/$gcc_version \
1427                    $test_prefix/lib/gcc-lib/$target_alias \
1428                    /usr/lib/gcc/$target_alias/$gcc_version \
1429                    /usr/lib/gcc/$target_alias \
1430                    $test_prefix/$target_alias/bin/$target_alias/$gcc_version \
1431                    $test_prefix/$target_alias/bin"
1433         if test x$host = x$target; then
1434             test_dirs="$test_dirs \
1435                    /usr/libexec \
1436                    /usr/ccs/gcc \
1437                    /usr/ccs/bin \
1438                    /udk/usr/ccs/bin \
1439                    /bsd43/usr/lib/cmplrs/cc \
1440                    /usr/cross64/usr/bin \
1441                    /usr/lib/cmplrs/cc \
1442                    /sysv/usr/lib/cmplrs/cc \
1443                    /svr4/usr/lib/cmplrs/cc \
1444                    /usr/bin"
1445         fi
1447         for dir in $test_dirs; do
1448                 if test -x $dir/ld$host_exeext; then
1449                         gcc_cv_ld=$dir/ld$host_exeext
1450                         break;
1451                 fi
1452         done
1454 if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then
1455   AC_MSG_RESULT("newly built ld")
1456 else
1457   AC_MSG_RESULT($gcc_cv_ld)
1460 # Figure out what nm we will be using.
1461 AC_MSG_CHECKING(what nm to use)
1462 if test -x nm$host_exeext; then
1463         gcc_cv_nm=./nm$host_exeext
1464 elif test "x$program_prefix" != xNONE; then
1465         gcc_cv_nm=${program_prefix}nm$host_exeext
1466 else
1467         gcc_cv_nm=`echo nm | sed ${program_transform_name}`$host_exeext
1469 AC_MSG_RESULT($gcc_cv_nm)
1471 # Figure out what objdump we will be using.
1472 AC_MSG_CHECKING(what objdump to use)
1473 if test -x objdump$host_exeext; then
1474         gcc_cv_objdump=./objdump$host_exeext
1475 elif test "x$program_prefix" != xNONE; then
1476         gcc_cv_objdump=${program_prefix}objdump$host_exeext
1477 else
1478         gcc_cv_objdump=`echo objdump | sed ${program_transform_name}`$host_exeext
1480 AC_MSG_RESULT($gcc_cv_objdump)
1482 # Figure out what assembler alignment features are present.
1483 AC_MSG_CHECKING(assembler alignment features)
1484 gcc_cv_as_alignment_features=none
1485 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1486         # Gas version 2.6 and later support for .balign and .p2align.
1487         # bytes to skip when using .p2align.
1488         if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 6 -o "$gcc_cv_gas_major_version" -gt 2; then
1489                 gcc_cv_as_alignment_features=".balign and .p2align"
1490                 AC_DEFINE(HAVE_GAS_BALIGN_AND_P2ALIGN)
1491         fi
1492         # Gas version 2.8 and later support specifying the maximum
1493         # bytes to skip when using .p2align.
1494         if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 8 -o "$gcc_cv_gas_major_version" -gt 2; then
1495                 gcc_cv_as_alignment_features=".p2align including maximum skip"
1496                 AC_DEFINE(HAVE_GAS_MAX_SKIP_P2ALIGN)
1497         fi
1498 elif test x$gcc_cv_as != x; then
1499         # Check if we have .balign and .p2align
1500         echo ".balign  4" > conftest.s
1501         echo ".p2align  2" >> conftest.s
1502         if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1503                 gcc_cv_as_alignment_features=".balign and .p2align"
1504                 AC_DEFINE(HAVE_GAS_BALIGN_AND_P2ALIGN)
1505         fi
1506         rm -f conftest.s conftest.o
1507         # Check if specifying the maximum bytes to skip when
1508         # using .p2align is supported.
1509         echo ".p2align 4,,7" > conftest.s
1510         if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1511                 gcc_cv_as_alignment_features=".p2align including maximum skip"
1512                 AC_DEFINE(HAVE_GAS_MAX_SKIP_P2ALIGN)
1513         fi
1514         rm -f conftest.s conftest.o
1516 AC_MSG_RESULT($gcc_cv_as_alignment_features)
1518 AC_MSG_CHECKING(assembler subsection support)
1519 gcc_cv_as_subsections=no
1520 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1521   if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
1522     gcc_cv_as_subsections="working .subsection -1"
1523   fi
1524 elif test x$gcc_cv_as != x; then
1525         # Check if we have .subsection
1526         echo ".subsection 1" > conftest.s
1527         if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1528                 gcc_cv_as_subsections=".subsection"
1529                 if test x$gcc_cv_nm != x; then
1530                         cat > conftest.s <<EOF
1531 conftest_label1: .word 0
1532 .subsection -1
1533 conftest_label2: .word 0
1534 .previous
1536                         if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1537                                 $gcc_cv_nm conftest.o | grep conftest_label1 > conftest.nm1
1538                                 $gcc_cv_nm conftest.o | grep conftest_label2 | sed -e 's/label2/label1/' > conftest.nm2
1539                                 if cmp conftest.nm1 conftest.nm2 > /dev/null 2>&1; then
1540                                         :
1541                                 else
1542                                         gcc_cv_as_subsections="working .subsection -1"
1543                                 fi
1544                         fi
1545                 fi
1546         fi
1547         rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1549 if test x"$gcc_cv_as_subsections" = x"working .subsection -1"; then
1550         AC_DEFINE(HAVE_GAS_SUBSECTION_ORDERING, 1,
1551 [Define if your assembler supports .subsection and .subsection -1 starts
1552    emitting at the beginning of your section.])
1554 AC_MSG_RESULT($gcc_cv_as_subsections)
1556 AC_MSG_CHECKING(assembler weak support)
1557 gcc_cv_as_weak=no
1558 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1559   if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 2 -o "$gcc_cv_gas_major_version" -gt 2; then
1560     gcc_cv_as_weak="yes"
1561   fi
1562 elif test x$gcc_cv_as != x; then
1563         # Check if we have .weak
1564         echo "  .weak foobar" > conftest.s
1565         if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1566                 gcc_cv_as_weak="yes"
1567         fi
1568         rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1570 if test x"$gcc_cv_as_weak" = xyes; then
1571         AC_DEFINE(HAVE_GAS_WEAK, 1, [Define if your assembler supports .weak.])
1573 AC_MSG_RESULT($gcc_cv_as_weak)
1575 AC_MSG_CHECKING(assembler hidden support)
1576 gcc_cv_as_hidden=no
1577 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1578   if test "$gcc_cv_gas_major_version" -eq 2     \
1579           -a "$gcc_cv_gas_minor_version" -eq 12 \
1580           -a "$gcc_cv_gas_patch_version" -ge 1  \
1581           -o "$gcc_cv_gas_major_version" -eq 2  \
1582           -a "$gcc_cv_gas_minor_version" -gt 12 \
1583           -o "$gcc_cv_gas_major_version" -gt 2  \
1584     && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
1585     gcc_cv_as_hidden="yes"
1586   fi
1587 elif test x$gcc_cv_as != x; then
1588         # Check if we have .hidden
1589         echo "  .hidden foobar" > conftest.s
1590         echo "foobar:" >> conftest.s
1591         if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1592                 gcc_cv_as_hidden="yes"
1593         fi
1594         rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1596         # GNU LD versions before 2.12.1 have buggy support for STV_HIDDEN.
1597         # This is irritatingly difficult to feature test for.  Look for 
1598         # the date string after the version number.
1599         ld_ver=`$gcc_cv_ld --version 2>/dev/null | head -1`
1600         if echo "$ld_ver" | grep GNU > /dev/null; then
1601 changequote(,)dnl
1602                 ld_vers=`echo $ld_ver | sed -n 's,^.*[  ]\([0-9][0-9]*\.[0-9][0-9]*\(\|\.[0-9][0-9]*\)\)\([     ].*\|\)$,\1,p'`
1603                 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'`
1604                 if test 0"$ld_date" -lt 20020404; then
1605                         if test -n "$ld_date"; then
1606                                 # If there was date string, but was earlier than 2002-04-04, fail
1607                                 gcc_cv_as_hidden="no"
1608                         elif test -z "$ld_vers"; then
1609                                 # If there was no date string nor ld version number, something is wrong
1610                                 gcc_cv_as_hidden="no"
1611                         else
1612                                 ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'`
1613                                 ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'`
1614                                 ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
1615                                 test -z "$ld_vers_patch" && ld_vers_patch=0
1616                                 if test "$ld_vers_major" -lt 2; then
1617                                         gcc_cv_as_hidden="no"
1618                                 elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 12; then
1619                                         gcc_cv_as_hidden="no"
1620                                 elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -eq 12 \
1621                                           -a "$ld_vers_patch" -eq 0; then
1622                                         gcc_cv_as_hidden="no"
1623                                 fi
1624                         fi
1625                 fi
1626 changequote([,])dnl
1627         fi
1629 if test x"$gcc_cv_as_hidden" = xyes; then
1630         AC_DEFINE(HAVE_GAS_HIDDEN, 1,
1631                 [Define if your assembler supports .hidden.])
1633 AC_MSG_RESULT($gcc_cv_as_hidden)
1634 libgcc_visibility=$gcc_cv_as_hidden
1635 case "$target" in
1636   mips-sgi-irix6*o32)
1637     if test x"$gnu_ld_flag" = x"no"; then
1638       # Even if using gas with .hidden support, the resulting object files
1639       # cannot be linked with the IRIX 6 O32 linker.
1640       libgcc_visibility=no
1641     fi
1642     ;;
1643 esac
1644 AC_SUBST(libgcc_visibility)
1646 AC_MSG_CHECKING(assembler leb128 support)
1647 gcc_cv_as_leb128=no
1648 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1649   if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 11 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
1650     gcc_cv_as_leb128="yes"
1651   fi
1652 elif test x$gcc_cv_as != x; then
1653         # Check if we have .[us]leb128, and support symbol arithmetic with it.
1654         cat > conftest.s <<EOF
1655         .data
1656         .uleb128 L2 - L1
1658         .uleb128 1280
1659         .sleb128 -1010
1662         if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1663                 gcc_cv_as_leb128="yes"
1665                 # GAS versions before 2.11 do not support uleb128,
1666                 # despite appearing to.
1667                 # ??? There exists an elf-specific test that will crash
1668                 # the assembler.  Perhaps it's better to figure out whether
1669                 # arbitrary sections are supported and try the test.
1670                 as_ver=`$gcc_cv_as --version 2>/dev/null | head -1`
1671                 if echo "$as_ver" | grep GNU > /dev/null; then
1672 changequote(,)dnl
1673                         as_ver=`echo $as_ver | sed -e 's/GNU assembler \([0-9.][0-9.]*\).*/\1/'`
1674                         as_major=`echo $as_ver | sed 's/\..*//'`
1675                         as_minor=`echo $as_ver | sed 's/[^.]*\.\([0-9]*\).*/\1/'`
1676 changequote([,])dnl
1677                         if test $as_major -eq 2 -a $as_minor -lt 11; then
1678                                 gcc_cv_as_leb128="no"
1679                         fi
1680                 fi
1681         fi
1682         rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1684 if test x"$gcc_cv_as_leb128" = xyes; then
1685         AC_DEFINE(HAVE_AS_LEB128, 1,
1686                 [Define if your assembler supports .uleb128.])
1688 AC_MSG_RESULT($gcc_cv_as_leb128)
1690 AC_MSG_CHECKING(assembler eh_frame optimization)
1691 gcc_cv_as_eh_frame=no
1692 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1693   if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 12 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
1694     gcc_cv_as_eh_frame="yes"
1695   fi
1696 elif test x$gcc_cv_as != x; then
1697         # Check if this is GAS.
1698         as_ver=`$gcc_cv_as --version < /dev/null 2> /dev/null | head -1`
1699         rm -f a.out 2> /dev/null
1700         if echo "$as_ver" | grep GNU > /dev/null; then
1701                 # Versions up to and including 2.11.0 may mis-optimize
1702                 # .eh_frame data.  Try something.
1703                 cat > conftest.s <<EOF
1704         .text
1705 .LFB1:
1706         .4byte  0
1707 .L1:
1708         .4byte  0
1709 .LFE1:
1710         .section        .eh_frame,"aw",@progbits
1711 __FRAME_BEGIN__:
1712         .4byte  .LECIE1-.LSCIE1
1713 .LSCIE1:
1714         .4byte  0x0
1715         .byte   0x1
1716         .ascii "z\0"
1717         .byte   0x1
1718         .byte   0x78
1719         .byte   0x1a
1720         .byte   0x0
1721         .byte   0x4
1722         .4byte  1
1723         .p2align 1
1724 .LECIE1:
1725 .LSFDE1:
1726         .4byte  .LEFDE1-.LASFDE1
1727 .LASFDE1:
1728         .4byte  .LASFDE1-__FRAME_BEGIN__
1729         .4byte  .LFB1
1730         .4byte  .LFE1-.LFB1
1731         .byte   0x4
1732         .4byte  .LFE1-.LFB1
1733         .byte   0x4
1734         .4byte  .L1-.LFB1
1735 .LEFDE1:
1737                 cat > conftest.lit <<EOF
1738  0000 10000000 00000000 017a0001 781a0004  .........z..x...
1739  0010 01000000 12000000 18000000 00000000  ................
1740  0020 08000000 04080000 0044               .........D      
1742                 cat > conftest.big <<EOF
1743  0000 00000010 00000000 017a0001 781a0004  .........z..x...
1744  0010 00000001 00000012 00000018 00000000  ................
1745  0020 00000008 04000000 0844               .........D      
1747                 # If the assembler didn't choke, and we can objdump,
1748                 # and we got the correct data, then succeed.
1749                 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
1750                    && $gcc_cv_objdump -s -j .eh_frame conftest.o 2>/dev/null \
1751                       | tail -3 > conftest.got \
1752                    && { cmp conftest.lit conftest.got > /dev/null 2>&1 \
1753                         || cmp conftest.big conftest.got > /dev/null 2>&1; }
1754                 then
1755                         gcc_cv_as_eh_frame="yes"
1756                 else
1757                         gcc_cv_as_eh_frame="bad"
1758                         if $gcc_cv_as -o conftest.o --traditional-format /dev/null; then
1759                                 AC_DEFINE(USE_AS_TRADITIONAL_FORMAT, 1,
1760         [Define if your assembler mis-optimizes .eh_frame data.])
1761                         fi
1762                 fi
1763         fi
1764         rm -f conftest.*
1766 AC_MSG_RESULT($gcc_cv_as_eh_frame)
1768 AC_MSG_CHECKING(assembler section merging support)
1769 gcc_cv_as_shf_merge=no
1770 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1771   if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 12 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
1772     gcc_cv_as_shf_merge=yes
1773   fi
1774 elif test x$gcc_cv_as != x; then
1775         # Check if we support SHF_MERGE sections
1776         echo '.section .rodata.str, "aMS", @progbits, 1' > conftest.s
1777         if $gcc_cv_as --fatal-warnings -o conftest.o conftest.s > /dev/null 2>&1; then
1778                 gcc_cv_as_shf_merge=yes
1779         fi
1780         rm -f conftest.s conftest.o
1782 if test x"$gcc_cv_as_shf_merge" = xyes; then
1783         AC_DEFINE(HAVE_GAS_SHF_MERGE, 1,
1784 [Define if your assembler supports marking sections with SHF_MERGE flag.])
1786 AC_MSG_RESULT($gcc_cv_as_shf_merge)
1788 AC_MSG_CHECKING(assembler thread-local storage support)
1789 gcc_cv_as_tls=no
1790 conftest_s=
1791 tls_first_major=
1792 tls_first_minor=
1793 case "$target" in
1794 changequote(,)dnl
1795   alpha*-*-*)
1796     conftest_s='
1797         .section ".tdata","awT",@progbits
1798 foo:    .long   25
1799         .text
1800         ldq     $27,__tls_get_addr($29)         !literal!1
1801         lda     $16,foo($29)                    !tlsgd!1
1802         jsr     $26,($27),__tls_get_addr        !lituse_tlsgd!1
1803         ldq     $27,__tls_get_addr($29)         !literal!2
1804         lda     $16,foo($29)                    !tlsldm!2
1805         jsr     $26,($27),__tls_get_addr        !lituse_tlsldm!2
1806         ldq     $1,foo($29)                     !gotdtprel
1807         ldah    $2,foo($29)                     !dtprelhi
1808         lda     $3,foo($2)                      !dtprello
1809         lda     $4,foo($29)                     !dtprel
1810         ldq     $1,foo($29)                     !gottprel
1811         ldah    $2,foo($29)                     !tprelhi
1812         lda     $3,foo($2)                      !tprello
1813         lda     $4,foo($29)                     !tprel'
1814         tls_first_major=2
1815         tls_first_minor=13
1816         ;;
1817   i[34567]86-*-*)
1818 changequote([,])dnl
1819     conftest_s='
1820         .section ".tdata","awT",@progbits
1821 foo:    .long   25
1822         .text
1823         movl    %gs:0, %eax
1824         leal    foo@TLSGD(,%ebx,1), %eax
1825         leal    foo@TLSLDM(%ebx), %eax
1826         leal    foo@DTPOFF(%eax), %edx
1827         movl    foo@GOTTPOFF(%ebx), %eax
1828         subl    foo@GOTTPOFF(%ebx), %eax
1829         addl    foo@GOTNTPOFF(%ebx), %eax
1830         movl    foo@INDNTPOFF, %eax
1831         movl    $foo@TPOFF, %eax
1832         subl    $foo@TPOFF, %eax
1833         leal    foo@NTPOFF(%ecx), %eax'
1834         tls_first_major=2
1835         tls_first_minor=14
1836         ;;
1837   x86_64-*-*)
1838     conftest_s='
1839         .section ".tdata","awT",@progbits
1840 foo:    .long   25
1841         .text
1842         movq    %fs:0, %rax
1843         leaq    foo@TLSGD(%rip), %rdi
1844         leaq    foo@TLSLD(%rip), %rdi
1845         leaq    foo@DTPOFF(%rax), %rdx
1846         movq    foo@GOTTPOFF(%rip), %rax
1847         movq    $foo@TPOFF, %rax'
1848         tls_first_major=2
1849         tls_first_minor=14
1850         ;;
1851   ia64-*-*)
1852     conftest_s='
1853         .section ".tdata","awT",@progbits
1854 foo:    data8   25
1855         .text
1856         addl    r16 = @ltoff(@dtpmod(foo#)), gp
1857         addl    r17 = @ltoff(@dtprel(foo#)), gp
1858         addl    r18 = @ltoff(@tprel(foo#)), gp
1859         addl    r19 = @dtprel(foo#), gp
1860         adds    r21 = @dtprel(foo#), r13
1861         movl    r23 = @dtprel(foo#)
1862         addl    r20 = @tprel(foo#), gp
1863         adds    r22 = @tprel(foo#), r13
1864         movl    r24 = @tprel(foo#)'
1865         tls_first_major=2
1866         tls_first_minor=13
1867         ;;
1868 esac
1869 if test -z "$tls_first_major"; then
1870   :
1871 elif test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x
1872 then
1873   if test "$gcc_cv_gas_major_version" -eq "$tls_first_major" \
1874           -a "$gcc_cv_gas_minor_version" -ge "$tls_first_minor" \
1875           -o "$gcc_cv_gas_major_version" -gt "$tls_first_major"; then
1876     gcc_cv_as_tls=yes
1877   fi
1878 elif test x$gcc_cv_as != x; then
1879   echo "$conftest_s" > conftest.s
1880   if $gcc_cv_as --fatal-warnings -o conftest.o conftest.s > /dev/null 2>&1
1881   then
1882     gcc_cv_as_tls=yes
1883   fi
1884   rm -f conftest.s conftest.o
1886 if test "$gcc_cv_as_tls" = yes; then
1887   AC_DEFINE(HAVE_AS_TLS, 1,
1888             [Define if your assembler supports thread-local storage.])
1890 AC_MSG_RESULT($gcc_cv_as_tls)
1892 case "$target" in
1893   # All TARGET_ABI_OSF targets.
1894   alpha*-*-osf* | alpha*-*-linux* | alpha*-*-*bsd*)
1895     AC_CACHE_CHECK([assembler supports explicit relocations],
1896         gcc_cv_as_explicit_relocs, [
1897         gcc_cv_as_explicit_relocs=unknown
1898         if test x$gcc_cv_gas_major_version != x \
1899                 -a x$gcc_cv_gas_minor_version != x
1900         then
1901            if test "$gcc_cv_gas_major_version" -eq 2 \
1902                    -a "$gcc_cv_gas_minor_version" -ge 12 \
1903                    -o "$gcc_cv_gas_major_version" -gt 2; then
1904               gcc_cv_as_explicit_relocs=yes
1905            fi
1906         elif test x$gcc_cv_as != x; then
1907             cat > conftest.s << 'EOF'
1908         .set nomacro
1909         .text
1910         extbl   $3, $2, $3      !lituse_bytoff!1
1911         ldq     $2, a($29)      !literal!1
1912         ldq     $4, b($29)      !literal!2
1913         ldq_u   $3, 0($2)       !lituse_base!1
1914         ldq     $27, f($29)     !literal!5
1915         jsr     $26, ($27), f   !lituse_jsr!5
1916         ldah    $29, 0($26)     !gpdisp!3
1917         lda     $0, c($29)      !gprel
1918         ldah    $1, d($29)      !gprelhigh
1919         lda     $1, d($1)       !gprellow
1920         lda     $29, 0($29)     !gpdisp!3
1922             if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1923                 gcc_cv_as_explicit_relocs=yes
1924             else
1925                 gcc_cv_as_explicit_relocs=no
1926             fi
1927             rm -f conftest.s conftest.o
1928         fi
1929     ])
1930     if test "x$gcc_cv_as_explicit_relocs" = xyes; then
1931         AC_DEFINE(HAVE_AS_EXPLICIT_RELOCS, 1,
1932                 [Define if your assembler supports explicit relocations.])
1933     fi
1934     ;;
1935   sparc*-*-*)
1936     AC_CACHE_CHECK([assembler .register pseudo-op support],
1937         gcc_cv_as_register_pseudo_op, [
1938         gcc_cv_as_register_pseudo_op=unknown
1939         if test x$gcc_cv_as != x; then
1940             # Check if we have .register
1941             echo ".register %g2, #scratch" > conftest.s
1942             if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1943                 gcc_cv_as_register_pseudo_op=yes
1944             else
1945                 gcc_cv_as_register_pseudo_op=no
1946             fi
1947             rm -f conftest.s conftest.o
1948         fi
1949     ])
1950     if test "x$gcc_cv_as_register_pseudo_op" = xyes; then
1951         AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP, 1,
1952                 [Define if your assembler supports .register.])
1953     fi
1955     AC_CACHE_CHECK([assembler supports -relax],
1956         gcc_cv_as_relax_opt, [
1957         gcc_cv_as_relax_opt=unknown
1958         if test x$gcc_cv_as != x; then
1959             # Check if gas supports -relax
1960             echo ".text" > conftest.s
1961             if $gcc_cv_as -relax -o conftest.o conftest.s > /dev/null 2>&1; then
1962                 gcc_cv_as_relax_opt=yes
1963             else
1964                 gcc_cv_as_relax_opt=no
1965             fi
1966             rm -f conftest.s conftest.o
1967         fi
1968     ])
1969     if test "x$gcc_cv_as_relax_opt" = xyes; then
1970         AC_DEFINE(HAVE_AS_RELAX_OPTION, 1,
1971                 [Define if your assembler supports -relax option.])
1972     fi
1974     AC_CACHE_CHECK([assembler and linker support unaligned pc related relocs],
1975         gcc_cv_as_sparc_ua_pcrel, [
1976         gcc_cv_as_sparc_ua_pcrel=unknown
1977         if test x$gcc_cv_as != x -a x$gcc_cv_ld != x; then
1978             gcc_cv_as_sparc_ua_pcrel=no
1979             echo ".text; foo: nop; .data; .align 4; .byte 0; .uaword %r_disp32(foo)" > conftest.s
1980             if $gcc_cv_as -K PIC -o conftest.o conftest.s > /dev/null 2>&1 \
1981                && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then
1982                 gcc_cv_as_sparc_ua_pcrel=yes
1983             fi
1984             rm -f conftest.s conftest.o conftest
1985         fi
1986     ])
1987     if test "x$gcc_cv_as_sparc_ua_pcrel" = xyes; then
1988         AC_DEFINE(HAVE_AS_SPARC_UA_PCREL, 1,
1989                 [Define if your assembler and linker support unaligned PC relative relocs.])
1990     fi
1992     AC_CACHE_CHECK([assembler and linker support unaligned pc related relocs against hidden symbols],
1993         gcc_cv_as_sparc_ua_pcrel_hidden, [
1994         if test "x$gcc_cv_as_sparc_ua_pcrel" = xyes; then
1995             gcc_cv_as_sparc_ua_pcrel_hidden=unknown
1996             if test x$gcc_cv_objdump != x; then
1997                 gcc_cv_as_sparc_ua_pcrel_hidden=no
1998                 echo ".data; .align 4; .byte 0x31; .uaword %r_disp32(foo)" > conftest.s
1999                 echo ".byte 0x32, 0x33, 0x34; .global foo; .hidden foo" >> conftest.s
2000                 echo "foo: .skip 4" >> conftest.s
2001                 if $gcc_cv_as -K PIC -o conftest.o conftest.s > /dev/null 2>&1 \
2002                    && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1 \
2003                    && $gcc_cv_objdump -s -j .data conftest 2> /dev/null \
2004                       | grep ' 31000000 07323334' > /dev/null 2>&1; then
2005                     if $gcc_cv_objdump -R conftest 2> /dev/null \
2006                        | grep 'DISP32' > /dev/null 2>&1; then
2007                         :
2008                     else
2009                         gcc_cv_as_sparc_ua_pcrel_hidden=yes
2010                     fi
2011                 fi
2012             fi
2013             rm -f conftest.s conftest.o conftest
2014         else
2015             gcc_cv_as_sparc_ua_pcrel_hidden="$gcc_cv_as_sparc_ua_pcrel"
2016         fi
2017     ])
2018     if test "x$gcc_cv_as_sparc_ua_pcrel_hidden" = xyes; then
2019         AC_DEFINE(HAVE_AS_SPARC_UA_PCREL_HIDDEN, 1,
2020                 [Define if your assembler and linker support unaligned PC relative relocs against hidden symbols.])
2021     fi
2023     AC_CACHE_CHECK([for assembler offsetable %lo() support],
2024         gcc_cv_as_offsetable_lo10, [
2025         gcc_cv_as_offsetable_lo10=unknown
2026         if test "x$gcc_cv_as" != x; then
2027             # Check if assembler has offsetable %lo()
2028             echo "or %g1, %lo(ab) + 12, %g1" > conftest.s
2029             echo "or %g1, %lo(ab + 12), %g1" > conftest1.s
2030             if $gcc_cv_as -xarch=v9 -o conftest.o conftest.s \
2031                     > /dev/null 2>&1 &&
2032                $gcc_cv_as -xarch=v9 -o conftest1.o conftest1.s \
2033                     > /dev/null 2>&1; then
2034                 if cmp conftest.o conftest1.o > /dev/null 2>&1; then
2035                     gcc_cv_as_offsetable_lo10=no
2036                 else
2037                     gcc_cv_as_offsetable_lo10=yes
2038                 fi
2039             else
2040                 gcc_cv_as_offsetable_lo10=no
2041             fi
2042             rm -f conftest.s conftest.o conftest1.s conftest1.o
2043         fi
2044     ])
2045     if test "x$gcc_cv_as_offsetable_lo10" = xyes; then
2046         AC_DEFINE(HAVE_AS_OFFSETABLE_LO10, 1,
2047             [Define if your assembler supports offsetable %lo().])
2048     fi
2050     ;;
2052 changequote(,)dnl
2053   i[34567]86-*-* | x86_64-*-*)
2054 changequote([,])dnl
2055     AC_MSG_CHECKING(assembler instructions)
2056     gcc_cv_as_instructions=
2057     if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
2058       if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2; then
2059         gcc_cv_as_instructions="filds fists"
2060       fi
2061     elif test x$gcc_cv_as != x; then
2062         set "filds fists" "filds mem; fists mem"
2063         while test $# -gt 0
2064         do
2065                 echo "$2" > conftest.s
2066                 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
2067                         gcc_cv_as_instructions=${gcc_cv_as_instructions}$1" "
2068                 fi
2069                 shift 2
2070         done
2071         rm -f conftest.s conftest.o
2072     fi
2073     if test x"$gcc_cv_as_instructions" != x; then
2074         AC_DEFINE_UNQUOTED(HAVE_GAS_`echo "$gcc_cv_as_instructions" | sed -e 's/ $//' | tr '[a-z ]' '[A-Z_]'`)
2075     fi
2076     AC_MSG_RESULT($gcc_cv_as_instructions)
2078     AC_MSG_CHECKING(assembler GOTOFF in data directives)
2079     gcc_cv_as_gotoff_in_data=no
2080     if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x
2081     then
2082       if test "$gcc_cv_gas_major_version" -eq 2 \
2083          -a "$gcc_cv_gas_minor_version" -ge 11 \
2084          -o "$gcc_cv_gas_major_version" -gt 2; then
2085         gcc_cv_as_gotoff_in_data=yes
2086       fi
2087     elif test x$gcc_cv_as != x; then
2088         cat > conftest.s <<EOF
2089         .text
2090 .L0:
2091         nop
2092         .data
2093         .long .L0@GOTOFF
2095         if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
2096           gcc_cv_as_gotoff_in_data=yes
2097         fi
2098     fi
2099     AC_DEFINE_UNQUOTED(HAVE_AS_GOTOFF_IN_DATA,
2100       [`if test $gcc_cv_as_gotoff_in_data = yes; then echo 1; else echo 0; fi`],
2101       [Define true if the assembler supports '.long foo@GOTOFF'.])
2102     AC_MSG_RESULT($gcc_cv_as_gotoff_in_data)
2103     ;;
2104 esac
2106 AC_MSG_CHECKING(assembler dwarf2 debug_line support)
2107 gcc_cv_as_dwarf2_debug_line=no
2108 # ??? Not all targets support dwarf2 debug_line, even within a version
2109 # of gas.  Moreover, we need to emit a valid instruction to trigger any
2110 # info to the output file.  So, as supported targets are added to gas 2.11,
2111 # add some instruction here to (also) show we expect this might work.
2112 # ??? Once 2.11 is released, probably need to add first known working
2113 # version to the per-target configury.
2114 case "$target" in
2115   i?86*-*-* | mips*-*-* | alpha*-*-* | powerpc*-*-* | sparc*-*-* | m68*-*-* | x86_64*-*-* | hppa*-*-*)
2116     insn="nop"
2117     ;;
2118   ia64*-*-*)
2119     insn="nop 0"
2120     ;;
2121   esac
2122 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x;
2123 then
2124   if test "$gcc_cv_gas_major_version" -eq 2 \
2125         -a "$gcc_cv_gas_minor_version" -ge 11 \
2126         -o "$gcc_cv_gas_major_version" -gt 2 \
2127      && grep 'obj_format = elf' ../gas/Makefile > /dev/null \
2128      && test x"$insn" != x ; then
2129     gcc_cv_as_dwarf2_debug_line="yes"
2130   fi
2131 elif test x$gcc_cv_as != x -a x"$insn" != x ; then
2132         echo '  .file 1 "conftest.s"' > conftest.s
2133         echo '  .loc 1 3 0' >> conftest.s
2134         echo "  $insn" >> conftest.s
2135         # ??? This fails with non-gnu grep.
2136         if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
2137            && grep debug_line conftest.o > /dev/null 2>&1 ; then
2138                 # The .debug_line file table must be in the exact order that
2139                 # we specified the files, since these indices are also used
2140                 # by DW_AT_decl_file.  Approximate this test by testing if
2141                 # the assembler bitches if the same index is assigned twice.
2142                 echo '  .file 1 "foo.s"' > conftest.s
2143                 echo '  .file 1 "bar.s"' >> conftest.s
2144                 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1
2145                 then
2146                   gcc_cv_as_dwarf2_debug_line="no"
2147                 else
2148                   gcc_cv_as_dwarf2_debug_line="yes"
2149                 fi
2150         fi
2151         rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
2153 if test x"$gcc_cv_as_dwarf2_debug_line" = xyes; then
2154         AC_DEFINE(HAVE_AS_DWARF2_DEBUG_LINE, 1,
2155 [Define if your assembler supports dwarf2 .file/.loc directives,
2156    and preserves file table indices exactly as given.])
2158 AC_MSG_RESULT($gcc_cv_as_dwarf2_debug_line)
2160 AC_MSG_CHECKING(assembler --gdwarf2 support)
2161 gcc_cv_as_gdwarf2_flag=no
2162 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x;
2163 then
2164   if test "$gcc_cv_gas_major_version" -eq 2 \
2165         -a "$gcc_cv_gas_minor_version" -ge 11 \
2166         -o "$gcc_cv_gas_major_version" -gt 2 \
2167      && grep 'obj_format = elf' ../gas/Makefile > /dev/null \
2168      && test x"$insn" != x ; then
2169     gcc_cv_as_gdwarf2_flag="yes"
2170   fi
2171 elif test x$gcc_cv_as != x -a x"$insn" != x ; then
2172         echo '' > conftest.s
2173         # ??? This fails with non-gnu grep.
2174         if $gcc_cv_as --gdwarf2 -o conftest.o conftest.s > /dev/null 2>&1
2175           then
2176           gcc_cv_as_gdwarf2_flag="yes"
2177         fi
2178         rm -f conftest.s conftest.o
2180 if test x"$gcc_cv_as_gdwarf2_flag" = xyes; then
2181         AC_DEFINE(HAVE_AS_GDWARF2_DEBUG_FLAG, 1,
2182 [Define if your assembler supports the --gdwarf2 option.])
2184 AC_MSG_RESULT($gcc_cv_as_gdwarf2_flag)
2186 AC_MSG_CHECKING(assembler --gstabs support)
2187 gcc_cv_as_gstabs_flag=no
2188 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x;
2189 then
2190   if test "$gcc_cv_gas_major_version" -eq 2 \
2191         -a "$gcc_cv_gas_minor_version" -ge 11 \
2192         -o "$gcc_cv_gas_major_version" -gt 2 \
2193      && grep 'obj_format = elf' ../gas/Makefile > /dev/null \
2194      && test x"$insn" != x ; then
2195     gcc_cv_as_gstabs_flag="yes"
2196   fi
2197 elif test x$gcc_cv_as != x -a x"$insn" != x ; then
2198         echo '' > conftest.s
2199         # ??? This fails with non-gnu grep.
2200         if $gcc_cv_as --gstabs -o conftest.o conftest.s > /dev/null 2>&1 ; then
2201           gcc_cv_as_gstabs_flag="yes"
2202         fi
2203         rm -f conftest.s conftest.o
2205 if test x"$gcc_cv_as_gstabs_flag" = xyes; then
2206         AC_DEFINE(HAVE_AS_GSTABS_DEBUG_FLAG, 1,
2207 [Define if your assembler supports the --gstabs option.])
2209 AC_MSG_RESULT($gcc_cv_as_gstabs_flag)
2211 AC_MSG_CHECKING(linker PT_GNU_EH_FRAME support)
2212 gcc_cv_ld_eh_frame_hdr=no
2213 if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then
2214   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
2215     gcc_cv_ld_eh_frame_hdr=yes
2216   fi
2217 elif test x$gcc_cv_ld != x; then
2218         # Check if linker supports --eh-frame-hdr option
2219         if $gcc_cv_ld --help 2>/dev/null | grep eh-frame-hdr > /dev/null; then
2220                 gcc_cv_ld_eh_frame_hdr=yes
2221         fi
2223 if test x"$gcc_cv_ld_eh_frame_hdr" = xyes; then
2224         AC_DEFINE(HAVE_LD_EH_FRAME_HDR, 1,
2225 [Define if your linker supports --eh-frame-hdr option.])
2227 AC_MSG_RESULT($gcc_cv_ld_eh_frame_hdr)
2229 # Miscellaneous target-specific checks.
2230 case "$target" in
2231   mips*-*-*)
2232     AC_MSG_CHECKING(whether libgloss uses STARTUP directives consistently)
2233     gcc_cv_mips_libgloss_startup=no
2234     gcc_cv_libgloss_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/libgloss
2235     if test "x$exec_prefix" = xNONE; then
2236       if test "x$prefix" = xNONE; then
2237         test_prefix=/usr/local
2238       else
2239         test_prefix=$prefix
2240       fi
2241     else
2242       test_prefix=$exec_prefix
2243     fi
2244     for f in $gcc_cv_libgloss_srcdir/mips/idt.ld $test_prefix/$target_alias/lib/idt.ld
2245     do
2246       if grep '^STARTUP' $f > /dev/null 2>&1; then
2247         gcc_cv_mips_libgloss_startup=yes
2248         break
2249       fi
2250     done
2251     if test x"$gcc_cv_mips_libgloss_startup" = xyes; then
2252       AC_DEFINE(HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES, 1,
2253         [Define if your MIPS libgloss linker scripts consistently include STARTUP directives.])
2254     fi
2255     AC_MSG_RESULT($gcc_cv_mips_libgloss_startup)
2256     ;;
2257 esac
2259 if test "$prefix" != "/usr" && test "x$prefix" != "x$local_prefix" ; then
2260   AC_DEFINE_UNQUOTED(PREFIX_INCLUDE_DIR, "$prefix/include")
2263 # Figure out what language subdirectories are present.
2264 # Look if the user specified --enable-languages="..."; if not, use
2265 # the environment variable $LANGUAGES if defined. $LANGUAGES might
2266 # go away some day.
2267 # NB:  embedded tabs in this IF block -- do not untabify
2268 if test x"${enable_languages+set}" != xset; then
2269         if test x"${LANGUAGES+set}" = xset; then
2270                 enable_languages="${LANGUAGES}"
2271                 AC_MSG_WARN([setting LANGUAGES is deprecated, use --enable-languages instead])
2273         else
2274                 enable_languages=all
2275         fi
2276 else
2277         if test x"${enable_languages}" = x \
2278         || test x"${enable_languages}" = xyes;
2279         then
2280                 AC_MSG_ERROR([--enable-languages needs at least one language argument])
2281         fi
2283 enable_languages=`echo "${enable_languages}" | sed -e 's/[[     ,]][[   ,]]*/,/g' -e 's/,$//'`
2285 # First scan to see if an enabled language requires some other language.
2286 # We assume that a given config-lang.in will list all the language
2287 # front ends it requires, even if some are required indirectly.
2288 for lang in ${srcdir}/*/config-lang.in ..
2290    case $lang in
2291     ..)
2292        ;;
2293     # The odd quoting in the next line works around
2294     # an apparent bug in bash 1.12 on linux.
2295 changequote(,)dnl
2296     ${srcdir}/[*]/config-lang.in)
2297        ;;
2298     *)
2299        lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^      ]*\).*$,\1,p' $lang`
2300        this_lang_requires=`sed -n -e 's,^lang_requires=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^lang_requires=\([^    ]*\).*$,\1,p' $lang`
2301        for other in $this_lang_requires
2302        do
2303           case ,${enable_languages}, in
2304            *,$other,*)
2305               ;;
2306            *,all,*)
2307               ;;
2308            *,$lang_alias,*)
2309               enable_languages="$enable_languages,$other"
2310               ;;
2311           esac
2312        done
2313        ;;
2314 changequote([,])dnl
2315    esac
2316 done
2318 expected_languages=`echo ,${enable_languages}, | sed -e 's:,: :g' -e 's:  *: :g' -e 's:  *: :g' -e 's:^ ::' -e 's: $::'`
2319 found_languages=
2320 subdirs=
2321 for lang in ${srcdir}/*/config-lang.in ..
2323         case $lang in
2324         ..) ;;
2325         # The odd quoting in the next line works around
2326         # an apparent bug in bash 1.12 on linux.
2327 changequote(,)dnl
2328         ${srcdir}/[*]/config-lang.in) ;;
2329         *)
2330           lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^   ]*\).*$,\1,p' $lang`
2331           this_lang_libs=`sed -n -e 's,^target_libs=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^target_libs=\([^         ]*\).*$,\1,p' $lang`
2332           build_by_default=`sed -n -e 's,^build_by_default=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^build_by_default=\([^     ]*\).*$,\1,p' $lang`
2333           if test "x$lang_alias" = x
2334           then
2335                 echo "$lang doesn't set \$language." 1>&2
2336                 exit 1
2337           fi
2338           case ${build_by_default},${enable_languages}, in
2339           *,$lang_alias,*) add_this_lang=yes ;;
2340           no,*) add_this_lang=no ;;
2341           *,all,*) add_this_lang=yes ;;
2342           *) add_this_lang=no ;;
2343           esac
2344           found_languages="${found_languages} ${lang_alias}"
2345           if test x"${add_this_lang}" = xyes; then
2346                 case $lang in
2347                     ${srcdir}/ada/config-lang.in)
2348                         if test x$have_gnat = xyes ; then
2349                                 subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`"
2350                         fi
2351                         ;;
2352                     *)
2353                         subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`"
2354                         ;;
2355                 esac
2356           fi
2357           ;;
2358 changequote([,])dnl
2359         esac
2360 done
2362 missing_languages=
2363 for expected_language in ${expected_languages} ..
2364 do 
2365     if test "${expected_language}" != ..; then
2366         missing_language="${expected_language}"
2367         if test "${expected_language}" = "c" \
2368            || test "${expected_language}" = "all"; then
2369                 missing_language=
2370         fi
2371         for found_language in ${found_languages} ..
2372         do 
2373             if test "${found_language}" != ..; then
2374                 if test "${expected_language}" = "${found_language}"; then
2375                     missing_language=
2376                 fi
2377             fi
2378         done
2379         if test "x${missing_language}" != x; then
2380            missing_languages="${missing_languages} ${missing_language}"
2381         fi
2382     fi
2383 done
2385 if test "x$missing_languages" != x; then
2386   AC_MSG_ERROR([
2387 The following requested languages were not found:${missing_languages}
2388 The following languages were available: c${found_languages}])
2391 # Make gthr-default.h if we have a thread file.
2392 gthread_flags=
2393 if test $thread_file != single; then
2394     rm -f gthr-default.h
2395     echo "#include \"gthr-${thread_file}.h\"" > gthr-default.h
2396     gthread_flags=-DHAVE_GTHR_DEFAULT
2398 AC_SUBST(gthread_flags)
2400 # Find out what GC implementation we want, or may, use.
2401 AC_ARG_WITH(gc,
2402 [  --with-gc={simple,page} choose the garbage collection mechanism to use
2403                           with the compiler],
2404 [case "$withval" in
2405   simple | page)
2406     GGC=ggc-$withval
2407     ;;
2408   *)
2409     AC_MSG_ERROR([$withval is an invalid option to --with-gc])
2410     ;;
2411 esac],
2412 [GGC=ggc-page])
2413 AC_SUBST(GGC)
2414 echo "Using $GGC for garbage collection."
2416 # Use the system's zlib library.
2417 zlibdir=-L../zlib
2418 zlibinc="-I\$(srcdir)/../zlib"
2419 AC_ARG_WITH(system-zlib,
2420 [  --with-system-zlib      use installed libz],
2421 zlibdir=
2422 zlibinc=
2424 AC_SUBST(zlibdir)
2425 AC_SUBST(zlibinc)
2427 dnl Very limited version of automake's enable-maintainer-mode
2429 AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
2430   dnl maintainer-mode is disabled by default
2431   AC_ARG_ENABLE(maintainer-mode,
2432 [  --enable-maintainer-mode
2433                           enable make rules and dependencies not useful
2434                           (and sometimes confusing) to the casual installer],
2435       maintainer_mode=$enableval,
2436       maintainer_mode=no)
2438 AC_MSG_RESULT($maintainer_mode)
2440 if test "$maintainer_mode" = "yes"; then
2441   MAINT=''
2442 else
2443   MAINT='#'
2445 AC_SUBST(MAINT)dnl
2447 # With Setjmp/Longjmp based exception handling.
2448 AC_ARG_ENABLE(sjlj-exceptions,
2449 [  --enable-sjlj-exceptions
2450                           arrange to use setjmp/longjmp exception handling],
2451 [sjlj=`if test $enableval = yes; then echo 1; else echo 0; fi`
2452 AC_DEFINE_UNQUOTED(CONFIG_SJLJ_EXCEPTIONS, $sjlj,
2453   [Define 0/1 to force the choice for exception handling model.])])
2455 # Use libunwind based exception handling.
2456 AC_ARG_ENABLE(libunwind-exceptions,
2457 [  --enable-libunwind-exceptions  force use libunwind for exceptions],
2458 use_libunwind_exceptions=$enableval,
2459 use_libunwind_exceptions=no)
2460 if test x"$use_libunwind_exceptions" = xyes; then
2461    AC_DEFINE(USE_LIBUNWIND_EXCEPTIONS, 1,
2462         [Define if gcc should use -lunwind.])
2465 # Make empty files to contain the specs and options for each language.
2466 # Then add #include lines to for a compiler that has specs and/or options.
2468 lang_specs_files=
2469 lang_options_files=
2470 lang_tree_files=
2471 for subdir in . $subdirs
2473         if test -f $srcdir/$subdir/lang-specs.h; then
2474             lang_specs_files="$lang_specs_files $srcdir/$subdir/lang-specs.h"
2475         fi
2476         if test -f $srcdir/$subdir/lang-options.h; then
2477             lang_options_files="$lang_options_files $srcdir/$subdir/lang-options.h"
2478         fi
2479         if test -f $srcdir/$subdir/$subdir-tree.def; then
2480             lang_tree_files="$lang_tree_files $srcdir/$subdir/$subdir-tree.def"
2481         fi
2482 done
2484 # These (without "all_") are set in each config-lang.in.
2485 # `language' must be a single word so is spelled singularly.
2486 all_languages=
2487 all_boot_languages=
2488 all_compilers=
2489 all_stagestuff=
2490 all_outputs='Makefile intl/Makefile fixinc/Makefile gccbug mklibgcc mkheaders'
2491 # List of language makefile fragments.
2492 all_lang_makefiles=
2493 # Files for gengtype
2494 all_gtfiles="$target_gtfiles"
2495 # Files for gengtype with language
2496 all_gtfiles_files_langs=
2497 all_gtfiles_files_files=
2499 # Add the language fragments.
2500 # Languages are added via two mechanisms.  Some information must be
2501 # recorded in makefile variables, these are defined in config-lang.in.
2502 # We accumulate them and plug them into the main Makefile.
2503 # The other mechanism is a set of hooks for each of the main targets
2504 # like `clean', `install', etc.
2506 language_fragments="Make-lang"
2507 language_hooks="Make-hooks"
2509 for s in .. $subdirs
2511         if test $s != ".."
2512         then
2513                 language=
2514                 boot_language=
2515                 compilers=
2516                 stagestuff=
2517                 outputs=
2518                 gtfiles=
2519                 . ${srcdir}/$s/config-lang.in
2520                 if test "x$language" = x
2521                 then
2522                         echo "${srcdir}/$s/config-lang.in doesn't set \$language." 1>&2
2523                         exit 1
2524                 fi
2525                 all_lang_makefiles="$all_lang_makefiles ${srcdir}/$s/Make-lang.in"
2526                 if test -f ${srcdir}/$s/Makefile.in
2527                 then all_lang_makefiles="$all_lang_makefiles ${srcdir}/$s/Makefile.in"
2528                 fi
2529                 all_languages="$all_languages $language"
2530                 if test "x$boot_language" = xyes
2531                 then
2532                         all_boot_languages="$all_boot_languages $language"
2533                 fi
2534                 all_compilers="$all_compilers $compilers"
2535                 all_stagestuff="$all_stagestuff $stagestuff"
2536                 all_outputs="$all_outputs $outputs"
2537                 all_gtfiles="$all_gtfiles $gtfiles"
2538                 for f in .. $gtfiles
2539                 do
2540                      if test $f != ".."
2541                      then
2542                          all_gtfiles_files_langs="$all_gtfiles_files_langs ${s} "
2543                          all_gtfiles_files_files="$all_gtfiles_files_files ${f} "
2544                      fi
2545                 done
2546         fi
2547 done
2549 # Pick up gtfiles for c
2550 gtfiles=
2551 s="c"
2552 . ${srcdir}/c-config-lang.in
2553 all_gtfiles="$all_gtfiles $gtfiles"
2554 for f in .. $gtfiles
2556      if test $f != ".."
2557      then
2558         all_gtfiles_files_langs="$all_gtfiles_files_langs ${s} "
2559         all_gtfiles_files_files="$all_gtfiles_files_files ${f} "
2560      fi
2561 done
2563 check_languages=
2564 for language in .. $all_languages
2566         if test $language != ".."
2567         then
2568                 check_languages="$check_languages check-$language"
2569         fi
2570 done
2572 # Since we can't use `::' targets, we link each language in
2573 # with a set of hooks, reached indirectly via lang.${target}.
2575 rm -f Make-hooks
2576 touch Make-hooks
2577 target_list="all.build all.cross start.encap rest.encap \
2578         info dvi generated-manpages \
2579         install-normal install-common install-info install-man \
2580         uninstall \
2581         mostlyclean clean distclean extraclean maintainer-clean \
2582         stage1 stage2 stage3 stage4"
2583 for t in $target_list
2585         x=
2586         for lang in .. $all_languages
2587         do
2588                 if test $lang != ".."; then
2589                         x="$x $lang.$t"
2590                 fi
2591         done
2592         echo "lang.$t: $x" >> Make-hooks
2593 done
2595 # Create .gdbinit.
2597 echo "dir ." > .gdbinit
2598 echo "dir ${srcdir}" >> .gdbinit
2599 if test x$gdb_needs_out_file_path = xyes
2600 then
2601         echo "dir ${srcdir}/config/"`dirname ${out_file}` >> .gdbinit
2603 if test "x$subdirs" != x; then
2604         for s in $subdirs
2605         do
2606                 echo "dir ${srcdir}/$s" >> .gdbinit
2607         done
2609 echo "source ${srcdir}/gdbinit.in" >> .gdbinit
2611 # Define variables host_canonical and build_canonical
2612 # because some Cygnus local changes in the Makefile depend on them.
2613 build_canonical=${build}
2614 host_canonical=${host}
2615 target_subdir=
2616 if test "${host}" != "${target}" ; then
2617     target_subdir=${target_alias}/
2619 AC_SUBST(build_canonical)
2620 AC_SUBST(host_canonical)
2621 AC_SUBST(target_subdir)
2622         
2623 # If $(exec_prefix) exists and is not the same as $(prefix), then compute an
2624 # absolute path for gcc_tooldir based on inserting the number of up-directory
2625 # movements required to get from $(exec_prefix) to $(prefix) into the basic
2626 # $(libsubdir)/@(unlibsubdir) based path.
2627 # Don't set gcc_tooldir to tooldir since that's only passed in by the toplevel
2628 # make and thus we'd get different behavior depending on where we built the
2629 # sources.
2630 if test x$exec_prefix = xNONE -o x$exec_prefix = x$prefix; then
2631     gcc_tooldir='$(libsubdir)/$(unlibsubdir)/../$(target_alias)'
2632 else
2633 changequote(<<, >>)dnl
2634 # An explanation of the sed strings:
2635 #  -e 's|^\$(prefix)||'   matches and eliminates 'prefix' from 'exec_prefix'
2636 #  -e 's|/$||'            match a trailing forward slash and eliminates it
2637 #  -e 's|^[^/]|/|'        forces the string to start with a forward slash (*)
2638 #  -e 's|/[^/]*|../|g'    replaces each occurrence of /<directory> with ../
2640 # (*) Note this pattern overwrites the first character of the string
2641 # with a forward slash if one is not already present.  This is not a
2642 # problem because the exact names of the sub-directories concerned is
2643 # unimportant, just the number of them matters.
2645 # The practical upshot of these patterns is like this:
2647 #  prefix     exec_prefix        result
2648 #  ------     -----------        ------
2649 #   /foo        /foo/bar          ../
2650 #   /foo/       /foo/bar          ../
2651 #   /foo        /foo/bar/         ../
2652 #   /foo/       /foo/bar/         ../
2653 #   /foo        /foo/bar/ugg      ../../
2655     dollar='$$'
2656     gcc_tooldir="\$(libsubdir)/\$(unlibsubdir)/\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/\$(dollar)||' -e 's|^[^/]|/|' -e 's|/[^/]*|../|g'\`\$(target_alias)"
2657 changequote([, ])dnl
2659 AC_SUBST(gcc_tooldir)
2660 AC_SUBST(dollar)
2662 # Find a directory in which to install a shared libgcc.
2664 AC_ARG_ENABLE(version-specific-runtime-libs,
2665 [  --enable-version-specific-runtime-libs
2666                           specify that runtime libraries should be
2667                           installed in a compiler-specific directory])
2669 AC_ARG_WITH(slibdir,
2670 [  --with-slibdir=DIR      shared libraries in DIR [LIBDIR]],
2671 slibdir="$with_slibdir",
2672 if test "${enable_version_specific_runtime_libs+set}" = set; then
2673   slibdir='$(libsubdir)'
2674 elif test "$host" != "$target"; then
2675   slibdir='$(build_tooldir)/lib'
2676 else
2677   slibdir='$(libdir)'
2679 AC_SUBST(slibdir)
2681 objdir=`${PWDCMD-pwd}`
2682 AC_SUBST(objdir)
2684 # Process the language and host/target makefile fragments.
2685 ${CONFIG_SHELL-/bin/sh} $srcdir/configure.frag $srcdir "$subdirs" "$dep_host_xmake_file" "$dep_tmake_file"
2687 # Substitute configuration variables
2688 AC_SUBST(subdirs)
2689 AC_SUBST(srcdir)
2690 AC_SUBST(all_boot_languages)
2691 AC_SUBST(all_compilers)
2692 AC_SUBST(all_gtfiles)
2693 AC_SUBST(all_gtfiles_files_langs)
2694 AC_SUBST(all_gtfiles_files_files)
2695 AC_SUBST(all_lang_makefiles)
2696 AC_SUBST(all_languages)
2697 AC_SUBST(all_stagestuff)
2698 AC_SUBST(build_exeext)
2699 AC_SUBST(build_install_headers_dir)
2700 AC_SUBST(build_xm_file_list)
2701 AC_SUBST(build_xm_file)
2702 AC_SUBST(build_xm_defines)
2703 AC_SUBST(check_languages)
2704 AC_SUBST(cc_set_by_configure)
2705 AC_SUBST(quoted_cc_set_by_configure)
2706 AC_SUBST(cpp_install_dir)
2707 AC_SUBST(dep_host_xmake_file)
2708 AC_SUBST(dep_tmake_file)
2709 AC_SUBST(extra_headers_list)
2710 AC_SUBST(extra_objs)
2711 AC_SUBST(extra_parts)
2712 AC_SUBST(extra_passes)
2713 AC_SUBST(extra_programs)
2714 AC_SUBST(float_h_file)
2715 AC_SUBST(gcc_config_arguments)
2716 AC_SUBST(gcc_gxx_include_dir)
2717 AC_SUBST(libstdcxx_incdir)
2718 AC_SUBST(gcc_version)
2719 AC_SUBST(gcc_version_full)
2720 AC_SUBST(gcc_version_trigger)
2721 AC_SUBST(host_exeext)
2722 AC_SUBST(host_extra_gcc_objs)
2723 AC_SUBST(host_xm_file_list)
2724 AC_SUBST(host_xm_file)
2725 AC_SUBST(host_xm_defines)
2726 AC_SUBST(install)
2727 AC_SUBST(lang_options_files)
2728 AC_SUBST(lang_specs_files)
2729 AC_SUBST(lang_tree_files)
2730 AC_SUBST(local_prefix)
2731 AC_SUBST(md_file)
2732 AC_SUBST(objc_boehm_gc)
2733 AC_SUBST(out_file)
2734 AC_SUBST(out_object_file)
2735 AC_SUBST(stage_prefix_set_by_configure)
2736 AC_SUBST(quoted_stage_prefix_set_by_configure)
2737 AC_SUBST(symbolic_link)
2738 AC_SUBST(thread_file)
2739 AC_SUBST(tm_file_list)
2740 AC_SUBST(tm_file)
2741 AC_SUBST(tm_defines)
2742 AC_SUBST(tm_p_file_list)
2743 AC_SUBST(tm_p_file)
2744 AC_SUBST(xm_file)
2745 AC_SUBST(xm_defines)
2746 AC_SUBST(target_alias)
2747 AC_SUBST(c_target_objs)
2748 AC_SUBST(cxx_target_objs)
2749 AC_SUBST(target_cpu_default)
2751 AC_SUBST_FILE(target_overrides)
2752 AC_SUBST_FILE(host_overrides)
2753 AC_SUBST_FILE(language_fragments)
2754 AC_SUBST_FILE(language_hooks)
2756 # Echo that links are built
2757 if test x$host = x$target
2758 then
2759         str1="native "
2760 else
2761         str1="cross-"
2762         str2=" from $host"
2765 if test x$host != x$build
2766 then
2767         str3=" on a $build system"
2770 if test "x$str2" != x || test "x$str3" != x
2771 then
2772         str4=
2775 echo "Links are now set up to build a ${str1}compiler for ${target}$str4" 1>&2
2777 if test "x$str2" != x || test "x$str3" != x
2778 then
2779         echo " ${str2}${str3}." 1>&2
2782 # Truncate the target if necessary
2783 if test x$host_truncate_target != x; then
2784         target=`echo $target | sed -e 's/\(..............\).*/\1/'`
2787 # Configure the subdirectories
2788 # AC_CONFIG_SUBDIRS($subdirs)
2790 # Create the Makefile
2791 # and configure language subdirectories
2792 AC_OUTPUT($all_outputs,
2794 case x$CONFIG_HEADERS in
2795 xauto-host.h:config.in)
2796 echo > cstamp-h ;;
2797 esac
2798 # If the host supports symlinks, point stage[1234] at ../stage[1234] so
2799 # bootstrapping and the installation procedure can still use
2800 # CC="stage1/xgcc -Bstage1/".  If the host doesn't support symlinks,
2801 # FLAGS_TO_PASS has been modified to solve the problem there.
2802 # This is virtually a duplicate of what happens in configure.lang; we do
2803 # an extra check to make sure this only happens if ln -s can be used.
2804 if test "$symbolic_link" = "ln -s"; then
2805  for d in .. ${subdirs} fixinc ; do
2806    if test $d != ..; then
2807         STARTDIR=`${PWDCMD-pwd}`
2808         cd $d
2809         for t in stage1 stage2 stage3 stage4 include
2810         do
2811                 rm -f $t
2812                 $symbolic_link ../$t $t 2>/dev/null
2813         done
2814         cd $STARTDIR
2815    fi
2816  done
2817 else true ; fi
2818 # Avoid having to add intl to our include paths.
2819 if test -f intl/libintl.h; then
2820   echo creating libintl.h
2821   echo '#include "intl/libintl.h"' >libintl.h
2823 ], 
2824 [subdirs='$subdirs'
2825 symbolic_link='$symbolic_link'