]> gcc.gnu.org Git - gcc.git/blame - gcc/configure.in
h8300.h: Fix comment typos.
[gcc.git] / gcc / configure.in
CommitLineData
1322177d 1# configure.in for GCC
46f18e7b
RK
2# Process this file with autoconf to generate a configuration script.
3
29f7a208 4# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
46f18e7b 5
1322177d 6#This file is part of GCC.
46f18e7b 7
1322177d
LB
8#GCC is free software; you can redistribute it and/or modify it under
9#the terms of the GNU General Public License as published by the Free
10#Software Foundation; either version 2, or (at your option) any later
11#version.
46f18e7b 12
1322177d
LB
13#GCC is distributed in the hope that it will be useful, but WITHOUT
14#ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
15#FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16#for more details.
46f18e7b
RK
17
18#You should have received a copy of the GNU General Public License
1322177d
LB
19#along with GCC; see the file COPYING. If not, write to the Free
20#Software Foundation, 59 Temple Place - Suite 330, Boston, MA
21#02111-1307, USA.
46f18e7b
RK
22
23# Initialization and defaults
890ad3ea 24AC_PREREQ(2.13)
46f18e7b 25AC_INIT(tree.c)
b7cb92ad 26AC_CONFIG_HEADER(auto-host.h:config.in)
cdcc6a01 27
46f18e7b
RK
28remove=rm
29hard_link=ln
30symbolic_link='ln -s'
31copy=cp
32
75a39864
JL
33# Check for bogus environment variables.
34# Test if LIBRARY_PATH contains the notation for the current directory
35# since this would lead to problems installing/building glibc.
36# LIBRARY_PATH contains the current directory if one of the following
37# is true:
38# - one of the terminals (":" and ";") is the first or last sign
39# - two terminals occur directly after each other
40# - the path contains an element with a dot in it
41AC_MSG_CHECKING(LIBRARY_PATH variable)
42changequote(,)dnl
43case ${LIBRARY_PATH} in
44 [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
45 library_path_setting="contains current directory"
46 ;;
47 *)
48 library_path_setting="ok"
49 ;;
50esac
51changequote([,])dnl
52AC_MSG_RESULT($library_path_setting)
53if test "$library_path_setting" != "ok"; then
54AC_MSG_ERROR([
55*** LIBRARY_PATH shouldn't contain the current directory when
079bd08e 56*** building gcc. Please change the environment variable
75a39864
JL
57*** and run configure again.])
58fi
59
60# Test if GCC_EXEC_PREFIX contains the notation for the current directory
61# since this would lead to problems installing/building glibc.
62# GCC_EXEC_PREFIX contains the current directory if one of the following
63# is true:
64# - one of the terminals (":" and ";") is the first or last sign
65# - two terminals occur directly after each other
66# - the path contains an element with a dot in it
67AC_MSG_CHECKING(GCC_EXEC_PREFIX variable)
68changequote(,)dnl
69case ${GCC_EXEC_PREFIX} in
70 [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
71 gcc_exec_prefix_setting="contains current directory"
72 ;;
73 *)
74 gcc_exec_prefix_setting="ok"
75 ;;
76esac
77changequote([,])dnl
78AC_MSG_RESULT($gcc_exec_prefix_setting)
79if test "$gcc_exec_prefix_setting" != "ok"; then
80AC_MSG_ERROR([
81*** GCC_EXEC_PREFIX shouldn't contain the current directory when
079bd08e 82*** building gcc. Please change the environment variable
75a39864
JL
83*** and run configure again.])
84fi
85
46f18e7b
RK
86# Check for additional parameters
87
88# With GNU ld
89AC_ARG_WITH(gnu-ld,
90[ --with-gnu-ld arrange to work with GNU ld.],
df6faf79
JW
91gnu_ld_flag="$with_gnu_ld",
92gnu_ld_flag=no)
46f18e7b 93
ab339d62
AO
94# With pre-defined ld
95AC_ARG_WITH(ld,
e8bec136 96[ --with-ld arrange to use the specified ld (full pathname)],
3ccc3a56
AO
97DEFAULT_LINKER="$with_ld")
98if test x"${DEFAULT_LINKER+set}" = x"set"; then
99 if test ! -x "$DEFAULT_LINKER"; then
100 AC_MSG_WARN([cannot execute: $DEFAULT_LINKER: check --with-ld or env. var. DEFAULT_LINKER])
e154a394 101 elif $DEFAULT_LINKER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
ab339d62
AO
102 gnu_ld_flag=yes
103 fi
119d24d1
KG
104 AC_DEFINE_UNQUOTED(DEFAULT_LINKER,"$DEFAULT_LINKER",
105 [Define to enable the use of a default linker.])
ab339d62
AO
106fi
107
46f18e7b
RK
108# With GNU as
109AC_ARG_WITH(gnu-as,
e8bec136 110[ --with-gnu-as arrange to work with GNU as],
df6faf79
JW
111gas_flag="$with_gnu_as",
112gas_flag=no)
46f18e7b 113
ab339d62 114AC_ARG_WITH(as,
e8bec136 115[ --with-as arrange to use the specified as (full pathname)],
3ccc3a56
AO
116DEFAULT_ASSEMBLER="$with_as")
117if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
118 if test ! -x "$DEFAULT_ASSEMBLER"; then
119 AC_MSG_WARN([cannot execute: $DEFAULT_ASSEMBLER: check --with-as or env. var. DEFAULT_ASSEMBLER])
e154a394 120 elif $DEFAULT_ASSEMBLER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
ab339d62
AO
121 gas_flag=yes
122 fi
119d24d1
KG
123 AC_DEFINE_UNQUOTED(DEFAULT_ASSEMBLER,"$DEFAULT_ASSEMBLER",
124 [Define to enable the use of a default assembler.])
3ccc3a56 125fi
ab339d62 126
46f18e7b
RK
127# With stabs
128AC_ARG_WITH(stabs,
e8bec136 129[ --with-stabs arrange to use stabs instead of host debug format],
535b86ce 130stabs="$with_stabs",
46f18e7b
RK
131stabs=no)
132
133# With ELF
134AC_ARG_WITH(elf,
e8bec136 135[ --with-elf arrange to use ELF instead of host debug format],
535b86ce 136elf="$with_elf",
46f18e7b
RK
137elf=no)
138
4d8392b7 139# Specify the local prefix
4e88d51b 140local_prefix=
4d8392b7 141AC_ARG_WITH(local-prefix,
e8bec136 142[ --with-local-prefix=DIR specifies directory to put local include],
4e88d51b
JM
143[case "${withval}" in
144yes) AC_MSG_ERROR(bad value ${withval} given for local include directory prefix) ;;
145no) ;;
146*) local_prefix=$with_local_prefix ;;
147esac])
4d8392b7
RK
148
149# Default local prefix if it is empty
75bffa71 150if test x$local_prefix = x; then
4d8392b7
RK
151 local_prefix=/usr/local
152fi
153
8f8d3278
NC
154# Don't set gcc_gxx_include_dir to gxx_include_dir since that's only
155# passed in by the toplevel make and thus we'd get different behavior
156# depending on where we built the sources.
157gcc_gxx_include_dir=
9514f0d1
RK
158# Specify the g++ header file directory
159AC_ARG_WITH(gxx-include-dir,
160[ --with-gxx-include-dir=DIR
e8bec136 161 specifies directory to put g++ header files],
4e88d51b
JM
162[case "${withval}" in
163yes) AC_MSG_ERROR(bad value ${withval} given for g++ include directory) ;;
164no) ;;
8f8d3278 165*) gcc_gxx_include_dir=$with_gxx_include_dir ;;
4e88d51b
JM
166esac])
167
8f8d3278 168if test x${gcc_gxx_include_dir} = x; then
4e88d51b 169 if test x${enable_version_specific_runtime_libs} = xyes; then
8f8d3278 170 gcc_gxx_include_dir='${libsubdir}/include/g++'
4e88d51b 171 else
a270b446 172 topsrcdir=${srcdir}/.. . ${srcdir}/../config.if
de82584d 173changequote(<<, >>)dnl
e2187d3b 174 gcc_gxx_include_dir="\$(libsubdir)/\$(unlibsubdir)/..\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/[^/]*|/..|g'\`/include/"${libstdcxx_incdir}
de82584d 175changequote([, ])dnl
4e88d51b
JM
176 fi
177fi
46f18e7b 178
39d6f2e8
MM
179# Determine whether or not multilibs are enabled.
180AC_ARG_ENABLE(multilib,
e8bec136 181[ --enable-multilib enable library support for multiple ABIs],
39d6f2e8
MM
182[], [enable_multilib=yes])
183AC_SUBST(enable_multilib)
184
a494747c
MM
185# Enable expensive internal checks
186AC_ARG_ENABLE(checking,
f4524c9e
ZW
187[ --enable-checking[=LIST]
188 enable expensive run-time checks. With LIST,
189 enable only specific categories of checks.
190 Categories are: misc,tree,rtl,gc,gcac; default
59f406b7 191 is misc,tree,gc],
119d24d1
KG
192[ac_checking=
193ac_tree_checking=
194ac_rtl_checking=
195ac_gc_checking=
196ac_gc_always_collect=
197case "${enableval}" in
51d0e20c 198yes) ac_checking=1 ; ac_tree_checking=1 ; ac_gc_checking=1 ;;
4e88d51b 199no) ;;
59f406b7 200*) IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS,"
f4524c9e
ZW
201 set fnord $enableval; shift
202 IFS="$ac_save_IFS"
c62e45ad
KG
203 for check
204 do
f4524c9e 205 case $check in
119d24d1
KG
206 misc) ac_checking=1 ;;
207 tree) ac_tree_checking=1 ;;
208 rtl) ac_rtl_checking=1 ;;
209 gc) ac_gc_checking=1 ;;
210 gcac) ac_gc_always_collect=1 ;;
f4524c9e
ZW
211 *) AC_MSG_ERROR(unknown check category $check) ;;
212 esac
213 done
214 ;;
119d24d1 215esac
51d0e20c
AJ
216],
217# Enable some checks by default for development versions of GCC
218[ac_checking=1; ac_tree_checking=1; ac_gc_checking=1;])
119d24d1
KG
219if test x$ac_checking != x ; then
220 AC_DEFINE(ENABLE_CHECKING, 1,
221[Define if you want more run-time sanity checks. This one gets a grab
222 bag of miscellaneous but relatively cheap checks.])
223fi
224if test x$ac_tree_checking != x ; then
225 AC_DEFINE(ENABLE_TREE_CHECKING, 1,
226[Define if you want all operations on trees (the basic data
227 structure of the front ends) to be checked for dynamic type safety
228 at runtime. This is moderately expensive.])
229fi
230if test x$ac_rtl_checking != x ; then
231 AC_DEFINE(ENABLE_RTL_CHECKING, 1,
232[Define if you want all operations on RTL (the basic data structure
233 of the optimizer and back end) to be checked for dynamic type safety
234 at runtime. This is quite expensive.])
235fi
236if test x$ac_gc_checking != x ; then
237 AC_DEFINE(ENABLE_GC_CHECKING, 1,
238[Define if you want the garbage collector to do object poisoning and
239 other memory allocation checks. This is quite expensive.])
240fi
241if test x$ac_gc_always_collect != x ; then
242 AC_DEFINE(ENABLE_GC_ALWAYS_COLLECT, 1,
243[Define if you want the garbage collector to operate in maximally
244 paranoid mode, validating the entire heap and collecting garbage at
245 every opportunity. This is extremely expensive.])
246fi
51d0e20c 247
a494747c 248
3ecc3258 249AC_ARG_ENABLE(cpp,
e8bec136 250[ --disable-cpp don't provide a user-visible C preprocessor],
3ecc3258
ZW
251[], [enable_cpp=yes])
252
253AC_ARG_WITH(cpp_install_dir,
254[ --with-cpp-install-dir=DIR
255 install the user visible C preprocessor in DIR
e8bec136 256 (relative to PREFIX) as well as PREFIX/bin],
3ecc3258
ZW
257[if test x$withval = xyes; then
258 AC_MSG_ERROR([option --with-cpp-install-dir requires an argument])
259elif test x$withval != xno; then
260 cpp_install_dir=$withval
261fi])
262
c5c76735
JL
263# Enable Multibyte Characters for C/C++
264AC_ARG_ENABLE(c-mbchar,
e8bec136 265[ --enable-c-mbchar enable multibyte characters for C and C++],
2618c083 266if test x$enable_c_mbchar != xno; then
9ec7291f
ZW
267 AC_DEFINE(MULTIBYTE_CHARS, 1,
268 [Define if you want the C and C++ compilers to support multibyte
269 character sets for source code.])
c5c76735
JL
270fi)
271
0bbb1697
RK
272# Enable threads
273# Pass with no value to take the default
274# Pass with a value to specify a thread package
275AC_ARG_ENABLE(threads,
e8bec136
RO
276[ --enable-threads enable thread usage for target GCC
277 --enable-threads=LIB use LIB thread package for target GCC],,
0bbb1697
RK
278enable_threads='')
279
e445171e 280enable_threads_flag=$enable_threads
0bbb1697 281# Check if a valid thread package
e445171e 282case x${enable_threads_flag} in
0bbb1697
RK
283 x | xno)
284 # No threads
a851212a 285 target_thread_file='single'
0bbb1697
RK
286 ;;
287 xyes)
288 # default
a851212a 289 target_thread_file=''
0bbb1697
RK
290 ;;
291 xdecosf1 | xirix | xmach | xos2 | xposix | xpthreads | xsingle | \
e08f13ee 292 xsolaris | xwin32 | xdce | xrtems| xvxworks | xaix)
e445171e 293 target_thread_file=$enable_threads_flag
0bbb1697
RK
294 ;;
295 *)
296 echo "$enable_threads is an unknown thread package" 1>&2
297 exit 1
298 ;;
299esac
300
d8bb17c8
OP
301AC_ARG_ENABLE(objc-gc,
302[ --enable-objc-gc enable the use of Boehm's garbage collector with
e8bec136 303 the GNU Objective-C runtime],
2618c083 304if test x$enable_objc_gc = xno; then
d8bb17c8
OP
305 objc_boehm_gc=''
306else
307 objc_boehm_gc=1
308fi,
309objc_boehm_gc='')
310
90e6a802 311AC_ARG_WITH(dwarf2,
e8bec136 312[ --with-dwarf2 force the default debug format to be DWARF 2],
90e6a802
RL
313dwarf2="$with_dwarf2",
314dwarf2=no)
315
50503ac8 316AC_ARG_ENABLE(shared,
e8bec136 317[ --disable-shared don't provide a shared libgcc],
c785e0fa
AO
318[
319 case $enable_shared in
320 yes | no) ;;
321 *)
322 enable_shared=no
323 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
324 for pkg in $enableval; do
325 if test "X$pkg" = "Xgcc" || test "X$pkg" = "Xlibgcc"; then
326 enable_shared=yes
327 fi
328 done
329 IFS="$ac_save_ifs"
330 ;;
331 esac
332], [enable_shared=yes])
50503ac8
RH
333AC_SUBST(enable_shared)
334
46f18e7b
RK
335# Determine the host, build, and target systems
336AC_CANONICAL_SYSTEM
337
b21d216c
AF
338# Set program_transform_name
339AC_ARG_PROGRAM
340
e9a25f70
JL
341# Find the native compiler
342AC_PROG_CC
3ec83fc2 343AC_PROG_CC_C_O
b8dad04b 344# autoconf is lame and doesn't give us any substitution variable for this.
e38df833 345if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
b4c7e567 346 NO_MINUS_C_MINUS_O=yes
b8dad04b
ZW
347else
348 OUTPUT_OPTION='-o $@'
b4c7e567 349fi
3ec83fc2 350AC_SUBST(NO_MINUS_C_MINUS_O)
b8dad04b 351AC_SUBST(OUTPUT_OPTION)
3ec83fc2 352
97d81d66
JM
353AC_CACHE_CHECK(whether ${CC-cc} accepts -Wno-long-long,
354ac_cv_prog_cc_no_long_long,
355[save_CFLAGS="$CFLAGS"
356CFLAGS="-Wno-long-long"
357AC_TRY_COMPILE(,,ac_cv_prog_cc_no_long_long=yes,
358 ac_cv_prog_cc_no_long_long=no)
359CFLAGS="$save_CFLAGS"])
b8dad04b
ZW
360strict1_warn=
361if test $ac_cv_prog_cc_no_long_long = yes; then
362 strict1_warn="-pedantic -Wno-long-long"
363fi
364AC_SUBST(strict1_warn)
ff5def20 365
84c041a1 366AC_PROG_CPP
75e93faa
ZW
367AC_C_INLINE
368gcc_AC_C_VOLATILE
369
370gcc_AC_C_LONG_DOUBLE
371gcc_AC_C_LONG_LONG
827ae6cf 372gcc_AC_C__BOOL
75e93faa
ZW
373
374# sizeof(char) is 1 by definition.
375gcc_AC_COMPILE_CHECK_SIZEOF(short)
376gcc_AC_COMPILE_CHECK_SIZEOF(int)
377gcc_AC_COMPILE_CHECK_SIZEOF(long)
378if test $ac_cv_c_long_long = yes; then
379 gcc_AC_COMPILE_CHECK_SIZEOF(long long)
380fi
381if test $ac_cv_c___int64 = yes; then
382 gcc_AC_COMPILE_CHECK_SIZEOF(__int64)
383fi
384
84c041a1 385gcc_AC_C_CHARSET
84c041a1 386
61842080
MM
387# If the native compiler is GCC, we can enable warnings even in stage1.
388# That's useful for people building cross-compilers, or just running a
389# quick `make'.
b8dad04b
ZW
390warn_cflags=
391if test "x$GCC" = "xyes"; then
392 warn_cflags='$(GCC_WARN_CFLAGS)'
61842080 393fi
b8dad04b 394AC_SUBST(warn_cflags)
5b67ad6f
DA
395
396# Stage specific cflags for build.
b8dad04b 397stage1_cflags=
5b67ad6f
DA
398case $build in
399vax-*-*)
400 if test x$GCC = xyes
401 then
b8dad04b 402 stage1_cflags="-Wa,-J"
5b67ad6f 403 else
b8dad04b 404 stage1_cflags="-J"
5b67ad6f
DA
405 fi
406 ;;
407esac
b8dad04b 408AC_SUBST(stage1_cflags)
61842080 409
e9a25f70
JL
410AC_PROG_MAKE_SET
411
ab339d62 412AC_MSG_CHECKING([whether a default assembler was specified])
3ccc3a56 413if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
e154a394 414 if test x"$gas_flag" = x"no"; then
3ccc3a56 415 AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER)])
ab339d62 416 else
3ccc3a56 417 AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER - GNU as)])
ab339d62
AO
418 fi
419else
420 AC_MSG_RESULT(no)
421fi
422
423AC_MSG_CHECKING([whether a default linker was specified])
3ccc3a56 424if test x"${DEFAULT_LINKER+set}" = x"set"; then
e154a394 425 if test x"$gnu_ld_flag" = x"no"; then
3ccc3a56 426 AC_MSG_RESULT([yes ($DEFAULT_LINKER)])
ab339d62 427 else
3ccc3a56 428 AC_MSG_RESULT([yes ($DEFAULT_LINKER - GNU ld)])
ab339d62
AO
429 fi
430else
431 AC_MSG_RESULT(no)
432fi
433
4070d885
AJ
434AC_MSG_CHECKING(for GNU C library)
435AC_CACHE_VAL(gcc_cv_glibc,
436[AC_TRY_COMPILE(
437 [#include <features.h>],[
438#if ! (defined __GLIBC__ || defined __GNU_LIBRARY__)
439#error Not a GNU C library system
440#endif],
441 [gcc_cv_glibc=yes],
442 gcc_cv_glibc=no)])
443AC_MSG_RESULT($gcc_cv_glibc)
c2f7d403 444if test $gcc_cv_glibc = yes; then
4070d885
AJ
445 AC_DEFINE(_GNU_SOURCE, 1, [Always define this when using the GNU C Library])
446fi
4797e955 447
46f18e7b
RK
448# Find some useful tools
449AC_PROG_AWK
99e757d5
KG
450gcc_AC_PROG_LN
451gcc_AC_PROG_LN_S
46f18e7b 452AC_PROG_RANLIB
99e757d5 453gcc_AC_PROG_INSTALL
46f18e7b 454
956d6950
JL
455AC_HEADER_STDC
456AC_HEADER_TIME
827ae6cf 457gcc_AC_HEADER_STDBOOL
99e757d5 458gcc_AC_HEADER_STRING
e9831ca0 459AC_HEADER_SYS_WAIT
03c41c05 460AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h time.h \
7719ffbf 461 fcntl.h unistd.h sys/file.h sys/time.h \
03c41c05 462 sys/resource.h sys/param.h sys/times.h sys/stat.h \
f91abfce 463 direct.h malloc.h langinfo.h)
7636d567 464
f24af81b
TT
465# Check for thread headers.
466AC_CHECK_HEADER(thread.h, [have_thread_h=yes], [have_thread_h=])
467AC_CHECK_HEADER(pthread.h, [have_pthread_h=yes], [have_pthread_h=])
468
84c041a1 469# These tests can't be done till we know if we have limits.h.
75e93faa 470gcc_AC_C_CHAR_BIT
2d6eb5bf
ZW
471gcc_AC_C_COMPILE_ENDIAN
472gcc_AC_C_FLOAT_FORMAT
75e93faa 473
bcf12124 474# See if GNAT has been installed
67f28219 475gcc_AC_PROG_GNAT
bcf12124 476
955be633
JM
477# See if we have the mktemp command.
478AC_CHECK_PROG(have_mktemp_command, mktemp, yes, no)
479
09fa0705
ZW
480# Do we have a single-tree copy of texinfo?
481if test -f $srcdir/../texinfo/Makefile.in; then
482 MAKEINFO='$(objdir)/../texinfo/makeinfo/makeinfo'
483 gcc_cv_prog_makeinfo_modern=yes
484 AC_MSG_RESULT([Using makeinfo from the unified source tree.])
485else
486 # See if makeinfo has been installed and is modern enough
487 # that we can use it.
488 gcc_AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
489 [GNU texinfo.* \([0-9][0-9.]*\)],
fd939e46 490 [4.*])
09fa0705
ZW
491fi
492
493if test $gcc_cv_prog_makeinfo_modern = no; then
494 AC_MSG_WARN([
495*** Makeinfo is missing or too old.
17db6582 496*** Info documentation will not be built.])
09fa0705 497 BUILD_INFO=
09fa0705
ZW
498else
499 BUILD_INFO=info AC_SUBST(BUILD_INFO)
09fa0705
ZW
500fi
501
3f896fc2
JM
502# Is pod2man recent enough to regenerate manpages?
503AC_MSG_CHECKING([for recent Pod::Man])
7be33370 504if (perl -e 'use 1.10 Pod::Man') >/dev/null 2>&1; then
fd939e46
JM
505 AC_MSG_RESULT(yes)
506 GENERATED_MANPAGES=generated-manpages AC_SUBST(GENERATED_MANPAGES)
507else
508 AC_MSG_RESULT(no)
509 GENERATED_MANPAGES=
510fi
511
1e608388
ZW
512# How about lex?
513dnl Don't use AC_PROG_LEX; we insist on flex.
514dnl LEXLIB is not useful in gcc.
515if test -f $srcdir/../flex/skel.c; then
516 FLEX='$(objdir)/../flex/flex'
517else
518 AC_CHECK_PROG(FLEX, flex, flex, false)
519fi
520
521# Bison?
522# The -L switch is so bison can find its skeleton file.
523if test -f $srcdir/../bison/bison.simple; then
524 BISON='$(objdir)/../bison/bison -L $(srcdir)/../bison/'
525else
526 AC_CHECK_PROG(BISON, bison, bison, false)
527fi
528
4e70264f
ZW
529# These libraries may be used by collect2.
530# We may need a special search path to get them linked.
531AC_CACHE_CHECK(for collect2 libraries, gcc_cv_collect2_libs,
532[save_LIBS="$LIBS"
7f2749d4 533for libs in '' -lld -lmld \
4e70264f
ZW
534 '-L/usr/lib/cmplrs/cc2.11 -lmld' \
535 '-L/usr/lib/cmplrs/cc3.11 -lmld'
536do
537 LIBS="$libs"
538 AC_TRY_LINK_FUNC(ldopen,
539 [gcc_cv_collect2_libs="$libs"; break])
540done
541LIBS="$save_LIBS"
542test -z "$gcc_cv_collect2_libs" && gcc_cv_collect2_libs='none required'])
543case $gcc_cv_collect2_libs in
544 "none required") ;;
545 *) COLLECT2_LIBS=$gcc_cv_collect2_libs ;;
546esac
547AC_SUBST(COLLECT2_LIBS)
548
7f2749d4
RK
549# When building Ada code on Alpha, we need exc_resume which is usually in
550# -lexc. So test for it.
551save_LIBS="$LIBS"
552LIBS=
553AC_SEARCH_LIBS(exc_resume, exc)
554GNAT_LIBEXC="$LIBS"
555LIBS="$save_LIBS"
556AC_SUBST(GNAT_LIBEXC)
557
890ad3ea 558# See if the stage1 system preprocessor understands the ANSI C
4bc5fbd4 559# preprocessor stringification operator. (Used by symcat.h.)
890ad3ea 560AC_C_STRINGIZE
76844337 561
7636d567
JW
562# Use <inttypes.h> only if it exists,
563# doesn't clash with <sys/types.h>, and declares intmax_t.
564AC_MSG_CHECKING(for inttypes.h)
565AC_CACHE_VAL(gcc_cv_header_inttypes_h,
566[AC_TRY_COMPILE(
567 [#include <sys/types.h>
568#include <inttypes.h>],
569 [intmax_t i = -1;],
9da0e39b 570 [gcc_cv_header_inttypes_h=yes],
7636d567
JW
571 gcc_cv_header_inttypes_h=no)])
572AC_MSG_RESULT($gcc_cv_header_inttypes_h)
9da0e39b 573if test $gcc_cv_header_inttypes_h = yes; then
119d24d1
KG
574 AC_DEFINE(HAVE_INTTYPES_H, 1,
575 [Define if you have a working <inttypes.h> header file.])
9da0e39b 576fi
cdcc6a01 577
9612ab65
ZW
578dnl Disabled until we have a complete test for buggy enum bitfields.
579dnl gcc_AC_C_ENUM_BF_UNSIGNED
c149cc37 580
6af8c740
KG
581AC_CHECK_FUNCS(times clock dup2 kill getrlimit setrlimit atoll atoq \
582 sysconf strsignal putc_unlocked fputc_unlocked fputs_unlocked \
583 fwrite_unlocked fprintf_unlocked getrusage nl_langinfo lstat)
a81fb89e 584
f12bc141 585AC_CHECK_TYPE(ssize_t, int)
56f48ce9 586
e256b8b6
DA
587# Try to determine the array type of the second argument of getgroups
588# for the target system (int or gid_t).
589AC_TYPE_GETGROUPS
590if test "${target}" = "${build}"; then
591 TARGET_GETGROUPS_T=$ac_cv_type_getgroups
592else
593 case "${target}" in
594 # This condition may need some tweaking. It should include all
595 # targets where the array type of the second argument of getgroups
596 # is int and the type of gid_t is not equivalent to int.
597 *-*-sunos* | *-*-ultrix*)
598 TARGET_GETGROUPS_T=int
599 ;;
600 *)
601 TARGET_GETGROUPS_T=gid_t
602 ;;
603 esac
604fi
605AC_SUBST(TARGET_GETGROUPS_T)
606
99e757d5 607gcc_AC_FUNC_PRINTF_PTR
b27d2bd5
MK
608
609case "${host}" in
610*-*-uwin*)
34fa3e7d
MM
611 AC_MSG_ERROR([
612*** UWIN may not be used as a host platform because
613*** linking with posix.dll is not allowed by the GNU GPL])
b27d2bd5 614 ;;
ee262b6f
DR
615*-*-*vms*)
616 # Under VMS, vfork works very different than on Unix. The standard test
617 # won't work, and it isn't easily adaptable. It makes more sense to
618 # just force it.
619 ac_cv_func_vfork_works=yes
620 ;;
b27d2bd5 621esac
c375c43b 622AC_FUNC_VFORK
4acab94b 623AC_FUNC_MMAP_ANYWHERE
56f02b88 624AC_FUNC_MMAP_FILE
f1b54f9b 625
f91abfce
TT
626AM_ICONV
627
86cf1cbd
KG
628# We will need to find libiberty.h and ansidecl.h
629saved_CFLAGS="$CFLAGS"
630CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include"
8e944909 631gcc_AC_CHECK_DECLS(getenv atol sbrk abort atof getcwd getwd \
3b681e9d
ZW
632 strsignal putc_unlocked fputs_unlocked fwrite_unlocked \
633 fprintf_unlocked strstr environ errno \
c1800ec8 634 malloc realloc calloc free basename getopt clock, , ,[
d02af173 635#include "ansidecl.h"
86cf1cbd 636#include "system.h"])
c5c76735 637
f31e826b 638gcc_AC_CHECK_DECLS(getrlimit setrlimit getrusage, , ,[
d02af173 639#include "ansidecl.h"
86cf1cbd 640#include "system.h"
d2cabf16
KG
641#ifdef HAVE_SYS_RESOURCE_H
642#include <sys/resource.h>
643#endif
644])
645
c1800ec8
ZW
646gcc_AC_CHECK_DECLS(times, , ,[
647#include "ansidecl.h"
648#include "system.h"
649#ifdef HAVE_SYS_TIMES_H
650#include <sys/times.h>
651#endif
652])
653
654# More time-related stuff.
655AC_CACHE_CHECK(for struct tms, ac_cv_struct_tms, [
656AC_TRY_COMPILE([
657#include "ansidecl.h"
658#include "system.h"
659#ifdef HAVE_SYS_TIMES_H
660#include <sys/times.h>
661#endif
662], [struct tms tms;], ac_cv_struct_tms=yes, ac_cv_struct_tms=no)])
663if test $ac_cv_struct_tms = yes; then
664 AC_DEFINE(HAVE_STRUCT_TMS, 1,
665 [Define if <sys/times.h> defines struct tms.])
666fi
667
668# use gcc_cv_* here because this doesn't match the behavior of AC_CHECK_TYPE.
669# revisit after autoconf 2.50.
670AC_CACHE_CHECK(for clock_t, gcc_cv_type_clock_t, [
671AC_TRY_COMPILE([
672#include "ansidecl.h"
673#include "system.h"
674], [clock_t x;], gcc_cv_type_clock_t=yes, gcc_cv_type_clock_t=no)])
675if test $gcc_cv_type_clock_t = yes; then
676 AC_DEFINE(HAVE_CLOCK_T, 1,
677 [Define if <time.h> defines clock_t.])
678fi
679
86cf1cbd
KG
680# Restore CFLAGS from before the gcc_AC_NEED_DECLARATIONS tests.
681CFLAGS="$saved_CFLAGS"
682
75923b2f 683# mkdir takes a single argument on some systems.
99e757d5 684gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG
75923b2f 685
46f18e7b
RK
686# File extensions
687manext='.1'
688objext='.o'
46f18e7b
RK
689AC_SUBST(manext)
690AC_SUBST(objext)
46f18e7b
RK
691
692build_xm_file=
61536478 693build_xm_defines=
46f18e7b
RK
694build_install_headers_dir=install-headers-tar
695build_exeext=
696host_xm_file=
61536478 697host_xm_defines=
46f18e7b
RK
698host_xmake_file=
699host_truncate_target=
6e26218f 700host_exeext=
46f18e7b
RK
701
702# Decode the host machine, then the target machine.
703# For the host machine, we save the xm_file variable as host_xm_file;
704# then we decode the target machine and forget everything else
705# that came from the host machine.
706for machine in $build $host $target; do
61ed06c3 707 . ${srcdir}/config.gcc
46f18e7b
RK
708done
709
710extra_objs="${host_extra_objs} ${extra_objs}"
711
712# Default the target-machine variables that were not explicitly set.
75bffa71 713if test x"$tm_file" = x
46f18e7b
RK
714then tm_file=$cpu_type/$cpu_type.h; fi
715
6b2adea9 716if test x"$extra_headers" = x
46f18e7b
RK
717then extra_headers=; fi
718
75bffa71 719if test x$md_file = x
e98e406f 720then md_file=$cpu_type/$cpu_type.md; fi
46f18e7b 721
75bffa71 722if test x$out_file = x
46f18e7b
RK
723then out_file=$cpu_type/$cpu_type.c; fi
724
75bffa71 725if test x"$tmake_file" = x
46f18e7b
RK
726then tmake_file=$cpu_type/t-$cpu_type
727fi
728
90e6a802 729if test x"$dwarf2" = xyes
756ee602 730then tm_file="$tm_file tm-dwarf2.h"
90e6a802
RL
731fi
732
75bffa71 733if test x$float_format = x
46f18e7b
RK
734then float_format=i64
735fi
736
027ea2a7
JW
737if test $float_format = none
738then float_h_file=Makefile.in
739else float_h_file=float-$float_format.h
740fi
741
9fc9b82a 742# Handle cpp installation.
3ecc3258 743if test x$enable_cpp != xno
9fc9b82a
L
744then
745 tmake_file="$tmake_file t-install-cpp"
746fi
747
46f18e7b 748# Say what files are being used for the output code and MD file.
11642c3a 749echo "Using \`$srcdir/config/$out_file' for machine-specific logic."
46f18e7b
RK
750echo "Using \`$srcdir/config/$md_file' as machine description file."
751
11642c3a 752# If any of the xm_file variables contain nonexistent files, warn
4dc0535b
ZW
753# about them and drop them.
754
11642c3a
ZW
755bx=
756for x in $build_xm_file; do
757 if test -f $srcdir/config/$x
758 then bx="$bx $x"
11642c3a
ZW
759 else AC_MSG_WARN($srcdir/config/$x does not exist.)
760 fi
761done
762build_xm_file="$bx"
763
764hx=
765for x in $host_xm_file; do
766 if test -f $srcdir/config/$x
767 then hx="$hx $x"
11642c3a
ZW
768 else AC_MSG_WARN($srcdir/config/$x does not exist.)
769 fi
770done
771host_xm_file="$hx"
772
773tx=
774for x in $xm_file; do
775 if test -f $srcdir/config/$x
776 then tx="$tx $x"
11642c3a
ZW
777 else AC_MSG_WARN($srcdir/config/$x does not exist.)
778 fi
779done
780xm_file="$tx"
781
46f18e7b
RK
782count=a
783for f in $tm_file; do
784 count=${count}x
785done
75bffa71 786if test $count = ax; then
46f18e7b
RK
787 echo "Using \`$srcdir/config/$tm_file' as target machine macro file."
788else
789 echo "Using the following target machine macro files:"
790 for f in $tm_file; do
791 echo " $srcdir/config/$f"
792 done
793fi
794
795count=a
796for f in $host_xm_file; do
797 count=${count}x
798done
11642c3a
ZW
799if test $count = a; then
800 :
801elif test $count = ax; then
46f18e7b
RK
802 echo "Using \`$srcdir/config/$host_xm_file' as host machine macro file."
803else
804 echo "Using the following host machine macro files:"
805 for f in $host_xm_file; do
806 echo " $srcdir/config/$f"
807 done
808fi
809
75bffa71 810if test "$host_xm_file" != "$build_xm_file"; then
46f18e7b
RK
811 count=a
812 for f in $build_xm_file; do
813 count=${count}x
814 done
11642c3a
ZW
815 if test $count = a; then
816 :
817 elif test $count = ax; then
46f18e7b
RK
818 echo "Using \`$srcdir/config/$build_xm_file' as build machine macro file."
819 else
820 echo "Using the following build machine macro files:"
821 for f in $build_xm_file; do
822 echo " $srcdir/config/$f"
823 done
824 fi
825fi
826
75bffa71
ILT
827if test x$thread_file = x; then
828 if test x$target_thread_file != x; then
a851212a
JW
829 thread_file=$target_thread_file
830 else
831 thread_file='single'
832 fi
46f18e7b 833fi
46f18e7b 834
b7cb92ad 835# auto-host.h is the file containing items generated by autoconf and is
e9a25f70 836# the first file included by config.h.
b7cb92ad 837# If host=build, it is correct to have hconfig include auto-host.h
db81d74a
RH
838# as well. If host!=build, we are in error and need to do more
839# work to find out the build config parameters.
75bffa71 840if test x$host = x$build
db81d74a 841then
eaf4e618 842 build_auto=auto-host.h
06f0b04c 843 FORBUILD=..
b7cb92ad
JL
844else
845 # We create a subdir, then run autoconf in the subdir.
846 # To prevent recursion we set host and build for the new
847 # invocation of configure to the build for this invocation
848 # of configure.
849 tempdir=build.$$
850 rm -rf $tempdir
851 mkdir $tempdir
852 cd $tempdir
853 case ${srcdir} in
b86ecfa9 854 /* | [A-Za-z]:[\\/]* ) realsrcdir=${srcdir};;
b7cb92ad
JL
855 *) realsrcdir=../${srcdir};;
856 esac
d920e825
L
857 saved_CFLAGS="${CFLAGS}"
858 CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
859 ${realsrcdir}/configure \
b7cb92ad 860 --target=$target --host=$build --build=$build
d920e825 861 CFLAGS="${saved_CFLAGS}"
b7cb92ad
JL
862
863 # We just finished tests for the build machine, so rename
864 # the file auto-build.h in the gcc directory.
865 mv auto-host.h ../auto-build.h
866 cd ..
867 rm -rf $tempdir
eaf4e618 868 build_auto=auto-build.h
06f0b04c 869 FORBUILD=../$build
db81d74a 870fi
06f0b04c 871AC_SUBST(FORBUILD)
db81d74a 872
eaf4e618 873tm_file="${tm_file} defaults.h"
d02af173
ZW
874host_xm_file="auto-host.h ansidecl.h ${host_xm_file} ${tm_file}"
875build_xm_file="${build_auto} ansidecl.h ${build_xm_file} ${tm_file}"
876xm_file="ansidecl.h ${xm_file} ${tm_file}"
0056a9b5 877
46f18e7b 878# Truncate the target if necessary
75bffa71 879if test x$host_truncate_target != x; then
46f18e7b
RK
880 target=`echo $target | sed -e 's/\(..............\).*/\1/'`
881fi
882
f1943b77 883# Get the version trigger filename from the toplevel
75bffa71 884if test "${with_gcc_version_trigger+set}" = set; then
f1943b77
MH
885 gcc_version_trigger=$with_gcc_version_trigger
886else
887 gcc_version_trigger=${srcdir}/version.c
888fi
75bffa71 889changequote(,)dnl
022dae81 890gcc_version_full=`grep version_string ${gcc_version_trigger} | sed -e 's/.*"\([^"]*\)".*/\1/'`
8763704d 891gcc_version=`echo ${gcc_version_full} | sed -e 's/\([^ ]*\) .*/\1/'`
cc1e60ea
JM
892
893# Compile in configure arguments.
8105825d 894if test -f configargs.h ; then
cc1e60ea 895 # Being re-configured.
022dae81 896 gcc_config_arguments=`grep configuration_arguments configargs.h | sed -e 's/.*"\([^"]*\)".*/\1/'`
cc1e60ea
JM
897 gcc_config_arguments="$gcc_config_arguments : (reconfigured) $TOPLEVEL_CONFIGURE_ARGUMENTS"
898else
899 gcc_config_arguments="$TOPLEVEL_CONFIGURE_ARGUMENTS"
900fi
901cat > configargs.h <<EOF
902/* Generated automatically. */
903static const char configuration_arguments[] = "$gcc_config_arguments";
a6687d2b 904static const char thread_model[] = "$thread_file";
cc1e60ea 905EOF
75bffa71 906changequote([,])dnl
46f18e7b 907
ab87f8c8
JL
908# Internationalization
909PACKAGE=gcc
910VERSION="$gcc_version"
ab87f8c8
JL
911AC_SUBST(PACKAGE)
912AC_SUBST(VERSION)
913
dc6746e7 914# Enable NLS support by default
ab87f8c8 915AC_ARG_ENABLE(nls,
dc6746e7
PT
916 [ --enable-nls use Native Language Support (default)],
917 , enable_nls=yes)
918
919# if cross compiling, disable NLS support.
920# It's not worth the trouble, at least for now.
921
063a4b85 922if test "${build}" != "${host}" && test "x$enable_nls" = "xyes"; then
dc6746e7
PT
923 AC_MSG_WARN(Disabling NLS support for canadian cross compiler.)
924 enable_nls=no
925fi
ab87f8c8
JL
926
927AM_GNU_GETTEXT
ab87f8c8 928
f4ab28e3
MK
929# Windows32 Registry support for specifying GCC installation paths.
930AC_ARG_ENABLE(win32-registry,
931[ --disable-win32-registry
e8bec136
RO
932 disable lookup of installation paths in the
933 Registry on Windows hosts
934 --enable-win32-registry enable registry lookup (default)
f4ab28e3 935 --enable-win32-registry=KEY
e8bec136
RO
936 use KEY instead of GCC version as the last portion
937 of the registry key],,)
4e70264f
ZW
938case $host_os in
939 win32 | pe | cygwin* | mingw32* | uwin*)
f4ab28e3 940AC_MSG_CHECKING(whether windows registry support is requested)
9dd53f2c 941if test "x$enable_win32_registry" != xno; then
119d24d1
KG
942 AC_DEFINE(ENABLE_WIN32_REGISTRY, 1,
943[Define to 1 if installation paths should be looked up in Windows32
91029a29 944 Registry. Ignored on non windows32 hosts.])
f4ab28e3 945 AC_MSG_RESULT(yes)
4e70264f 946 AC_SEARCH_LIBS(RegOpenKeyExA, advapi32)
f4ab28e3
MK
947else
948 AC_MSG_RESULT(no)
949fi
950
951# Check if user specified a different registry key.
9dd53f2c 952case "x${enable_win32_registry}" in
f4ab28e3
MK
953x | xyes)
954 # default.
955 gcc_cv_win32_registry_key="$VERSION"
956 ;;
957xno)
958 # no registry lookup.
959 gcc_cv_win32_registry_key=''
960 ;;
961*)
962 # user-specified key.
963 gcc_cv_win32_registry_key="$enable_win32_registry"
964 ;;
965esac
966
9dd53f2c 967if test "x$enable_win32_registry" != xno; then
f4ab28e3 968 AC_MSG_CHECKING(registry key on windows hosts)
119d24d1
KG
969 AC_DEFINE_UNQUOTED(WIN32_REGISTRY_KEY, "$gcc_cv_win32_registry_key",
970 [Define to be the last portion of registry key on windows hosts.])
f4ab28e3
MK
971 AC_MSG_RESULT($gcc_cv_win32_registry_key)
972fi
4e70264f
ZW
973;;
974esac
f4ab28e3 975
7fa10b25
RK
976# Get an absolute path to the GCC top-level source directory
977holddir=`pwd`
978cd $srcdir
979topdir=`pwd`
980cd $holddir
981
af5e4ada 982# Conditionalize the makefile for this host machine.
94f42018
DE
983# Make-host contains the concatenation of all host makefile fragments
984# [there can be more than one]. This file is built by configure.frag.
985host_overrides=Make-host
af5e4ada 986dep_host_xmake_file=
94f42018
DE
987for f in .. ${host_xmake_file}
988do
75bffa71 989 if test -f ${srcdir}/config/$f
94f42018
DE
990 then
991 dep_host_xmake_file="${dep_host_xmake_file} ${srcdir}/config/$f"
992 fi
993done
46f18e7b 994
af5e4ada 995# Conditionalize the makefile for this target machine.
94f42018
DE
996# Make-target contains the concatenation of all host makefile fragments
997# [there can be more than one]. This file is built by configure.frag.
998target_overrides=Make-target
af5e4ada 999dep_tmake_file=
94f42018
DE
1000for f in .. ${tmake_file}
1001do
75bffa71 1002 if test -f ${srcdir}/config/$f
94f42018
DE
1003 then
1004 dep_tmake_file="${dep_tmake_file} ${srcdir}/config/$f"
1005 fi
1006done
5891b37d 1007
af5e4ada
DE
1008# If the host doesn't support symlinks, modify CC in
1009# FLAGS_TO_PASS so CC="stage1/xgcc -Bstage1/" works.
1010# Otherwise, we can use "CC=$(CC)".
1011rm -f symtest.tem
61536478 1012if $symbolic_link $srcdir/gcc.c symtest.tem 2>/dev/null
af5e4ada
DE
1013then
1014 cc_set_by_configure="\$(CC)"
5aa82ace 1015 quoted_cc_set_by_configure="\$(CC)"
af5e4ada 1016 stage_prefix_set_by_configure="\$(STAGE_PREFIX)"
596151e1 1017 quoted_stage_prefix_set_by_configure="\$(STAGE_PREFIX)"
af5e4ada 1018else
61536478
JL
1019 rm -f symtest.tem
1020 if cp -p $srcdir/gcc.c symtest.tem 2>/dev/null
1021 then
1022 symbolic_link="cp -p"
1023 else
1024 symbolic_link="cp"
1025 fi
af5e4ada 1026 cc_set_by_configure="\`case '\$(CC)' in stage*) echo '\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\$(CC)';; esac\`"
5aa82ace 1027 quoted_cc_set_by_configure="\\\`case '\\\$(CC)' in stage*) echo '\\\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\\\$(CC)';; esac\\\`"
af5e4ada 1028 stage_prefix_set_by_configure="\`case '\$(STAGE_PREFIX)' in stage*) echo '\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\$(STAGE_PREFIX)';; esac\`"
596151e1 1029 quoted_stage_prefix_set_by_configure="\\\`case '\\\$(STAGE_PREFIX)' in stage*) echo '\\\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\\\$(STAGE_PREFIX)';; esac\\\`"
af5e4ada
DE
1030fi
1031rm -f symtest.tem
5891b37d 1032
af5e4ada 1033out_object_file=`basename $out_file .c`.o
5891b37d 1034
af5e4ada
DE
1035tm_file_list=
1036for f in $tm_file; do
64ccbc99 1037 case $f in
d02af173
ZW
1038 ansidecl.h )
1039 tm_file_list="${tm_file_list} \$(srcdir)/../include/ansidecl.h" ;;
1040 defaults.h )
64ccbc99
KG
1041 tm_file_list="${tm_file_list} $f" ;;
1042 *) tm_file_list="${tm_file_list} \$(srcdir)/config/$f" ;;
1043 esac
af5e4ada 1044done
46f18e7b 1045
11642c3a
ZW
1046tm_p_file_list=
1047for f in $tm_p_file; do
1048 tm_p_file_list="${tm_p_file_list} \$(srcdir)/config/$f"
1049done
1050
af5e4ada
DE
1051host_xm_file_list=
1052for f in $host_xm_file; do
64ccbc99 1053 case $f in
d02af173
ZW
1054 ansidecl.h )
1055 host_xm_file_list="${host_xm_file_list} \$(srcdir)/../include/ansidecl.h" ;;
1056 auto-host.h | defaults.h )
64ccbc99
KG
1057 host_xm_file_list="${host_xm_file_list} $f" ;;
1058 *) host_xm_file_list="${host_xm_file_list} \$(srcdir)/config/$f" ;;
1059 esac
af5e4ada
DE
1060done
1061
1062build_xm_file_list=
1063for f in $build_xm_file; do
64ccbc99 1064 case $f in
d02af173
ZW
1065 ansidecl.h )
1066 build_xm_file_list="${build_xm_file_list} \$(srcdir)/../include/ansidecl.h" ;;
1067 auto-build.h | auto-host.h | defaults.h )
64ccbc99
KG
1068 build_xm_file_list="${build_xm_file_list} $f" ;;
1069 *) build_xm_file_list="${build_xm_file_list} \$(srcdir)/config/$f" ;;
1070 esac
af5e4ada 1071done
46f18e7b 1072
a078a589
ZW
1073# Define macro CROSS_COMPILE in compilation if this is a cross-compiler.
1074# Also use all.cross instead of all.internal and adjust SYSTEM_HEADER_DIR.
1075CROSS= AC_SUBST(CROSS)
1076ALL=all.internal AC_SUBST(ALL)
1077SYSTEM_HEADER_DIR='$(NATIVE_SYSTEM_HEADER_DIR)' AC_SUBST(SYSTEM_HEADER_DIR)
75bffa71 1078if test x$host != x$target
af5e4ada 1079then
a078a589
ZW
1080 CROSS="-DCROSS_COMPILE"
1081 ALL=all.cross
1082 SYSTEM_HEADER_DIR='$(CROSS_SYSTEM_HEADER_DIR)'
af5e4ada 1083fi
46f18e7b 1084
b39d221a
EC
1085# If this is a cross-compiler that does not
1086# have its own set of headers then define
1087# inhibit_libc
1088
fecd6201
ZW
1089# If this is using newlib, then define inhibit_libc in LIBGCC2_CFLAGS.
1090# This prevents libgcc2 from containing any code which requires libc
1091# support.
b39d221a
EC
1092inhibit_libc=
1093if [test x$host != x$target] && [test x$with_headers = x]; then
1094 inhibit_libc=-Dinhibit_libc
1095else
1096 if [test x$with_newlib = xyes]; then
1097 inhibit_libc=-Dinhibit_libc
1098 fi
1099fi
1100AC_SUBST(inhibit_libc)
1101
a078a589
ZW
1102# When building gcc with a cross-compiler, we need to adjust things so
1103# that the generator programs are still built with the native compiler.
1104# Also, we cannot run fixincludes or fix-header.
1105# Note that the terminology here is wrong; it should be BUILD_* throughout.
1106# FIXME.
1107
1108# These are the normal (build=host) settings:
1109HOST_PREFIX= AC_SUBST(HOST_PREFIX)
1110HOST_PREFIX_1=ignore- AC_SUBST(HOST_PREFIX_1)
1111HOST_CC='$(CC)' AC_SUBST(HOST_CC)
1112HOST_CFLAGS='$(ALL_CFLAGS)' AC_SUBST(HOST_CFLAGS)
1113
1114STMP_FIXINC=stmp-fixinc AC_SUBST(STMP_FIXINC)
1115STMP_FIXPROTO=stmp-fixproto AC_SUBST(STMP_FIXPROTO)
1116
1117# And these apply if build != host.
75bffa71 1118if test x$build != x$host
af5e4ada 1119then
a078a589
ZW
1120 HOST_PREFIX=build-
1121 HOST_PREFIX_1=build-
1122 HOST_CC='$(CC_FOR_BUILD)'
1123 HOST_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD) $(XCFLAGS)'
1124
1125 STMP_FIXINC=
1126 STMP_FIXPROTO=
af5e4ada 1127fi
46f18e7b 1128
ae3a15bb
DE
1129# Expand extra_headers to include complete path.
1130# This substitutes for lots of t-* files.
1131extra_headers_list=
75bffa71 1132if test "x$extra_headers" = x
ae3a15bb
DE
1133then true
1134else
29f7a208 1135 # Prepend ${srcdir}/config/${cpu_type}/ to every entry in extra_headers.
ae3a15bb
DE
1136 for file in $extra_headers;
1137 do
29f7a208 1138 extra_headers_list="${extra_headers_list} \$(srcdir)/config/${cpu_type}/${file}"
ae3a15bb
DE
1139 done
1140fi
1141
75bffa71 1142if test x$use_collect2 = xno; then
2ce3c6c6
JM
1143 use_collect2=
1144fi
1145
af5e4ada 1146# Add a definition of USE_COLLECT2 if system wants one.
2cc07db4 1147if test x$use_collect2 != x
af5e4ada 1148then
2cc07db4
RH
1149 host_xm_defines="${host_xm_defines} USE_COLLECT2"
1150 xm_defines="${xm_defines} USE_COLLECT2"
af5e4ada
DE
1151fi
1152
af5e4ada 1153# If we have gas in the build tree, make a link to it.
75bffa71 1154if test -f ../gas/Makefile; then
6e26218f 1155 rm -f as; $symbolic_link ../gas/as-new$host_exeext as$host_exeext 2>/dev/null
af5e4ada
DE
1156fi
1157
3cae5780 1158# If we have nm and objdump in the build tree, make a link to them.
75bffa71 1159if test -f ../binutils/Makefile; then
4b95eb49 1160 rm -f nm; $symbolic_link ../binutils/nm-new$host_exeext nm$host_exeext 2>/dev/null
3cae5780 1161 rm -f objdump; $symbolic_link ../binutils/objdump$host_exeext objdump$host_exeext 2>/dev/null
4b95eb49
JL
1162fi
1163
af5e4ada 1164# If we have ld in the build tree, make a link to it.
75bffa71 1165if test -f ../ld/Makefile; then
2cc07db4 1166 rm -f collect-ld; $symbolic_link ../ld/ld-new$host_exeext collect-ld$host_exeext 2>/dev/null
af5e4ada
DE
1167fi
1168
981d4858
JM
1169# Figure out what assembler we will be using.
1170AC_MSG_CHECKING(what assembler to use)
9e423e6d 1171gcc_cv_as=
981d4858
JM
1172gcc_cv_gas_major_version=
1173gcc_cv_gas_minor_version=
a2f319ea 1174gcc_cv_as_gas_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/gas
0936a455 1175gcc_cv_as_bfd_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/bfd
3ccc3a56
AO
1176if test -x "$DEFAULT_ASSEMBLER"; then
1177 gcc_cv_as="$DEFAULT_ASSEMBLER"
1178elif test -x "$AS"; then
1179 gcc_cv_as="$AS"
ab339d62 1180elif test -x as$host_exeext; then
9e423e6d
JW
1181 # Build using assembler in the current directory.
1182 gcc_cv_as=./as$host_exeext
5585c1bc 1183elif test -f $gcc_cv_as_gas_srcdir/configure.in -a -f ../gas/Makefile; then
9e423e6d 1184 # Single tree build which includes gas.
0936a455 1185 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
9e423e6d 1186 do
75bffa71
ILT
1187changequote(,)dnl
1188 gcc_cv_gas_version=`grep '^VERSION=[0-9]*\.[0-9]*' $f`
1189changequote([,])dnl
1190 if test x$gcc_cv_gas_version != x; then
9e423e6d
JW
1191 break
1192 fi
1193 done
75bffa71
ILT
1194changequote(,)dnl
1195 gcc_cv_gas_major_version=`expr "$gcc_cv_gas_version" : "VERSION=\([0-9]*\)"`
1196 gcc_cv_gas_minor_version=`expr "$gcc_cv_gas_version" : "VERSION=[0-9]*\.\([0-9]*\)"`
1197changequote([,])dnl
981d4858
JM
1198fi
1199
1200if test "x$gcc_cv_as" = x -a x$host = x$target; then
9e423e6d 1201 # Native build.
779243f7
JL
1202 # Search the same directories that the installed compiler will
1203 # search. Else we may find the wrong assembler and lose. If we
1204 # do not find a suitable assembler binary, then try the user's
1205 # path.
1206 #
1207 # Also note we have to check MD_EXEC_PREFIX before checking the
1208 # user's path. Unfortunately, there is no good way to get at the
1209 # value of MD_EXEC_PREFIX here. So we do a brute force search
1210 # through all the known MD_EXEC_PREFIX values. Ugh. This needs
1211 # to be fixed as part of the make/configure rewrite too.
1212
1213 if test "x$exec_prefix" = xNONE; then
1214 if test "x$prefix" = xNONE; then
1215 test_prefix=/usr/local
1216 else
1217 test_prefix=$prefix
1218 fi
1219 else
1220 test_prefix=$exec_prefix
1221 fi
1222
1223 # If the loop below does not find an assembler, then use whatever
1224 # one we can find in the users's path.
1225 # user's path.
16a0fe50 1226 gcc_cv_as=as$host_exeext
779243f7
JL
1227
1228 test_dirs="$test_prefix/lib/gcc-lib/$target/$gcc_version \
1229 $test_prefix/lib/gcc-lib/$target \
1230 /usr/lib/gcc/$target/$gcc_version \
1231 /usr/lib/gcc/$target \
1232 $test_prefix/$target/bin/$target/$gcc_version \
1233 $test_prefix/$target/bin \
1234 /usr/libexec \
1235 /usr/ccs/gcc \
1236 /usr/ccs/bin \
1237 /udk/usr/ccs/bin \
1238 /bsd43/usr/lib/cmplrs/cc \
1239 /usr/cross64/usr/bin \
1240 /usr/lib/cmplrs/cc \
1241 /sysv/usr/lib/cmplrs/cc \
1242 /svr4/usr/lib/cmplrs/cc \
1243 /usr/bin"
1244
1245 for dir in $test_dirs; do
1246 if test -f $dir/as$host_exeext; then
1247 gcc_cv_as=$dir/as$host_exeext
1248 break;
1249 fi
1250 done
9e423e6d 1251fi
981d4858
JM
1252if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1253 AC_MSG_RESULT("newly built gas")
1254else
1255 AC_MSG_RESULT($gcc_cv_as)
1256fi
1257
275b60d6
JJ
1258# Figure out what linker we will be using.
1259AC_MSG_CHECKING(what linker to use)
1260gcc_cv_ld=
1261gcc_cv_gld_major_version=
1262gcc_cv_gld_minor_version=
1263gcc_cv_ld_gld_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/ld
1264gcc_cv_ld_bfd_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/bfd
1265if test -x "$DEFAULT_LINKER"; then
1266 gcc_cv_ld="$DEFAULT_LINKER"
1267elif test -x "$LD"; then
1268 gcc_cv_ld="$LD"
1269elif test -x ld$host_exeext; then
1270 # Build using linker in the current directory.
1271 gcc_cv_ld=./ld$host_exeext
1272elif test -f $gcc_cv_ld_gld_srcdir/configure.in -a -f ../ld/Makefile; then
1273 # Single tree build which includes ld.
1274 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
1275 do
1276changequote(,)dnl
1277 gcc_cv_gld_version=`grep '^VERSION=[0-9]*\.[0-9]*' $f`
1278changequote([,])dnl
1279 if test x$gcc_cv_gld_version != x; then
1280 break
1281 fi
1282 done
1283changequote(,)dnl
1284 gcc_cv_gld_major_version=`expr "$gcc_cv_gld_version" : "VERSION=\([0-9]*\)"`
1285 gcc_cv_gld_minor_version=`expr "$gcc_cv_gld_version" : "VERSION=[0-9]*\.\([0-9]*\)"`
1286changequote([,])dnl
1287fi
1288
1289if test "x$gcc_cv_ld" = x -a x$host = x$target; then
1290 # Native build.
1291 # Search the same directories that the installed compiler will
1292 # search. Else we may find the wrong linker and lose. If we
1293 # do not find a suitable linker binary, then try the user's
1294 # path.
1295 #
1296 # Also note we have to check MD_EXEC_PREFIX before checking the
1297 # user's path. Unfortunately, there is no good way to get at the
1298 # value of MD_EXEC_PREFIX here. So we do a brute force search
1299 # through all the known MD_EXEC_PREFIX values. Ugh. This needs
1300 # to be fixed as part of the make/configure rewrite too.
1301
1302 if test "x$exec_prefix" = xNONE; then
1303 if test "x$prefix" = xNONE; then
1304 test_prefix=/usr/local
1305 else
1306 test_prefix=$prefix
1307 fi
1308 else
1309 test_prefix=$exec_prefix
1310 fi
1311
1312 # If the loop below does not find an linker, then use whatever
1313 # one we can find in the users's path.
1314 # user's path.
1315 gcc_cv_ld=ld$host_exeext
1316
1317 test_dirs="$test_prefix/lib/gcc-lib/$target/$gcc_version \
1318 $test_prefix/lib/gcc-lib/$target \
1319 /usr/lib/gcc/$target/$gcc_version \
1320 /usr/lib/gcc/$target \
1321 $test_prefix/$target/bin/$target/$gcc_version \
1322 $test_prefix/$target/bin \
1323 /usr/libexec \
1324 /usr/ccs/gcc \
1325 /usr/ccs/bin \
1326 /udk/usr/ccs/bin \
1327 /bsd43/usr/lib/cmplrs/cc \
1328 /usr/cross64/usr/bin \
1329 /usr/lib/cmplrs/cc \
1330 /sysv/usr/lib/cmplrs/cc \
1331 /svr4/usr/lib/cmplrs/cc \
1332 /usr/bin"
1333
1334 for dir in $test_dirs; do
1335 if test -f $dir/ld$host_exeext; then
1336 gcc_cv_ld=$dir/ld$host_exeext
1337 break;
1338 fi
1339 done
1340fi
1341if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then
1342 AC_MSG_RESULT("newly built ld")
1343else
1344 AC_MSG_RESULT($gcc_cv_ld)
1345fi
1346
981d4858
JM
1347# Figure out what nm we will be using.
1348AC_MSG_CHECKING(what nm to use)
1349if test -x nm$host_exeext; then
1350 gcc_cv_nm=./nm$host_exeext
1351elif test x$host = x$target; then
1352 # Native build.
1353 gcc_cv_nm=nm$host_exeext
1354fi
1355AC_MSG_RESULT($gcc_cv_nm)
1356
3cae5780
AS
1357# Figure out what objdump we will be using.
1358AC_MSG_CHECKING(what objdump to use)
1359if test -x objdump$host_exeext; then
1360 gcc_cv_objdump=./objdump$host_exeext
1361elif test x$host = x$target; then
1362 # Native build.
1363 gcc_cv_objdump=objdump$host_exeext
1364fi
1365AC_MSG_RESULT($gcc_cv_objdump)
1366
981d4858
JM
1367# Figure out what assembler alignment features are present.
1368AC_MSG_CHECKING(assembler alignment features)
9d147085 1369gcc_cv_as_alignment_features=none
981d4858
JM
1370if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1371 # Gas version 2.6 and later support for .balign and .p2align.
1372 # bytes to skip when using .p2align.
1373 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
1374 gcc_cv_as_alignment_features=".balign and .p2align"
1375 AC_DEFINE(HAVE_GAS_BALIGN_AND_P2ALIGN)
1376 fi
1377 # Gas version 2.8 and later support specifying the maximum
1378 # bytes to skip when using .p2align.
1379 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
1380 gcc_cv_as_alignment_features=".p2align including maximum skip"
1381 AC_DEFINE(HAVE_GAS_MAX_SKIP_P2ALIGN)
1382 fi
1383elif test x$gcc_cv_as != x; then
00ccc16d
JL
1384 # Check if we have .balign and .p2align
1385 echo ".balign 4" > conftest.s
1386 echo ".p2align 2" >> conftest.s
1387 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1388 gcc_cv_as_alignment_features=".balign and .p2align"
1389 AC_DEFINE(HAVE_GAS_BALIGN_AND_P2ALIGN)
1390 fi
1391 rm -f conftest.s conftest.o
9e423e6d
JW
1392 # Check if specifying the maximum bytes to skip when
1393 # using .p2align is supported.
1394 echo ".p2align 4,,7" > conftest.s
1395 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1396 gcc_cv_as_alignment_features=".p2align including maximum skip"
1397 AC_DEFINE(HAVE_GAS_MAX_SKIP_P2ALIGN)
1398 fi
1399 rm -f conftest.s conftest.o
1400fi
1401AC_MSG_RESULT($gcc_cv_as_alignment_features)
1402
d1accaa3 1403AC_MSG_CHECKING(assembler subsection support)
9d147085 1404gcc_cv_as_subsections=no
981d4858
JM
1405if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1406 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
1407 gcc_cv_as_subsections="working .subsection -1"
1408 fi
1409elif test x$gcc_cv_as != x; then
d1accaa3
JJ
1410 # Check if we have .subsection
1411 echo ".subsection 1" > conftest.s
1412 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1413 gcc_cv_as_subsections=".subsection"
d1accaa3
JJ
1414 if test x$gcc_cv_nm != x; then
1415 cat > conftest.s <<EOF
1416conftest_label1: .word 0
1417.subsection -1
1418conftest_label2: .word 0
1419.previous
1420EOF
1421 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1422 $gcc_cv_nm conftest.o | grep conftest_label1 > conftest.nm1
1423 $gcc_cv_nm conftest.o | grep conftest_label2 | sed -e 's/label2/label1/' > conftest.nm2
1b015bec
AO
1424 if cmp conftest.nm1 conftest.nm2 > /dev/null 2>&1; then
1425 :
1426 else
d1accaa3 1427 gcc_cv_as_subsections="working .subsection -1"
d1accaa3
JJ
1428 fi
1429 fi
1430 fi
1431 fi
1432 rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1433fi
981d4858
JM
1434if test x"$gcc_cv_as_subsections" = x"working .subsection -1"; then
1435 AC_DEFINE(HAVE_GAS_SUBSECTION_ORDERING, 1,
1436[Define if your assembler supports .subsection and .subsection -1 starts
1437 emitting at the beginning of your section.])
1438fi
d1accaa3
JJ
1439AC_MSG_RESULT($gcc_cv_as_subsections)
1440
12822146 1441AC_MSG_CHECKING(assembler weak support)
9d147085 1442gcc_cv_as_weak=no
981d4858
JM
1443if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1444 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
1445 gcc_cv_as_weak="yes"
1446 fi
1447elif test x$gcc_cv_as != x; then
12822146
JL
1448 # Check if we have .weak
1449 echo " .weak foobar" > conftest.s
1450 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
12822146
JL
1451 gcc_cv_as_weak="yes"
1452 fi
1453 rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1454fi
981d4858
JM
1455if test x"$gcc_cv_as_weak" = xyes; then
1456 AC_DEFINE(HAVE_GAS_WEAK, 1, [Define if your assembler supports .weak.])
1457fi
12822146
JL
1458AC_MSG_RESULT($gcc_cv_as_weak)
1459
6a9c5260 1460AC_MSG_CHECKING(assembler hidden support)
9d147085 1461gcc_cv_as_hidden=no
981d4858
JM
1462if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1463 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 10 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
1464 gcc_cv_as_hidden="yes"
1465 fi
1466elif test x$gcc_cv_as != x; then
6a9c5260
UD
1467 # Check if we have .hidden
1468 echo " .hidden foobar" > conftest.s
1469 echo "foobar:" >> conftest.s
1470 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
6a9c5260
UD
1471 gcc_cv_as_hidden="yes"
1472 fi
1473 rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1474fi
981d4858
JM
1475if test x"$gcc_cv_as_hidden" = xyes; then
1476 AC_DEFINE(HAVE_GAS_HIDDEN, 1,
1477 [Define if your assembler supports .hidden.])
1478fi
6a9c5260
UD
1479AC_MSG_RESULT($gcc_cv_as_hidden)
1480
b7460f24 1481AC_MSG_CHECKING(assembler leb128 support)
fbe42b1b 1482gcc_cv_as_leb128=no
b7460f24 1483if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
fbe42b1b 1484 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
b7460f24
RH
1485 gcc_cv_as_leb128="yes"
1486 fi
1487elif test x$gcc_cv_as != x; then
1488 # Check if we have .[us]leb128, and support symbol arithmetic with it.
1489 cat > conftest.s <<EOF
1490 .data
1491 .uleb128 L2 - L1
1492L1:
1493 .uleb128 1280
1494 .sleb128 -1010
1495L2:
1496EOF
1497 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
78e766a0
RH
1498 gcc_cv_as_leb128="yes"
1499
1500 # GAS versions before 2.11 do not support uleb128,
1501 # despite appearing to.
1502 # ??? There exists an elf-specific test that will crash
1503 # the assembler. Perhaps it's better to figure out whether
1504 # arbitrary sections are supported and try the test.
1505 as_ver=`$gcc_cv_as --version 2>/dev/null | head -1`
1506 if echo "$as_ver" | grep GNU > /dev/null; then
78e766a0 1507changequote(,)dnl
5fed851d 1508 as_ver=`echo $as_ver | sed -e 's/GNU assembler \([0-9.][0-9.]*\).*/\1/'`
0461a052 1509 as_major=`echo $as_ver | sed 's/\..*//'`
3d399d67 1510 as_minor=`echo $as_ver | sed 's/[^.]*\.\([0-9]*\).*/\1/'`
78e766a0
RH
1511changequote([,])dnl
1512 if test $as_major -eq 2 -a $as_minor -lt 11; then
1513 gcc_cv_as_leb128="no"
1514 fi
fbe42b1b 1515 fi
b7460f24
RH
1516 fi
1517 rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1518fi
1519if test x"$gcc_cv_as_leb128" = xyes; then
1520 AC_DEFINE(HAVE_AS_LEB128, 1,
1521 [Define if your assembler supports .uleb128.])
1522fi
1523AC_MSG_RESULT($gcc_cv_as_leb128)
1524
c64688ae
RH
1525AC_MSG_CHECKING(assembler eh_frame optimization)
1526gcc_cv_as_eh_frame=no
1527if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1528 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
1529 gcc_cv_as_eh_frame="yes"
1530 fi
1531elif test x$gcc_cv_as != x; then
1532 # Check if this is GAS.
41948db5
SS
1533 as_ver=`$gcc_cv_as --version < /dev/null 2> /dev/null | head -1`
1534 rm -f a.out 2> /dev/null
c64688ae
RH
1535 if echo "$as_ver" | grep GNU > /dev/null; then
1536 # Versions up to and including 2.11.0 may mis-optimize
1537 # .eh_frame data. Try something.
1538 cat > conftest.s <<EOF
1539 .text
1540.LFB1:
1541 .4byte 0
1542.L1:
1543 .4byte 0
1544.LFE1:
1545 .section .eh_frame,"aw",@progbits
1546__FRAME_BEGIN__:
1547 .4byte .LECIE1-.LSCIE1
1548.LSCIE1:
1549 .4byte 0x0
1550 .byte 0x1
1551 .ascii "z\0"
1552 .byte 0x1
1553 .byte 0x78
1554 .byte 0x1a
1555 .byte 0x0
1556 .byte 0x4
1557 .4byte 1
1558 .p2align 1
1559.LECIE1:
1560.LSFDE1:
1561 .4byte .LEFDE1-.LASFDE1
1562.LASFDE1:
1563 .4byte .LASFDE1-__FRAME_BEGIN__
1564 .4byte .LFB1
1565 .4byte .LFE1-.LFB1
1566 .byte 0x4
1567 .4byte .LFE1-.LFB1
1568 .byte 0x4
1569 .4byte .L1-.LFB1
1570.LEFDE1:
1571EOF
01efb963 1572 cat > conftest.lit <<EOF
c64688ae
RH
1573 0000 10000000 00000000 017a0001 781a0004 .........z..x...
1574 0010 01000000 12000000 18000000 00000000 ................
1575 0020 08000000 04080000 0044 .........D
01efb963
AS
1576EOF
1577 cat > conftest.big <<EOF
1578 0000 00000010 00000000 017a0001 781a0004 .........z..x...
1579 0010 00000001 00000012 00000018 00000000 ................
1580 0020 00000008 04000000 0844 .........D
c64688ae
RH
1581EOF
1582 # If the assembler didn't choke, and we can objdump,
1583 # and we got the correct data, then succeed.
1584 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
3cae5780 1585 && $gcc_cv_objdump -s -j .eh_frame conftest.o 2>/dev/null \
c64688ae 1586 | tail -3 > conftest.got \
01efb963
AS
1587 && { cmp conftest.lit conftest.got > /dev/null 2>&1 \
1588 || cmp conftest.big conftest.got > /dev/null 2>&1; }
c64688ae
RH
1589 then
1590 gcc_cv_as_eh_frame="yes"
1591 else
1592 gcc_cv_as_eh_frame="bad"
1593 if $gcc_cv_as -o conftest.o --traditional-format /dev/null; then
1594 AC_DEFINE(USE_AS_TRADITIONAL_FORMAT, 1,
1595 [Define if your assembler mis-optimizes .eh_frame data.])
1596 fi
1597 fi
1598 fi
1599 rm -f conftest.*
1600fi
1601AC_MSG_RESULT($gcc_cv_as_eh_frame)
1602
201556f0
JJ
1603AC_MSG_CHECKING(assembler section merging support)
1604gcc_cv_as_shf_merge=no
1605if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1606 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
a8b7afb9 1607 gcc_cv_as_shf_merge=yes
201556f0
JJ
1608 fi
1609elif test x$gcc_cv_as != x; then
1610 # Check if we support SHF_MERGE sections
1611 echo '.section .rodata.str, "aMS", @progbits, 1' > conftest.s
a8b7afb9 1612 if $gcc_cv_as --fatal-warnings -o conftest.o conftest.s > /dev/null 2>&1; then
201556f0
JJ
1613 gcc_cv_as_shf_merge=yes
1614 fi
1615 rm -f conftest.s conftest.o
1616fi
1617if test x"$gcc_cv_as_shf_merge" = xyes; then
1618 AC_DEFINE(HAVE_GAS_SHF_MERGE, 1,
1619[Define if your assembler supports marking sections with SHF_MERGE flag.])
1620fi
1621AC_MSG_RESULT($gcc_cv_as_shf_merge)
1622
275b60d6 1623case "$target" in
3a37b08e
RH
1624 # All TARGET_ABI_OSF targets.
1625 alpha*-*-osf* | alpha*-*-linux* | alpha*-*-*bsd*)
1626 AC_CACHE_CHECK([assembler supports explicit relocations],
1627 gcc_cv_as_explicit_relocs, [
1628 gcc_cv_as_explicit_relocs=unknown
1629 if test x$gcc_cv_gas_major_version != x \
1630 -a x$gcc_cv_gas_minor_version != x
1631 then
1632 if test "$gcc_cv_gas_major_version" -eq 2 \
1633 -a "$gcc_cv_gas_minor_version" -ge 12 \
1634 -o "$gcc_cv_gas_major_version" -gt 2; then
1635 gcc_cv_as_explicit_relocs=yes
1636 fi
1637 elif test x$gcc_cv_as != x; then
1638 cat > conftest.s << 'EOF'
1639 .set nomacro
1640 .text
1641 extbl $3, $2, $3 !lituse_bytoff!1
1642 ldq $2, a($29) !literal!1
1643 ldq $4, b($29) !literal!2
1644 ldq_u $3, 0($2) !lituse_base!1
1645 ldq $27, f($29) !literal!5
1646 jsr $26, ($27), f !lituse_jsr!5
1647 ldah $29, 0($26) !gpdisp!3
1648 lda $0, c($29) !gprel
1649 ldah $1, d($29) !gprelhigh
1650 lda $1, d($1) !gprellow
1651 lda $29, 0($29) !gpdisp!3
1652EOF
1653 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1654 gcc_cv_as_explicit_relocs=yes
1655 else
1656 gcc_cv_as_explicit_relocs=no
1657 fi
1658 rm -f conftest.s conftest.o
1659 fi
1660 ])
1661 if test "x$gcc_cv_as_explicit_relocs" = xyes; then
1662 AC_DEFINE(HAVE_AS_EXPLICIT_RELOCS, 1,
1663 [Define if your assembler supports explicit relocations.])
1664 fi
1665 ;;
1cb36a98 1666 sparc*-*-*)
5b68c389
AO
1667 AC_CACHE_CHECK([assembler .register pseudo-op support],
1668 gcc_cv_as_register_pseudo_op, [
1669 gcc_cv_as_register_pseudo_op=unknown
1670 if test x$gcc_cv_as != x; then
1671 # Check if we have .register
1672 echo ".register %g2, #scratch" > conftest.s
1673 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1cb36a98 1674 gcc_cv_as_register_pseudo_op=yes
5b68c389
AO
1675 else
1676 gcc_cv_as_register_pseudo_op=no
1677 fi
1678 rm -f conftest.s conftest.o
1cb36a98 1679 fi
5b68c389
AO
1680 ])
1681 if test "x$gcc_cv_as_register_pseudo_op" = xyes; then
119d24d1
KG
1682 AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP, 1,
1683 [Define if your assembler supports .register.])
1cb36a98 1684 fi
1cb36a98 1685
e95b1e6a
JJ
1686 AC_CACHE_CHECK([assembler supports -relax],
1687 gcc_cv_as_relax_opt, [
1688 gcc_cv_as_relax_opt=unknown
1689 if test x$gcc_cv_as != x; then
1690 # Check if gas supports -relax
1691 echo ".text" > conftest.s
1692 if $gcc_cv_as -relax -o conftest.o conftest.s > /dev/null 2>&1; then
1693 gcc_cv_as_relax_opt=yes
1694 else
1695 gcc_cv_as_relax_opt=no
1696 fi
1697 rm -f conftest.s conftest.o
1698 fi
1699 ])
1700 if test "x$gcc_cv_as_relax_opt" = xyes; then
1701 AC_DEFINE(HAVE_AS_RELAX_OPTION, 1,
1702 [Define if your assembler supports -relax option.])
1703 fi
1704
17e9e88c
JJ
1705 AC_CACHE_CHECK([assembler and linker support unaligned pc related relocs],
1706 gcc_cv_as_sparc_ua_pcrel, [
1707 gcc_cv_as_sparc_ua_pcrel=unknown
1708 if test x$gcc_cv_as != x -a x$gcc_cv_ld != x; then
1709 gcc_cv_as_sparc_ua_pcrel=no
1710 echo ".text; foo: nop; .data; .align 4; .byte 0; .uaword %r_disp32(foo)" > conftest.s
1711 if $gcc_cv_as -K PIC -o conftest.o conftest.s > /dev/null 2>&1; then
1712 if $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then
1713 gcc_cv_as_sparc_ua_pcrel=yes
1714 fi
1715 fi
1716 rm -f conftest.s conftest.o conftest
1717 fi
1718 ])
1719 if test "x$gcc_cv_as_sparc_ua_pcrel" = xyes; then
1720 AC_DEFINE(HAVE_AS_SPARC_UA_PCREL, 1,
1721 [Define if your assembler and linker support unaligned PC relative relocs.])
1722 fi
1723
5b68c389
AO
1724 case "$tm_file" in
1725 *64*)
1726 AC_CACHE_CHECK([for 64 bit support in assembler ($gcc_cv_as)],
1727 gcc_cv_as_flags64, [
1728 if test -n "$gcc_cv_as"; then
1729 echo ".xword foo" > conftest.s
1730 gcc_cv_as_flags64=no
8a90b95d 1731 for flag in "-xarch=v9" "-64 -Av9"; do
5b68c389
AO
1732 if $gcc_cv_as $flag -o conftest.o conftest.s \
1733 > /dev/null 2>&1; then
1734 gcc_cv_as_flags64=$flag
1735 break
1736 fi
1737 done
1738 rm -f conftest.s conftest.o
1739 else
1740 if test "$gas" = yes; then
1741 gcc_cv_as_flags64="-64 -Av9"
1742 else
1743 gcc_cv_as_flags64="-xarch=v9"
1744 fi
1cb36a98 1745 fi
5b68c389
AO
1746 ])
1747 if test "x$gcc_cv_as_flags64" = xno; then
1748changequote(, )
1749 tmake_file=`echo " $tmake_file " | sed -e 's, sparc/t-sol2-64 , ,' -e 's,^ ,,' -e 's, $,,'`
1750 dep_tmake_file=`echo " $dep_tmake_file " | sed -e 's, [^ ]*/config/sparc/t-sol2-64 , ,' -e 's,^ ,,' -e 's, $,,'`
1751changequote([, ])
1752 else
119d24d1
KG
1753 AC_DEFINE_UNQUOTED(AS_SPARC64_FLAG, "$gcc_cv_as_flags64",
1754 [Define if the assembler supports 64bit sparc.])
1cb36a98 1755 fi
5b68c389
AO
1756 ;;
1757 *) gcc_cv_as_flags64=${gcc_cv_as_flags64-no}
1758 ;;
1759 esac
1760
1761 if test "x$gcc_cv_as_flags64" != xno; then
1762 AC_CACHE_CHECK([for assembler offsetable %lo() support],
1763 gcc_cv_as_offsetable_lo10, [
1764 gcc_cv_as_offsetable_lo10=unknown
1765 if test "x$gcc_cv_as" != x; then
1766 # Check if assembler has offsetable %lo()
1767 echo "or %g1, %lo(ab) + 12, %g1" > conftest.s
1768 echo "or %g1, %lo(ab + 12), %g1" > conftest1.s
1769 if $gcc_cv_as $gcc_cv_as_flags64 -o conftest.o conftest.s \
1770 > /dev/null 2>&1 &&
1771 $gcc_cv_as $gcc_cv_as_flags64 -o conftest1.o conftest1.s \
1772 > /dev/null 2>&1; then
1773 if cmp conftest.o conftest1.o > /dev/null 2>&1; then
1774 gcc_cv_as_offsetable_lo10=no
1775 else
1776 gcc_cv_as_offsetable_lo10=yes
1777 fi
1778 else
1779 gcc_cv_as_offsetable_lo10=no
1cb36a98 1780 fi
5b68c389
AO
1781 rm -f conftest.s conftest.o conftest1.s conftest1.o
1782 fi
1783 ])
1784 if test "x$gcc_cv_as_offsetable_lo10" = xyes; then
119d24d1
KG
1785 AC_DEFINE(HAVE_AS_OFFSETABLE_LO10, 1,
1786 [Define if your assembler supports offsetable %lo().])
1cb36a98 1787 fi
1cb36a98 1788 fi
cb65112a 1789
1cb36a98
RH
1790 ;;
1791
1792changequote(,)dnl
c307e6dd 1793 i[34567]86-*-* | x86_64-*-*)
1cb36a98
RH
1794changequote([,])dnl
1795 AC_MSG_CHECKING(assembler instructions)
1796 gcc_cv_as_instructions=
981d4858
JM
1797 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1798 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
1799 gcc_cv_as_instructions="filds fists"
1800 fi
1801 elif test x$gcc_cv_as != x; then
53b5ce19
JW
1802 set "filds fists" "filds mem; fists mem"
1803 while test $# -gt 0
1804 do
1805 echo "$2" > conftest.s
1806 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1807 gcc_cv_as_instructions=${gcc_cv_as_instructions}$1" "
53b5ce19
JW
1808 fi
1809 shift 2
1810 done
1811 rm -f conftest.s conftest.o
1cb36a98 1812 fi
981d4858 1813 if test x"$gcc_cv_as_instructions" != x; then
ee7692d2 1814 AC_DEFINE_UNQUOTED(HAVE_GAS_`echo "$gcc_cv_as_instructions" | sed -e 's/ $//' | tr '[a-z ]' '[A-Z_]'`)
981d4858 1815 fi
1cb36a98 1816 AC_MSG_RESULT($gcc_cv_as_instructions)
f88c65f7
RH
1817
1818 AC_MSG_CHECKING(assembler GOTOFF in data directives)
1819 gcc_cv_as_gotoff_in_data=no
1820 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x
1821 then
1822 if test "$gcc_cv_gas_major_version" -eq 2 \
1823 -a "$gcc_cv_gas_minor_version" -ge 11 \
1824 -o "$gcc_cv_gas_major_version" -gt 2; then
1825 gcc_cv_as_gotoff_in_data=yes
1826 fi
1827 elif test x$gcc_cv_as != x; then
1828 cat > conftest.s <<EOF
1829 .text
1830.L0:
1831 nop
1832 .data
1833 .long .L0@GOTOFF
1834EOF
1835 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1836 gcc_cv_as_gotoff_in_data=yes
1837 fi
1838 fi
1839 AC_DEFINE_UNQUOTED(HAVE_AS_GOTOFF_IN_DATA,
1840 [`if test $gcc_cv_as_gotoff_in_data = yes; then echo 1; else echo 0; fi`],
1841 [Define true if the assembler supports '.long foo@GOTOFF'.])
1842 AC_MSG_RESULT($gcc_cv_as_gotoff_in_data)
1cb36a98
RH
1843 ;;
1844esac
53b5ce19 1845
9d147085
RH
1846AC_MSG_CHECKING(assembler dwarf2 debug_line support)
1847gcc_cv_as_dwarf2_debug_line=no
1848# ??? Not all targets support dwarf2 debug_line, even within a version
1849# of gas. Moreover, we need to emit a valid instruction to trigger any
1850# info to the output file. So, as supported targets are added to gas 2.11,
1851# add some instruction here to (also) show we expect this might work.
1852# ??? Once 2.11 is released, probably need to add first known working
1853# version to the per-target configury.
1854case "$target" in
c307e6dd 1855 i?86*-*-* | mips*-*-* | alpha*-*-* | powerpc*-*-* | sparc*-*-* | m68*-*-* | x86_64*-*-*)
9d147085
RH
1856 insn="nop"
1857 ;;
1858 ia64*-*-*)
1859 insn="nop 0"
1860 ;;
1861 esac
1862if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x;
1863then
1864 if test "$gcc_cv_gas_major_version" -eq 2 \
1865 -a "$gcc_cv_gas_minor_version" -ge 11 \
1866 -o "$gcc_cv_gas_major_version" -gt 2 \
1867 && grep 'obj_format = elf' ../gas/Makefile > /dev/null \
1868 && test x"$insn" != x ; then
1869 gcc_cv_as_dwarf2_debug_line="yes"
1870 fi
1871elif test x$gcc_cv_as != x -a x"$insn" != x ; then
acc187f5
RH
1872 echo ' .file 1 "conftest.s"' > conftest.s
1873 echo ' .loc 1 3 0' >> conftest.s
9d147085 1874 echo " $insn" >> conftest.s
981975b6 1875 # ??? This fails with non-gnu grep.
9d147085
RH
1876 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
1877 && grep debug_line conftest.o > /dev/null 2>&1 ; then
981975b6 1878 # The .debug_line file table must be in the exact order that
eaec9b3d 1879 # we specified the files, since these indices are also used
981975b6
RH
1880 # by DW_AT_decl_file. Approximate this test by testing if
1881 # the assembler bitches if the same index is assigned twice.
1882 echo ' .file 1 "foo.s"' > conftest.s
1883 echo ' .file 1 "bar.s"' >> conftest.s
1884 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1
1885 then
1886 gcc_cv_as_dwarf2_debug_line="no"
1887 else
1888 gcc_cv_as_dwarf2_debug_line="yes"
1889 fi
9d147085
RH
1890 fi
1891 rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1892fi
1893if test x"$gcc_cv_as_dwarf2_debug_line" = xyes; then
1894 AC_DEFINE(HAVE_AS_DWARF2_DEBUG_LINE, 1,
981975b6 1895[Define if your assembler supports dwarf2 .file/.loc directives,
eaec9b3d 1896 and preserves file table indices exactly as given.])
9d147085
RH
1897fi
1898AC_MSG_RESULT($gcc_cv_as_dwarf2_debug_line)
1899
5f0e9ea2
GK
1900AC_MSG_CHECKING(assembler --gdwarf2 support)
1901gcc_cv_as_gdwarf2_flag=no
1902if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x;
1903then
1904 if test "$gcc_cv_gas_major_version" -eq 2 \
1905 -a "$gcc_cv_gas_minor_version" -ge 11 \
1906 -o "$gcc_cv_gas_major_version" -gt 2 \
1907 && grep 'obj_format = elf' ../gas/Makefile > /dev/null \
1908 && test x"$insn" != x ; then
1909 gcc_cv_as_gdwarf2_debug_flag="yes"
1910 fi
1911elif test x$gcc_cv_as != x -a x"$insn" != x ; then
1912 echo '' > conftest.s
1913 # ??? This fails with non-gnu grep.
1914 if $gcc_cv_as --gdwarf2 -o conftest.o conftest.s > /dev/null 2>&1
1915 then
1916 gcc_cv_as_gdwarf2_flag="yes"
1917 fi
1918 rm -f conftest.s conftest.o
1919fi
1920if test x"$gcc_cv_as_gdwarf2_flag" = xyes; then
1921 AC_DEFINE(HAVE_AS_GDWARF2_DEBUG_FLAG, 1,
1922[Define if your assembler supports the --gdwarf2 option.])
1923fi
1924AC_MSG_RESULT($gcc_cv_as_gdwarf2_flag)
1925
1926AC_MSG_CHECKING(assembler --gstabs support)
1927gcc_cv_as_gstabs_flag=no
1928if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x;
1929then
1930 if test "$gcc_cv_gas_major_version" -eq 2 \
1931 -a "$gcc_cv_gas_minor_version" -ge 11 \
1932 -o "$gcc_cv_gas_major_version" -gt 2 \
1933 && grep 'obj_format = elf' ../gas/Makefile > /dev/null \
1934 && test x"$insn" != x ; then
1935 gcc_cv_as_gstabs_debug_flag="yes"
1936 fi
1937elif test x$gcc_cv_as != x -a x"$insn" != x ; then
1938 echo '' > conftest.s
1939 # ??? This fails with non-gnu grep.
1940 if $gcc_cv_as --gstabs -o conftest.o conftest.s > /dev/null 2>&1 ; then
1941 gcc_cv_as_gstabs_flag="yes"
1942 fi
1943 rm -f conftest.s conftest.o
1944fi
1945if test x"$gcc_cv_as_gstabs_flag" = xyes; then
1946 AC_DEFINE(HAVE_AS_GSTABS_DEBUG_FLAG, 1,
1947[Define if your assembler supports the --gstabs option.])
1948fi
1949AC_MSG_RESULT($gcc_cv_as_gstabs_flag)
1950
275b60d6
JJ
1951AC_MSG_CHECKING(linker PT_GNU_EH_FRAME support)
1952gcc_cv_ld_eh_frame_hdr=no
1953if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then
1954 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
1955 gcc_cv_ld_eh_frame_hdr=yes
1956 fi
1957elif test x$gcc_cv_ld != x; then
1958 # Check if linker supports --eh-frame-hdr option
1959 if $gcc_cv_ld --help 2>/dev/null | grep eh-frame-hdr > /dev/null; then
1960 gcc_cv_ld_eh_frame_hdr=yes
1961 fi
1962fi
1963if test x"$gcc_cv_ld_eh_frame_hdr" = xyes; then
1964 AC_DEFINE(HAVE_LD_EH_FRAME_HDR, 1,
1965[Define if your linker supports --eh-frame-hdr option.])
1966fi
1967AC_MSG_RESULT($gcc_cv_ld_eh_frame_hdr)
1968
793e9558
PB
1969if test "$prefix" != "/usr" && test "$prefix" != "/usr/local" ; then
1970 AC_DEFINE_UNQUOTED(PREFIX_INCLUDE_DIR, "$prefix/include")
1971fi
1972
571a8de5 1973# Figure out what language subdirectories are present.
71205e0b
MH
1974# Look if the user specified --enable-languages="..."; if not, use
1975# the environment variable $LANGUAGES if defined. $LANGUAGES might
1976# go away some day.
cc9a08e0 1977# NB: embedded tabs in this IF block -- do not untabify
71205e0b
MH
1978if test x"${enable_languages+set}" != xset; then
1979 if test x"${LANGUAGES+set}" = xset; then
cc9a08e0
PE
1980 enable_languages="${LANGUAGES}"
1981 AC_MSG_WARN([setting LANGUAGES is deprecated, use --enable-languages instead])
1982
71205e0b
MH
1983 else
1984 enable_languages=all
1985 fi
d6c6b553 1986else
cc9a08e0
PE
1987 if test x"${enable_languages}" = x ||
1988 test x"${enable_languages}" = xyes;
1989 then
1990 AC_MSG_ERROR([--enable-languages needs at least one language argument])
d6c6b553 1991 fi
71205e0b 1992fi
cc9a08e0 1993enable_languages=`echo "${enable_languages}" | sed -e 's/[[ ,]][[ ,]]*/,/g' -e 's/,$//'`
75382c6d
TT
1994
1995# First scan to see if an enabled language requires some other language.
1996# We assume that a given config-lang.in will list all the language
1997# front ends it requires, even if some are required indirectly.
1998for lang in ${srcdir}/*/config-lang.in ..
1999do
2000 case $lang in
2001 ..)
2002 ;;
2003 # The odd quoting in the next line works around
2004 # an apparent bug in bash 1.12 on linux.
2005changequote(,)dnl
2006 ${srcdir}/[*]/config-lang.in)
2007 ;;
2008 *)
2009 lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang`
2010 this_lang_requires=`sed -n -e 's,^lang_requires=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^lang_requires=\([^ ]*\).*$,\1,p' $lang`
2011 for other in $this_lang_requires
2012 do
2013 case ,${enable_languages}, in
2014 *,$other,*)
2015 ;;
2016 *,all,*)
2017 ;;
1bf17cc4 2018 *,$lang_alias,*)
75382c6d
TT
2019 enable_languages="$enable_languages,$other"
2020 ;;
2021 esac
2022 done
2023 ;;
2024changequote([,])dnl
2025 esac
2026done
2027
571a8de5
DE
2028subdirs=
2029for lang in ${srcdir}/*/config-lang.in ..
2030do
2031 case $lang in
2032 ..) ;;
2033 # The odd quoting in the next line works around
2034 # an apparent bug in bash 1.12 on linux.
75bffa71
ILT
2035changequote(,)dnl
2036 ${srcdir}/[*]/config-lang.in) ;;
71205e0b
MH
2037 *)
2038 lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang`
2b60b2cb
AO
2039 this_lang_libs=`sed -n -e 's,^target_libs=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^target_libs=\([^ ]*\).*$,\1,p' $lang`
2040 build_by_default=`sed -n -e 's,^build_by_default=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^build_by_default=\([^ ]*\).*$,\1,p' $lang`
71205e0b
MH
2041 if test "x$lang_alias" = x
2042 then
2043 echo "$lang doesn't set \$language." 1>&2
2044 exit 1
2045 fi
2b60b2cb
AO
2046 case ${build_by_default},${enable_languages}, in
2047 *,$lang_alias,*) add_this_lang=yes ;;
2048 no,*) add_this_lang=no ;;
2049 *,all,*) add_this_lang=yes ;;
2050 *) add_this_lang=no ;;
2051 esac
71205e0b
MH
2052 if test x"${add_this_lang}" = xyes; then
2053 case $lang in
2054 ${srcdir}/ada/config-lang.in)
1ffc5c6e 2055 if test x$have_gnat = xyes ; then
71205e0b
MH
2056 subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`"
2057 fi
2058 ;;
2059 *)
2060 subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`"
2061 ;;
2062 esac
2063 fi
2064 ;;
75bffa71 2065changequote([,])dnl
571a8de5
DE
2066 esac
2067done
2068
f24af81b
TT
2069# Make gthr-default.h if we have a thread file.
2070gthread_flags=
75bffa71 2071if test $thread_file != single; then
f24af81b 2072 rm -f gthr-default.h
db0d1ed9 2073 echo "#include \"gthr-${thread_file}.h\"" > gthr-default.h
f24af81b
TT
2074 gthread_flags=-DHAVE_GTHR_DEFAULT
2075fi
2076AC_SUBST(gthread_flags)
2077
81bf3d9e
RH
2078# Find out what GC implementation we want, or may, use.
2079AC_ARG_WITH(gc,
e8bec136
RO
2080[ --with-gc={simple,page} choose the garbage collection mechanism to use
2081 with the compiler],
81bf3d9e
RH
2082[case "$withval" in
2083 simple | page)
2084 GGC=ggc-$withval
2085 ;;
2086 *)
2087 AC_MSG_ERROR([$withval is an invalid option to --with-gc])
2088 ;;
2089esac],
130fadbb 2090[GGC=ggc-page])
81bf3d9e
RH
2091AC_SUBST(GGC)
2092echo "Using $GGC for garbage collection."
2093
3c809ba4 2094# Use the system's zlib library.
b8dad04b
ZW
2095zlibdir=-L../zlib
2096zlibinc="-I\$(srcdir)/../zlib"
3c809ba4
AG
2097AC_ARG_WITH(system-zlib,
2098[ --with-system-zlib use installed libz],
2099zlibdir=
2100zlibinc=
2101)
2102AC_SUBST(zlibdir)
2103AC_SUBST(zlibinc)
2104
dc6746e7
PT
2105dnl Very limited version of automake's enable-maintainer-mode
2106
2107AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
2108 dnl maintainer-mode is disabled by default
2109 AC_ARG_ENABLE(maintainer-mode,
e8bec136
RO
2110[ --enable-maintainer-mode
2111 enable make rules and dependencies not useful
dc6746e7
PT
2112 (and sometimes confusing) to the casual installer],
2113 maintainer_mode=$enableval,
2114 maintainer_mode=no)
2115
2116AC_MSG_RESULT($maintainer_mode)
2117
2118if test "$maintainer_mode" = "yes"; then
2119 MAINT=''
2120else
2121 MAINT='#'
2122fi
2123AC_SUBST(MAINT)dnl
2124
531073e7
RH
2125# With Setjmp/Longjmp based exception handling.
2126AC_ARG_ENABLE(sjlj-exceptions,
e8bec136
RO
2127[ --enable-sjlj-exceptions
2128 arrange to use setjmp/longjmp exception handling],
531073e7
RH
2129[sjlj=`if test $enableval = yes; then echo 1; else echo 0; fi`
2130AC_DEFINE_UNQUOTED(CONFIG_SJLJ_EXCEPTIONS, $sjlj,
2131 [Define 0/1 to force the choice for exception handling model.])])
2132
571a8de5
DE
2133# Make empty files to contain the specs and options for each language.
2134# Then add #include lines to for a compiler that has specs and/or options.
2135
2136lang_specs_files=
2137lang_options_files=
3103b7db 2138lang_tree_files=
571a8de5
DE
2139for subdir in . $subdirs
2140do
75bffa71 2141 if test -f $srcdir/$subdir/lang-specs.h; then
0d24f4d1 2142 lang_specs_files="$lang_specs_files $srcdir/$subdir/lang-specs.h"
571a8de5 2143 fi
75bffa71 2144 if test -f $srcdir/$subdir/lang-options.h; then
0d24f4d1 2145 lang_options_files="$lang_options_files $srcdir/$subdir/lang-options.h"
571a8de5 2146 fi
3103b7db 2147 if test -f $srcdir/$subdir/$subdir-tree.def; then
0d24f4d1 2148 lang_tree_files="$lang_tree_files $srcdir/$subdir/$subdir-tree.def"
3103b7db 2149 fi
571a8de5
DE
2150done
2151
2152# These (without "all_") are set in each config-lang.in.
2153# `language' must be a single word so is spelled singularly.
2154all_languages=
2155all_boot_languages=
2156all_compilers=
2157all_stagestuff=
5b7874aa 2158all_outputs='Makefile intl/Makefile fixinc/Makefile gccbug mklibgcc'
571a8de5
DE
2159# List of language makefile fragments.
2160all_lang_makefiles=
571a8de5
DE
2161
2162# Add the language fragments.
2163# Languages are added via two mechanisms. Some information must be
2164# recorded in makefile variables, these are defined in config-lang.in.
2165# We accumulate them and plug them into the main Makefile.
2166# The other mechanism is a set of hooks for each of the main targets
2167# like `clean', `install', etc.
2168
2169language_fragments="Make-lang"
2170language_hooks="Make-hooks"
2171
2172for s in .. $subdirs
2173do
75bffa71 2174 if test $s != ".."
571a8de5
DE
2175 then
2176 language=
2177 boot_language=
2178 compilers=
2179 stagestuff=
0280cf84 2180 outputs=
571a8de5 2181 . ${srcdir}/$s/config-lang.in
75bffa71 2182 if test "x$language" = x
571a8de5
DE
2183 then
2184 echo "${srcdir}/$s/config-lang.in doesn't set \$language." 1>&2
2185 exit 1
2186 fi
72aaffbd
ZW
2187 all_lang_makefiles="$all_lang_makefiles ${srcdir}/$s/Make-lang.in"
2188 if test -f ${srcdir}/$s/Makefile.in
2189 then all_lang_makefiles="$all_lang_makefiles ${srcdir}/$s/Makefile.in"
2190 fi
571a8de5 2191 all_languages="$all_languages $language"
75bffa71 2192 if test "x$boot_language" = xyes
571a8de5
DE
2193 then
2194 all_boot_languages="$all_boot_languages $language"
2195 fi
2196 all_compilers="$all_compilers $compilers"
2197 all_stagestuff="$all_stagestuff $stagestuff"
0280cf84 2198 all_outputs="$all_outputs $outputs"
571a8de5
DE
2199 fi
2200done
2201
cbc59f01
DD
2202check_languages=
2203for language in .. $all_languages
2204do
2205 if test $language != ".."
2206 then
2207 check_languages="$check_languages check-$language"
2208 fi
2209done
2210
571a8de5
DE
2211# Since we can't use `::' targets, we link each language in
2212# with a set of hooks, reached indirectly via lang.${target}.
2213
2214rm -f Make-hooks
2215touch Make-hooks
2216target_list="all.build all.cross start.encap rest.encap \
d3945f0a 2217 info dvi generated-manpages \
571a8de5 2218 install-normal install-common install-info install-man \
436a88a6 2219 uninstall \
571a8de5
DE
2220 mostlyclean clean distclean extraclean maintainer-clean \
2221 stage1 stage2 stage3 stage4"
2222for t in $target_list
2223do
2224 x=
ab87f8c8 2225 for lang in .. $all_languages
571a8de5 2226 do
ab87f8c8
JL
2227 if test $lang != ".."; then
2228 x="$x $lang.$t"
571a8de5
DE
2229 fi
2230 done
2231 echo "lang.$t: $x" >> Make-hooks
2232done
2233
cc06d68c 2234# Create .gdbinit.
296e46bd 2235
cc06d68c
GP
2236echo "dir ." > .gdbinit
2237echo "dir ${srcdir}" >> .gdbinit
2238if test x$gdb_needs_out_file_path = xyes
2239then
2240 echo "dir ${srcdir}/config/"`dirname ${out_file}` >> .gdbinit
2241fi
2242if test "x$subdirs" != x; then
2243 for s in $subdirs
2244 do
2245 echo "dir ${srcdir}/$s" >> .gdbinit
2246 done
296e46bd 2247fi
cc06d68c 2248echo "source ${srcdir}/gdbinit.in" >> .gdbinit
296e46bd 2249
88111b26
JL
2250# Define variables host_canonical and build_canonical
2251# because some Cygnus local changes in the Makefile depend on them.
2252build_canonical=${build}
2253host_canonical=${host}
2254target_subdir=
75bffa71 2255if test "${host}" != "${target}" ; then
924c96eb 2256 target_subdir=${target_alias}/
88111b26
JL
2257fi
2258AC_SUBST(build_canonical)
2259AC_SUBST(host_canonical)
2260AC_SUBST(target_subdir)
2261
8f8d3278
NC
2262# If $(exec_prefix) exists and is not the same as $(prefix), then compute an
2263# absolute path for gcc_tooldir based on inserting the number of up-directory
2264# movements required to get from $(exec_prefix) to $(prefix) into the basic
2265# $(libsubdir)/@(unlibsubdir) based path.
82cbf8f7
JL
2266# Don't set gcc_tooldir to tooldir since that's only passed in by the toplevel
2267# make and thus we'd get different behavior depending on where we built the
2268# sources.
5949a9fc 2269if test x$exec_prefix = xNONE -o x$exec_prefix = x$prefix; then
d062c304
JL
2270 gcc_tooldir='$(libsubdir)/$(unlibsubdir)/../$(target_alias)'
2271else
8f8d3278
NC
2272changequote(<<, >>)dnl
2273# An explanation of the sed strings:
2274# -e 's|^\$(prefix)||' matches and eliminates 'prefix' from 'exec_prefix'
2275# -e 's|/$||' match a trailing forward slash and eliminates it
2276# -e 's|^[^/]|/|' forces the string to start with a forward slash (*)
ff7cc307 2277# -e 's|/[^/]*|../|g' replaces each occurrence of /<directory> with ../
8f8d3278
NC
2278#
2279# (*) Note this pattern overwrites the first character of the string
2280# with a forward slash if one is not already present. This is not a
2281# problem because the exact names of the sub-directories concerned is
2282# unimportant, just the number of them matters.
2283#
2284# The practical upshot of these patterns is like this:
2285#
2286# prefix exec_prefix result
2287# ------ ----------- ------
2288# /foo /foo/bar ../
2289# /foo/ /foo/bar ../
2290# /foo /foo/bar/ ../
2291# /foo/ /foo/bar/ ../
2292# /foo /foo/bar/ugg ../../
2293#
4c112cda
NC
2294 dollar='$$'
2295 gcc_tooldir="\$(libsubdir)/\$(unlibsubdir)/\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/\$(dollar)||' -e 's|^[^/]|/|' -e 's|/[^/]*|../|g'\`\$(target_alias)"
8f8d3278 2296changequote([, ])dnl
d062c304
JL
2297fi
2298AC_SUBST(gcc_tooldir)
4c112cda 2299AC_SUBST(dollar)
d062c304 2300
2bbea3a6
RH
2301# Find a directory in which to install a shared libgcc.
2302
2303AC_ARG_ENABLE(version-specific-runtime-libs,
e8bec136
RO
2304[ --enable-version-specific-runtime-libs
2305 specify that runtime libraries should be
2306 installed in a compiler-specific directory])
2bbea3a6 2307
5b15f277
RH
2308AC_ARG_WITH(slibdir,
2309[ --with-slibdir=DIR shared libraries in DIR [LIBDIR]],
2310slibdir="$with_slibdir",
2311if test "${enable_version_specific_runtime_libs+set}" = set; then
2bbea3a6 2312 slibdir='$(libsubdir)'
5b15f277 2313elif test "$host" != "$target"; then
2bbea3a6
RH
2314 slibdir='$(build_tooldir)/lib'
2315else
5b15f277
RH
2316 slibdir='$(libdir)'
2317fi)
2bbea3a6
RH
2318AC_SUBST(slibdir)
2319
7e717196
JL
2320# Nothing to do for FLOAT_H, float_format already handled.
2321objdir=`pwd`
2322AC_SUBST(objdir)
2323
94f42018
DE
2324# Process the language and host/target makefile fragments.
2325${CONFIG_SHELL-/bin/sh} $srcdir/configure.frag $srcdir "$subdirs" "$dep_host_xmake_file" "$dep_tmake_file"
47866ac0 2326
46f18e7b
RK
2327# Substitute configuration variables
2328AC_SUBST(subdirs)
46f18e7b
RK
2329AC_SUBST(all_boot_languages)
2330AC_SUBST(all_compilers)
9f3d1bc2
BK
2331AC_SUBST(all_lang_makefiles)
2332AC_SUBST(all_languages)
9f3d1bc2
BK
2333AC_SUBST(all_stagestuff)
2334AC_SUBST(build_exeext)
2335AC_SUBST(build_install_headers_dir)
2336AC_SUBST(build_xm_file_list)
11642c3a
ZW
2337AC_SUBST(build_xm_file)
2338AC_SUBST(build_xm_defines)
cbc59f01 2339AC_SUBST(check_languages)
9f3d1bc2 2340AC_SUBST(cc_set_by_configure)
5aa82ace 2341AC_SUBST(quoted_cc_set_by_configure)
9f3d1bc2 2342AC_SUBST(cpp_install_dir)
9f3d1bc2
BK
2343AC_SUBST(dep_host_xmake_file)
2344AC_SUBST(dep_tmake_file)
9f3d1bc2 2345AC_SUBST(extra_headers_list)
46f18e7b 2346AC_SUBST(extra_objs)
9f3d1bc2
BK
2347AC_SUBST(extra_parts)
2348AC_SUBST(extra_passes)
2349AC_SUBST(extra_programs)
9f3d1bc2 2350AC_SUBST(float_h_file)
cc1e60ea 2351AC_SUBST(gcc_config_arguments)
9f3d1bc2 2352AC_SUBST(gcc_gxx_include_dir)
e2187d3b 2353AC_SUBST(libstdcxx_incdir)
9f3d1bc2 2354AC_SUBST(gcc_version)
8763704d 2355AC_SUBST(gcc_version_full)
9f3d1bc2
BK
2356AC_SUBST(gcc_version_trigger)
2357AC_SUBST(host_exeext)
46f18e7b 2358AC_SUBST(host_extra_gcc_objs)
46f18e7b 2359AC_SUBST(host_xm_file_list)
11642c3a
ZW
2360AC_SUBST(host_xm_file)
2361AC_SUBST(host_xm_defines)
9f3d1bc2 2362AC_SUBST(install)
46f18e7b 2363AC_SUBST(lang_options_files)
9f3d1bc2 2364AC_SUBST(lang_specs_files)
3103b7db 2365AC_SUBST(lang_tree_files)
46f18e7b 2366AC_SUBST(local_prefix)
9f3d1bc2
BK
2367AC_SUBST(md_file)
2368AC_SUBST(objc_boehm_gc)
2369AC_SUBST(out_file)
2370AC_SUBST(out_object_file)
46f18e7b 2371AC_SUBST(stage_prefix_set_by_configure)
596151e1 2372AC_SUBST(quoted_stage_prefix_set_by_configure)
e9a25f70 2373AC_SUBST(symbolic_link)
9f3d1bc2
BK
2374AC_SUBST(thread_file)
2375AC_SUBST(tm_file_list)
11642c3a
ZW
2376AC_SUBST(tm_file)
2377AC_SUBST(tm_p_file_list)
2378AC_SUBST(tm_p_file)
2379AC_SUBST(xm_file)
3d9d2476 2380AC_SUBST(xm_defines)
66fe41af 2381AC_SUBST(target_alias)
aac69a49
NC
2382AC_SUBST(c_target_objs)
2383AC_SUBST(cxx_target_objs)
11642c3a 2384AC_SUBST(target_cpu_default)
46f18e7b
RK
2385
2386AC_SUBST_FILE(target_overrides)
2387AC_SUBST_FILE(host_overrides)
46f18e7b
RK
2388AC_SUBST_FILE(language_fragments)
2389AC_SUBST_FILE(language_hooks)
2390
2391# Echo that links are built
75bffa71 2392if test x$host = x$target
46f18e7b
RK
2393then
2394 str1="native "
2395else
2396 str1="cross-"
2397 str2=" from $host"
2398fi
2399
75bffa71 2400if test x$host != x$build
46f18e7b
RK
2401then
2402 str3=" on a $build system"
2403fi
2404
75bffa71 2405if test "x$str2" != x || test "x$str3" != x
46f18e7b
RK
2406then
2407 str4=
2408fi
2409
2410echo "Links are now set up to build a ${str1}compiler for ${target}$str4" 1>&2
2411
75bffa71 2412if test "x$str2" != x || test "x$str3" != x
46f18e7b
RK
2413then
2414 echo " ${str2}${str3}." 1>&2
2415fi
2416
61536478 2417# Truncate the target if necessary
75bffa71 2418if test x$host_truncate_target != x; then
61536478
JL
2419 target=`echo $target | sed -e 's/\(..............\).*/\1/'`
2420fi
2421
46f18e7b
RK
2422# Configure the subdirectories
2423# AC_CONFIG_SUBDIRS($subdirs)
2424
2425# Create the Makefile
5891b37d 2426# and configure language subdirectories
0280cf84 2427AC_OUTPUT($all_outputs,
cdcc6a01 2428[
cdcc6a01 2429case x$CONFIG_HEADERS in
b7cb92ad 2430xauto-host.h:config.in)
818b66cc 2431echo > cstamp-h ;;
cdcc6a01 2432esac
93cf819d
BK
2433# If the host supports symlinks, point stage[1234] at ../stage[1234] so
2434# bootstrapping and the installation procedure can still use
2435# CC="stage1/xgcc -Bstage1/". If the host doesn't support symlinks,
2436# FLAGS_TO_PASS has been modified to solve the problem there.
2437# This is virtually a duplicate of what happens in configure.lang; we do
2438# an extra check to make sure this only happens if ln -s can be used.
75bffa71 2439if test "$symbolic_link" = "ln -s"; then
d8140df6 2440 for d in .. ${subdirs} fixinc ; do
75bffa71 2441 if test $d != ..; then
4e8a434e
BK
2442 STARTDIR=`pwd`
2443 cd $d
2444 for t in stage1 stage2 stage3 stage4 include
2445 do
2446 rm -f $t
2447 $symbolic_link ../$t $t 2>/dev/null
2448 done
2449 cd $STARTDIR
93cf819d
BK
2450 fi
2451 done
2452else true ; fi
ab87f8c8
JL
2453# Avoid having to add intl to our include paths.
2454if test -f intl/libintl.h; then
2455 echo creating libintl.h
2456 echo '#include "intl/libintl.h"' >libintl.h
2457fi
0d24f4d1
ZW
2458],
2459[subdirs='$subdirs'
2460symbolic_link='$symbolic_link'
cdcc6a01 2461])
This page took 1.319514 seconds and 5 git commands to generate.