X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=configure.ac;h=acfae631928e7b39bc7f2ac3c12688a9bc6920ef;hb=100bfe4a97e83c70098590e57c4f4f04d98c0837;hp=3c7b1ffac3ae95490e7c6974737937be478ca37b;hpb=9e1c8fc1a54927723c8c67c87d0d29b205128dd4;p=gcc.git diff --git a/configure.ac b/configure.ac index 3c7b1ffac3a..acfae631928 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -# 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 -# Free Software Foundation, Inc. +# 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, +# 2014, 2015 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -29,7 +29,6 @@ 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) AC_PREREQ(2.64) @@ -126,14 +125,14 @@ extra_host_args= # these library is used by various programs built for the build # environment # -build_libs="build-libiberty" +build_libs="build-libiberty build-libcpp" # these tools are built for the build environment build_tools="build-texinfo build-flex build-bison build-m4 build-fixincludes" # these libraries are used by various programs built for the host environment -# -host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktrace libcpp libdecnumber gmp mpfr mpc isl cloog libelf libiconv" +#f +host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktrace libcpp libdecnumber gmp mpfr mpc isl libelf libiconv" # these tools are built for the host environment # Note, the powerpc-eabi build depends on sim occurring before gdb in order to @@ -141,7 +140,7 @@ host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktr # binutils, gas and ld appear in that order because it makes sense to run # "make check" in that particular order. # If --enable-gold is used, "gold" may replace "ld". -host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gprof etc expect dejagnu m4 utils guile fastjar gnattools" +host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gprof etc expect dejagnu m4 utils guile fastjar gnattools libcc1" # libgcj represents the runtime libraries only used by gcj. libgcj="target-libffi \ @@ -157,6 +156,7 @@ target_libraries="target-libgcc \ target-newlib \ target-libgomp \ target-libcilkrts \ + target-liboffloadmic \ target-libatomic \ target-libitm \ target-libstdc++-v3 \ @@ -286,6 +286,22 @@ case ${with_newlib} in yes) skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` ;; esac +AC_ARG_ENABLE(as-accelerator-for, +[AS_HELP_STRING([--enable-as-accelerator-for=ARG], + [build as offload target compiler. + Specify offload host triple by ARG])]) + +AC_ARG_ENABLE(offload-targets, +[AS_HELP_STRING([--enable-offload-targets=LIST], + [enable offloading to devices from comma-separated LIST of + TARGET[=DIR]. Use optional path to find offload target compiler + during the build])], +[ + if test x"$enable_offload_targets" = x; then + AC_MSG_ERROR([no offload targets specified]) + fi +], [enable_offload_targets=]) + # Handle --enable-gold, --enable-ld. # --disable-gold [--enable-ld] # Build only ld. Default option. @@ -331,7 +347,8 @@ case "${ENABLE_GOLD}" in if test "$is_elf" = "yes"; then # Check for target supported by gold. case "${target}" in - i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-* | tilegx*-*-*) + i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-* \ + | aarch64*-*-* | tilegx*-*-*) configdirs="$configdirs gold" if test x${ENABLE_GOLD} = xdefault; then default_ld=gold @@ -435,9 +452,45 @@ AS_HELP_STRING([--disable-libstdcxx], ENABLE_LIBSTDCXX=$enableval, ENABLE_LIBSTDCXX=default) [if test "${ENABLE_LIBSTDCXX}" = "no" ; then - noconfigdirs="$noconfigdirs libstdc++-v3" + noconfigdirs="$noconfigdirs target-libstdc++-v3" fi] +# If this is accelerator compiler and its target is intelmic we enable +# target liboffloadmic by default. If this is compiler with offloading +# for intelmic we enable host liboffloadmic by default. Otherwise +# liboffloadmic is disabled by default. +AC_ARG_ENABLE([liboffloadmic], +AC_HELP_STRING([[--enable-liboffloadmic[=ARG]]], + [build liboffloadmic @<:@ARG={no,host,target}@:>@]), +[case "$enableval" in + no | host | target) + enable_liboffloadmic=$enableval ;; + *) + AC_MSG_ERROR([--enable-liboffloadmic=no/host/target]) ;; +esac], +[if test x"$enable_as_accelerator_for" != x; then + case "${target}" in + *-intelmic-* | *-intelmicemul-*) + enable_liboffloadmic=target + extra_liboffloadmic_configure_flags="--enable-liboffloadmic=target" + ;; + *) + enable_liboffloadmic=no + ;; + esac +else + case "${enable_offload_targets}" in + *-intelmic-* | *-intelmicemul-*) + enable_liboffloadmic=host + extra_liboffloadmic_configure_flags="--enable-liboffloadmic=host" + ;; + *) + enable_liboffloadmic=no + ;; + esac +fi]) +AC_SUBST(extra_liboffloadmic_configure_flags) + # 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 @@ -523,6 +576,22 @@ if test -d ${srcdir}/libcilkrts; then fi fi +# Disable liboffloadmic on unsupported systems. +if test -d ${srcdir}/liboffloadmic; then + if test x$enable_liboffloadmic != xno; then + AC_MSG_CHECKING([for liboffloadmic support]) + if (srcdir=${srcdir}/liboffloadmic; \ + . ${srcdir}/configure.tgt; \ + test -n "$UNSUPPORTED") + then + AC_MSG_RESULT([no]) + noconfigdirs="$noconfigdirs target-liboffloadmic" + else + AC_MSG_RESULT([yes]) + fi + fi +fi + # Disable libitm on unsupported systems. if test -d ${srcdir}/libitm; then if test x$enable_libitm = x; then @@ -598,6 +667,10 @@ case "${target}" in # for explicit misaligned loads. noconfigdirs="$noconfigdirs target-libssp" ;; + visium-*-*) + # No hosted I/O support. + noconfigdirs="$noconfigdirs target-libssp" + ;; esac # Disable libstdc++-v3 for some systems. @@ -710,6 +783,9 @@ case "${target}" in alpha*-*-*vms*) noconfigdirs="$noconfigdirs ${libgcj}" ;; + arm*-*-freebsd*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; arm-wince-pe) noconfigdirs="$noconfigdirs ${libgcj}" ;; @@ -768,7 +844,15 @@ case "${target}" in ;; *-*-lynxos*) noconfigdirs="$noconfigdirs ${libgcj}" - ;; + ;; +esac + +# Disable the go frontend on systems where it is known to not work. Please keep +# this in sync with contrib/config-list.mk. +case "${target}" in +*-*-darwin* | *-*-cygwin* | *-*-mingw* | *-*-aix*) + unsupported_languages="$unsupported_languages go" + ;; esac # Disable libgo for some systems where it is known to not work. @@ -931,6 +1015,10 @@ case "${target}" in ;; *-*-rtems*) noconfigdirs="$noconfigdirs target-libgloss" + # this is not caught below because this stanza matches earlier + case $target in + or1k*-*-*) noconfigdirs="$noconfigdirs gdb" ;; + esac ;; # The tpf target doesn't support gdb yet. *-*-tpf*) @@ -1106,7 +1194,7 @@ case "${target}" in microblaze*) noconfigdirs="$noconfigdirs gprof" ;; - mips*-sde-elf* | mips*-mti-elf*) + mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*) if test x$with_newlib = xyes; then noconfigdirs="$noconfigdirs gprof" fi @@ -1129,6 +1217,16 @@ case "${target}" in mips*-*-*) noconfigdirs="$noconfigdirs gprof" ;; + nds32*-*-*) + noconfigdirs="$noconfigdirs gdb" + ;; + nvptx*-*-*) + # nvptx is just a compiler + noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc" + ;; + or1k*-*-*) + noconfigdirs="$noconfigdirs gdb" + ;; sh-*-* | sh64-*-*) case "${target}" in sh*-*-elf) @@ -1177,6 +1275,9 @@ case "${host}" in *-mingw*) host_makefile_frag="config/mh-mingw" ;; + alpha*-*-linux*) + host_makefile_frag="config/mh-alpha-linux" + ;; hppa*-hp-hpux10*) host_makefile_frag="config/mh-pa-hpux10" ;; @@ -1624,16 +1725,9 @@ AC_ARG_WITH(boot-ldflags, fi]) AC_SUBST(poststage1_ldflags) -# 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 +# GCC GRAPHITE dependency ISL. +# Basic setup is inlined here, actual checks are in 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], @@ -1641,59 +1735,29 @@ AC_ARG_WITH(isl, 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 +# Treat --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 +if test "x$with_isl" != "xno"; then # Check for ISL dnl Provide configure switches and initialize islinc & isllibs dnl with user input. ISL_INIT_FLAGS dnl The versions of ISL that work for Graphite - ISL_CHECK_VERSION(0,10) - if test "${gcc_cv_isl}" = no ; then - ISL_CHECK_VERSION(0,11) - if test "${gcc_cv_isl}" = no ; then - ISL_CHECK_VERSION(0,12) - fi - fi + ISL_CHECK_VERSION() 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 versions of CLooG that work for Graphite. - CLOOG_CHECK_VERSION(0,17,0) - if test "${gcc_cv_cloog}" = no ; then - CLOOG_CHECK_VERSION(0,18,0) - fi - - 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 fi -# If either the ISL or the CLooG check failed, disable builds of in-tree -# variants of both +# If the ISL check failed, disable builds of in-tree variant of ISL 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" + noconfigdirs="$noconfigdirs isl" islinc= - clooginc= - clooglibs= fi +AC_SUBST(isllibs) AC_SUBST(islinc) -AC_SUBST(clooglibs) -AC_SUBST(clooginc) - # Check for LTO support. AC_ARG_ENABLE(lto, @@ -1731,6 +1795,19 @@ ACX_ELF_TARGET_IFELSE([# ELF platforms build the lto-plugin always. esac ]) +AC_ARG_ENABLE(linker-plugin-configure-flags, + [AS_HELP_STRING([[--enable-linker-plugin-configure-flags=FLAGS]], + [additional flags for configuring linker plugins @<:@none@:>@])], + extra_linker_plugin_configure_flags=$enableval, + extra_linker_plugin_configure_flags=) +AC_SUBST(extra_linker_plugin_configure_flags) +AC_ARG_ENABLE(linker-plugin-flags, + [AS_HELP_STRING([[--enable-linker-plugin-flags=FLAGS]], + [additional flags for configuring and building linker plugins @<:@none@:>@])], + extra_linker_plugin_flags=$enableval, + extra_linker_plugin_flags=) +AC_SUBST(extra_linker_plugin_flags) + # By default, C and C++ are the only stage 1 languages. stage1_languages=,c, @@ -1831,7 +1908,6 @@ if test -d ${srcdir}/gcc; then new_enable_languages=,c, # If LTO is enabled, add the LTO front end. - extra_host_libiberty_configure_flags= if test "$enable_lto" = "yes" ; then case ,${enable_languages}, in *,lto,*) ;; @@ -1839,10 +1915,8 @@ if test -d ${srcdir}/gcc; then esac if test "${build_lto_plugin}" = "yes" ; then configdirs="$configdirs lto-plugin" - extra_host_libiberty_configure_flags=--enable-shared fi fi - AC_SUBST(extra_host_libiberty_configure_flags) missing_languages=`echo ",$enable_languages," | sed -e s/,all,/,/ -e s/,c,/,/ ` potential_languages=,c, @@ -2057,11 +2131,19 @@ case ,${enable_languages},:${enable_objc_gc} in ;; esac -# Disable libitm, libsanitizer, libvtv if we're not building C++ +# Disable libcilkrts, libitm, libsanitizer, libvtv, liboffloadmic if we're not building C++ case ,${enable_languages}, in - *,c++,*) ;; + *,c++,*) + # Disable libcilkrts, libitm, libsanitizer if we're not building libstdc++ + case "${noconfigdirs}" in + *target-libstdc++-v3*) + noconfigdirs="$noconfigdirs target-libcilkrts target-libitm target-libsanitizer" + ;; + *) ;; + esac + ;; *) - noconfigdirs="$noconfigdirs target-libcilkrts target-libitm target-libsanitizer target-libvtv" + noconfigdirs="$noconfigdirs target-libcilkrts target-liboffloadmic target-libitm target-libsanitizer target-libvtv" ;; esac @@ -2133,6 +2215,32 @@ for i in ${target_configdirs_all} ; do fi done +# libiberty-linker-plugin is special: it doesn't have its own source directory, +# so we have to add it after the preceding checks. +if test x"$extra_linker_plugin_flags$extra_linker_plugin_configure_flags" != x +then + case " $configdirs " in + *" libiberty "*) + # If we can build libiberty, we can also build libiberty-linker-plugin. + configdirs="$configdirs libiberty-linker-plugin" + extra_linker_plugin_configure_flags="$extra_linker_plugin_configure_flags \ + --with-libiberty=../libiberty-linker-plugin";; + *) + AC_MSG_ERROR([libiberty missing]);; + esac +fi + +# Sometimes we have special requirements for the host libiberty. +extra_host_libiberty_configure_flags= +case " $configdirs " in + *" lto-plugin "* | *" libcc1 "*) + # When these are to be built as shared libraries, the same applies to + # libiberty. + extra_host_libiberty_configure_flags=--enable-shared + ;; +esac +AC_SUBST(extra_host_libiberty_configure_flags) + # Produce a warning message for the subdirs we can't configure. # This isn't especially interesting in the Cygnus tree, but in the individual # FSF releases, it's important to let people know when their machine isn't @@ -2361,7 +2469,7 @@ case "${target}" in spu-*-*) target_makefile_frag="config/mt-spu" ;; - mips*-sde-elf* | mips*-mti-elf*) + mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*) target_makefile_frag="config/mt-sde" ;; mipsisa*-*-elfoabi*) @@ -2370,6 +2478,9 @@ case "${target}" in mips*-*-*linux* | mips*-*-gnu*) target_makefile_frag="config/mt-mips-gnu" ;; + nios2-*-elf*) + target_makefile_frag="config/mt-nios2-elf" + ;; *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu) target_makefile_frag="config/mt-gnu" ;; @@ -2779,7 +2890,7 @@ changequote(,) changequote([,]) case $lib in - mpc | mpfr | gmp | cloog) + mpc | mpfr | gmp | isl) # 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 @@ -2875,8 +2986,10 @@ AC_ARG_VAR([target_configargs], # For the build-side libraries, we just need to pretend we're native, # and not use the same cache file. Multilibs are neither needed nor -# desired. -build_configargs="$build_configargs --cache-file=../config.cache ${baseargs}" +# desired. We can't even use the same cache file for all build-side +# libraries, as they're compiled differently; some with C, some with +# C++ or with different feature-enabling options. +build_configargs="$build_configargs --cache-file=./config.cache ${baseargs}" # For host modules, accept cache file option, or specification as blank. case "${cache_file}" in @@ -3218,6 +3331,7 @@ ACX_CHECK_INSTALLED_TARGET_TOOL(DLLTOOL_FOR_TARGET, dlltool) ACX_CHECK_INSTALLED_TARGET_TOOL(LD_FOR_TARGET, ld) ACX_CHECK_INSTALLED_TARGET_TOOL(LIPO_FOR_TARGET, lipo) ACX_CHECK_INSTALLED_TARGET_TOOL(NM_FOR_TARGET, nm) +ACX_CHECK_INSTALLED_TARGET_TOOL(OBJCOPY_FOR_TARGET, objcopy) ACX_CHECK_INSTALLED_TARGET_TOOL(OBJDUMP_FOR_TARGET, objdump) ACX_CHECK_INSTALLED_TARGET_TOOL(RANLIB_FOR_TARGET, ranlib) ACX_CHECK_INSTALLED_TARGET_TOOL(READELF_FOR_TARGET, readelf) @@ -3248,6 +3362,7 @@ GCC_TARGET_TOOL(gccgo, GOC_FOR_TARGET, GOC, GCC_TARGET_TOOL(ld, LD_FOR_TARGET, LD, [ld/ld-new]) GCC_TARGET_TOOL(lipo, LIPO_FOR_TARGET, LIPO) GCC_TARGET_TOOL(nm, NM_FOR_TARGET, NM, [binutils/nm-new]) +GCC_TARGET_TOOL(objcopy, OBJCOPY_FOR_TARGET, OBJCOPY, [binutils/objcopy]) GCC_TARGET_TOOL(objdump, OBJDUMP_FOR_TARGET, OBJDUMP, [binutils/objdump]) GCC_TARGET_TOOL(ranlib, RANLIB_FOR_TARGET, RANLIB, [binutils/ranlib]) GCC_TARGET_TOOL(readelf, READELF_FOR_TARGET, READELF, [binutils/readelf])