# configure.ac for GCC
# Process this file with autoconf to generate a configuration script.
-# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
# Free Software Foundation, Inc.
#This file is part of GCC.
*) gcc_gxx_include_dir=$with_gxx_include_dir ;;
esac])
+# This logic must match libstdc++-v3/acinclude.m4:GLIBCXX_EXPORT_INSTALL_INFO.
if test x${gcc_gxx_include_dir} = x; then
if test x${enable_version_specific_runtime_libs} = xyes; then
gcc_gxx_include_dir='${libsubdir}/include/c++'
else
- libstdcxx_incdir='c++/$(version)'
+ libstdcxx_incdir='include/c++/$(version)'
+ if test x$host != x$target; then
+ libstdcxx_incdir="$target_alias/$libstdcxx_incdir"
+ fi
changequote(<<, >>)dnl
- gcc_gxx_include_dir="\$(libsubdir)/\$(unlibsubdir)/..\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/[^/]*|/..|g'\`/include/"${libstdcxx_incdir}
+ gcc_gxx_include_dir="\$(libsubdir)/\$(unlibsubdir)/..\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/[^/]*|/..|g'\`/$libstdcxx_incdir"
changequote([, ])dnl
fi
fi
AC_SUBST(NO_MINUS_C_MINUS_O)
AC_SUBST(OUTPUT_OPTION)
+# Remove the -O2: for historical reasons, unless bootstrapping we prefer
+# optimizations to be activated explicitly by the toplevel.
+case "$CC" in
+ */prev-gcc/xgcc*) ;;
+ *) CFLAGS=`echo $CFLAGS | sed "s/-O[[s0-9]]* *//" ` ;;
+esac
+AC_SUBST(CFLAGS)
+
# -------------------------
# Check C compiler features
# -------------------------
esac],
[enable_languages=c])
+# Used by documentation targets
+AC_SUBST(datarootdir)
+AC_SUBST(docdir)
+AC_SUBST(htmldir)
# -------------------------
# Checks for other programs
#endif
])
+gcc_AC_CHECK_DECLS(sigaltstack, , ,[
+#include "ansidecl.h"
+#include "system.h"
+#include <signal.h>
+])
+
# More time-related stuff.
AC_CACHE_CHECK(for struct tms, ac_cv_struct_tms, [
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
AC_ARG_WITH(system-libunwind,
[ --with-system-libunwind use installed libunwind])
+# config.gcc also contains tests of with_system_libunwind.
+if test x$with_system_libunwind = xyes; then
+ AC_DEFINE(HAVE_GETIPINFO, 1,
+[Define to 1 if system unwind library has _Unwind_GetIPInfo.])
+fi
+
# --------------------------------------------------------
# Build, host, and target specific configuration fragments
# --------------------------------------------------------
fi
fi
+case ${host} in
+ powerpc-*-darwin*)
+ AC_CACHE_CHECK([whether mcontext_t fields have underscores],
+ gcc_cv_mcontext_underscores,
+ AC_COMPILE_IFELSE([
+#include <sys/signal.h>
+#include <ucontext.h>
+int main() { mcontext_t m; if (m->ss.srr0) return 0; return 0; }
+],
+ gcc_cv_mcontext_underscores=no, gcc_cv_mcontext_underscores=yes))
+ if test $gcc_cv_mcontext_underscores = yes; then
+ AC_DEFINE(HAS_MCONTEXT_T_UNDERSCORES,,dnl
+ [mcontext_t fields start with __])
+ fi
+ ;;
+esac
+
# ---------
# Threading
# ---------
use_cxa_atexit=yes
fi
if test x$use_cxa_atexit = xyes; then
- AC_DEFINE(DEFAULT_USE_CXA_ATEXIT, 1,
+ AC_DEFINE(DEFAULT_USE_CXA_ATEXIT, 2,
[Define if you want to use __cxa_atexit, rather than atexit, to
register C++ destructors for local statics and global objects.
This is essential for fully standards-compliant handling of
fi
fi
+use_getipinfo=yes
+if test x$with_system_libunwind = xyes; then
+ if test x$host = x$target; then
+ AC_SEARCH_LIBS(_Unwind_GetIPInfo, unwind,, [use_getipinfo=no])
+ fi
+fi
+GCC_TARGET_TEMPLATE(HAVE_GETIPINFO)
+if test x$use_getipinfo = xyes; then
+ AC_DEFINE(HAVE_GETIPINFO, 1,
+ [Define to 1 if system unwind library has _Unwind_GetIPInfo.])
+else
+ echo "The system unwind library does not support _Unwind_GetIPInfo."
+fi
+
# Look for a file containing extra machine modes.
if test -n "$extra_modes" && test -f $srcdir/config/$extra_modes; then
extra_modes_file='$(srcdir)'/config/${extra_modes}
gcc_cv_binutils_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/binutils
AS_VAR_SET_IF(gcc_cv_nm,, [
if test -f $gcc_cv_binutils_srcdir/configure.in \
- && test -f ../binutils/Makefile; then
+ && test -f ../binutils/Makefile \
+ && test x$build = x$host; then
gcc_cv_nm=../binutils/nm-new$build_exeext
elif test -x nm$build_exeext; then
gcc_cv_nm=./nm$build_exeext
# Figure out what objdump we will be using.
AS_VAR_SET_IF(gcc_cv_objdump,, [
if test -f $gcc_cv_binutils_srcdir/configure.in \
- && test -f ../binutils/Makefile; then
+ && test -f ../binutils/Makefile \
+ && test x$build = x$host; then
# Single tree build which includes binutils.
gcc_cv_objdump=../binutils/objdump$build_exeext
elif test -x objdump$build_exeext; then
EOF
# If the assembler didn't choke, and we can objdump,
# and we got the correct data, then succeed.
+ # The text in the here-document typically retains its unix-style line
+ # endings, while the output of objdump will use host line endings.
+ # Therefore, use diff -b for the comparisons.
if test x$gcc_cv_objdump != x \
&& $gcc_cv_objdump -s -j .eh_frame conftest.o 2>/dev/null \
| tail -3 > conftest.got \
- && { cmp conftest.lit conftest.got > /dev/null 2>&1 \
- || cmp conftest.big conftest.got > /dev/null 2>&1; }
+ && { diff -b conftest.lit conftest.got > /dev/null 2>&1 \
+ || diff -b conftest.big conftest.got > /dev/null 2>&1; }
then
gcc_cv_as_eh_frame=yes
elif AC_TRY_COMMAND($gcc_cv_as -o conftest.o --traditional-format /dev/null); then
[AC_DEFINE(HAVE_AS_IX86_CMOV_SUN_SYNTAX, 1,
[Define if your assembler supports the Sun syntax for cmov.])])
+ gcc_GAS_CHECK_FEATURE([ffreep mnemonic],
+ gcc_cv_as_ix86_ffreep,,,
+ [ffreep %st(1)],,
+ [AC_DEFINE(HAVE_AS_IX86_FFREEP, 1,
+ [Define if your assembler supports the ffreep mnemonic.])])
+
# This one is used unconditionally by i386.[ch]; it is to be defined
# to 1 if the feature is present, 0 otherwise.
gcc_GAS_CHECK_FEATURE([GOTOFF in data],
[Define if your target C library provides stack protector support])
fi
+# Check if TFmode long double should be used by default or not.
+# Some glibc targets used DFmode long double, but with glibc 2.4
+# and later they can use TFmode.
+case "$target" in
+ powerpc*-*-*gnu* | \
+ sparc*-*-linux* | \
+ s390*-*-linux* | \
+ alpha*-*-linux*)
+ AC_ARG_WITH(long-double-128,
+[ --with-long-double-128 Use 128-bit long double by default.],
+ gcc_cv_target_ldbl128="$with_long_double_128",
+ [gcc_cv_target_ldbl128=no
+ 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_sysroot" = xyes; then
+ glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-root/usr/include"
+ else
+ glibc_header_dir="${with_sysroot}/usr/include"
+ fi
+ else
+ glibc_header_dir=/usr/include
+ fi
+ grep '^[ ]*#[ ]*define[ ][ ]*__LONG_DOUBLE_MATH_OPTIONAL' \
+ $glibc_header_dir/bits/wordsize.h > /dev/null 2>&1 \
+ && gcc_cv_target_ldbl128=yes])
+ ;;
+esac
+if test x$gcc_cv_target_ldbl128 = xyes; then
+ AC_DEFINE(TARGET_DEFAULT_LONG_DOUBLE_128, 1,
+ [Define if TFmode long double should be the default])
+fi
+
# Find out what GC implementation we want, or may, use.
AC_ARG_WITH(gc,
[ --with-gc={page,zone} choose the garbage collection mechanism to use
for lang in ${srcdir}/*/config-lang.in
do
- case $lang in
- # The odd quoting in the next line works around
- # an apparent bug in bash 1.12 on linux.
changequote(,)dnl
- ${srcdir}/[*]/config-lang.in)
- continue ;;
- *)
+ test "$lang" = "${srcdir}/*/config-lang.in" && continue
+
lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang`
if test "x$lang_alias" = x
then
esac
changequote([,])dnl
- if test -f $srcdir/$subdir/lang.opt; then
- lang_opt_files="$lang_opt_files $srcdir/$subdir/lang.opt"
- fi
- if test -f $srcdir/$subdir/$subdir-tree.def; then
- lang_tree_files="$lang_tree_files $srcdir/$subdir/$subdir-tree.def"
- fi
-
language=
boot_language=
compilers=
stagestuff=
outputs=
gtfiles=
+ subdir_requires=
. ${srcdir}/$subdir/config-lang.in
if test "x$language" = x
then
echo "${srcdir}/$subdir/config-lang.in doesn't set \$language." 1>&2
exit 1
fi
+
+ ok=:
+ case ",$enable_languages," in
+ *,$lang_alias,*) ;;
+ *)
+ for i in $subdir_requires; do
+ test -f "${srcdir}/$i/config-lang.in" && continue
+ ok=false
+ break
+ done
+ ;;
+ esac
+ $ok || continue
+
all_lang_makefrags="$all_lang_makefrags \$(srcdir)/$subdir/Make-lang.in"
+ if test -f $srcdir/$subdir/lang.opt; then
+ lang_opt_files="$lang_opt_files $srcdir/$subdir/lang.opt"
+ fi
+ if test -f $srcdir/$subdir/$subdir-tree.def; then
+ lang_tree_files="$lang_tree_files $srcdir/$subdir/$subdir-tree.def"
+ fi
if test -f ${srcdir}/$subdir/Makefile.in
then all_lang_makefiles="$subdir/Makefile"
fi
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
- ;;
- esac
+ for f in $gtfiles
+ do
+ all_gtfiles_files_langs="$all_gtfiles_files_langs ${subdir} "
+ all_gtfiles_files_files="$all_gtfiles_files_files ${f} "
+ done
done
# Pick up gtfiles for c
rm -f Make-hooks
touch Make-hooks
target_list="all.cross start.encap rest.encap tags \
- install-common install-man \
+ install-common install-man install-info dvi html \
uninstall info man srcextra srcman srcinfo \
mostlyclean clean distclean maintainer-clean \
stage1 stage2 stage3 stage4 stageprofile stagefeedback"
installed in a compiler-specific directory])
AC_ARG_WITH(slibdir,
-[ --with-slibdir=DIR shared libraries in DIR [LIBDIR]],
+[ --with-slibdir=DIR shared libraries in DIR [[LIBDIR]]],
slibdir="$with_slibdir",
if test "${enable_version_specific_runtime_libs+set}" = set; then
slibdir='$(libsubdir)'
objdir=`${PWDCMD-pwd}`
AC_SUBST(objdir)
+AC_ARG_WITH(datarootdir,
+[ --with-datarootdir=DIR Use DIR as the data root [[PREFIX/share]]],
+datarootdir="\${prefix}/$with_datarootdir",
+datarootdir='$(prefix)/share')
+AC_SUBST(datarootdir)
+
+AC_ARG_WITH(docdir,
+[ --with-docdir=DIR Install documentation in DIR [[DATAROOTDIR]]],
+docdir="\${prefix}/$with_docdir",
+docdir='$(datarootdir)')
+AC_SUBST(docdir)
+
+AC_ARG_WITH(htmldir,
+[ --with-htmldir=DIR html documentation in in DIR [[DOCDIR]]],
+htmldir="\${prefix}/$with_htmldir",
+htmldir='$(docdir)')
+AC_SUBST(htmldir)
+
# Substitute configuration variables
AC_SUBST(subdirs)
AC_SUBST(srcdir)
AC_SUBST(float_h_file)
AC_SUBST(gcc_config_arguments)
AC_SUBST(gcc_gxx_include_dir)
-AC_SUBST(libstdcxx_incdir)
AC_SUBST(host_exeext)
AC_SUBST(host_xm_file_list)
AC_SUBST(host_xm_include_list)