2 # Process this file with autoconf to generate a configuration script.
4 # Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003
5 # Free Software Foundation, Inc.
7 #This file is part of GCC.
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
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
19 #You should have received a copy of the GNU General Public License
20 #along with GCC; see the file COPYING. If not, write to the Free
21 #Software Foundation, 59 Temple Place - Suite 330, Boston, MA
24 # Initialization and defaults
27 AC_CONFIG_HEADER(auto-host.h:config.in)
34 # Check for bogus environment variables.
35 # Test if LIBRARY_PATH contains the notation for the current directory
36 # since this would lead to problems installing/building glibc.
37 # LIBRARY_PATH contains the current directory if one of the following
39 # - one of the terminals (":" and ";") is the first or last sign
40 # - two terminals occur directly after each other
41 # - the path contains an element with a dot in it
42 AC_MSG_CHECKING(LIBRARY_PATH variable)
44 case ${LIBRARY_PATH} in
45 [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
46 library_path_setting="contains current directory"
49 library_path_setting="ok"
53 AC_MSG_RESULT($library_path_setting)
54 if test "$library_path_setting" != "ok"; then
56 *** LIBRARY_PATH shouldn't contain the current directory when
57 *** building gcc. Please change the environment variable
58 *** and run configure again.])
61 # Test if GCC_EXEC_PREFIX contains the notation for the current directory
62 # since this would lead to problems installing/building glibc.
63 # GCC_EXEC_PREFIX contains the current directory if one of the following
65 # - one of the terminals (":" and ";") is the first or last sign
66 # - two terminals occur directly after each other
67 # - the path contains an element with a dot in it
68 AC_MSG_CHECKING(GCC_EXEC_PREFIX variable)
70 case ${GCC_EXEC_PREFIX} in
71 [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
72 gcc_exec_prefix_setting="contains current directory"
75 gcc_exec_prefix_setting="ok"
79 AC_MSG_RESULT($gcc_exec_prefix_setting)
80 if test "$gcc_exec_prefix_setting" != "ok"; then
82 *** GCC_EXEC_PREFIX shouldn't contain the current directory when
83 *** building gcc. Please change the environment variable
84 *** and run configure again.])
87 # Check for additional parameters
91 [ --with-gnu-ld arrange to work with GNU ld.],
92 gnu_ld_flag="$with_gnu_ld",
97 [ --with-ld arrange to use the specified ld (full pathname)],
98 DEFAULT_LINKER="$with_ld")
99 if test x"${DEFAULT_LINKER+set}" = x"set"; then
100 if test ! -x "$DEFAULT_LINKER"; then
101 AC_MSG_WARN([cannot execute: $DEFAULT_LINKER: check --with-ld or env. var. DEFAULT_LINKER])
102 elif $DEFAULT_LINKER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
105 AC_DEFINE_UNQUOTED(DEFAULT_LINKER,"$DEFAULT_LINKER",
106 [Define to enable the use of a default linker.])
111 [ --with-gnu-as arrange to work with GNU as],
112 gas_flag="$with_gnu_as",
116 [ --with-as arrange to use the specified as (full pathname)],
117 DEFAULT_ASSEMBLER="$with_as")
118 if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
119 if test ! -x "$DEFAULT_ASSEMBLER"; then
120 AC_MSG_WARN([cannot execute: $DEFAULT_ASSEMBLER: check --with-as or env. var. DEFAULT_ASSEMBLER])
121 elif $DEFAULT_ASSEMBLER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
124 AC_DEFINE_UNQUOTED(DEFAULT_ASSEMBLER,"$DEFAULT_ASSEMBLER",
125 [Define to enable the use of a default assembler.])
130 [ --with-stabs arrange to use stabs instead of host debug format],
136 [ --with-elf arrange to use ELF instead of host debug format],
140 # Specify the local prefix
142 AC_ARG_WITH(local-prefix,
143 [ --with-local-prefix=DIR specifies directory to put local include],
144 [case "${withval}" in
145 yes) AC_MSG_ERROR(bad value ${withval} given for local include directory prefix) ;;
147 *) local_prefix=$with_local_prefix ;;
150 # Default local prefix if it is empty
151 if test x$local_prefix = x; then
152 local_prefix=/usr/local
155 # Don't set gcc_gxx_include_dir to gxx_include_dir since that's only
156 # passed in by the toplevel make and thus we'd get different behavior
157 # depending on where we built the sources.
159 # Specify the g++ header file directory
160 AC_ARG_WITH(gxx-include-dir,
161 [ --with-gxx-include-dir=DIR
162 specifies directory to put g++ header files],
163 [case "${withval}" in
164 yes) AC_MSG_ERROR(bad value ${withval} given for g++ include directory) ;;
166 *) gcc_gxx_include_dir=$with_gxx_include_dir ;;
169 if test x${gcc_gxx_include_dir} = x; then
170 if test x${enable_version_specific_runtime_libs} = xyes; then
171 gcc_gxx_include_dir='${libsubdir}/include/c++'
173 topsrcdir=${srcdir}/.. . ${srcdir}/../config.if
174 changequote(<<, >>)dnl
175 gcc_gxx_include_dir="\$(libsubdir)/\$(unlibsubdir)/..\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/[^/]*|/..|g'\`/include/"${libstdcxx_incdir}
180 # Determine the host, build, and target systems
183 # Set program_transform_name
186 # Find the native compiler
189 # autoconf is lame and doesn't give us any substitution variable for this.
190 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
191 NO_MINUS_C_MINUS_O=yes
193 OUTPUT_OPTION='-o $@'
195 AC_SUBST(NO_MINUS_C_MINUS_O)
196 AC_SUBST(OUTPUT_OPTION)
198 # See if GNAT has been installed
201 AC_CACHE_CHECK(whether ${CC-cc} accepts -Wno-long-long,
202 ac_cv_prog_cc_no_long_long,
203 [save_CFLAGS="$CFLAGS"
204 CFLAGS="-Wno-long-long"
205 AC_TRY_COMPILE(,,ac_cv_prog_cc_no_long_long=yes,
206 ac_cv_prog_cc_no_long_long=no)
207 CFLAGS="$save_CFLAGS"])
209 if test x$have_gnat != xno ; then
210 AC_CACHE_CHECK(whether ${ADAC} accepts -Wno-long-long,
211 ac_cv_prog_adac_no_long_long,
212 [cat >conftest.adb <<EOF
213 procedure conftest is begin null; end conftest;
215 if $ADAC -Wno-long-long -c conftest.adb 1>&5 2>&5 ; then
216 ac_cv_prog_adac_no_long_long=yes
218 ac_cv_prog_adac_no_long_long=no
222 ac_cv_prog_adac_no_long_long=yes
226 if test $ac_cv_prog_cc_no_long_long = yes && \
227 test $ac_cv_prog_adac_no_long_long = yes ; then
228 strict1_warn="-pedantic -Wno-long-long"
230 AC_SUBST(strict1_warn)
240 # sizeof(char) is 1 by definition.
241 AC_COMPILE_CHECK_SIZEOF(short)
242 AC_COMPILE_CHECK_SIZEOF(int)
243 AC_COMPILE_CHECK_SIZEOF(long)
244 if test $ac_cv_c_long_long = yes; then
245 AC_COMPILE_CHECK_SIZEOF(long long)
247 if test $ac_cv_c___int64 = yes; then
248 AC_COMPILE_CHECK_SIZEOF(__int64)
253 # If the native compiler is GCC, we can enable warnings even in stage1.
254 # That's useful for people building cross-compilers, or just running a
257 if test "x$GCC" = "xyes"; then
258 warn_cflags='$(GCC_WARN_CFLAGS)'
260 AC_SUBST(warn_cflags)
262 # Determine whether or not multilibs are enabled.
263 AC_ARG_ENABLE(multilib,
264 [ --enable-multilib enable library support for multiple ABIs],
265 [], [enable_multilib=yes])
266 AC_SUBST(enable_multilib)
268 # Enable -Werror in bootstrap stage2 and later.
269 # Change the default to "no" on release branches.
270 AC_ARG_ENABLE(werror,
271 [ --enable-werror enable -Werror in bootstrap stage2 and later], [],
273 if test x$enable_werror = xyes ; then
278 # Enable expensive internal checks
279 AC_ARG_ENABLE(checking,
280 [ --enable-checking[=LIST]
281 enable expensive run-time checks. With LIST,
282 enable only specific categories of checks.
283 Categories are: misc,tree,rtl,rtlflag,gc,gcac;
284 default is misc,tree,gc,rtlflag],
290 ac_gc_always_collect=
291 case "${enableval}" in
292 yes) ac_checking=1 ; ac_tree_checking=1 ; ac_gc_checking=1 ;
293 ac_rtlflag_checking=1 ;;
295 *) IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS,"
296 set fnord $enableval; shift
301 misc) ac_checking=1 ;;
302 tree) ac_tree_checking=1 ;;
303 rtlflag) ac_rtlflag_checking=1 ;;
304 rtl) ac_rtl_checking=1 ;;
305 gc) ac_gc_checking=1 ;;
306 gcac) ac_gc_always_collect=1 ;;
307 valgrind) ac_checking_valgrind=1 ;;
308 *) AC_MSG_ERROR(unknown check category $check) ;;
314 # Enable some checks by default for development versions of GCC
315 [ac_checking=1; ac_tree_checking=1; ac_gc_checking=1; ac_rtlflag_checking=1;])
317 if test x$ac_checking != x ; then
318 AC_DEFINE(ENABLE_CHECKING, 1,
319 [Define if you want more run-time sanity checks. This one gets a grab
320 bag of miscellaneous but relatively cheap checks.])
321 nocommon_flag=-fno-common
323 AC_SUBST(nocommon_flag)
324 if test x$ac_tree_checking != x ; then
325 AC_DEFINE(ENABLE_TREE_CHECKING, 1,
326 [Define if you want all operations on trees (the basic data
327 structure of the front ends) to be checked for dynamic type safety
328 at runtime. This is moderately expensive.])
330 if test x$ac_rtl_checking != x ; then
331 AC_DEFINE(ENABLE_RTL_CHECKING, 1,
332 [Define if you want all operations on RTL (the basic data structure
333 of the optimizer and back end) to be checked for dynamic type safety
334 at runtime. This is quite expensive.])
336 if test x$ac_rtlflag_checking != x ; then
337 AC_DEFINE(ENABLE_RTL_FLAG_CHECKING, 1,
338 [Define if you want RTL flag accesses to be checked against the RTL
339 codes that are supported for each access macro. This is relatively
342 if test x$ac_gc_checking != x ; then
343 AC_DEFINE(ENABLE_GC_CHECKING, 1,
344 [Define if you want the garbage collector to do object poisoning and
345 other memory allocation checks. This is quite expensive.])
347 if test x$ac_gc_always_collect != x ; then
348 AC_DEFINE(ENABLE_GC_ALWAYS_COLLECT, 1,
349 [Define if you want the garbage collector to operate in maximally
350 paranoid mode, validating the entire heap and collecting garbage at
351 every opportunity. This is extremely expensive.])
353 valgrind_path_defines=
355 if test x$ac_checking_valgrind != x ; then
356 # It is certainly possible that there's valgrind but no valgrind.h.
357 # GCC relies on making annotations so we must have both.
358 AC_CHECK_HEADER(valgrind.h, have_valgrind_h=yes, have_valgrind_h=no)
359 AM_PATH_PROG_WITH_TEST(valgrind_path, valgrind,
360 [$ac_dir/$ac_word --version | grep valgrind- >/dev/null 2>&1])
361 if test "x$valgrind_path" = "x" || test $have_valgrind_h = no; then
362 AC_MSG_ERROR([*** Can't find both valgrind and valgrind.h])
364 valgrind_path_defines=-DVALGRIND_PATH='\"'$valgrind_path'\"'
365 valgrind_command="$valgrind_path -q"
366 AC_DEFINE(ENABLE_VALGRIND_CHECKING, 1,
367 [Define if you want to run subprograms and generated programs
368 through valgrind (a memory checker). This is extremely expensive.])
370 AC_SUBST(valgrind_path_defines)
371 AC_SUBST(valgrind_command)
373 # Enable code coverage collection
374 AC_ARG_ENABLE(coverage,
375 [ --enable-coverage[=LEVEL]
376 enable compiler\'s code coverage collection.
377 Use to measure compiler performance and locate
378 unused parts of the compiler. With LEVEL, specify
379 optimization. Values are opt, noopt,
381 [case "${enableval}" in
383 coverage_flags="-fprofile-arcs -ftest-coverage -O0 -DSELF_COVERAGE=1"
386 coverage_flags="-fprofile-arcs -ftest-coverage -O2 -DSELF_COVERAGE=2"
389 AC_MSG_ERROR(unknown coverage setting $enableval)
393 AC_SUBST(coverage_flags)
395 AC_ARG_WITH(cpp_install_dir,
396 [ --with-cpp-install-dir=DIR
397 install the user visible C preprocessor in DIR
398 (relative to PREFIX) as well as PREFIX/bin],
399 [if test x$withval = xyes; then
400 AC_MSG_ERROR([option --with-cpp-install-dir requires an argument])
401 elif test x$withval != xno; then
402 cpp_install_dir=$withval
405 # Enable __cxa_atexit for C++.
406 AC_ARG_ENABLE(__cxa_atexit,
407 [ --enable-__cxa_atexit enable __cxa_atexit for C++],
409 if test x$enable___cxa_atexit = xyes; then
410 AC_DEFINE(DEFAULT_USE_CXA_ATEXIT, 1,
411 [Define if you want to use __cxa_atexit, rather than atexit, to
412 register C++ destructors for local statics and global objects.
413 This is essential for fully standards-compliant handling of
414 destructors, but requires __cxa_atexit in libc.])
417 # Enable Multibyte Characters for C/C++
418 AC_ARG_ENABLE(c-mbchar,
419 [ --enable-c-mbchar enable multibyte characters for C and C++],
420 if test x$enable_c_mbchar != xno; then
421 AC_DEFINE(MULTIBYTE_CHARS, 1,
422 [Define if you want the C and C++ compilers to support multibyte
423 character sets for source code.])
427 # Pass with no value to take the default
428 # Pass with a value to specify a thread package
429 AC_ARG_ENABLE(threads,
430 [ --enable-threads enable thread usage for target GCC
431 --enable-threads=LIB use LIB thread package for target GCC],,
434 enable_threads_flag=$enable_threads
435 # Check if a valid thread package
436 case x${enable_threads_flag} in
439 target_thread_file='single'
443 target_thread_file=''
445 xdecosf1 | xirix | xmach | xos2 | xposix | xpthreads | xsingle | \
446 xsolaris | xwin32 | xdce | xrtems| xvxworks | xaix)
447 target_thread_file=$enable_threads_flag
450 echo "$enable_threads is an unknown thread package" 1>&2
455 AC_ARG_ENABLE(objc-gc,
456 [ --enable-objc-gc enable the use of Boehm's garbage collector with
457 the GNU Objective-C runtime],
458 if test x$enable_objc_gc = xno; then
466 [ --with-dwarf2 force the default debug format to be DWARF 2],
467 dwarf2="$with_dwarf2",
470 AC_ARG_ENABLE(shared,
471 [ --disable-shared don't provide a shared libgcc],
473 case $enable_shared in
477 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
478 for pkg in $enableval; do
479 if test "X$pkg" = "Xgcc" || test "X$pkg" = "Xlibgcc"; then
486 ], [enable_shared=yes])
487 AC_SUBST(enable_shared)
490 [ --with-sysroot[=DIR] Search for usr/lib, usr/include, et al, within DIR.],
492 case ${with_sysroot} in
493 yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
494 *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
497 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
498 CROSS_SYSTEM_HEADER_DIR='$(TARGET_SYSTEM_ROOT)$(NATIVE_SYSTEM_HEADER_DIR)'
500 if test "x$exec_prefix" = xNONE; then
501 if test "x$prefix" = xNONE; then
502 test_prefix=/usr/local
507 test_prefix=$exec_prefix
509 case ${TARGET_SYSTEM_ROOT} in
510 "${test_prefix}"|"${test_prefix}/"*|\
511 '${exec_prefix}'|'${exec_prefix}/'*)
512 t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
513 TARGET_SYSTEM_ROOT_DEFINE="$t"
518 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=0'
519 CROSS_SYSTEM_HEADER_DIR='$(gcc_tooldir)/sys-include'
521 AC_SUBST(TARGET_SYSTEM_ROOT)
522 AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
523 AC_SUBST(CROSS_SYSTEM_HEADER_DIR)
525 # Stage specific cflags for build.
531 stage1_cflags="-Wa,-J"
537 # The spiffy cpp-precomp chokes on some legitimate constructs in GCC
538 # sources; use -no-cpp-precomp to get to GNU cpp.
539 # Apple's GCC has bugs in designated initializer handling, so disable
541 stage1_cflags="-no-cpp-precomp -DHAVE_DESIGNATED_INITIALIZERS=0"
544 AC_SUBST(stage1_cflags)
548 AC_MSG_CHECKING([whether a default assembler was specified])
549 if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
550 if test x"$gas_flag" = x"no"; then
551 AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER)])
553 AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER - GNU as)])
559 AC_MSG_CHECKING([whether a default linker was specified])
560 if test x"${DEFAULT_LINKER+set}" = x"set"; then
561 if test x"$gnu_ld_flag" = x"no"; then
562 AC_MSG_RESULT([yes ($DEFAULT_LINKER)])
564 AC_MSG_RESULT([yes ($DEFAULT_LINKER - GNU ld)])
570 AC_MSG_CHECKING(for GNU C library)
571 AC_CACHE_VAL(gcc_cv_glibc,
573 [#include <features.h>],[
574 #if ! (defined __GLIBC__ || defined __GNU_LIBRARY__)
575 #error Not a GNU C library system
579 AC_MSG_RESULT($gcc_cv_glibc)
580 if test $gcc_cv_glibc = yes; then
581 AC_DEFINE(_GNU_SOURCE, 1, [Always define this when using the GNU C Library])
584 # Find some useful tools
593 gcc_AC_HEADER_STDBOOL
596 AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h time.h \
597 fcntl.h unistd.h sys/file.h sys/time.h \
598 sys/resource.h sys/param.h sys/times.h sys/stat.h \
599 direct.h malloc.h langinfo.h ldfcn.h)
601 # Check for thread headers.
602 AC_CHECK_HEADER(thread.h, [have_thread_h=yes], [have_thread_h=])
603 AC_CHECK_HEADER(pthread.h, [have_pthread_h=yes], [have_pthread_h=])
605 # These tests can't be done till we know if we have limits.h.
608 gcc_AC_C_FLOAT_FORMAT
610 # See if we have the mktemp command.
611 AC_CHECK_PROG(have_mktemp_command, mktemp, yes, no)
613 # Do we have a single-tree copy of texinfo?
614 if test -f $srcdir/../texinfo/Makefile.in; then
615 MAKEINFO='$(objdir)/../texinfo/makeinfo/makeinfo'
616 gcc_cv_prog_makeinfo_modern=yes
617 AC_MSG_RESULT([Using makeinfo from the unified source tree.])
619 # See if makeinfo has been installed and is modern enough
620 # that we can use it.
621 gcc_AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
622 [GNU texinfo.* \([0-9][0-9.]*\)],
626 if test $gcc_cv_prog_makeinfo_modern = no; then
628 *** Makeinfo is missing or too old.
629 *** Info documentation will not be built.])
632 BUILD_INFO=info AC_SUBST(BUILD_INFO)
635 # Is pod2man recent enough to regenerate manpages?
636 AC_MSG_CHECKING([for recent Pod::Man])
637 if (perl -e 'use 1.10 Pod::Man') >/dev/null 2>&1; then
639 GENERATED_MANPAGES=generated-manpages AC_SUBST(GENERATED_MANPAGES)
646 dnl Don't use AC_PROG_LEX; we insist on flex.
647 dnl LEXLIB is not useful in gcc.
648 if test -f $srcdir/../flex/skel.c; then
649 FLEX='$(objdir)/../flex/flex'
651 AC_CHECK_PROG(FLEX, flex, flex, ${CONFIG_SHELL-/bin/sh} ${srcdir}/../missing flex)
655 # The -L switch is so bison can find its skeleton file.
656 if test -f $srcdir/../bison/bison.simple; then
657 BISON='$(objdir)/../bison/bison -L $(srcdir)/../bison/'
659 AC_CHECK_PROG(BISON, bison, bison, ${CONFIG_SHELL-/bin/sh} ${srcdir}/../missing bison)
662 # These libraries may be used by collect2.
663 # We may need a special search path to get them linked.
664 AC_CACHE_CHECK(for collect2 libraries, gcc_cv_collect2_libs,
666 for libs in '' -lld -lmld \
667 '-L/usr/lib/cmplrs/cc2.11 -lmld' \
668 '-L/usr/lib/cmplrs/cc3.11 -lmld'
671 AC_TRY_LINK_FUNC(ldopen,
672 [gcc_cv_collect2_libs="$libs"; break])
675 test -z "$gcc_cv_collect2_libs" && gcc_cv_collect2_libs='none required'])
676 case $gcc_cv_collect2_libs in
678 *) COLLECT2_LIBS=$gcc_cv_collect2_libs ;;
680 AC_SUBST(COLLECT2_LIBS)
682 # When building Ada code on Alpha, we need exc_resume which is usually in
683 # -lexc. So test for it.
686 AC_SEARCH_LIBS(exc_resume, exc)
689 AC_SUBST(GNAT_LIBEXC)
691 # See if the stage1 system preprocessor understands the ANSI C
692 # preprocessor stringification operator. (Used by symcat.h.)
695 # Use <inttypes.h> only if it exists,
696 # doesn't clash with <sys/types.h>, and declares intmax_t.
697 AC_MSG_CHECKING(for inttypes.h)
698 AC_CACHE_VAL(gcc_cv_header_inttypes_h,
700 [#include <sys/types.h>
701 #include <inttypes.h>],
703 [gcc_cv_header_inttypes_h=yes],
704 gcc_cv_header_inttypes_h=no)])
705 AC_MSG_RESULT($gcc_cv_header_inttypes_h)
706 if test $gcc_cv_header_inttypes_h = yes; then
707 AC_DEFINE(HAVE_INTTYPES_H, 1,
708 [Define if you have a working <inttypes.h> header file.])
711 dnl Disabled until we have a complete test for buggy enum bitfields.
712 dnl gcc_AC_C_ENUM_BF_UNSIGNED
714 AC_CHECK_FUNCS(times clock dup2 kill getrlimit setrlimit atoll atoq \
715 sysconf strsignal putc_unlocked fputc_unlocked fputs_unlocked \
716 fwrite_unlocked fprintf_unlocked getrusage nl_langinfo lstat \
719 AC_CHECK_TYPE(ssize_t, int)
721 # Try to determine the array type of the second argument of getgroups
722 # for the target system (int or gid_t).
724 if test "${target}" = "${build}"; then
725 TARGET_GETGROUPS_T=$ac_cv_type_getgroups
728 # This condition may need some tweaking. It should include all
729 # targets where the array type of the second argument of getgroups
730 # is int and the type of gid_t is not equivalent to int.
731 *-*-sunos* | *-*-ultrix*)
732 TARGET_GETGROUPS_T=int
735 TARGET_GETGROUPS_T=gid_t
739 AC_SUBST(TARGET_GETGROUPS_T)
741 gcc_AC_FUNC_PRINTF_PTR
746 *** UWIN may not be used as a host platform because
747 *** linking with posix.dll is not allowed by the GNU GPL])
750 # Under VMS, vfork works very different than on Unix. The standard test
751 # won't work, and it isn't easily adaptable. It makes more sense to
753 ac_cv_func_vfork_works=yes
757 AC_FUNC_MMAP_ANYWHERE
762 # We will need to find libiberty.h and ansidecl.h
763 saved_CFLAGS="$CFLAGS"
764 CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include"
765 gcc_AC_CHECK_DECLS(getenv atol sbrk abort atof getcwd getwd \
766 strsignal putc_unlocked fputs_unlocked fwrite_unlocked \
767 fprintf_unlocked strstr errno vasprintf \
768 malloc realloc calloc free basename getopt clock, , ,[
769 #include "ansidecl.h"
770 #include "system.h"])
772 gcc_AC_CHECK_DECLS(getrlimit setrlimit getrusage, , ,[
773 #include "ansidecl.h"
775 #ifdef HAVE_SYS_RESOURCE_H
776 #include <sys/resource.h>
780 gcc_AC_CHECK_DECLS(ldgetname, , ,[
781 #include "ansidecl.h"
788 gcc_AC_CHECK_DECLS(times, , ,[
789 #include "ansidecl.h"
791 #ifdef HAVE_SYS_TIMES_H
792 #include <sys/times.h>
796 # More time-related stuff.
797 AC_CACHE_CHECK(for struct tms, ac_cv_struct_tms, [
799 #include "ansidecl.h"
801 #ifdef HAVE_SYS_TIMES_H
802 #include <sys/times.h>
804 ], [struct tms tms;], ac_cv_struct_tms=yes, ac_cv_struct_tms=no)])
805 if test $ac_cv_struct_tms = yes; then
806 AC_DEFINE(HAVE_STRUCT_TMS, 1,
807 [Define if <sys/times.h> defines struct tms.])
810 # use gcc_cv_* here because this doesn't match the behavior of AC_CHECK_TYPE.
811 # revisit after autoconf 2.50.
812 AC_CACHE_CHECK(for clock_t, gcc_cv_type_clock_t, [
814 #include "ansidecl.h"
816 ], [clock_t x;], gcc_cv_type_clock_t=yes, gcc_cv_type_clock_t=no)])
817 if test $gcc_cv_type_clock_t = yes; then
818 AC_DEFINE(HAVE_CLOCK_T, 1,
819 [Define if <time.h> defines clock_t.])
822 AC_CACHE_CHECK(for uchar, gcc_cv_type_uchar,
824 #include "ansidecl.h"
827 [if ((uchar *)0) return 0;
828 if (sizeof(uchar)) return 0;],
829 ac_cv_type_uchar=yes, ac_cv_type_uchar=no)])
830 if test $ac_cv_type_uchar = yes; then
831 AC_DEFINE(HAVE_UCHAR, 1,
832 [Define if <sys/types.h> defines \`uchar'.])
835 # Restore CFLAGS from before the gcc_AC_NEED_DECLARATIONS tests.
836 CFLAGS="$saved_CFLAGS"
838 gcc_AC_INITFINI_ARRAY
840 # mkdir takes a single argument on some systems.
841 gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG
849 # With Setjmp/Longjmp based exception handling.
850 AC_ARG_ENABLE(sjlj-exceptions,
851 [ --enable-sjlj-exceptions
852 arrange to use setjmp/longjmp exception handling],
853 [sjlj=`if test $enableval = yes; then echo 1; else echo 0; fi`
854 AC_DEFINE_UNQUOTED(CONFIG_SJLJ_EXCEPTIONS, $sjlj,
855 [Define 0/1 to force the choice for exception handling model.])])
857 AC_CHECK_LIB(unwind, main, use_libunwind_default=yes, use_libunwind_default=no)
858 # Use libunwind based exception handling.
859 AC_ARG_ENABLE(libunwind-exceptions,
860 [ --enable-libunwind-exceptions force use libunwind for exceptions],
861 use_libunwind_exceptions=$enableval,
862 use_libunwind_exceptions=$use_libunwind_default)
863 if test x"$use_libunwind_exceptions" = xyes; then
864 AC_DEFINE(USE_LIBUNWIND_EXCEPTIONS, 1,
865 [Define if gcc should use -lunwind.])
871 build_install_headers_dir=install-headers-tar
876 host_truncate_target=
879 # Decode the host machine, then the target machine.
880 # For the host machine, we save the xm_file variable as host_xm_file;
881 # then we decode the target machine and forget everything else
882 # that came from the host machine.
883 for machine in $build $host $target; do
884 . ${srcdir}/config.gcc
887 extra_objs="${host_extra_objs} ${extra_objs}"
889 # Default the target-machine variables that were not explicitly set.
890 if test x"$tm_file" = x
891 then tm_file=$cpu_type/$cpu_type.h; fi
893 if test x"$extra_headers" = x
894 then extra_headers=; fi
896 if test x$md_file = x
897 then md_file=$cpu_type/$cpu_type.md; fi
899 if test x$out_file = x
900 then out_file=$cpu_type/$cpu_type.c; fi
902 if test x"$tmake_file" = x
903 then tmake_file=$cpu_type/t-$cpu_type
906 if test x"$dwarf2" = xyes
907 then tm_file="$tm_file tm-dwarf2.h"
910 # Say what files are being used for the output code and MD file.
911 echo "Using \`$srcdir/config/$out_file' for machine-specific logic."
912 echo "Using \`$srcdir/config/$md_file' as machine description file."
914 # If any of the xm_file variables contain nonexistent files, warn
915 # about them and drop them.
918 for x in $build_xm_file; do
919 if test -f $srcdir/config/$x
921 else AC_MSG_WARN($srcdir/config/$x does not exist.)
927 for x in $host_xm_file; do
928 if test -f $srcdir/config/$x
930 else AC_MSG_WARN($srcdir/config/$x does not exist.)
936 for x in $xm_file; do
937 if test -f $srcdir/config/$x
939 else AC_MSG_WARN($srcdir/config/$x does not exist.)
945 for f in $tm_file; do
948 if test $count = ax; then
949 echo "Using \`$srcdir/config/$tm_file' as target machine macro file."
951 echo "Using the following target machine macro files:"
952 for f in $tm_file; do
953 echo " $srcdir/config/$f"
957 if test x$need_64bit_hwint = xyes; then
958 AC_DEFINE(NEED_64BIT_HOST_WIDE_INT, 1,
959 [Define to 1 if HOST_WIDE_INT must be 64 bits wide (see hwint.h).])
963 for f in $host_xm_file; do
966 if test $count = a; then
968 elif test $count = ax; then
969 echo "Using \`$srcdir/config/$host_xm_file' as host machine macro file."
971 echo "Using the following host machine macro files:"
972 for f in $host_xm_file; do
973 echo " $srcdir/config/$f"
976 echo "Using ${out_host_hook_obj} for host machine hooks."
978 if test "$host_xm_file" != "$build_xm_file"; then
980 for f in $build_xm_file; do
983 if test $count = a; then
985 elif test $count = ax; then
986 echo "Using \`$srcdir/config/$build_xm_file' as build machine macro file."
988 echo "Using the following build machine macro files:"
989 for f in $build_xm_file; do
990 echo " $srcdir/config/$f"
995 if test x$thread_file = x; then
996 if test x$target_thread_file != x; then
997 thread_file=$target_thread_file
1003 # Look for a file containing extra machine modes.
1004 if test -n "$extra_modes" && test -f $srcdir/config/$extra_modes; then
1005 extra_modes_file='$(srcdir)'/config/${extra_modes}
1006 AC_SUBST(extra_modes_file)
1007 AC_DEFINE_UNQUOTED(EXTRA_MODES_FILE, "$extra_modes",
1008 [Define to the name of a file containing a list of extra machine modes
1009 for this architecture.])
1010 AC_DEFINE(EXTRA_CC_MODES, 1,
1011 [Define if the target architecture needs extra machine modes to represent
1012 the results of comparisons.])
1015 # auto-host.h is the file containing items generated by autoconf and is
1016 # the first file included by config.h.
1017 # If host=build, it is correct to have bconfig include auto-host.h
1018 # as well. If host!=build, we are in error and need to do more
1019 # work to find out the build config parameters.
1020 if test x$host = x$build
1022 build_auto=auto-host.h
1025 # We create a subdir, then run autoconf in the subdir.
1026 # To prevent recursion we set host and build for the new
1027 # invocation of configure to the build for this invocation
1034 /* | [A-Za-z]:[\\/]* ) realsrcdir=${srcdir};;
1035 *) realsrcdir=../${srcdir};;
1037 saved_CFLAGS="${CFLAGS}"
1038 CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
1039 ${realsrcdir}/configure \
1040 --target=$target_alias --host=$build_alias --build=$build_alias
1041 CFLAGS="${saved_CFLAGS}"
1043 # We just finished tests for the build machine, so rename
1044 # the file auto-build.h in the gcc directory.
1045 mv auto-host.h ../auto-build.h
1048 build_auto=auto-build.h
1049 FORBUILD=../build-$build_alias
1053 tm_file="${tm_file} defaults.h"
1054 tm_p_file="${tm_p_file} tm-preds.h"
1055 host_xm_file="auto-host.h ansidecl.h ${host_xm_file}"
1056 build_xm_file="${build_auto} ansidecl.h ${build_xm_file}"
1057 # We don't want ansidecl.h in target files, write code there in ISO/GNU C.
1058 # put this back in temporarily.
1059 xm_file="ansidecl.h ${xm_file}"
1061 # Truncate the target if necessary
1062 if test x$host_truncate_target != x; then
1063 target=`echo $target | sed -e 's/\(..............\).*/\1/'`
1066 # Get the version trigger filename from the toplevel
1067 if test "${with_gcc_version_trigger+set}" = set; then
1068 gcc_version_trigger=$with_gcc_version_trigger
1070 gcc_version_trigger=${srcdir}/version.c
1073 gcc_version_full=`grep version_string ${gcc_version_trigger} | sed -e 's/.*"\([^"]*\)".*/\1/'`
1074 gcc_version=`echo ${gcc_version_full} | sed -e 's/\([^ ]*\) .*/\1/'`
1076 # Compile in configure arguments.
1077 if test -f configargs.h ; then
1078 # Being re-configured.
1079 gcc_config_arguments=`grep configuration_arguments configargs.h | sed -e 's/.*"\([^"]*\)".*/\1/'`
1080 gcc_config_arguments="$gcc_config_arguments : (reconfigured) $TOPLEVEL_CONFIGURE_ARGUMENTS"
1082 gcc_config_arguments="$TOPLEVEL_CONFIGURE_ARGUMENTS"
1084 cat > configargs.h <<EOF
1085 /* Generated automatically. */
1086 static const char configuration_arguments[] = "$gcc_config_arguments";
1087 static const char thread_model[] = "$thread_file";
1091 # Internationalization
1093 VERSION="$gcc_version"
1097 # Enable NLS support by default
1099 [ --enable-nls use Native Language Support (default)],
1102 # if cross compiling, disable NLS support.
1103 # It's not worth the trouble, at least for now.
1105 if test "${build}" != "${host}" && test "x$enable_nls" = "xyes"; then
1106 AC_MSG_WARN(Disabling NLS support for canadian cross compiler.)
1112 # Windows32 Registry support for specifying GCC installation paths.
1113 AC_ARG_ENABLE(win32-registry,
1114 [ --disable-win32-registry
1115 disable lookup of installation paths in the
1116 Registry on Windows hosts
1117 --enable-win32-registry enable registry lookup (default)
1118 --enable-win32-registry=KEY
1119 use KEY instead of GCC version as the last portion
1120 of the registry key],,)
1122 win32 | pe | cygwin* | mingw32* | uwin*)
1123 AC_MSG_CHECKING(whether windows registry support is requested)
1124 if test "x$enable_win32_registry" != xno; then
1125 AC_DEFINE(ENABLE_WIN32_REGISTRY, 1,
1126 [Define to 1 if installation paths should be looked up in Windows32
1127 Registry. Ignored on non windows32 hosts.])
1129 AC_SEARCH_LIBS(RegOpenKeyExA, advapi32)
1134 # Check if user specified a different registry key.
1135 case "x${enable_win32_registry}" in
1138 gcc_cv_win32_registry_key="$VERSION"
1141 # no registry lookup.
1142 gcc_cv_win32_registry_key=''
1145 # user-specified key.
1146 gcc_cv_win32_registry_key="$enable_win32_registry"
1150 if test "x$enable_win32_registry" != xno; then
1151 AC_MSG_CHECKING(registry key on windows hosts)
1152 AC_DEFINE_UNQUOTED(WIN32_REGISTRY_KEY, "$gcc_cv_win32_registry_key",
1153 [Define to be the last portion of registry key on windows hosts.])
1154 AC_MSG_RESULT($gcc_cv_win32_registry_key)
1159 # Get an absolute path to the GCC top-level source directory
1160 holddir=`${PWDCMD-pwd}`
1162 topdir=`${PWDCMD-pwd}`
1165 # Conditionalize the makefile for this host machine.
1166 # Make-host contains the concatenation of all host makefile fragments
1167 # [there can be more than one]. This file is built by configure.frag.
1168 host_overrides=Make-host
1169 dep_host_xmake_file=
1170 for f in .. ${host_xmake_file}
1172 if test -f ${srcdir}/config/$f
1174 dep_host_xmake_file="${dep_host_xmake_file} ${srcdir}/config/$f"
1178 # Conditionalize the makefile for this target machine.
1179 # Make-target contains the concatenation of all host makefile fragments
1180 # [there can be more than one]. This file is built by configure.frag.
1181 target_overrides=Make-target
1183 for f in .. ${tmake_file}
1185 if test -f ${srcdir}/config/$f
1187 dep_tmake_file="${dep_tmake_file} ${srcdir}/config/$f"
1191 # If the host doesn't support symlinks, modify CC in
1192 # FLAGS_TO_PASS so CC="stage1/xgcc -Bstage1/" works.
1193 # Otherwise, we can use "CC=$(CC)".
1195 if $symbolic_link $srcdir/gcc.c symtest.tem 2>/dev/null
1197 cc_set_by_configure="\$(CC)"
1198 quoted_cc_set_by_configure="\$(CC)"
1199 stage_prefix_set_by_configure="\$(STAGE_PREFIX)"
1200 quoted_stage_prefix_set_by_configure="\$(STAGE_PREFIX)"
1203 if cp -p $srcdir/gcc.c symtest.tem 2>/dev/null
1205 symbolic_link="cp -p"
1209 cc_set_by_configure="\`case '\$(CC)' in stage*) echo '\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\$(CC)';; esac\`"
1210 quoted_cc_set_by_configure="\\\`case '\\\$(CC)' in stage*) echo '\\\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\\\$(CC)';; esac\\\`"
1211 stage_prefix_set_by_configure="\`case '\$(STAGE_PREFIX)' in stage*) echo '\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\$(STAGE_PREFIX)';; esac\`"
1212 quoted_stage_prefix_set_by_configure="\\\`case '\\\$(STAGE_PREFIX)' in stage*) echo '\\\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\\\$(STAGE_PREFIX)';; esac\\\`"
1216 out_object_file=`basename $out_file .c`.o
1219 for f in $tm_file; do
1222 tm_file_list="${tm_file_list} \$(srcdir)/../include/ansidecl.h" ;;
1224 tm_file_list="${tm_file_list} \$(srcdir)/$f" ;;
1225 *) tm_file_list="${tm_file_list} \$(srcdir)/config/$f" ;;
1230 for f in $tm_p_file; do
1233 tm_p_file_list="${tm_p_file_list} $f" ;;
1234 *) tm_p_file_list="${tm_p_file_list} \$(srcdir)/config/$f" ;;
1239 for f in $host_xm_file; do
1242 host_xm_file_list="${host_xm_file_list} \$(srcdir)/../include/ansidecl.h" ;;
1244 host_xm_file_list="${host_xm_file_list} $f" ;;
1246 host_xm_file_list="${host_xm_file_list} \$(srcdir)/$f" ;;
1247 *) host_xm_file_list="${host_xm_file_list} \$(srcdir)/config/$f" ;;
1252 for f in $build_xm_file; do
1255 build_xm_file_list="${build_xm_file_list} \$(srcdir)/../include/ansidecl.h" ;;
1256 auto-build.h | auto-host.h )
1257 build_xm_file_list="${build_xm_file_list} $f" ;;
1259 host_xm_file_list="${host_xm_file_list} \$(srcdir)/$f" ;;
1260 *) build_xm_file_list="${build_xm_file_list} \$(srcdir)/config/$f" ;;
1264 # Define macro CROSS_COMPILE in compilation if this is a cross-compiler.
1265 # Also use all.cross instead of all.internal and adjust SYSTEM_HEADER_DIR.
1266 CROSS= AC_SUBST(CROSS)
1267 ALL=all.internal AC_SUBST(ALL)
1268 SYSTEM_HEADER_DIR='$(NATIVE_SYSTEM_HEADER_DIR)' AC_SUBST(SYSTEM_HEADER_DIR)
1269 if test x$host != x$target
1271 CROSS="-DCROSS_COMPILE"
1273 SYSTEM_HEADER_DIR='$(CROSS_SYSTEM_HEADER_DIR)'
1274 case "$host","$target" in
1275 i?86-*-*,x86_64-*-* \
1276 | powerpc*-*-*,powerpc64*-*-*)
1277 CROSS="$CROSS -DNATIVE_CROSS" ;;
1281 # If this is a cross-compiler that does not
1282 # have its own set of headers then define
1285 # If this is using newlib, then define inhibit_libc in LIBGCC2_CFLAGS.
1286 # This prevents libgcc2 from containing any code which requires libc
1289 if { test x$host != x$target && test "x$with_headers" = x &&
1290 test "x$with_sysroot" = x ; } || test x$with_newlib = xyes ; then
1291 inhibit_libc=-Dinhibit_libc
1293 AC_SUBST(inhibit_libc)
1295 # When building gcc with a cross-compiler, we need to adjust things so
1296 # that the generator programs are still built with the native compiler.
1297 # Also, we cannot run fixincludes or fix-header.
1299 # These are the normal (build=host) settings:
1300 BUILD_PREFIX= AC_SUBST(BUILD_PREFIX)
1301 BUILD_PREFIX_1=ignore- AC_SUBST(BUILD_PREFIX_1)
1302 BUILD_CC='$(CC)' AC_SUBST(BUILD_CC)
1303 BUILD_CFLAGS='$(ALL_CFLAGS)' AC_SUBST(BUILD_CFLAGS)
1305 STMP_FIXINC=stmp-fixinc AC_SUBST(STMP_FIXINC)
1306 STMP_FIXPROTO=stmp-fixproto AC_SUBST(STMP_FIXPROTO)
1308 # And these apply if build != host.
1309 if test x$build != x$host
1312 BUILD_PREFIX_1=build-
1313 BUILD_CC='$(CC_FOR_BUILD)'
1314 BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD) $(XCFLAGS)'
1320 # Expand extra_headers to include complete path.
1321 # This substitutes for lots of t-* files.
1323 if test "x$extra_headers" = x
1326 # Prepend ${srcdir}/config/${cpu_type}/ to every entry in extra_headers.
1327 for file in $extra_headers;
1329 extra_headers_list="${extra_headers_list} \$(srcdir)/config/${cpu_type}/${file}"
1333 if test x$use_collect2 = xno; then
1337 # Add a definition of USE_COLLECT2 if system wants one.
1338 if test x$use_collect2 != x
1340 host_xm_defines="${host_xm_defines} USE_COLLECT2"
1341 xm_defines="${xm_defines} USE_COLLECT2"
1344 # If we have gas in the build tree, make a link to it.
1345 if test -f ../gas/Makefile; then
1346 rm -f as; $symbolic_link ../gas/as-new$host_exeext as$host_exeext 2>/dev/null
1349 # If we have nm and objdump in the build tree, make a link to them.
1350 if test -f ../binutils/Makefile; then
1351 rm -f nm; $symbolic_link ../binutils/nm-new$host_exeext nm$host_exeext 2>/dev/null
1352 rm -f objdump; $symbolic_link ../binutils/objdump$host_exeext objdump$host_exeext 2>/dev/null
1355 # If we have ld in the build tree, make a link to it.
1356 if test -f ../ld/Makefile; then
1357 rm -f collect-ld; $symbolic_link ../ld/ld-new$host_exeext collect-ld$host_exeext 2>/dev/null
1360 # Figure out what assembler we will be using.
1361 AC_MSG_CHECKING(what assembler to use)
1363 gcc_cv_gas_major_version=
1364 gcc_cv_gas_minor_version=
1365 gcc_cv_as_gas_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/gas
1366 gcc_cv_as_bfd_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/bfd
1367 if test -x "$DEFAULT_ASSEMBLER"; then
1368 gcc_cv_as="$DEFAULT_ASSEMBLER"
1369 elif test -x "$AS"; then
1371 elif test -x as$host_exeext; then
1372 # Build using assembler in the current directory.
1373 gcc_cv_as=./as$host_exeext
1374 elif test -f $gcc_cv_as_gas_srcdir/configure.in -a -f ../gas/Makefile; then
1375 # Single tree build which includes gas.
1376 for f in $gcc_cv_as_bfd_srcdir/configure $gcc_cv_as_gas_srcdir/configure $gcc_cv_as_gas_srcdir/configure.in $gcc_cv_as_gas_srcdir/Makefile.in
1379 gcc_cv_gas_version=`grep '^VERSION=[0-9]*\.[0-9]*' $f`
1381 if test x$gcc_cv_gas_version != x; then
1386 gcc_cv_gas_major_version=`expr "$gcc_cv_gas_version" : "VERSION=\([0-9]*\)"`
1387 gcc_cv_gas_minor_version=`expr "$gcc_cv_gas_version" : "VERSION=[0-9]*\.\([0-9]*\)"`
1388 gcc_cv_gas_patch_version=`expr "$gcc_cv_gas_version" : "VERSION=[0-9]*\.[0-9]*\.\([0-9]*\)"`
1392 if test "x$gcc_cv_as" = x; then
1393 # Search the same directories that the installed compiler will
1394 # search. Else we may find the wrong assembler and lose. If we
1395 # do not find a suitable assembler binary, then try the user's
1398 # Also note we have to check MD_EXEC_PREFIX before checking the
1399 # user's path. Unfortunately, there is no good way to get at the
1400 # value of MD_EXEC_PREFIX here. So we do a brute force search
1401 # through all the known MD_EXEC_PREFIX values. Ugh. This needs
1402 # to be fixed as part of the make/configure rewrite too.
1404 if test "x$exec_prefix" = xNONE; then
1405 if test "x$prefix" = xNONE; then
1406 test_prefix=/usr/local
1411 test_prefix=$exec_prefix
1414 # If the loop below does not find an assembler, then use whatever
1415 # one we can find in the users's path.
1417 if test "x$program_prefix" != xNONE; then
1418 gcc_cv_as=${program_prefix}as$host_exeext
1420 gcc_cv_as=`echo as | sed ${program_transform_name}`$host_exeext
1423 test_dirs="$test_prefix/lib/gcc-lib/$target_alias/$gcc_version \
1424 $test_prefix/lib/gcc-lib/$target_alias \
1425 /usr/lib/gcc/$target_alias/$gcc_version \
1426 /usr/lib/gcc/$target_alias \
1427 $test_prefix/$target_alias/bin/$target_alias/$gcc_version \
1428 $test_prefix/$target_alias/bin"
1430 if test x$host = x$target; then
1431 test_dirs="$test_dirs \
1436 /bsd43/usr/lib/cmplrs/cc \
1437 /usr/cross64/usr/bin \
1438 /usr/lib/cmplrs/cc \
1439 /sysv/usr/lib/cmplrs/cc \
1440 /svr4/usr/lib/cmplrs/cc \
1444 for dir in $test_dirs; do
1445 if test -x $dir/as$host_exeext; then
1446 gcc_cv_as=$dir/as$host_exeext
1451 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1452 AC_MSG_RESULT("newly built gas")
1454 AC_MSG_RESULT($gcc_cv_as)
1457 # Figure out what linker we will be using.
1458 AC_MSG_CHECKING(what linker to use)
1460 gcc_cv_gld_major_version=
1461 gcc_cv_gld_minor_version=
1462 gcc_cv_ld_gld_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/ld
1463 gcc_cv_ld_bfd_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/bfd
1464 if test -x "$DEFAULT_LINKER"; then
1465 gcc_cv_ld="$DEFAULT_LINKER"
1466 elif test -x "$LD"; then
1468 elif test -x ld$host_exeext; then
1469 # Build using linker in the current directory.
1470 gcc_cv_ld=./ld$host_exeext
1471 elif test -f $gcc_cv_ld_gld_srcdir/configure.in -a -f ../ld/Makefile; then
1472 # Single tree build which includes ld.
1473 for f in $gcc_cv_ld_bfd_srcdir/configure $gcc_cv_ld_gld_srcdir/configure $gcc_cv_ld_gld_srcdir/configure.in $gcc_cv_ld_gld_srcdir/Makefile.in
1476 gcc_cv_gld_version=`grep '^VERSION=[0-9]*\.[0-9]*' $f`
1478 if test x$gcc_cv_gld_version != x; then
1483 gcc_cv_gld_major_version=`expr "$gcc_cv_gld_version" : "VERSION=\([0-9]*\)"`
1484 gcc_cv_gld_minor_version=`expr "$gcc_cv_gld_version" : "VERSION=[0-9]*\.\([0-9]*\)"`
1488 if test "x$gcc_cv_ld" = x; then
1489 # Search the same directories that the installed compiler will
1490 # search. Else we may find the wrong linker and lose. If we
1491 # do not find a suitable linker binary, then try the user's
1494 # Also note we have to check MD_EXEC_PREFIX before checking the
1495 # user's path. Unfortunately, there is no good way to get at the
1496 # value of MD_EXEC_PREFIX here. So we do a brute force search
1497 # through all the known MD_EXEC_PREFIX values. Ugh. This needs
1498 # to be fixed as part of the make/configure rewrite too.
1500 if test "x$exec_prefix" = xNONE; then
1501 if test "x$prefix" = xNONE; then
1502 test_prefix=/usr/local
1507 test_prefix=$exec_prefix
1510 # If the loop below does not find an linker, then use whatever
1511 # one we can find in the users's path.
1513 if test "x$program_prefix" != xNONE; then
1514 gcc_cv_ld=${program_prefix}ld$host_exeext
1516 gcc_cv_ld=`echo ld | sed ${program_transform_name}`$host_exeext
1519 test_dirs="$test_prefix/lib/gcc-lib/$target_alias/$gcc_version \
1520 $test_prefix/lib/gcc-lib/$target_alias \
1521 /usr/lib/gcc/$target_alias/$gcc_version \
1522 /usr/lib/gcc/$target_alias \
1523 $test_prefix/$target_alias/bin/$target_alias/$gcc_version \
1524 $test_prefix/$target_alias/bin"
1526 if test x$host = x$target; then
1527 test_dirs="$test_dirs \
1532 /bsd43/usr/lib/cmplrs/cc \
1533 /usr/cross64/usr/bin \
1534 /usr/lib/cmplrs/cc \
1535 /sysv/usr/lib/cmplrs/cc \
1536 /svr4/usr/lib/cmplrs/cc \
1540 for dir in $test_dirs; do
1541 if test -x $dir/ld$host_exeext; then
1542 gcc_cv_ld=$dir/ld$host_exeext
1547 if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then
1548 AC_MSG_RESULT("newly built ld")
1550 AC_MSG_RESULT($gcc_cv_ld)
1553 # Figure out what nm we will be using.
1554 AC_MSG_CHECKING(what nm to use)
1555 if test -x nm$host_exeext; then
1556 gcc_cv_nm=./nm$host_exeext
1557 elif test "x$program_prefix" != xNONE; then
1558 gcc_cv_nm=${program_prefix}nm$host_exeext
1560 gcc_cv_nm=`echo nm | sed ${program_transform_name}`$host_exeext
1562 AC_MSG_RESULT($gcc_cv_nm)
1564 # Figure out what objdump we will be using.
1565 AC_MSG_CHECKING(what objdump to use)
1566 if test -x objdump$host_exeext; then
1567 gcc_cv_objdump=./objdump$host_exeext
1568 elif test "x$program_prefix" != xNONE; then
1569 gcc_cv_objdump=${program_prefix}objdump$host_exeext
1571 gcc_cv_objdump=`echo objdump | sed ${program_transform_name}`$host_exeext
1573 AC_MSG_RESULT($gcc_cv_objdump)
1575 # Figure out what assembler alignment features are present.
1576 AC_MSG_CHECKING(assembler alignment features)
1577 gcc_cv_as_alignment_features=none
1578 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1579 # Gas version 2.6 and later support for .balign and .p2align.
1580 # bytes to skip when using .p2align.
1581 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 6 -o "$gcc_cv_gas_major_version" -gt 2; then
1582 gcc_cv_as_alignment_features=".balign and .p2align"
1583 AC_DEFINE(HAVE_GAS_BALIGN_AND_P2ALIGN)
1585 # Gas version 2.8 and later support specifying the maximum
1586 # bytes to skip when using .p2align.
1587 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 8 -o "$gcc_cv_gas_major_version" -gt 2; then
1588 gcc_cv_as_alignment_features=".p2align including maximum skip"
1589 AC_DEFINE(HAVE_GAS_MAX_SKIP_P2ALIGN)
1591 elif test x$gcc_cv_as != x; then
1592 # Check if we have .balign and .p2align
1593 echo ".balign 4" > conftest.s
1594 echo ".p2align 2" >> conftest.s
1595 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1596 gcc_cv_as_alignment_features=".balign and .p2align"
1597 AC_DEFINE(HAVE_GAS_BALIGN_AND_P2ALIGN)
1599 rm -f conftest.s conftest.o
1600 # Check if specifying the maximum bytes to skip when
1601 # using .p2align is supported.
1602 echo ".p2align 4,,7" > conftest.s
1603 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1604 gcc_cv_as_alignment_features=".p2align including maximum skip"
1605 AC_DEFINE(HAVE_GAS_MAX_SKIP_P2ALIGN)
1607 rm -f conftest.s conftest.o
1609 AC_MSG_RESULT($gcc_cv_as_alignment_features)
1611 AC_MSG_CHECKING(assembler subsection support)
1612 gcc_cv_as_subsections=no
1613 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1614 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
1615 gcc_cv_as_subsections="working .subsection -1"
1617 elif test x$gcc_cv_as != x; then
1618 # Check if we have .subsection
1619 echo ".subsection 1" > conftest.s
1620 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1621 gcc_cv_as_subsections=".subsection"
1622 if test x$gcc_cv_nm != x; then
1623 cat > conftest.s <<EOF
1624 conftest_label1: .word 0
1626 conftest_label2: .word 0
1629 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1630 $gcc_cv_nm conftest.o | grep conftest_label1 > conftest.nm1
1631 $gcc_cv_nm conftest.o | grep conftest_label2 | sed -e 's/label2/label1/' > conftest.nm2
1632 if cmp conftest.nm1 conftest.nm2 > /dev/null 2>&1; then
1635 gcc_cv_as_subsections="working .subsection -1"
1640 rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1642 if test x"$gcc_cv_as_subsections" = x"working .subsection -1"; then
1643 AC_DEFINE(HAVE_GAS_SUBSECTION_ORDERING, 1,
1644 [Define if your assembler supports .subsection and .subsection -1 starts
1645 emitting at the beginning of your section.])
1647 AC_MSG_RESULT($gcc_cv_as_subsections)
1649 AC_MSG_CHECKING(assembler weak support)
1651 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1652 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 2 -o "$gcc_cv_gas_major_version" -gt 2; then
1653 gcc_cv_as_weak="yes"
1655 elif test x$gcc_cv_as != x; then
1656 # Check if we have .weak
1657 echo " .weak foobar" > conftest.s
1658 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1659 gcc_cv_as_weak="yes"
1661 rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1663 if test x"$gcc_cv_as_weak" = xyes; then
1664 AC_DEFINE(HAVE_GAS_WEAK, 1, [Define if your assembler supports .weak.])
1666 AC_MSG_RESULT($gcc_cv_as_weak)
1668 AC_MSG_CHECKING(assembler hidden support)
1670 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1671 if test "$gcc_cv_gas_major_version" -eq 2 \
1672 -a "$gcc_cv_gas_minor_version" -eq 12 \
1673 -a "$gcc_cv_gas_patch_version" -ge 1 \
1674 -o "$gcc_cv_gas_major_version" -eq 2 \
1675 -a "$gcc_cv_gas_minor_version" -gt 12 \
1676 -o "$gcc_cv_gas_major_version" -gt 2 \
1677 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
1678 gcc_cv_as_hidden="yes"
1680 elif test x$gcc_cv_as != x; then
1681 # Check if we have .hidden
1682 echo " .hidden foobar" > conftest.s
1683 echo "foobar:" >> conftest.s
1684 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1685 gcc_cv_as_hidden="yes"
1687 rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1689 # GNU LD versions before 2.12.1 have buggy support for STV_HIDDEN.
1690 # This is irritatingly difficult to feature test for. Look for
1691 # the date string after the version number.
1692 ld_ver=`$gcc_cv_ld --version 2>/dev/null | head -1`
1693 if echo "$ld_ver" | grep GNU > /dev/null; then
1695 ld_vers=`echo $ld_ver | sed -n 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\(\|\.[0-9][0-9]*\)\)\([ ].*\|\)$,\1,p'`
1696 ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'`
1697 if test 0"$ld_date" -lt 20020404; then
1698 if test -n "$ld_date"; then
1699 # If there was date string, but was earlier than 2002-04-04, fail
1700 gcc_cv_as_hidden="no"
1701 elif test -z "$ld_vers"; then
1702 # If there was no date string nor ld version number, something is wrong
1703 gcc_cv_as_hidden="no"
1705 ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'`
1706 ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'`
1707 ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
1708 test -z "$ld_vers_patch" && ld_vers_patch=0
1709 if test "$ld_vers_major" -lt 2; then
1710 gcc_cv_as_hidden="no"
1711 elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 12; then
1712 gcc_cv_as_hidden="no"
1713 elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -eq 12 \
1714 -a "$ld_vers_patch" -eq 0; then
1715 gcc_cv_as_hidden="no"
1722 if test x"$gcc_cv_as_hidden" = xyes; then
1723 AC_DEFINE(HAVE_GAS_HIDDEN, 1,
1724 [Define if your assembler supports .hidden.])
1726 AC_MSG_RESULT($gcc_cv_as_hidden)
1727 libgcc_visibility=$gcc_cv_as_hidden
1730 if test x"$gnu_ld_flag" = x"no"; then
1731 # Even if using gas with .hidden support, the resulting object files
1732 # cannot be linked with the IRIX 6 O32 linker. With the N32 and
1733 # N64 linkers, the problem is that the linker refuses to accept
1734 # -call_shared (passed by default to the linker) and -r (used to
1735 # link the object file generated without .hidden directives with
1736 # one that hides symbols), so we also lose.
1737 libgcc_visibility=no
1741 AC_SUBST(libgcc_visibility)
1743 AC_MSG_CHECKING(assembler leb128 support)
1745 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1746 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 11 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
1747 gcc_cv_as_leb128="yes"
1749 elif test x$gcc_cv_as != x; then
1750 # Check if we have .[us]leb128, and support symbol arithmetic with it.
1751 cat > conftest.s <<EOF
1759 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1760 gcc_cv_as_leb128="yes"
1762 # GAS versions before 2.11 do not support uleb128,
1763 # despite appearing to.
1764 # ??? There exists an elf-specific test that will crash
1765 # the assembler. Perhaps it's better to figure out whether
1766 # arbitrary sections are supported and try the test.
1767 as_ver=`$gcc_cv_as --version 2>/dev/null | head -1`
1768 if echo "$as_ver" | grep GNU > /dev/null; then
1770 as_ver=`echo $as_ver | sed -e 's/GNU assembler \([0-9.][0-9.]*\).*/\1/'`
1771 as_major=`echo $as_ver | sed 's/\..*//'`
1772 as_minor=`echo $as_ver | sed 's/[^.]*\.\([0-9]*\).*/\1/'`
1774 if test $as_major -eq 2 -a $as_minor -lt 11; then
1775 gcc_cv_as_leb128="no"
1779 rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1781 if test x"$gcc_cv_as_leb128" = xyes; then
1782 AC_DEFINE(HAVE_AS_LEB128, 1,
1783 [Define if your assembler supports .uleb128.])
1785 AC_MSG_RESULT($gcc_cv_as_leb128)
1787 AC_MSG_CHECKING(assembler eh_frame optimization)
1788 gcc_cv_as_eh_frame=no
1789 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1790 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 12 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
1791 gcc_cv_as_eh_frame="yes"
1793 elif test x$gcc_cv_as != x; then
1794 # Check if this is GAS.
1795 as_ver=`$gcc_cv_as --version < /dev/null 2> /dev/null | head -1`
1796 rm -f a.out 2> /dev/null
1797 if echo "$as_ver" | grep GNU > /dev/null; then
1798 # Versions up to and including 2.11.0 may mis-optimize
1799 # .eh_frame data. Try something.
1800 cat > conftest.s <<EOF
1807 .section .eh_frame,"aw",@progbits
1809 .4byte .LECIE1-.LSCIE1
1823 .4byte .LEFDE1-.LASFDE1
1825 .4byte .LASFDE1-__FRAME_BEGIN__
1834 cat > conftest.lit <<EOF
1835 0000 10000000 00000000 017a0001 781a0004 .........z..x...
1836 0010 01000000 12000000 18000000 00000000 ................
1837 0020 08000000 04080000 0044 .........D
1839 cat > conftest.big <<EOF
1840 0000 00000010 00000000 017a0001 781a0004 .........z..x...
1841 0010 00000001 00000012 00000018 00000000 ................
1842 0020 00000008 04000000 0844 .........D
1844 # If the assembler didn't choke, and we can objdump,
1845 # and we got the correct data, then succeed.
1846 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
1847 && $gcc_cv_objdump -s -j .eh_frame conftest.o 2>/dev/null \
1848 | tail -3 > conftest.got \
1849 && { cmp conftest.lit conftest.got > /dev/null 2>&1 \
1850 || cmp conftest.big conftest.got > /dev/null 2>&1; }
1852 gcc_cv_as_eh_frame="yes"
1854 gcc_cv_as_eh_frame="bad"
1855 if $gcc_cv_as -o conftest.o --traditional-format /dev/null; then
1856 AC_DEFINE(USE_AS_TRADITIONAL_FORMAT, 1,
1857 [Define if your assembler mis-optimizes .eh_frame data.])
1863 AC_MSG_RESULT($gcc_cv_as_eh_frame)
1865 AC_MSG_CHECKING(assembler section merging support)
1866 gcc_cv_as_shf_merge=no
1867 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1868 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 12 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
1869 gcc_cv_as_shf_merge=yes
1871 elif test x$gcc_cv_as != x; then
1872 # Check if we support SHF_MERGE sections
1873 echo '.section .rodata.str, "aMS", @progbits, 1' > conftest.s
1874 if $gcc_cv_as --fatal-warnings -o conftest.o conftest.s > /dev/null 2>&1; then
1875 gcc_cv_as_shf_merge=yes
1877 rm -f conftest.s conftest.o
1879 if test x"$gcc_cv_as_shf_merge" = xyes; then
1880 AC_DEFINE(HAVE_GAS_SHF_MERGE, 1,
1881 [Define if your assembler supports marking sections with SHF_MERGE flag.])
1883 AC_MSG_RESULT($gcc_cv_as_shf_merge)
1885 AC_MSG_CHECKING(assembler thread-local storage support)
1894 .section ".tdata","awT",@progbits
1897 ldq $27,__tls_get_addr($29) !literal!1
1898 lda $16,foo($29) !tlsgd!1
1899 jsr $26,($27),__tls_get_addr !lituse_tlsgd!1
1900 ldq $27,__tls_get_addr($29) !literal!2
1901 lda $16,foo($29) !tlsldm!2
1902 jsr $26,($27),__tls_get_addr !lituse_tlsldm!2
1903 ldq $1,foo($29) !gotdtprel
1904 ldah $2,foo($29) !dtprelhi
1905 lda $3,foo($2) !dtprello
1906 lda $4,foo($29) !dtprel
1907 ldq $1,foo($29) !gottprel
1908 ldah $2,foo($29) !tprelhi
1909 lda $3,foo($2) !tprello
1910 lda $4,foo($29) !tprel'
1917 .section ".tdata","awT",@progbits
1921 leal foo@TLSGD(,%ebx,1), %eax
1922 leal foo@TLSLDM(%ebx), %eax
1923 leal foo@DTPOFF(%eax), %edx
1924 movl foo@GOTTPOFF(%ebx), %eax
1925 subl foo@GOTTPOFF(%ebx), %eax
1926 addl foo@GOTNTPOFF(%ebx), %eax
1927 movl foo@INDNTPOFF, %eax
1928 movl $foo@TPOFF, %eax
1929 subl $foo@TPOFF, %eax
1930 leal foo@NTPOFF(%ecx), %eax'
1936 .section ".tdata","awT",@progbits
1940 leaq foo@TLSGD(%rip), %rdi
1941 leaq foo@TLSLD(%rip), %rdi
1942 leaq foo@DTPOFF(%rax), %rdx
1943 movq foo@GOTTPOFF(%rip), %rax
1944 movq $foo@TPOFF, %rax'
1950 .section ".tdata","awT",@progbits
1953 addl r16 = @ltoff(@dtpmod(foo#)), gp
1954 addl r17 = @ltoff(@dtprel(foo#)), gp
1955 addl r18 = @ltoff(@tprel(foo#)), gp
1956 addl r19 = @dtprel(foo#), gp
1957 adds r21 = @dtprel(foo#), r13
1958 movl r23 = @dtprel(foo#)
1959 addl r20 = @tprel(foo#), gp
1960 adds r22 = @tprel(foo#), r13
1961 movl r24 = @tprel(foo#)'
1967 .section ".tdata","awT",@progbits
1976 l %r1,foo@GOTNTPOFF(%r12)
1977 l %r1,0(%r1):tls_load:foo
1978 bas %r14,0(%r1,%r13):tls_gdcall:foo
1979 bas %r14,0(%r1,%r13):tls_ldcall:foo'
1985 .section ".tdata","awT",@progbits
1993 lg %r1,foo@GOTNTPOFF(%r12)
1994 larl %r1,foo@INDNTPOFF
1995 brasl %r14,__tls_get_offset@PLT:tls_gdcall:foo
1996 brasl %r14,__tls_get_offset@PLT:tls_ldcall:foo'
2001 if test -z "$tls_first_major"; then
2003 elif test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x
2005 if test "$gcc_cv_gas_major_version" -eq "$tls_first_major" \
2006 -a "$gcc_cv_gas_minor_version" -ge "$tls_first_minor" \
2007 -o "$gcc_cv_gas_major_version" -gt "$tls_first_major"; then
2010 elif test x$gcc_cv_as != x; then
2011 echo "$conftest_s" > conftest.s
2012 if $gcc_cv_as --fatal-warnings -o conftest.o conftest.s > /dev/null 2>&1
2016 rm -f conftest.s conftest.o
2018 if test "$gcc_cv_as_tls" = yes; then
2019 AC_DEFINE(HAVE_AS_TLS, 1,
2020 [Define if your assembler supports thread-local storage.])
2022 AC_MSG_RESULT($gcc_cv_as_tls)
2025 # All TARGET_ABI_OSF targets.
2026 alpha*-*-osf* | alpha*-*-linux* | alpha*-*-*bsd*)
2027 AC_CACHE_CHECK([assembler supports explicit relocations],
2028 gcc_cv_as_explicit_relocs, [
2029 gcc_cv_as_explicit_relocs=unknown
2030 if test x$gcc_cv_gas_major_version != x \
2031 -a x$gcc_cv_gas_minor_version != x
2033 if test "$gcc_cv_gas_major_version" -eq 2 \
2034 -a "$gcc_cv_gas_minor_version" -ge 12 \
2035 -o "$gcc_cv_gas_major_version" -gt 2; then
2036 gcc_cv_as_explicit_relocs=yes
2038 elif test x$gcc_cv_as != x; then
2039 cat > conftest.s << 'EOF'
2042 extbl $3, $2, $3 !lituse_bytoff!1
2043 ldq $2, a($29) !literal!1
2044 ldq $4, b($29) !literal!2
2045 ldq_u $3, 0($2) !lituse_base!1
2046 ldq $27, f($29) !literal!5
2047 jsr $26, ($27), f !lituse_jsr!5
2048 ldah $29, 0($26) !gpdisp!3
2049 lda $0, c($29) !gprel
2050 ldah $1, d($29) !gprelhigh
2051 lda $1, d($1) !gprellow
2052 lda $29, 0($29) !gpdisp!3
2054 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
2055 gcc_cv_as_explicit_relocs=yes
2057 gcc_cv_as_explicit_relocs=no
2059 rm -f conftest.s conftest.o
2062 if test "x$gcc_cv_as_explicit_relocs" = xyes; then
2063 AC_DEFINE(HAVE_AS_EXPLICIT_RELOCS, 1,
2064 [Define if your assembler supports explicit relocations.])
2068 AC_CACHE_CHECK([assembler .register pseudo-op support],
2069 gcc_cv_as_register_pseudo_op, [
2070 gcc_cv_as_register_pseudo_op=unknown
2071 if test x$gcc_cv_as != x; then
2072 # Check if we have .register
2073 echo ".register %g2, #scratch" > conftest.s
2074 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
2075 gcc_cv_as_register_pseudo_op=yes
2077 gcc_cv_as_register_pseudo_op=no
2079 rm -f conftest.s conftest.o
2082 if test "x$gcc_cv_as_register_pseudo_op" = xyes; then
2083 AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP, 1,
2084 [Define if your assembler supports .register.])
2087 AC_CACHE_CHECK([assembler supports -relax],
2088 gcc_cv_as_relax_opt, [
2089 gcc_cv_as_relax_opt=unknown
2090 if test x$gcc_cv_as != x; then
2091 # Check if gas supports -relax
2092 echo ".text" > conftest.s
2093 if $gcc_cv_as -relax -o conftest.o conftest.s > /dev/null 2>&1; then
2094 gcc_cv_as_relax_opt=yes
2096 gcc_cv_as_relax_opt=no
2098 rm -f conftest.s conftest.o
2101 if test "x$gcc_cv_as_relax_opt" = xyes; then
2102 AC_DEFINE(HAVE_AS_RELAX_OPTION, 1,
2103 [Define if your assembler supports -relax option.])
2106 AC_CACHE_CHECK([assembler and linker support unaligned pc related relocs],
2107 gcc_cv_as_sparc_ua_pcrel, [
2108 gcc_cv_as_sparc_ua_pcrel=unknown
2109 if test x$gcc_cv_as != x -a x$gcc_cv_ld != x; then
2110 gcc_cv_as_sparc_ua_pcrel=no
2111 echo ".text; foo: nop; .data; .align 4; .byte 0; .uaword %r_disp32(foo)" > conftest.s
2112 if $gcc_cv_as -K PIC -o conftest.o conftest.s > /dev/null 2>&1 \
2113 && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then
2114 gcc_cv_as_sparc_ua_pcrel=yes
2116 rm -f conftest.s conftest.o conftest
2119 if test "x$gcc_cv_as_sparc_ua_pcrel" = xyes; then
2120 AC_DEFINE(HAVE_AS_SPARC_UA_PCREL, 1,
2121 [Define if your assembler and linker support unaligned PC relative relocs.])
2124 AC_CACHE_CHECK([assembler and linker support unaligned pc related relocs against hidden symbols],
2125 gcc_cv_as_sparc_ua_pcrel_hidden, [
2126 if test "x$gcc_cv_as_sparc_ua_pcrel" = xyes; then
2127 gcc_cv_as_sparc_ua_pcrel_hidden=unknown
2128 if test x$gcc_cv_objdump != x; then
2129 gcc_cv_as_sparc_ua_pcrel_hidden=no
2130 echo ".data; .align 4; .byte 0x31; .uaword %r_disp32(foo)" > conftest.s
2131 echo ".byte 0x32, 0x33, 0x34; .global foo; .hidden foo" >> conftest.s
2132 echo "foo: .skip 4" >> conftest.s
2133 if $gcc_cv_as -K PIC -o conftest.o conftest.s > /dev/null 2>&1 \
2134 && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1 \
2135 && $gcc_cv_objdump -s -j .data conftest 2> /dev/null \
2136 | grep ' 31000000 07323334' > /dev/null 2>&1; then
2137 if $gcc_cv_objdump -R conftest 2> /dev/null \
2138 | grep 'DISP32' > /dev/null 2>&1; then
2141 gcc_cv_as_sparc_ua_pcrel_hidden=yes
2145 rm -f conftest.s conftest.o conftest
2147 gcc_cv_as_sparc_ua_pcrel_hidden="$gcc_cv_as_sparc_ua_pcrel"
2150 if test "x$gcc_cv_as_sparc_ua_pcrel_hidden" = xyes; then
2151 AC_DEFINE(HAVE_AS_SPARC_UA_PCREL_HIDDEN, 1,
2152 [Define if your assembler and linker support unaligned PC relative relocs against hidden symbols.])
2155 AC_CACHE_CHECK([for assembler offsetable %lo() support],
2156 gcc_cv_as_offsetable_lo10, [
2157 gcc_cv_as_offsetable_lo10=unknown
2158 if test "x$gcc_cv_as" != x; then
2159 # Check if assembler has offsetable %lo()
2160 echo "or %g1, %lo(ab) + 12, %g1" > conftest.s
2161 echo "or %g1, %lo(ab + 12), %g1" > conftest1.s
2162 if $gcc_cv_as -xarch=v9 -o conftest.o conftest.s \
2164 $gcc_cv_as -xarch=v9 -o conftest1.o conftest1.s \
2165 > /dev/null 2>&1; then
2166 if cmp conftest.o conftest1.o > /dev/null 2>&1; then
2167 gcc_cv_as_offsetable_lo10=no
2169 gcc_cv_as_offsetable_lo10=yes
2172 gcc_cv_as_offsetable_lo10=no
2174 rm -f conftest.s conftest.o conftest1.s conftest1.o
2177 if test "x$gcc_cv_as_offsetable_lo10" = xyes; then
2178 AC_DEFINE(HAVE_AS_OFFSETABLE_LO10, 1,
2179 [Define if your assembler supports offsetable %lo().])
2185 i[34567]86-*-* | x86_64-*-*)
2187 AC_MSG_CHECKING(assembler instructions)
2188 gcc_cv_as_instructions=
2189 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
2190 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2; then
2191 gcc_cv_as_instructions="filds fists"
2193 elif test x$gcc_cv_as != x; then
2194 set "filds fists" "filds mem; fists mem"
2197 echo "$2" > conftest.s
2198 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
2199 gcc_cv_as_instructions=${gcc_cv_as_instructions}$1" "
2203 rm -f conftest.s conftest.o
2205 if test x"$gcc_cv_as_instructions" != x; then
2206 AC_DEFINE_UNQUOTED(HAVE_GAS_`echo "$gcc_cv_as_instructions" | sed -e 's/ $//' | tr '[a-z ]' '[A-Z_]'`)
2208 AC_MSG_RESULT($gcc_cv_as_instructions)
2210 AC_MSG_CHECKING(assembler GOTOFF in data directives)
2211 gcc_cv_as_gotoff_in_data=no
2212 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x
2214 if test "$gcc_cv_gas_major_version" -eq 2 \
2215 -a "$gcc_cv_gas_minor_version" -ge 11 \
2216 -o "$gcc_cv_gas_major_version" -gt 2; then
2217 gcc_cv_as_gotoff_in_data=yes
2219 elif test x$gcc_cv_as != x; then
2220 cat > conftest.s <<EOF
2227 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
2228 gcc_cv_as_gotoff_in_data=yes
2231 AC_DEFINE_UNQUOTED(HAVE_AS_GOTOFF_IN_DATA,
2232 [`if test $gcc_cv_as_gotoff_in_data = yes; then echo 1; else echo 0; fi`],
2233 [Define true if the assembler supports '.long foo@GOTOFF'.])
2234 AC_MSG_RESULT($gcc_cv_as_gotoff_in_data)
2238 AC_MSG_CHECKING(assembler dwarf2 debug_line support)
2239 gcc_cv_as_dwarf2_debug_line=no
2240 # ??? Not all targets support dwarf2 debug_line, even within a version
2241 # of gas. Moreover, we need to emit a valid instruction to trigger any
2242 # info to the output file. So, as supported targets are added to gas 2.11,
2243 # add some instruction here to (also) show we expect this might work.
2244 # ??? Once 2.11 is released, probably need to add first known working
2245 # version to the per-target configury.
2247 i?86*-*-* | mips*-*-* | alpha*-*-* | powerpc*-*-* | sparc*-*-* | m68*-*-* \
2248 | x86_64*-*-* | hppa*-*-* | arm*-*-* | strongarm*-*-* | xscale*-*-*)
2255 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x;
2257 if test "$gcc_cv_gas_major_version" -eq 2 \
2258 -a "$gcc_cv_gas_minor_version" -ge 11 \
2259 -o "$gcc_cv_gas_major_version" -gt 2 \
2260 && grep 'obj_format = elf' ../gas/Makefile > /dev/null \
2261 && test x"$insn" != x ; then
2262 gcc_cv_as_dwarf2_debug_line="yes"
2264 elif test x$gcc_cv_as != x -a x"$insn" != x ; then
2265 echo ' .file 1 "conftest.s"' > conftest.s
2266 echo ' .loc 1 3 0' >> conftest.s
2267 echo " $insn" >> conftest.s
2268 # ??? This fails with non-gnu grep.
2269 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
2270 && grep debug_line conftest.o > /dev/null 2>&1 ; then
2271 # The .debug_line file table must be in the exact order that
2272 # we specified the files, since these indices are also used
2273 # by DW_AT_decl_file. Approximate this test by testing if
2274 # the assembler bitches if the same index is assigned twice.
2275 echo ' .file 1 "foo.s"' > conftest.s
2276 echo ' .file 1 "bar.s"' >> conftest.s
2277 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1
2279 gcc_cv_as_dwarf2_debug_line="no"
2281 gcc_cv_as_dwarf2_debug_line="yes"
2284 rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
2286 if test x"$gcc_cv_as_dwarf2_debug_line" = xyes; then
2287 AC_DEFINE(HAVE_AS_DWARF2_DEBUG_LINE, 1,
2288 [Define if your assembler supports dwarf2 .file/.loc directives,
2289 and preserves file table indices exactly as given.])
2291 AC_MSG_RESULT($gcc_cv_as_dwarf2_debug_line)
2293 AC_MSG_CHECKING(assembler --gdwarf2 support)
2294 gcc_cv_as_gdwarf2_flag=no
2295 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x;
2297 if test "$gcc_cv_gas_major_version" -eq 2 \
2298 -a "$gcc_cv_gas_minor_version" -ge 11 \
2299 -o "$gcc_cv_gas_major_version" -gt 2 \
2300 && grep 'obj_format = elf' ../gas/Makefile > /dev/null \
2301 && test x"$insn" != x ; then
2302 gcc_cv_as_gdwarf2_flag="yes"
2304 elif test x$gcc_cv_as != x -a x"$insn" != x ; then
2305 echo '' > conftest.s
2306 # ??? This fails with non-gnu grep.
2307 if $gcc_cv_as --gdwarf2 -o conftest.o conftest.s > /dev/null 2>&1
2309 gcc_cv_as_gdwarf2_flag="yes"
2311 rm -f conftest.s conftest.o
2313 if test x"$gcc_cv_as_gdwarf2_flag" = xyes; then
2314 AC_DEFINE(HAVE_AS_GDWARF2_DEBUG_FLAG, 1,
2315 [Define if your assembler supports the --gdwarf2 option.])
2317 AC_MSG_RESULT($gcc_cv_as_gdwarf2_flag)
2319 AC_MSG_CHECKING(assembler --gstabs support)
2320 gcc_cv_as_gstabs_flag=no
2321 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x;
2323 if test "$gcc_cv_gas_major_version" -eq 2 \
2324 -a "$gcc_cv_gas_minor_version" -ge 11 \
2325 -o "$gcc_cv_gas_major_version" -gt 2 \
2326 && grep 'obj_format = elf' ../gas/Makefile > /dev/null \
2327 && test x"$insn" != x ; then
2328 gcc_cv_as_gstabs_flag="yes"
2330 elif test x$gcc_cv_as != x -a x"$insn" != x ; then
2331 echo '' > conftest.s
2332 # ??? This fails with non-gnu grep.
2333 if $gcc_cv_as --gstabs -o conftest.o conftest.s > /dev/null 2>&1 ; then
2334 gcc_cv_as_gstabs_flag="yes"
2336 rm -f conftest.s conftest.o
2338 if test x"$gcc_cv_as_gstabs_flag" = xyes; then
2339 AC_DEFINE(HAVE_AS_GSTABS_DEBUG_FLAG, 1,
2340 [Define if your assembler supports the --gstabs option.])
2342 AC_MSG_RESULT($gcc_cv_as_gstabs_flag)
2344 AC_MSG_CHECKING(linker read-only and read-write section mixing)
2345 gcc_cv_ld_ro_rw_mix=unknown
2346 if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then
2347 if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 10 -o "$gcc_cv_gld_major_version" -gt 2 && grep 'EMUL = elf' ../ld/Makefile > /dev/null; then
2348 gcc_cv_ld_ro_rw_mix=read-write
2350 elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x -a x$gcc_cv_objdump != x ; then
2351 echo '.section "myfoosect", "a"' > conftest1.s
2352 echo '.section "myfoosect", "aw"' > conftest2.s
2353 echo '.byte 1' >> conftest2.s
2354 echo '.section "myfoosect", "a"' > conftest3.s
2355 echo '.byte 0' >> conftest3.s
2356 if $gcc_cv_as -o conftest1.o conftest1.s > /dev/null 2>&1 \
2357 && $gcc_cv_as -o conftest2.o conftest2.s > /dev/null 2>&1 \
2358 && $gcc_cv_as -o conftest3.o conftest3.s > /dev/null 2>&1 \
2359 && $gcc_cv_ld -shared -o conftest1.so conftest1.o \
2360 conftest2.o conftest3.o; then
2361 gcc_cv_ld_ro_rw_mix=`$gcc_cv_objdump -h conftest1.so \
2362 | grep -A1 myfoosect`
2363 if echo "$gcc_cv_ld_ro_rw_mix" | grep CONTENTS > /dev/null; then
2364 if echo "$gcc_cv_ld_ro_rw_mix" | grep READONLY > /dev/null; then
2365 gcc_cv_ld_ro_rw_mix=read-only
2367 gcc_cv_ld_ro_rw_mix=read-write
2372 rm -f conftest.* conftest[123].*
2375 if test x$gcc_cv_ld_ro_rw_mix = xread-write; then
2376 AC_DEFINE(HAVE_LD_RO_RW_SECTION_MIXING, 1,
2377 [Define if your linker links a mix of read-only
2378 and read-write sections into a read-write section.])
2380 AC_MSG_RESULT($gcc_cv_ld_ro_rw_mix)
2382 AC_MSG_CHECKING(linker PT_GNU_EH_FRAME support)
2383 gcc_cv_ld_eh_frame_hdr=no
2384 if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then
2385 if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 12 -o "$gcc_cv_gld_major_version" -gt 2 && grep 'EMUL = elf' ../ld/Makefile > /dev/null; then
2386 gcc_cv_ld_eh_frame_hdr=yes
2388 elif test x$gcc_cv_ld != x; then
2389 # Check if linker supports --eh-frame-hdr option
2390 if $gcc_cv_ld --help 2>/dev/null | grep eh-frame-hdr > /dev/null; then
2391 gcc_cv_ld_eh_frame_hdr=yes
2394 if test x"$gcc_cv_ld_eh_frame_hdr" = xyes; then
2395 AC_DEFINE(HAVE_LD_EH_FRAME_HDR, 1,
2396 [Define if your linker supports --eh-frame-hdr option.])
2398 AC_MSG_RESULT($gcc_cv_ld_eh_frame_hdr)
2400 # Miscellaneous target-specific checks.
2403 AC_MSG_CHECKING(whether libgloss uses STARTUP directives consistently)
2404 gcc_cv_mips_libgloss_startup=no
2405 gcc_cv_libgloss_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/libgloss
2406 if test "x$exec_prefix" = xNONE; then
2407 if test "x$prefix" = xNONE; then
2408 test_prefix=/usr/local
2413 test_prefix=$exec_prefix
2415 for f in $gcc_cv_libgloss_srcdir/mips/idt.ld $test_prefix/$target_alias/lib/idt.ld
2417 if grep '^STARTUP' $f > /dev/null 2>&1; then
2418 gcc_cv_mips_libgloss_startup=yes
2422 if test x"$gcc_cv_mips_libgloss_startup" = xyes; then
2423 AC_DEFINE(HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES, 1,
2424 [Define if your MIPS libgloss linker scripts consistently include STARTUP directives.])
2426 AC_MSG_RESULT($gcc_cv_mips_libgloss_startup)
2430 if test x$with_sysroot = x && test x$host = x$target \
2431 && test "$prefix" != "/usr" && test "x$prefix" != "x$local_prefix" ; then
2432 AC_DEFINE_UNQUOTED(PREFIX_INCLUDE_DIR, "$prefix/include")
2435 # Figure out what language subdirectories are present.
2436 # Look if the user specified --enable-languages="..."; if not, use
2437 # the environment variable $LANGUAGES if defined. $LANGUAGES might
2439 # NB: embedded tabs in this IF block -- do not untabify
2440 if test x"${enable_languages+set}" != xset; then
2441 if test x"${LANGUAGES+set}" = xset; then
2442 enable_languages="${LANGUAGES}"
2443 AC_MSG_WARN([setting LANGUAGES is deprecated, use --enable-languages instead])
2446 enable_languages=all
2449 if test x"${enable_languages}" = x \
2450 || test x"${enable_languages}" = xyes;
2452 AC_MSG_ERROR([--enable-languages needs at least one language argument])
2455 enable_languages=`echo "${enable_languages}" | sed -e 's/[[ ,]][[ ,]]*/,/g' -e 's/,$//'`
2457 # First scan to see if an enabled language requires some other language.
2458 # We assume that a given config-lang.in will list all the language
2459 # front ends it requires, even if some are required indirectly.
2460 for lang in ${srcdir}/*/config-lang.in ..
2465 # The odd quoting in the next line works around
2466 # an apparent bug in bash 1.12 on linux.
2468 ${srcdir}/[*]/config-lang.in)
2471 lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang`
2472 this_lang_requires=`sed -n -e 's,^lang_requires=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^lang_requires=\([^ ]*\).*$,\1,p' $lang`
2473 for other in $this_lang_requires
2475 case ,${enable_languages}, in
2481 enable_languages="$enable_languages,$other"
2490 expected_languages=`echo ,${enable_languages}, | sed -e 's:,: :g' -e 's: *: :g' -e 's: *: :g' -e 's:^ ::' -e 's: $::'`
2493 for lang in ${srcdir}/*/config-lang.in ..
2497 # The odd quoting in the next line works around
2498 # an apparent bug in bash 1.12 on linux.
2500 ${srcdir}/[*]/config-lang.in) ;;
2502 lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang`
2503 this_lang_libs=`sed -n -e 's,^target_libs=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^target_libs=\([^ ]*\).*$,\1,p' $lang`
2504 build_by_default=`sed -n -e 's,^build_by_default=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^build_by_default=\([^ ]*\).*$,\1,p' $lang`
2505 if test "x$lang_alias" = x
2507 echo "$lang doesn't set \$language." 1>&2
2510 case ${build_by_default},${enable_languages}, in
2511 *,$lang_alias,*) add_this_lang=yes ;;
2512 no,*) add_this_lang=no ;;
2513 *,all,*) add_this_lang=yes ;;
2514 *) add_this_lang=no ;;
2516 found_languages="${found_languages} ${lang_alias}"
2517 if test x"${add_this_lang}" = xyes; then
2519 ${srcdir}/ada/config-lang.in)
2520 if test x$have_gnat = xyes ; then
2521 subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`"
2525 subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`"
2535 for expected_language in ${expected_languages} ..
2537 if test "${expected_language}" != ..; then
2538 missing_language="${expected_language}"
2539 if test "${expected_language}" = "c" \
2540 || test "${expected_language}" = "all"; then
2543 for found_language in ${found_languages} ..
2545 if test "${found_language}" != ..; then
2546 if test "${expected_language}" = "${found_language}"; then
2551 if test "x${missing_language}" != x; then
2552 missing_languages="${missing_languages} ${missing_language}"
2557 if test "x$missing_languages" != x; then
2559 The following requested languages were not found:${missing_languages}
2560 The following languages were available: c${found_languages}])
2563 # Make gthr-default.h if we have a thread file.
2565 if test $thread_file != single; then
2566 rm -f gthr-default.h
2567 echo "#include \"gthr-${thread_file}.h\"" > gthr-default.h
2568 gthread_flags=-DHAVE_GTHR_DEFAULT
2570 AC_SUBST(gthread_flags)
2572 # Find out what GC implementation we want, or may, use.
2574 [ --with-gc={simple,page} choose the garbage collection mechanism to use
2581 AC_MSG_ERROR([$withval is an invalid option to --with-gc])
2586 echo "Using $GGC for garbage collection."
2588 # Use the system's zlib library.
2590 zlibinc="-I\$(srcdir)/../zlib"
2591 AC_ARG_WITH(system-zlib,
2592 [ --with-system-zlib use installed libz],
2599 dnl Very limited version of automake's enable-maintainer-mode
2601 AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
2602 dnl maintainer-mode is disabled by default
2603 AC_ARG_ENABLE(maintainer-mode,
2604 [ --enable-maintainer-mode
2605 enable make rules and dependencies not useful
2606 (and sometimes confusing) to the casual installer],
2607 maintainer_mode=$enableval,
2610 AC_MSG_RESULT($maintainer_mode)
2612 if test "$maintainer_mode" = "yes"; then
2619 # Make empty files to contain the specs and options for each language.
2620 # Then add #include lines to for a compiler that has specs and/or options.
2625 for subdir in . $subdirs
2627 if test -f $srcdir/$subdir/lang-specs.h; then
2628 lang_specs_files="$lang_specs_files $srcdir/$subdir/lang-specs.h"
2630 if test -f $srcdir/$subdir/lang-options.h; then
2631 lang_options_files="$lang_options_files $srcdir/$subdir/lang-options.h"
2633 if test -f $srcdir/$subdir/$subdir-tree.def; then
2634 lang_tree_files="$lang_tree_files $srcdir/$subdir/$subdir-tree.def"
2638 # These (without "all_") are set in each config-lang.in.
2639 # `language' must be a single word so is spelled singularly.
2644 all_outputs='Makefile intl/Makefile fixinc/Makefile gccbug mklibgcc mkheaders'
2645 # List of language makefile fragments.
2647 # Files for gengtype
2648 all_gtfiles="$target_gtfiles"
2649 # Files for gengtype with language
2650 all_gtfiles_files_langs=
2651 all_gtfiles_files_files=
2653 # Add the language fragments.
2654 # Languages are added via two mechanisms. Some information must be
2655 # recorded in makefile variables, these are defined in config-lang.in.
2656 # We accumulate them and plug them into the main Makefile.
2657 # The other mechanism is a set of hooks for each of the main targets
2658 # like `clean', `install', etc.
2660 language_fragments="Make-lang"
2661 language_hooks="Make-hooks"
2663 for s in .. $subdirs
2673 . ${srcdir}/$s/config-lang.in
2674 if test "x$language" = x
2676 echo "${srcdir}/$s/config-lang.in doesn't set \$language." 1>&2
2679 all_lang_makefiles="$all_lang_makefiles ${srcdir}/$s/Make-lang.in"
2680 if test -f ${srcdir}/$s/Makefile.in
2681 then all_lang_makefiles="$all_lang_makefiles ${srcdir}/$s/Makefile.in"
2683 all_languages="$all_languages $language"
2684 if test "x$boot_language" = xyes
2686 all_boot_languages="$all_boot_languages $language"
2688 all_compilers="$all_compilers $compilers"
2689 all_stagestuff="$all_stagestuff $stagestuff"
2690 all_outputs="$all_outputs $outputs"
2691 all_gtfiles="$all_gtfiles $gtfiles"
2692 for f in .. $gtfiles
2696 all_gtfiles_files_langs="$all_gtfiles_files_langs ${s} "
2697 all_gtfiles_files_files="$all_gtfiles_files_files ${f} "
2703 # Pick up gtfiles for c
2706 . ${srcdir}/c-config-lang.in
2707 all_gtfiles="$all_gtfiles $gtfiles"
2708 for f in .. $gtfiles
2712 all_gtfiles_files_langs="$all_gtfiles_files_langs ${s} "
2713 all_gtfiles_files_files="$all_gtfiles_files_files ${f} "
2718 for language in .. $all_languages
2720 if test $language != ".."
2722 check_languages="$check_languages check-$language"
2726 # Since we can't use `::' targets, we link each language in
2727 # with a set of hooks, reached indirectly via lang.${target}.
2731 target_list="all.build all.cross start.encap rest.encap \
2732 info dvi generated-manpages \
2733 install-normal install-common install-info install-man \
2735 mostlyclean clean distclean extraclean maintainer-clean \
2736 stage1 stage2 stage3 stage4"
2737 for t in $target_list
2740 for lang in .. $all_languages
2742 if test $lang != ".."; then
2746 echo "lang.$t: $x" >> Make-hooks
2751 echo "dir ." > .gdbinit
2752 echo "dir ${srcdir}" >> .gdbinit
2753 if test x$gdb_needs_out_file_path = xyes
2755 echo "dir ${srcdir}/config/"`dirname ${out_file}` >> .gdbinit
2757 if test "x$subdirs" != x; then
2760 echo "dir ${srcdir}/$s" >> .gdbinit
2763 echo "source ${srcdir}/gdbinit.in" >> .gdbinit
2765 # Define variables host_canonical and build_canonical
2766 # because some Cygnus local changes in the Makefile depend on them.
2767 build_canonical=${build}
2768 host_canonical=${host}
2770 if test "${host}" != "${target}" ; then
2771 target_subdir=${target_alias}/
2773 AC_SUBST(build_canonical)
2774 AC_SUBST(host_canonical)
2775 AC_SUBST(target_subdir)
2777 # If $(exec_prefix) exists and is not the same as $(prefix), then compute an
2778 # absolute path for gcc_tooldir based on inserting the number of up-directory
2779 # movements required to get from $(exec_prefix) to $(prefix) into the basic
2780 # $(libsubdir)/@(unlibsubdir) based path.
2781 # Don't set gcc_tooldir to tooldir since that's only passed in by the toplevel
2782 # make and thus we'd get different behavior depending on where we built the
2784 if test x$exec_prefix = xNONE -o x$exec_prefix = x$prefix; then
2785 gcc_tooldir='$(libsubdir)/$(unlibsubdir)/../$(target_alias)'
2787 changequote(<<, >>)dnl
2788 # An explanation of the sed strings:
2789 # -e 's|^\$(prefix)||' matches and eliminates 'prefix' from 'exec_prefix'
2790 # -e 's|/$||' match a trailing forward slash and eliminates it
2791 # -e 's|^[^/]|/|' forces the string to start with a forward slash (*)
2792 # -e 's|/[^/]*|../|g' replaces each occurrence of /<directory> with ../
2794 # (*) Note this pattern overwrites the first character of the string
2795 # with a forward slash if one is not already present. This is not a
2796 # problem because the exact names of the sub-directories concerned is
2797 # unimportant, just the number of them matters.
2799 # The practical upshot of these patterns is like this:
2801 # prefix exec_prefix result
2802 # ------ ----------- ------
2804 # /foo/ /foo/bar ../
2805 # /foo /foo/bar/ ../
2806 # /foo/ /foo/bar/ ../
2807 # /foo /foo/bar/ugg ../../
2810 gcc_tooldir="\$(libsubdir)/\$(unlibsubdir)/\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/\$(dollar)||' -e 's|^[^/]|/|' -e 's|/[^/]*|../|g'\`\$(target_alias)"
2811 changequote([, ])dnl
2813 AC_SUBST(gcc_tooldir)
2816 # Find a directory in which to install a shared libgcc.
2818 AC_ARG_ENABLE(version-specific-runtime-libs,
2819 [ --enable-version-specific-runtime-libs
2820 specify that runtime libraries should be
2821 installed in a compiler-specific directory])
2823 AC_ARG_WITH(slibdir,
2824 [ --with-slibdir=DIR shared libraries in DIR [LIBDIR]],
2825 slibdir="$with_slibdir",
2826 if test "${enable_version_specific_runtime_libs+set}" = set; then
2827 slibdir='$(libsubdir)'
2828 elif test "$host" != "$target"; then
2829 slibdir='$(build_tooldir)/lib'
2835 objdir=`${PWDCMD-pwd}`
2838 # Process the language and host/target makefile fragments.
2839 ${CONFIG_SHELL-/bin/sh} $srcdir/configure.frag $srcdir "$subdirs" "$dep_host_xmake_file" "$dep_tmake_file"
2841 # Substitute configuration variables
2844 AC_SUBST(all_boot_languages)
2845 AC_SUBST(all_compilers)
2846 AC_SUBST(all_gtfiles)
2847 AC_SUBST(all_gtfiles_files_langs)
2848 AC_SUBST(all_gtfiles_files_files)
2849 AC_SUBST(all_lang_makefiles)
2850 AC_SUBST(all_languages)
2851 AC_SUBST(all_stagestuff)
2852 AC_SUBST(build_exeext)
2853 AC_SUBST(build_install_headers_dir)
2854 AC_SUBST(build_xm_file_list)
2855 AC_SUBST(build_xm_file)
2856 AC_SUBST(build_xm_defines)
2857 AC_SUBST(check_languages)
2858 AC_SUBST(cc_set_by_configure)
2859 AC_SUBST(quoted_cc_set_by_configure)
2860 AC_SUBST(cpp_install_dir)
2861 AC_SUBST(dep_host_xmake_file)
2862 AC_SUBST(dep_tmake_file)
2863 AC_SUBST(extra_headers_list)
2864 AC_SUBST(extra_objs)
2865 AC_SUBST(extra_parts)
2866 AC_SUBST(extra_passes)
2867 AC_SUBST(extra_programs)
2868 AC_SUBST(float_h_file)
2869 AC_SUBST(gcc_config_arguments)
2870 AC_SUBST(gcc_gxx_include_dir)
2871 AC_SUBST(libstdcxx_incdir)
2872 AC_SUBST(gcc_version)
2873 AC_SUBST(gcc_version_full)
2874 AC_SUBST(gcc_version_trigger)
2875 AC_SUBST(host_exeext)
2876 AC_SUBST(host_extra_gcc_objs)
2877 AC_SUBST(host_xm_file_list)
2878 AC_SUBST(host_xm_file)
2879 AC_SUBST(host_xm_defines)
2880 AC_SUBST(out_host_hook_obj)
2882 AC_SUBST(lang_options_files)
2883 AC_SUBST(lang_specs_files)
2884 AC_SUBST(lang_tree_files)
2885 AC_SUBST(local_prefix)
2887 AC_SUBST(objc_boehm_gc)
2889 AC_SUBST(out_object_file)
2890 AC_SUBST(stage_prefix_set_by_configure)
2891 AC_SUBST(quoted_stage_prefix_set_by_configure)
2892 AC_SUBST(symbolic_link)
2893 AC_SUBST(thread_file)
2894 AC_SUBST(tm_file_list)
2896 AC_SUBST(tm_defines)
2897 AC_SUBST(tm_p_file_list)
2900 AC_SUBST(xm_defines)
2901 AC_SUBST(target_alias)
2902 AC_SUBST(c_target_objs)
2903 AC_SUBST(cxx_target_objs)
2904 AC_SUBST(target_cpu_default)
2906 AC_SUBST_FILE(target_overrides)
2907 AC_SUBST_FILE(host_overrides)
2908 AC_SUBST_FILE(language_fragments)
2909 AC_SUBST_FILE(language_hooks)
2911 # Echo that links are built
2912 if test x$host = x$target
2920 if test x$host != x$build
2922 str3=" on a $build system"
2925 if test "x$str2" != x || test "x$str3" != x
2930 echo "Links are now set up to build a ${str1}compiler for ${target}$str4" 1>&2
2932 if test "x$str2" != x || test "x$str3" != x
2934 echo " ${str2}${str3}." 1>&2
2937 # Truncate the target if necessary
2938 if test x$host_truncate_target != x; then
2939 target=`echo $target | sed -e 's/\(..............\).*/\1/'`
2942 # Configure the subdirectories
2943 # AC_CONFIG_SUBDIRS($subdirs)
2945 # Create the Makefile
2946 # and configure language subdirectories
2947 AC_OUTPUT($all_outputs,
2949 case x$CONFIG_HEADERS in
2950 xauto-host.h:config.in)
2953 # If the host supports symlinks, point stage[1234] at ../stage[1234] so
2954 # bootstrapping and the installation procedure can still use
2955 # CC="stage1/xgcc -Bstage1/". If the host doesn't support symlinks,
2956 # FLAGS_TO_PASS has been modified to solve the problem there.
2957 # This is virtually a duplicate of what happens in configure.lang; we do
2958 # an extra check to make sure this only happens if ln -s can be used.
2959 if test "$symbolic_link" = "ln -s"; then
2960 for d in .. ${subdirs} fixinc ; do
2961 if test $d != ..; then
2962 STARTDIR=`${PWDCMD-pwd}`
2964 for t in stage1 stage2 stage3 stage4 include
2967 $symbolic_link ../$t $t 2>/dev/null
2973 # Avoid having to add intl to our include paths.
2974 if test -f intl/libintl.h; then
2975 echo creating libintl.h
2976 echo '#include "intl/libintl.h"' >libintl.h
2980 symbolic_link='$symbolic_link'