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