# configure.ac for GCC
# Process this file with autoconf to generate a configuration script.
-# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
# Free Software Foundation, Inc.
#This file is part of GCC.
[Define to enable the use of a default linker.])
fi
+gnu_ld=`if test x"$gnu_ld_flag" = x"yes"; then echo 1; else echo 0; fi`
+AC_DEFINE_UNQUOTED(HAVE_GNU_LD, $gnu_ld, [Define if using GNU ld.])
+
AC_MSG_CHECKING([whether a default linker was specified])
if test x"${DEFAULT_LINKER+set}" = x"set"; then
if test x"$gnu_ld_flag" = x"no"; then
CFLAGS="$save_CFLAGS"
])
-strict1_warn=
+strict_warn=
if test $ac_cv_prog_cc_w_no_long_long = yes \
&& test $ac_cv_prog_cc_w_no_variadic_macros = yes \
&& test $ac_cv_prog_cc_w_no_overlength_strings = yes ; then
- strict1_warn="-pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings"
+ strict_warn="-pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings"
fi
# Add -Wold-style-definition if it's accepted
CFLAGS="$save_CFLAGS"
])
if test $ac_cv_prog_cc_w_old_style_definition = yes ; then
- strict1_warn="${strict1_warn} -Wold-style-definition"
+ strict_warn="${strict_warn} -Wold-style-definition"
fi
# Add -Wmissing-format-attribute if it's accepted
CFLAGS="$save_CFLAGS"
])
if test $ac_cv_prog_cc_w_missing_format_attribute = yes ; then
- strict1_warn="${strict1_warn} -Wmissing-format-attribute"
+ strict_warn="${strict_warn} -Wmissing-format-attribute"
fi
# Enable -Werror, period.
[ --enable-werror-always enable -Werror always], [],
[enable_werror_always=no])
if test x${enable_werror_always} = xyes ; then
- strict1_warn="${strict1_warn} -Werror"
- WERROR=-Werror
+ strict_warn="${strict_warn} -Werror"
fi
-
-AC_SUBST(strict1_warn)
+AC_SUBST(strict_warn)
# Get C++ compatibility warning flag, if supported.
AC_CACHE_CHECK(
fi
AC_SUBST(warn_cflags)
-# Enable -Werror in bootstrap stage2 and later.
+# Enable expensive internal checks
is_release=
if test x"`cat $srcdir/DEV-PHASE`" != xexperimental; then
is_release=yes
fi
-AC_ARG_ENABLE(werror,
-[ --enable-werror enable -Werror in bootstrap stage2 and later], [],
-[if test x$is_release = x ; then
- # Default to "yes" on development branches.
- enable_werror=yes
-else
- # Default to "no" on release branches.
- enable_werror=no
-fi])
-if test x$enable_werror = xyes ; then
- WERROR=-Werror
-fi
-AC_SUBST(WERROR)
-# Enable expensive internal checks
AC_ARG_ENABLE(checking,
[ --enable-checking[=LIST]
enable expensive run-time checks. With LIST,
# Enable C extension for decimal float if target supports it.
AC_ARG_ENABLE(decimal-float,
-[ --enable-decimal-float enable decimal float extension to C],
+[ --enable-decimal-float={no,yes,bid,dpd}
+ enable decimal float extension to C. Selecting 'bid'
+ or 'dpd' choses which decimal floating point format
+ to use],
[
- if test x$enablevar = xyes ; then
- case $target in
- powerpc*-*-linux* | i?86*-*-linux*)
+ case $enable_decimal_float in
+ yes | no | bid | dpd) ;;
+ *) AC_MSG_ERROR(['$enable_decimal_float' is an invalid value for --enable-decimal-float.
+Valid choices are 'yes', 'bid', 'dpd', and 'no'.]) ;;
+ esac
+],
+[
+ case $target in
+ powerpc*-*-linux* | i?86*-*-linux* | x86_64*-*-linux*)
enable_decimal_float=yes
;;
*)
AC_MSG_WARN(decimal float is not supported for this target, ignored)
enable_decimal_float=no
;;
- esac
- fi
-], [enable_decimal_float=no])
-
-AC_SUBST(enable_decimal_float)
+ esac
+])
-dfp=`if test $enable_decimal_float = yes; then echo 1; else echo 0; fi`
+dfp=`if test $enable_decimal_float != no; then echo 1; else echo 0; fi`
AC_DEFINE_UNQUOTED(ENABLE_DECIMAL_FLOAT, $dfp,
[Define to 1 to enable decimal float extension to C.])
+# x86's use BID format instead of DPD
+case x$enable_decimal_float in
+ xyes)
+ case $target in
+ i?86*-*-linux* | x86_64*-*-linux*)
+ enable_decimal_float=bid
+ ;;
+ *)
+ enable_decimal_float=dpd
+ ;;
+ esac
+ ;;
+ xno)
+ # ENABLE_DECIMAL_FLOAT is set to 0. But we have to have proper
+ # dependency on libdecnumber.
+ enable_decimal_float=dpd
+ ;;
+esac
+AC_SUBST(enable_decimal_float)
+
+bid=`if test $enable_decimal_float = bid; then echo 1; else echo 0; fi`
+AC_DEFINE_UNQUOTED(ENABLE_DECIMAL_BID_FORMAT, $bid,
+[Define to 1 to specify that we are using the BID decimal floating
+point format instead of DPD])
+
# Enable threads
# Pass with no value to take the default
# Pass with a value to specify a thread package
esac
TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
- CROSS_SYSTEM_HEADER_DIR='$(TARGET_SYSTEM_ROOT)$(NATIVE_SYSTEM_HEADER_DIR)'
+ CROSS_SYSTEM_HEADER_DIR='$(TARGET_SYSTEM_ROOT)$${sysroot_headers_suffix}$(NATIVE_SYSTEM_HEADER_DIR)'
if test "x$exec_prefix" = xNONE; then
if test "x$prefix" = xNONE; then
# UNSORTED
# --------
-# Stage specific cflags for build.
-stage1_cflags=
-case $build in
-vax-*-*)
- if test x$GCC = xyes
- then
- stage1_cflags="-Wa,-J"
- else
- stage1_cflags="-J"
- fi
- ;;
-esac
-AC_SUBST(stage1_cflags)
# These libraries may be used by collect2.
# We may need a special search path to get them linked.
AC_CACHE_CHECK([whether mcontext_t fields have underscores],
gcc_cv_mcontext_underscores,
AC_COMPILE_IFELSE([
+#include <sys/cdefs.h>
#include <sys/signal.h>
#include <ucontext.h>
int main() { mcontext_t m; if (m->ss.srr0) return 0; return 0; }
done
tmake_file="${tmake_file_}"
-# If the host doesn't support symlinks, modify CC in
-# FLAGS_TO_PASS so CC="stage1/xgcc -Bstage1/" works.
-# Otherwise, we can use "CC=$(CC)".
-rm -f symtest.tem
-case "$LN_S" in
- *-s*)
- cc_set_by_configure="\$(CC)"
- quoted_cc_set_by_configure="\$(CC)"
- stage_prefix_set_by_configure="\$(STAGE_PREFIX)"
- quoted_stage_prefix_set_by_configure="\$(STAGE_PREFIX)"
- ;;
- *)
- cc_set_by_configure="\`case '\$(CC)' in stage*) echo '\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\$(CC)';; esac\`"
- quoted_cc_set_by_configure="\\\`case '\\\$(CC)' in stage*) echo '\\\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\\\$(CC)';; esac\\\`"
- stage_prefix_set_by_configure="\`case '\$(STAGE_PREFIX)' in stage*) echo '\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\$(STAGE_PREFIX)';; esac\`"
- quoted_stage_prefix_set_by_configure="\\\`case '\\\$(STAGE_PREFIX)' in stage*) echo '\\\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\\\$(STAGE_PREFIX)';; esac\\\`"
- ;;
-esac
-
# This is a terrible hack which will go away some day.
host_cc_for_libada=${CC}
AC_SUBST(host_cc_for_libada)
tm_include_list="options.h"
for f in $tm_file; do
case $f in
+ ./* )
+ f=`echo $f | sed 's/^..//'`
+ tm_file_list="${tm_file_list} $f"
+ tm_include_list="${tm_include_list} $f"
+ ;;
defaults.h )
tm_file_list="${tm_file_list} \$(srcdir)/$f"
tm_include_list="${tm_include_list} $f"
SYSTEM_HEADER_DIR='$(NATIVE_SYSTEM_HEADER_DIR)' AC_SUBST(SYSTEM_HEADER_DIR)
if test "x$with_build_sysroot" != x; then
- build_system_header_dir=$with_build_sysroot'$(NATIVE_SYSTEM_HEADER_DIR)'
+ build_system_header_dir=$with_build_sysroot'$${sysroot_headers_suffix}$(NATIVE_SYSTEM_HEADER_DIR)'
else
# This value is used, even on a native system, because
# CROSS_SYSTEM_HEADER_DIR is just
ORIGINAL_AS_FOR_TARGET=$gcc_cv_as
AC_SUBST(ORIGINAL_AS_FOR_TARGET)
+case "$ORIGINAL_AS_FOR_TARGET" in
+ ./as | ./as$build_exeext) ;;
+ *) AC_CONFIG_FILES(as:exec-tool.in, [chmod +x as]) ;;
+esac
AC_MSG_CHECKING(what assembler to use)
if test "$gcc_cv_as" = ../gas/as-new$build_exeext; then
ORIGINAL_LD_FOR_TARGET=$gcc_cv_ld
AC_SUBST(ORIGINAL_LD_FOR_TARGET)
+case "$ORIGINAL_LD_FOR_TARGET" in
+ ./collect-ld | ./collect-ld$build_exeext) ;;
+ *) AC_CONFIG_FILES(collect-ld:exec-tool.in, [chmod +x collect-ld]) ;;
+esac
AC_MSG_CHECKING(what linker to use)
if test "$gcc_cv_ld" = ../ld/ld-new$build_exeext; then
ORIGINAL_NM_FOR_TARGET=$gcc_cv_nm
AC_SUBST(ORIGINAL_NM_FOR_TARGET)
+case "$ORIGINAL_NM_FOR_TARGET" in
+ ./nm | ./nm$build_exeext) ;;
+ *) AC_CONFIG_FILES(nm:exec-tool.in, [chmod +x nm]) ;;
+esac
+
# Figure out what objdump we will be using.
AS_VAR_SET_IF(gcc_cv_objdump,, [
[AC_DEFINE(HAVE_AS_IX86_FFREEP, 1,
[Define if your assembler supports the ffreep mnemonic.])])
+ gcc_GAS_CHECK_FEATURE([sahf mnemonic],
+ gcc_cv_as_ix86_sahf,,,
+ [sahf],,
+ [AC_DEFINE(HAVE_AS_IX86_SAHF, 1,
+ [Define if your assembler supports the sahf mnemonic.])])
+
gcc_GAS_CHECK_FEATURE([different section symbol subtraction],
gcc_cv_as_ix86_diff_sect_delta,,,
[.section .rodata
[$conftest_s],,
[AC_DEFINE(HAVE_AS_REL16, 1,
[Define if your assembler supports R_PPC_REL16 relocs.])])
+
+ case $target in
+ *-*-aix*) conftest_s=' .machine "pwr6"
+ .csect .text[[PR]]
+ cmpb 3,4,5';;
+ *) conftest_s=' .machine power6
+ .text
+ cmpb 3,4,5';;
+ esac
+
+ gcc_GAS_CHECK_FEATURE([compare bytes support],
+ gcc_cv_as_powerpc_cmpb, [9,99,0], -a32,
+ [$conftest_s],,
+ [AC_DEFINE(HAVE_AS_CMPB, 1,
+ [Define if your assembler supports cmpb.])])
+
+ case $target in
+ *-*-aix*) conftest_s=' .machine "pwr6"
+ .csect .text[[PR]]
+ dadd 1,2,3';;
+ *) conftest_s=' .machine power6
+ .text
+ dadd 1,2,3';;
+ esac
+
+ gcc_GAS_CHECK_FEATURE([decimal float support],
+ gcc_cv_as_powerpc_dfp, [9,99,0], -a32,
+ [$conftest_s],,
+ [AC_DEFINE(HAVE_AS_DFP, 1,
+ [Define if your assembler supports DFP instructions.])])
;;
mips*-*-*)
case "$target" in
i?86*-*-* | mips*-*-* | alpha*-*-* | powerpc*-*-* | sparc*-*-* | m68*-*-* \
| x86_64*-*-* | hppa*-*-* | arm*-*-* | strongarm*-*-* | xscale*-*-* \
- | xstormy16*-*-* | cris-*-* | xtensa-*-* | bfin-*-* | score*-*-*)
+ | xstormy16*-*-* | cris-*-* | xtensa-*-* | bfin-*-* | score*-*-* | spu-*-*)
insn="nop"
;;
ia64*-*-* | s390*-*-*)
[Define if your assembler supports the --gstabs option.])])
fi
+AC_CACHE_CHECK([assembler for tolerance to line number 0],
+ [gcc_cv_as_line_zero],
+ [gcc_cv_as_line_zero=no
+ if test $in_tree_gas = yes; then
+ gcc_GAS_VERSION_GTE_IFELSE(2, 16, 91, [gcc_cv_as_line_zero=yes])
+ elif test "x$gcc_cv_as" != x; then
+ { echo '# 1 "test.s" 1'; echo '# 0 "" 2'; } > conftest.s
+ if AC_TRY_COMMAND([$gcc_cv_as -o conftest.o conftest.s >&AS_MESSAGE_LOG_FD 2>conftest.out]) &&
+ test "x`cat conftest.out`" = x
+ then
+ gcc_cv_as_line_zero=yes
+ else
+ echo "configure: failed program was" >&AS_MESSAGE_LOG_FD
+ cat conftest.s >&AS_MESSAGE_LOG_FD
+ echo "configure: error output was" >&AS_MESSAGE_LOG_FD
+ cat conftest.out >&AS_MESSAGE_LOG_FD
+ fi
+ rm -f conftest.o conftest.s conftest.out
+ fi])
+if test "x$gcc_cv_as_line_zero" = xyes; then
+ AC_DEFINE([HAVE_AS_LINE_ZERO], 1,
+[Define if the assembler won't complain about a line such as # 0 "" 2.])
+fi
+
AC_MSG_CHECKING(linker read-only and read-write section mixing)
gcc_cv_ld_ro_rw_mix=unknown
if test $in_tree_ld = yes ; then
fi
# Test for stack protector support in target C library.
-case "$target" in
- *-*-linux*)
- AC_CACHE_CHECK(__stack_chk_fail in target GNU C library,
+AC_CACHE_CHECK(__stack_chk_fail in target C library,
gcc_cv_libc_provides_ssp,
[gcc_cv_libc_provides_ssp=no
+ case "$target" in
+ *-*-linux*)
if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then
if test "x$with_sysroot" = x; then
glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-include"
+ elif test "x$with_build_sysroot" != "x"; then
+ glibc_header_dir="${with_build_sysroot}/usr/include"
elif test "x$with_sysroot" = xyes; then
glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-root/usr/include"
else
$glibc_header_dir/features.h > /dev/null; then
gcc_cv_libc_provides_ssp=yes
fi
- fi]) ;;
+ fi
+ ;;
+ *-*-darwin*)
+ AC_CHECK_FUNC(__stack_chk_fail,[gcc_cv_libc_provides_ssp=yes],
+ [echo "no __stack_chk_fail on this target"])
+ ;;
*) gcc_cv_libc_provides_ssp=no ;;
-esac
+ esac])
+
if test x$gcc_cv_libc_provides_ssp = xyes; then
AC_DEFINE(TARGET_LIBC_PROVIDES_SSP, 1,
[Define if your target C library provides stack protector support])
# Some glibc targets used DFmode long double, but with glibc 2.4
# and later they can use TFmode.
case "$target" in
- powerpc*-*-*gnu* | \
+ powerpc*-*-linux* | \
+ powerpc*-*-gnu* | \
sparc*-*-linux* | \
s390*-*-linux* | \
alpha*-*-linux*)
if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then
if test "x$with_sysroot" = x; then
glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-include"
+ elif test "x$with_build_sysroot" != "x"; then
+ glibc_header_dir="${with_build_sysroot}/usr/include"
elif test "x$with_sysroot" = xyes; then
glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-root/usr/include"
else
# These (without "all_") are set in each config-lang.in.
# `language' must be a single word so is spelled singularly.
all_languages=
-all_boot_languages=
all_compilers=
-all_stagestuff=
-all_outputs='Makefile gccbug mklibgcc libada-mk'
+all_outputs='Makefile gccbug libada-mk'
# List of language makefile fragments.
all_lang_makefrags=
# List of language subdirectory makefiles. Deprecated.
all_lang_makefiles=
-# Files for gengtype
+# Additional files for gengtype
all_gtfiles="$target_gtfiles"
-# Files for gengtype with language
-all_gtfiles_files_langs=
-all_gtfiles_files_files=
# These are the languages that are set in --enable-languages,
# and are available in the GCC tree.
language=
boot_language=
compilers=
- stagestuff=
outputs=
gtfiles=
subdir_requires=
then all_lang_makefiles="$subdir/Makefile"
fi
all_languages="$all_languages $language"
- if test "x$boot_language" = xyes
- then
- all_boot_languages="$all_boot_languages $language"
- fi
all_compilers="$all_compilers $compilers"
- all_stagestuff="$all_stagestuff $stagestuff"
all_outputs="$all_outputs $outputs"
- all_gtfiles="$all_gtfiles $gtfiles"
- for f in $gtfiles
- do
- all_gtfiles_files_langs="$all_gtfiles_files_langs ${subdir} "
- all_gtfiles_files_files="$all_gtfiles_files_files ${f} "
- done
+ all_gtfiles="$all_gtfiles [[$subdir]] $gtfiles"
done
# Pick up gtfiles for c
gtfiles=
-subdir="c"
. ${srcdir}/c-config-lang.in
-all_gtfiles="$all_gtfiles $gtfiles"
-for f in $gtfiles
-do
- all_gtfiles_files_langs="$all_gtfiles_files_langs ${subdir} "
- all_gtfiles_files_files="$all_gtfiles_files_files ${f} "
-done
+all_gtfiles="$all_gtfiles [[c]] $gtfiles"
check_languages=
for language in $all_selected_languages
rm -f Make-hooks
touch Make-hooks
target_list="all.cross start.encap rest.encap tags \
- install-common install-man install-info dvi pdf html \
- uninstall info man srcextra srcman srcinfo \
- mostlyclean clean distclean maintainer-clean \
- stage1 stage2 stage3 stage4 stageprofile stagefeedback"
+ install-common install-man install-info install-pdf dvi pdf \
+ html uninstall info man srcextra srcman srcinfo \
+ mostlyclean clean distclean maintainer-clean"
for t in $target_list
do
# Substitute configuration variables
AC_SUBST(subdirs)
AC_SUBST(srcdir)
-AC_SUBST(all_boot_languages)
AC_SUBST(all_compilers)
AC_SUBST(all_gtfiles)
-AC_SUBST(all_gtfiles_files_langs)
-AC_SUBST(all_gtfiles_files_files)
AC_SUBST(all_lang_makefrags)
AC_SUBST(all_lang_makefiles)
AC_SUBST(all_languages)
AC_SUBST(all_selected_languages)
-AC_SUBST(all_stagestuff)
AC_SUBST(build_exeext)
AC_SUBST(build_install_headers_dir)
AC_SUBST(build_xm_file_list)
AC_SUBST(build_xm_include_list)
AC_SUBST(build_xm_defines)
AC_SUBST(check_languages)
-AC_SUBST(cc_set_by_configure)
-AC_SUBST(quoted_cc_set_by_configure)
AC_SUBST(cpp_install_dir)
AC_SUBST(xmake_file)
AC_SUBST(tmake_file)
AC_SUBST(objc_boehm_gc)
AC_SUBST(out_file)
AC_SUBST(out_object_file)
-AC_SUBST(stage_prefix_set_by_configure)
-AC_SUBST(quoted_stage_prefix_set_by_configure)
AC_SUBST(thread_file)
AC_SUBST(tm_file_list)
AC_SUBST(tm_include_list)
do
test -d $d || mkdir $d
done
-# If the host supports symlinks, point stage[1234] at ../stage[1234] so
-# bootstrapping and the installation procedure can still use
-# CC="stage1/xgcc -Bstage1/". If the host doesn't support symlinks,
-# FLAGS_TO_PASS has been modified to solve the problem there.
-# This is virtually a duplicate of what happens in configure.lang; we do
-# an extra check to make sure this only happens if ln -s can be used.
-case "$LN_S" in
- *-s*)
- for d in ${subdirs} ; do
- STARTDIR=`${PWDCMD-pwd}`
- cd $d
- for t in stage1 stage2 stage3 stage4 stageprofile stagefeedback include
- do
- rm -f $t
- $LN_S ../$t $t 2>/dev/null
- done
- cd $STARTDIR
- done
- ;;
-esac
],
[subdirs='$subdirs'])
AC_OUTPUT