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