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