m4_include([ltsugar.m4])
m4_include([ltversion.m4])
m4_include([lt~obsolete.m4])
+m4_include([config/isl.m4])
m4_include([config/cloog.m4])
AC_INIT(move-if-change)
# these libraries are used by various programs built for the host environment
#
-host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libcpp libdecnumber gmp mpfr mpc ppl cloog libelf libiconv"
+host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktrace libcpp libdecnumber gmp mpfr mpc isl cloog libelf libiconv"
# these tools are built for the host environment
# Note, the powerpc-eabi build depends on sim occurring before gdb in order to
# the host libraries and the host tools (which may be a cross compiler)
# Note that libiberty is not a target library.
target_libraries="target-libgcc \
+ target-libbacktrace \
target-libgloss \
target-newlib \
target-libgomp \
target-libitm \
target-libstdc++-v3 \
target-libmudflap \
+ target-libsanitizer \
target-libssp \
target-libquadmath \
target-libgfortran \
*-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \
| *-*-linux* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \
| *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* \
- | *-*-solaris2* | *-*-nto*)
+ | *-*-solaris2* | *-*-nto* | *-*-nacl*)
case "${target}" in
*-*-linux*aout* | *-*-linux*oldld*)
;;
if test "$is_elf" = "yes"; then
# Check for target supported by gold.
case "${target}" in
- i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-*)
+ i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-* | tilegx*-*-*)
configdirs="$configdirs gold"
if test x${ENABLE_GOLD} = xdefault; then
default_ld=gold
ENABLE_LIBSSP=$enableval,
ENABLE_LIBSSP=yes)
+AC_ARG_ENABLE(libstdcxx,
+AS_HELP_STRING([--disable-libstdcxx],
+ [do not build libstdc++-v3 directory]),
+ENABLE_LIBSTDCXX=$enableval,
+ENABLE_LIBSTDCXX=default)
+[if test "${ENABLE_LIBSTDCXX}" = "no" ; then
+ noconfigdirs="$noconfigdirs libstdc++-v3"
+fi]
+
# Save it here so that, even in case of --enable-libgcj, if the Java
# front-end isn't enabled, we still get libgcj disabled.
libgcj_saved=$libgcj
fi
fi
+# Disable libsanitizer on unsupported systems.
+if test -d ${srcdir}/libsanitizer; then
+ if test x$enable_libsanitizer = x; then
+ AC_MSG_CHECKING([for libsanitizer support])
+ if (srcdir=${srcdir}/libsanitizer; \
+ . ${srcdir}/configure.tgt; \
+ test -n "$UNSUPPORTED")
+ then
+ AC_MSG_RESULT([no])
+ noconfigdirs="$noconfigdirs target-libsanitizer"
+ else
+ AC_MSG_RESULT([yes])
+ fi
+ fi
+fi
+
+# Disable libquadmath for some systems.
+case "${target}" in
+ avr-*-*)
+ noconfigdirs="$noconfigdirs target-libquadmath"
+ ;;
+ # libquadmath is unused on AIX and libquadmath build process use of
+ # LD_LIBRARY_PATH can break AIX bootstrap.
+ powerpc-*-aix* | rs6000-*-aix*)
+ noconfigdirs="$noconfigdirs target-libquadmath"
+ ;;
+esac
+
# Disable libssp for some systems.
case "${target}" in
avr-*-*)
esac
# Disable libstdc++-v3 for some systems.
-case "${target}" in
- *-*-vxworks*)
- # VxWorks uses the Dinkumware C++ library.
- noconfigdirs="$noconfigdirs target-libstdc++-v3"
- ;;
- arm*-wince-pe*)
- # the C++ libraries don't build on top of CE's C libraries
- noconfigdirs="$noconfigdirs target-libstdc++-v3"
- ;;
- avr-*-*)
- noconfigdirs="$noconfigdirs target-libstdc++-v3"
- ;;
-esac
+# Allow user to override this if they pass --enable-libstdc++-v3
+if test "${ENABLE_LIBSTDCXX}" = "default" ; then
+ case "${target}" in
+ *-*-vxworks*)
+ # VxWorks uses the Dinkumware C++ library.
+ noconfigdirs="$noconfigdirs target-libstdc++-v3"
+ ;;
+ arm*-wince-pe*)
+ # the C++ libraries don't build on top of CE's C libraries
+ noconfigdirs="$noconfigdirs target-libstdc++-v3"
+ ;;
+ avr-*-*)
+ noconfigdirs="$noconfigdirs target-libstdc++-v3"
+ ;;
+ esac
+fi
# Disable Fortran for some systems.
case "${target}" in
arm-*-riscix*)
noconfigdirs="$noconfigdirs ld target-libgloss"
;;
+ avr-*-rtems*)
+ ;;
+ avr-*-*)
+ if test x${with_avrlibc} != xno; then
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ fi
+ ;;
c4x-*-* | tic4x-*-*)
noconfigdirs="$noconfigdirs target-libgloss"
;;
microblaze*)
noconfigdirs="$noconfigdirs gprof"
;;
- mips*-sde-elf*)
+ mips*-sde-elf* | mips*-mti-elf*)
if test x$with_newlib = xyes; then
noconfigdirs="$noconfigdirs gprof"
fi
fi
fi
+# Check whether -static-libstdc++ -static-libgcc is supported.
+have_static_libs=no
+if test "$GCC" = yes; then
+ saved_LDFLAGS="$LDFLAGS"
+
+ LDFLAGS="$LDFLAGS -static-libstdc++ -static-libgcc"
+ AC_MSG_CHECKING([whether g++ accepts -static-libstdc++ -static-libgcc])
+ AC_LANG_PUSH(C++)
+ AC_LINK_IFELSE([
+#if (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
+#error -static-libstdc++ not implemented
+#endif
+int main() {}],
+ [AC_MSG_RESULT([yes]); have_static_libs=yes],
+ [AC_MSG_RESULT([no])])
+ AC_LANG_POP(C++)
+
+ LDFLAGS="$saved_LDFLAGS"
+fi
+
ACX_PROG_GNAT
ACX_PROG_CMP_IGNORE_INITIAL
;;
esac
-# See if we are building gcc with C++.
-AC_ARG_ENABLE(build-with-cxx,
-[AS_HELP_STRING([--enable-build-with-cxx],
- [build with C++ compiler instead of C compiler])],
-ENABLE_BUILD_WITH_CXX=$enableval,
-ENABLE_BUILD_WITH_CXX=no)
-
-# Build stage1 with C and build stages 2 and 3 with C++.
-AC_ARG_ENABLE(build-poststage1-with-cxx,
-[AS_HELP_STRING([--enable-build-poststage1-with-cxx],
- [build stages 2 and 3 with C++, not C])],
-ENABLE_BUILD_POSTSTAGE1_WITH_CXX=$enableval,
-ENABLE_BUILD_POSTSTAGE1_WITH_CXX=yes)
-
# Used for setting $lt_cv_objdir
_LT_CHECK_OBJDIR
gmpinc='-I$$r/$(HOST_SUBDIR)/gmp -I$$s/gmp '"$gmpinc"
extra_mpfr_configure_flags='--with-gmp-include=$$r/$(HOST_SUBDIR)/gmp --with-gmp-lib=$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir"
extra_mpc_gmp_configure_flags='--with-gmp-include=$$r/$(HOST_SUBDIR)/gmp --with-gmp-lib=$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir"
+ extra_isl_gmp_configure_flags='--with-gmp-builddir=$$r/$(HOST_SUBDIR)/gmp'
# Do not test the gmp version. Assume that it is sufficient, since
# it is in the source tree, and the library has not been built yet
# but it would be included on the link line in the version check below
AC_TRY_COMPILE([#include "gmp.h"],[
#define GCC_GMP_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
#define GCC_GMP_VERSION GCC_GMP_VERSION_NUM(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL)
- #if GCC_GMP_VERSION < GCC_GMP_VERSION_NUM(4,2,0)
+ #if GCC_GMP_VERSION < GCC_GMP_VERSION_NUM(4,2,3)
choke me
#endif
], [AC_TRY_COMPILE([#include <gmp.h>],[
AC_SUBST(extra_mpfr_configure_flags)
AC_SUBST(extra_mpc_gmp_configure_flags)
AC_SUBST(extra_mpc_mpfr_configure_flags)
+AC_SUBST(extra_isl_gmp_configure_flags)
# Allow host libstdc++ to be specified for static linking with PPL.
AC_ARG_WITH(host-libstdcxx,
;;
esac
-# Linker flags to use for stage1 or when not boostrapping.
-AC_ARG_WITH(stage1-ldflags,
-[AS_HELP_STRING([--with-stage1-ldflags=FLAGS], [linker flags for stage1])],
-[if test "$withval" = "no" -o "$withval" = "yes"; then
- stage1_ldflags=
- else
- stage1_ldflags=$withval
- fi],
-[stage1_ldflags=])
-AC_SUBST(stage1_ldflags)
-
# Libraries to use for stage1 or when not bootstrapping.
AC_ARG_WITH(stage1-libs,
[AS_HELP_STRING([--with-stage1-libs=LIBS], [libraries for stage1])],
[stage1_libs=$with_host_libstdcxx])
AC_SUBST(stage1_libs)
+# Linker flags to use for stage1 or when not bootstrapping.
+AC_ARG_WITH(stage1-ldflags,
+[AS_HELP_STRING([--with-stage1-ldflags=FLAGS], [linker flags for stage1])],
+[if test "$withval" = "no" -o "$withval" = "yes"; then
+ stage1_ldflags=
+ else
+ stage1_ldflags=$withval
+ fi],
+[stage1_ldflags=
+ # In stage 1, default to linking libstdc++ and libgcc statically with GCC
+ # if supported. But if the user explicitly specified the libraries to use,
+ # trust that they are doing what they want.
+ if test "$stage1_libs" = "" -a "$have_static_libs" = yes; then
+ stage1_ldflags="-static-libstdc++ -static-libgcc"
+ fi])
+AC_SUBST(stage1_ldflags)
+
# Libraries to use for stage2 and later builds. This defaults to the
# argument passed to --with-host-libstdcxx.
AC_ARG_WITH(boot-libs,
fi])
AC_SUBST(poststage1_ldflags)
-# Check for PPL
-ppllibs=
-pplinc=
-pwllib=
-
-AC_ARG_WITH(ppl,
-[AS_HELP_STRING([--with-ppl=PATH],
- [specify prefix directory for the installed PPL package.
- Equivalent to --with-ppl-include=PATH/include
- plus --with-ppl-lib=PATH/lib])])
-AC_ARG_WITH(ppl-include,
-[AS_HELP_STRING([--with-ppl-include=PATH],
- [specify directory for installed PPL include files])])
-AC_ARG_WITH(ppl-lib,
-[AS_HELP_STRING([--with-ppl-lib=PATH],
- [specify directory for the installed PPL library])])
-
-AC_ARG_ENABLE(ppl-version-check,
-[AS_HELP_STRING([--disable-ppl-version-check],
- [disable check for PPL version])])
-
-case $with_ppl in
- yes | no | "")
- ;;
- *)
- ppllibs="-L$with_ppl/lib"
- pplinc="-I$with_ppl/include $pplinc"
- if test -d "$with_ppl/lib" && test -d "$with_ppl/include"; then
- with_ppl=yes
- else
- AC_MSG_ERROR([cannot find directories "$with_ppl/lib" or "$with_ppl/include"])
- fi
- ;;
-esac
-
-if test x"$with_ppl_include" != x; then
- pplinc="-I$with_ppl_include $pplinc"
- with_ppl=yes
-fi
-
-if test "x$with_ppl_lib" != x; then
- ppllibs="-L$with_ppl_lib"
- with_ppl=yes
-fi
-
-if test x"$with_ppl$with_ppl_include$with_ppl_lib" = x && test -d ${srcdir}/ppl; then
- if test x"$enable_watchdog" = xyes; then
- pwllib="-lpwl"
+# GCC GRAPHITE dependences, ISL and CLOOG which in turn requires ISL.
+# Basic setup is inlined here, actual checks are in config/cloog.m4 and
+# config/isl.m4
+
+AC_ARG_WITH(cloog,
+ [AS_HELP_STRING(
+ [--with-cloog=PATH],
+ [Specify prefix directory for the installed CLooG-ISL package.
+ Equivalent to --with-cloog-include=PATH/include
+ plus --with-cloog-lib=PATH/lib])])
+AC_ARG_WITH(isl,
+ [AS_HELP_STRING(
+ [--with-isl=PATH],
+ [Specify prefix directory for the installed ISL package.
+ Equivalent to --with-isl-include=PATH/include
+ plus --with-isl-lib=PATH/lib])])
+
+# Treat either --without-cloog or --without-isl as a request to disable
+# GRAPHITE support and skip all following checks.
+if test "x$with_isl" != "xno" &&
+ test "x$with_cloog" != "xno"; then
+ # Check for ISL
+ dnl Provide configure switches and initialize islinc & isllibs
+ dnl with user input.
+ ISL_INIT_FLAGS
+ dnl The minimal version of ISL required for Graphite.
+ ISL_CHECK_VERSION(0,10)
+ dnl Only execute fail-action, if ISL has been requested.
+ ISL_IF_FAILED([
+ AC_MSG_ERROR([Unable to find a usable ISL. See config.log for details.])])
+
+ if test "x$gcc_cv_isl" != "xno"; then
+ # Check for CLOOG
+ dnl Provide configure switches and initialize clooginc & clooglibs
+ dnl with user input.
+ CLOOG_INIT_FLAGS
+ dnl The minimal version of CLooG required for Graphite.
+ dnl
+ dnl If we use CLooG-Legacy, the provided version information is
+ dnl ignored.
+ CLOOG_CHECK_VERSION(0,17,0)
+
+ dnl Only execute fail-action, if CLooG has been requested.
+ CLOOG_IF_FAILED([
+ AC_MSG_ERROR([Unable to find a usable CLooG. See config.log for details.])])
fi
- ppllibs='-L$$r/$(HOST_SUBDIR)/ppl/interfaces/C/'"$lt_cv_objdir"' -L$$r/$(HOST_SUBDIR)/ppl/src/'"$lt_cv_objdir"
- pplinc='-I$$r/$(HOST_SUBDIR)/ppl/src -I$$r/$(HOST_SUBDIR)/ppl/interfaces/C '
- enable_ppl_version_check=no
- with_ppl=yes
fi
-if test "x$with_ppl" != xno; then
- if test "x$pwllib" = x; then
- saved_LIBS="$LIBS"
- LIBS="$LIBS $ppllibs -lstdc++ -lm"
- AC_CHECK_LIB(pwl, PWL_handle_timeout, [pwllib="-lpwl"])
- LIBS="$saved_LIBS"
- fi
-
- ppllibs="$ppllibs -lppl_c -lppl $pwllib -lgmpxx"
-
- if test "$enable_ppl_version_check" != no; then
- saved_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $pplinc $gmpinc"
- AC_MSG_CHECKING([for version 0.11 (revision 0 or later) of PPL])
- AC_TRY_COMPILE([#include "ppl_c.h"],[
- #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 11
- choke me
- #endif
- ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); ppllibs= ; pplinc= ; with_ppl=no ])
- CFLAGS="$saved_CFLAGS"
- fi
+# If either the ISL or the CLooG check failed, disable builds of in-tree
+# variants of both
+if test "x$with_isl" = xno ||
+ test "x$with_cloog" = xno ||
+ test "x$gcc_cv_cloog" = xno ||
+ test "x$gcc_cv_isl" = xno; then
+ noconfigdirs="$noconfigdirs cloog isl"
+ islinc=
+ clooginc=
+ clooglibs=
fi
-# Flags needed for PPL
-AC_SUBST(ppllibs)
-AC_SUBST(pplinc)
+AC_SUBST(islinc)
+AC_SUBST(clooglibs)
+AC_SUBST(clooginc)
-# Check for CLOOG
-
-dnl Provide configure switches and initialize clooginc & clooglibs
-dnl with user input.
-CLOOG_INIT_FLAGS
-if test "x$with_ppl" = "xno"; then
- dnl Only execute fail-action, if CLooG has been requested.
- CLOOG_REQUESTED([graphite_requested=yes], [graphite_requested=no])
- if test "${graphite_requested}" = yes; then
- AC_MSG_ERROR([Unable to find a usable PPL. See config.log for details.])
- fi
- with_cloog=no
-fi
-if test "x${with_cloog}" = x && test "x${with_cloog_include}" = x \
- && test "x${with_cloog_lib}" = x && test -d ${srcdir}/cloog; then
- clooglibs='-L$$r/$(HOST_SUBDIR)/cloog/'"$lt_cv_objdir"' '
- clooginc='-I$$r/$(HOST_SUBDIR)/cloog/include -I$$s/cloog/include '
-fi
-if test "x$with_cloog" != "xno"; then
- dnl The minimal version of CLooG required for Graphite.
- dnl
- dnl If we use CLooG-Legacy, the provided version information is
- dnl ignored.
- CLOOG_CHECK_VERSION(0,16,1)
-
- dnl Only execute fail-action, if CLooG has been requested.
- CLOOG_IF_FAILED([
- AC_MSG_ERROR([Unable to find a usable CLooG. See config.log for details.])])
-fi
-
# Check for LTO support.
AC_ARG_ENABLE(lto,
[AS_HELP_STRING([--enable-lto], [enable link time optimization support])],
])
-# By default, C is the only stage 1 language.
+# By default, C and C++ are the only stage 1 languages.
stage1_languages=,c,
# Target libraries that we bootstrap.
;;
esac
- # If bootstrapping, then using --enable-build-with-cxx or
- # --enable-build-poststage1-with-cxx requires enabling C++.
- case ",$enable_languages,:,$ENABLE_BUILD_WITH_CXX,$ENABLE_BUILD_POSTSTAGE1_WITH_CXX,:$enable_bootstrap" in
- *,c++,*:*:*) ;;
- *:*,yes,*:yes)
+ # If bootstrapping, C++ must be enabled.
+ case ",$enable_languages,:$enable_bootstrap" in
+ *,c++,*:*) ;;
+ *:yes)
if test -f ${srcdir}/gcc/cp/config-lang.in; then
enable_languages="${enable_languages},c++"
else
- AC_MSG_ERROR([bootstrapping with --enable-build-with-cxx or --enable-build-poststage1-with-cxx requires c++ sources])
+ AC_MSG_ERROR([bootstrapping requires c++ sources])
fi
;;
esac
fi
if test "$language" = "c++"; then
- if test "$ENABLE_BUILD_WITH_CXX" = "yes" \
- || test "$ENABLE_BUILD_POSTSTAGE1_WITH_CXX" = "yes"; then
- boot_language=yes
- fi
+ boot_language=yes
fi
+ add_this_lang=no
case ,${enable_languages}, in
*,${language},*)
# Language was explicitly selected; include it
;;
*,all,*)
# 'all' was selected, select it if it is a default language
- add_this_lang=${build_by_default}
- ;;
- *)
- add_this_lang=no
+ if test "$language" != "c"; then
+ add_this_lang=${build_by_default}
+ fi
;;
esac
spu-*-*)
target_makefile_frag="config/mt-spu"
;;
- mips*-sde-elf*)
+ mips*-sde-elf* | mips*-mti-elf*)
target_makefile_frag="config/mt-sde"
;;
mipsisa*-*-elfoabi*)
changequote([,])
case $lib in
- mpc | mpfr | gmp | ppl | cloog)
+ mpc | mpfr | gmp | cloog)
# If we're processing --with-$lib, --with-$lib-include or
# --with-$lib-lib, for one of the libs above, and target is
# different from host, don't pass the current argument to any
*" --with-newlib "*)
case "$target" in
*-cygwin*)
- FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup -L$$r/$(TARGET_SUBDIR)/winsup/cygwin -L$$r/$(TARGET_SUBDIR)/winsup/w32api/lib -isystem $$s/winsup/include -isystem $$s/winsup/cygwin/include -isystem $$s/winsup/w32api/include'
+ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup/cygwin -isystem $$s/winsup/cygwin/include'
;;
esac
esac ;;
esac
-# This is aimed to mimic bootstrap with a non-GCC compiler to catch problems.
-if test "$GCC" = yes -a "$ENABLE_BUILD_WITH_CXX" != yes; then
- saved_CFLAGS="$CFLAGS"
-
- # Pass -fkeep-inline-functions for stage 1 if the GCC version supports it.
- CFLAGS="$CFLAGS -fkeep-inline-functions"
- AC_MSG_CHECKING([whether -fkeep-inline-functions is supported])
- AC_TRY_COMPILE([
-#if (__GNUC__ < 3) \
- || (__GNUC__ == 3 && (__GNUC_MINOR__ < 3 \
- || (__GNUC_MINOR__ == 3 && __GNUC_PATCHLEVEL__ < 1)))
-#error http://gcc.gnu.org/PR29382
-#endif
- ],,
- [AC_MSG_RESULT([yes]); stage1_cflags="$stage1_cflags -fkeep-inline-functions"],
- [AC_MSG_RESULT([no])])
-
- CFLAGS="$saved_CFLAGS"
-fi
-
AC_SUBST(stage1_cflags)
# Enable --enable-checking in stage1 of the compiler.
esac
AC_SUBST(stage2_werror_flag)
-# If using ENABLE_BUILD_POSTSTAGE1_WITH_CXX, pass
-# --enable-build-with-cxx after stage1.
-if test "$ENABLE_BUILD_POSTSTAGE1_WITH_CXX" = "yes"; then
- POSTSTAGE1_CONFIGURE_FLAGS=--enable-build-with-cxx
-else
- POSTSTAGE1_CONFIGURE_FLAGS=
-fi
-AC_SUBST(POSTSTAGE1_CONFIGURE_FLAGS)
-
# Specify what files to not compare during bootstrap.
compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/*"
case "$target" in
hppa*64*-*-hpux*) ;;
hppa*-*-hpux*) compare_exclusions="gcc/cc*-checksum\$(objext) | */libgcc/lib2funcs* | gcc/ada/*tools/*" ;;
-esac
-case " $configdirs " in
-*" ppl "*) compare_exclusions="$compare_exclusions | ppl/src/ppl-config.o" ;;
+ powerpc*-ibm-aix*) compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/* | *libgomp*\$(objext)" ;;
esac
AC_SUBST(compare_exclusions)