OSDN Git Service

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