X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=configure.ac;h=a910c4fd6ba7a58f54e29a16fe842e38da5602dd;hb=refs%2Fheads%2Fconcurrent-displaced-stepping-2020-04-01;hp=4bb4865d84fa9cb003d450864d00db21c3201876;hpb=6d26190c13397c3bfadac3b65d46ef47523aaff7;p=deliverable%2Fbinutils-gdb.git diff --git a/configure.ac b/configure.ac index 4bb4865d84..a910c4fd6b 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, 2016, 2019, 2020 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 @@ -23,16 +23,15 @@ m4_include(config/acx.m4) m4_include(config/override.m4) m4_include(config/proginstall.m4) m4_include(config/elf.m4) +m4_include(config/debuginfod.m4) m4_include([libtool.m4]) m4_include([ltoptions.m4]) 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) AC_DISABLE_OPTION_CHECKING progname=$0 @@ -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 libctf" # these tools are built for the host environment # Note, the powerpc-eabi build depends on sim occurring before gdb in order to @@ -141,12 +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" - -# libgcj represents the runtime libraries only used by gcj. -libgcj="target-libffi \ - target-zlib \ - target-libjava" +host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gdbserver gprof etc expect dejagnu m4 utils guile fastjar gnattools libcc1 gotools" # these libraries are built for the target environment, and are built after # the host libraries and the host tools (which may be a cross compiler) @@ -156,7 +150,8 @@ target_libraries="target-libgcc \ target-libgloss \ target-newlib \ target-libgomp \ - target-libcilkrts \ + target-liboffloadmic \ + target-libhsail-rt \ target-libatomic \ target-libitm \ target-libstdc++-v3 \ @@ -165,8 +160,7 @@ target_libraries="target-libgcc \ target-libssp \ target-libquadmath \ target-libgfortran \ - target-boehm-gc \ - ${libgcj} \ + target-libffi \ target-libobjc \ target-libada \ target-libgo" @@ -244,12 +238,20 @@ if test x$with_gnu_as = xno ; then fi use_included_zlib= +AC_ARG_WITH(system-zlib, +[AS_HELP_STRING([--with-system-zlib], [use installed libz])]) # Make sure we don't let ZLIB be added if we didn't want it. if test x$with_system_zlib = xyes ; then use_included_zlib=no noconfigdirs="$noconfigdirs zlib" fi +# Don't compile the bundled readline/libreadline.a if --with-system-readline +# is provided. +if test x$with_system_readline = xyes ; then + noconfigdirs="$noconfigdirs readline" +fi + # some tools are so dependent upon X11 that if we're not building with X, # it's not even worth trying to configure, much less build, that tool. @@ -286,6 +288,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. @@ -332,7 +350,7 @@ case "${ENABLE_GOLD}" in # Check for target supported by gold. case "${target}" in i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-* \ - | aarch64*-*-* | tilegx*-*-*) + | aarch64*-*-* | tilegx*-*-* | mips*-*-* | s390*-*-*) configdirs="$configdirs gold" if test x${ENABLE_GOLD} = xdefault; then default_ld=gold @@ -374,6 +392,19 @@ case "${ENABLE_LD}" in ;; esac +# PR gas/19109 +# Decide the default method for compressing debug sections. +# Provide a configure time option to override our default. +AC_ARG_ENABLE(compressed_debug_sections, +[AS_HELP_STRING([--enable-compressed-debug-sections={all,gas,gold,ld,none}], + [Enable compressed debug sections for gas, gold or ld by + default])], +[ + if test x"$enable_compressed_debug_sections" = xyes; then + AC_MSG_ERROR([no program with compressed debug sections specified]) + fi +], [enable_compressed_debug_sections=]) + # Configure extra directories which are host specific case "${host}" in @@ -436,47 +467,47 @@ 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] -# 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 -case $enable_libgcj in -yes) - # If we reset it here, it won't get added to noconfigdirs in the - # target-specific build rules, so it will be forcibly enabled - # (unless the Java language itself isn't enabled). - libgcj= - ;; -no) - # Make sure we get it printed in the list of not supported target libs. - # Don't disable libffi, though, other languages use it. - noconfigdirs="$noconfigdirs `echo ${libgcj} | sed -e 's/target-libffi//'`" - # Clear libgcj_saved so that even if java is enabled libffi won't be - # built. - libgcj_saved= - ;; -esac - -AC_ARG_ENABLE(static-libjava, -[AS_HELP_STRING([[--enable-static-libjava[=ARG]]], - [build static libjava @<:@default=no@:>@])], -ENABLE_STATIC_LIBJAVA=$enableval, -ENABLE_STATIC_LIBJAVA=no) -enable_static_libjava= -if test "${ENABLE_STATIC_LIBJAVA}" = "yes" ; then - enable_static_libjava=yes -fi - -if test x$enable_static_libjava != xyes ; then - EXTRA_CONFIGARGS_LIBJAVA=--disable-static -fi -AC_SUBST(EXTRA_CONFIGARGS_LIBJAVA) +# 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) -# Disable libgomp on non POSIX hosted systems. +# Enable libgomp by default on hosted POSIX systems, and a few others. if test x$enable_libgomp = x ; then - # Enable libgomp by default on hosted POSIX systems. case "${target}" in *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu) ;; @@ -486,6 +517,8 @@ if test x$enable_libgomp = x ; then ;; *-*-darwin* | *-*-aix*) ;; + nvptx*-*-*) + ;; *) noconfigdirs="$noconfigdirs target-libgomp" ;; @@ -508,16 +541,16 @@ if test -d ${srcdir}/libatomic; then fi fi -# Disable libcilkrts on unsupported systems. -if test -d ${srcdir}/libcilkrts; then - if test x$enable_libcilkrts = x; then - AC_MSG_CHECKING([for libcilkrts support]) - if (srcdir=${srcdir}/libcilkrts; \ +# 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-libcilkrts" + noconfigdirs="$noconfigdirs target-liboffloadmic" else AC_MSG_RESULT([yes]) fi @@ -572,6 +605,26 @@ if test -d ${srcdir}/libvtv; then fi fi + +# Disable libhsail-rt on unsupported systems. +if test -d ${srcdir}/libhsail-rt; then + if test x$enable_libhsail_rt = x; then + AC_MSG_CHECKING([for libhsail-rt support]) + if (srcdir=${srcdir}/libhsail-rt; \ + . ${srcdir}/configure.tgt; \ + test -n "$UNSUPPORTED") + then + AC_MSG_RESULT([no]) + unsupported_languages="$unsupported_languages brig" + # This implicitly disables also target-libhsail-rt as it won't + # get added to the build without BRIG FE. + else + AC_MSG_RESULT([yes]) + fi + fi +fi + + # Disable libquadmath for some systems. case "${target}" in avr-*-*) @@ -599,6 +652,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. @@ -616,6 +673,9 @@ if test "${ENABLE_LIBSTDCXX}" = "default" ; then avr-*-*) noconfigdirs="$noconfigdirs target-libstdc++-v3" ;; + ft32-*-*) + noconfigdirs="$noconfigdirs target-libstdc++-v3" + ;; esac fi @@ -627,62 +687,7 @@ case "${target}" in ;; esac -# Disable Java if libffi is not supported. -case "${target}" in - aarch64-*-*) - ;; - alpha*-*-*) - ;; - arm*-*-*) - ;; - cris-*-*) - ;; - frv-*-*) - ;; - hppa*-*-linux*) - ;; - hppa*-*-hpux*) - ;; - i?86-*-*) - ;; - ia64*-*-*) - ;; - m32r*-*-*) - ;; - m68k-*-*) - ;; - mips*-*-rtems*) - ;; - mips*-*-linux*) - ;; - powerpc*-*-linux*) - ;; - powerpc-*-darwin*) - ;; - powerpc-*-aix* | rs6000-*-aix*) - ;; - powerpc-*-freebsd*) - ;; - powerpc64-*-freebsd*) - ;; - powerpc*-*-rtems*) - ;; - s390-*-* | s390x-*-*) - ;; - sh-*-* | sh[[34]]*-*-*) - ;; - sh64-*-* | sh5*-*-*) - ;; - sparc*-*-*) - ;; - x86_64-*-*) - ;; - *-*-*) - unsupported_languages="$unsupported_languages java" - ;; -esac - -# Disable Java, libgcj or related libraries for some systems. +# Disable libffi for some systems. case "${target}" in powerpc-*-darwin*) ;; @@ -691,87 +696,108 @@ case "${target}" in x86_64-*-darwin[[912]]*) ;; *-*-darwin*) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs target-libffi" ;; *-*-netware*) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs target-libffi" + ;; + *-*-phoenix*) + noconfigdirs="$noconfigdirs target-libffi" ;; *-*-rtems*) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs target-libffi" ;; *-*-tpf*) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs target-libffi" ;; *-*-uclinux*) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs target-libffi" ;; *-*-vxworks*) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs target-libffi" + ;; + aarch64*-*-freebsd*) + noconfigdirs="$noconfigdirs target-libffi" ;; alpha*-*-*vms*) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs target-libffi" + ;; + arm*-*-freebsd*) + noconfigdirs="$noconfigdirs target-libffi" ;; arm-wince-pe) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs target-libffi" ;; arm*-*-symbianelf*) - noconfigdirs="$noconfigdirs ${libgcj}" - ;; - bfin-*-*) - noconfigdirs="$noconfigdirs target-boehm-gc" + noconfigdirs="$noconfigdirs target-libffi" ;; cris-*-* | crisv32-*-*) - unsupported_languages="$unsupported_languages java" case "${target}" in *-*-linux*) ;; *) # See PR46792 regarding target-libffi. - noconfigdirs="$noconfigdirs target-libffi target-boehm-gc";; + noconfigdirs="$noconfigdirs target-libffi";; esac ;; - hppa*64*-*-linux*) - # In this case, it's because the hppa64-linux target is for - # the kernel only at this point and has no libc, and thus no - # headers, crt*.o, etc., all of which are needed by these. - unsupported_languages="$unsupported_languages java" - ;; hppa*64*-*-hpux*) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs target-libffi" ;; hppa*-hp-hpux11*) ;; hppa*-*-hpux*) - # According to Alexandre Oliva , libjava won't - # build on HP-UX 10.20. - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs target-libffi" ;; ia64*-*-*vms*) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs target-libffi" ;; i[[3456789]]86-w64-mingw*) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs target-libffi" ;; i[[3456789]]86-*-mingw*) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs target-libffi" ;; x86_64-*-mingw*) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs target-libffi" ;; mmix-*-*) - noconfigdirs="$noconfigdirs target-libffi target-boehm-gc" + noconfigdirs="$noconfigdirs target-libffi" ;; powerpc-*-aix*) - # copied from rs6000-*-* entry - noconfigdirs="$noconfigdirs ${libgcj}" ;; rs6000-*-aix*) - noconfigdirs="$noconfigdirs ${libgcj}" + ;; + ft32-*-*) + noconfigdirs="$noconfigdirs target-libffi" ;; *-*-lynxos*) - noconfigdirs="$noconfigdirs ${libgcj}" - ;; + noconfigdirs="$noconfigdirs target-libffi" + ;; 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*) + unsupported_languages="$unsupported_languages go" + ;; +esac + +# Only allow gdbserver on some systems. +if test -d ${srcdir}/gdbserver; then + if test x$enable_gdbserver = x; then + AC_MSG_CHECKING([for gdbserver support]) + if (srcdir=${srcdir}/gdbserver; \ + . ${srcdir}/configure.srv; \ + test -n "$UNSUPPORTED") + then + AC_MSG_RESULT([no]) + noconfigdirs="$noconfigdirs gdbserver" + else + AC_MSG_RESULT([yes]) + fi + fi +fi + # Disable libgo for some systems where it is known to not work. # For testing, you can easily override this with --enable-libgo. if test x$enable_libgo = x; then @@ -783,9 +809,6 @@ if test x$enable_libgo = x; then *-*-cygwin* | *-*-mingw*) noconfigdirs="$noconfigdirs target-libgo" ;; - *-*-aix*) - noconfigdirs="$noconfigdirs target-libgo" - ;; esac fi @@ -898,6 +921,14 @@ esac case "${target}" in *-*-chorusos) ;; + aarch64-*-darwin*) + noconfigdirs="$noconfigdirs ld gas gdb gprof" + noconfigdirs="$noconfigdirs sim target-rda" + ;; + arm-*-darwin*) + noconfigdirs="$noconfigdirs ld gas gdb gprof" + noconfigdirs="$noconfigdirs sim target-rda" + ;; powerpc-*-darwin*) noconfigdirs="$noconfigdirs ld gas gdb gprof" noconfigdirs="$noconfigdirs sim target-rda" @@ -930,12 +961,11 @@ case "${target}" in ;; *-*-netware*) ;; + *-*-phoenix*) + noconfigdirs="$noconfigdirs target-libgloss" + ;; *-*-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*) @@ -961,8 +991,8 @@ case "${target}" in sh*-*-pe|mips*-*-pe|*arm-wince-pe) noconfigdirs="$noconfigdirs tcl tk itcl libgui sim" ;; - arc-*-*|arceb-*-*) - noconfigdirs="$noconfigdirs target-libgloss" + arc*-*-*) + noconfigdirs="$noconfigdirs sim" ;; arm-*-pe*) noconfigdirs="$noconfigdirs target-libgloss" @@ -970,8 +1000,6 @@ 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" @@ -992,8 +1020,11 @@ case "${target}" in fr30-*-elf*) noconfigdirs="$noconfigdirs gdb" ;; + ft32-*-*) + noconfigdirs="$noconfigdirs target-rda gprof" + ;; moxie-*-*) - noconfigdirs="$noconfigdirs gprof" + noconfigdirs="$noconfigdirs" ;; h8300*-*-*) noconfigdirs="$noconfigdirs target-libgloss" @@ -1003,6 +1034,12 @@ case "${target}" in ;; hppa1.1-*-osf* | hppa1.1-*-bsd* ) ;; + hppa*64*-*-hpux*) + noconfigdirs="$noconfigdirs gdb" + ;; + hppa*-*-hpux11*) + noconfigdirs="$noconfigdirs gdb ld" + ;; hppa*64*-*-linux*) ;; hppa*-*-linux*) @@ -1012,9 +1049,6 @@ case "${target}" in hppa*-*-openbsd* | \ hppa*64*-*-*) ;; - hppa*-hp-hpux11*) - noconfigdirs="$noconfigdirs ld" - ;; hppa*-*-pro*) ;; hppa*-*-*) @@ -1029,7 +1063,7 @@ case "${target}" in ;; ia64*-**-hpux*) # No ld support yet. - noconfigdirs="$noconfigdirs libgui itcl ld" + noconfigdirs="$noconfigdirs gdb libgui itcl ld" ;; ia64*-*-*vms*) # No ld support yet. @@ -1079,6 +1113,13 @@ case "${target}" in mt-*-*) noconfigdirs="$noconfigdirs sim" ;; + nfp-*-*) + noconfigdirs="$noconfigdirs ld gas gdb gprof sim" + noconfigdirs="$noconfigdirs $target_libraries" + ;; + pdp11-*-*) + noconfigdirs="$noconfigdirs gdb gprof" + ;; powerpc-*-aix*) # copied from rs6000-*-* entry noconfigdirs="$noconfigdirs gprof" @@ -1134,13 +1175,10 @@ case "${target}" in mips*-*-*) noconfigdirs="$noconfigdirs gprof" ;; - nds32*-*-*) - noconfigdirs="$noconfigdirs gdb" - ;; - or1k*-*-*) - noconfigdirs="$noconfigdirs gdb" + nvptx*-*-*) + noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc" ;; - sh-*-* | sh64-*-*) + sh-*-*) case "${target}" in sh*-*-elf) ;; @@ -1165,6 +1203,9 @@ case "${target}" in vax-*-*) noconfigdirs="$noconfigdirs target-newlib target-libgloss" ;; + wasm32-*-*) + noconfigdirs="$noconfigdirs ld" + ;; esac # If we aren't building newlib, then don't build libgloss, since libgloss @@ -1188,6 +1229,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" ;; @@ -1214,7 +1258,6 @@ if test "${build}" != "${host}" ; then AS_FOR_BUILD=${AS_FOR_BUILD-as} CC_FOR_BUILD=${CC_FOR_BUILD-gcc} CXX_FOR_BUILD=${CXX_FOR_BUILD-g++} - GCJ_FOR_BUILD=${GCJ_FOR_BUILD-gcj} GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran} GOC_FOR_BUILD=${GOC_FOR_BUILD-gccgo} DLLTOOL_FOR_BUILD=${DLLTOOL_FOR_BUILD-dlltool} @@ -1228,7 +1271,6 @@ else AS_FOR_BUILD="\$(AS)" CC_FOR_BUILD="\$(CC)" CXX_FOR_BUILD="\$(CXX)" - GCJ_FOR_BUILD="\$(GCJ)" GFORTRAN_FOR_BUILD="\$(GFORTRAN)" GOC_FOR_BUILD="\$(GOC)" DLLTOOL_FOR_BUILD="\$(DLLTOOL)" @@ -1269,11 +1311,11 @@ if test "$GCC" = yes; then LDFLAGS="$LDFLAGS -static-libstdc++ -static-libgcc" AC_MSG_CHECKING([whether g++ accepts -static-libstdc++ -static-libgcc]) AC_LANG_PUSH(C++) - AC_LINK_IFELSE([ + AC_LINK_IFELSE([AC_LANG_SOURCE([ #if (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) #error -static-libstdc++ not implemented #endif -int main() {}], +int main() {}])], [AC_MSG_RESULT([yes]); have_static_libs=yes], [AC_MSG_RESULT([no])]) AC_LANG_POP(C++) @@ -1327,6 +1369,12 @@ case "$have_compiler:$host:$target:$enable_bootstrap" in ;; esac +# When bootstrapping with GCC, build stage 1 in C++98 mode to ensure that a +# C++98 compiler can still start the bootstrap. +if test "$enable_bootstrap:$GXX" = "yes:yes"; then + CXX="$CXX -std=gnu++98" +fi + # Used for setting $lt_cv_objdir _LT_CHECK_OBJDIR @@ -1335,6 +1383,9 @@ gmplibs="-lmpc -lmpfr -lgmp" gmpinc= have_gmp=no +# Check for debuginfod +AC_DEBUGINFOD + # Specify a location for mpc # check for this first so it ends up on the link line before mpfr. AC_ARG_WITH(mpc, @@ -1400,15 +1451,13 @@ if test "x$with_mpfr_lib" != x; then fi if test "x$with_mpfr$with_mpfr_include$with_mpfr_lib" = x && test -d ${srcdir}/mpfr; then # MPFR v3.1.0 moved the sources into a src sub-directory. - if test -d ${srcdir}/mpfr/src; then - gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/src/'"$lt_cv_objdir $gmplibs" - gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr/src -I$$s/mpfr/src '"$gmpinc" - extra_mpc_mpfr_configure_flags='--with-mpfr-include=$$s/mpfr/src --with-mpfr-lib=$$r/$(HOST_SUBDIR)/mpfr/src/'"$lt_cv_objdir" - else - gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir $gmplibs" - gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr -I$$s/mpfr '"$gmpinc" - extra_mpc_mpfr_configure_flags='--with-mpfr-include=$$s/mpfr --with-mpfr-lib=$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir" + if ! test -d ${srcdir}/mpfr/src; then + AC_MSG_ERROR([dnl +Building GCC with MPFR in the source tree is only handled for MPFR 3.1.0+.]) fi + gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/src/'"$lt_cv_objdir $gmplibs" + gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr/src -I$$s/mpfr/src '"$gmpinc" + extra_mpc_mpfr_configure_flags='--with-mpfr-include=$$s/mpfr/src --with-mpfr-lib=$$r/$(HOST_SUBDIR)/mpfr/src/'"$lt_cv_objdir" # Do not test the mpfr 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 @@ -1565,18 +1614,6 @@ 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, -[AS_HELP_STRING([--with-host-libstdcxx=L], - [use linker arguments L to link with libstdc++ - when linking with PPL])]) - -case $with_host_libstdcxx in - no|yes) - AC_MSG_ERROR([-with-host-libstdcxx needs an argument]) - ;; -esac - # Libraries to use for stage1 or when not bootstrapping. AC_ARG_WITH(stage1-libs, [AS_HELP_STRING([--with-stage1-libs=LIBS], [libraries for stage1])], @@ -1585,9 +1622,22 @@ AC_ARG_WITH(stage1-libs, else stage1_libs=$withval fi], -[stage1_libs=$with_host_libstdcxx]) +[stage1_libs=]) AC_SUBST(stage1_libs) +# Whether or not to use -static-libstdc++ and -static-libgcc. The +# default is yes if gcc is being built; no otherwise. The reason for +# this default is that gdb is sometimes linked against GNU Source +# Highlight, which is a shared library that uses C++ exceptions. In +# this case, -static-libstdc++ will cause crashes. +AC_ARG_WITH(static-standard-libraries, +[AS_HELP_STRING([--with-static-standard-libraries], + [use -static-libstdc++ and -static-libgcc (default=auto)])], +[], [with_static_standard_libraries=auto]) +if test "$with_static_standard_libraries" = auto; then + with_static_standard_libraries=$have_compiler +fi + # 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])], @@ -1600,13 +1650,13 @@ AC_ARG_WITH(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 + if test "$with_static_standard_libraries" = yes -a "$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. +# Libraries to use for stage2 and later builds. AC_ARG_WITH(boot-libs, [AS_HELP_STRING([--with-boot-libs=LIBS], [libraries for stage2 and later])], [if test "$withval" = "no" -o "$withval" = "yes"; then @@ -1614,7 +1664,7 @@ AC_ARG_WITH(boot-libs, else poststage1_libs=$withval fi], -[poststage1_libs=$with_host_libstdcxx]) +[poststage1_libs=]) AC_SUBST(poststage1_libs) # Linker flags to use for stage2 and later builds. @@ -1635,76 +1685,39 @@ 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], - [Specify prefix directory for the installed ISL package. + [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 +# 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 - # Check for ISL +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 - dnl Only execute fail-action, if ISL has been requested. + dnl The versions of isl that work for Graphite + 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 + AC_MSG_ERROR([Unable to find a usable isl. See config.log for details.])]) 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, @@ -1716,7 +1729,7 @@ ACX_ELF_TARGET_IFELSE([# ELF platforms build the lto-plugin always. build_lto_plugin=yes ],[if test x"$default_enable_lto" = x"yes" ; then case $target in - *-apple-darwin9* | *-cygwin* | *-mingw*) ;; + *-apple-darwin[[912]]* | *-cygwin* | *-mingw* | *djgpp*) ;; # On other non-ELF platforms, LTO has yet to be validated. *) enable_lto=no ;; esac @@ -1727,7 +1740,7 @@ ACX_ELF_TARGET_IFELSE([# ELF platforms build the lto-plugin always. # warn during gcc/ subconfigure; unless you're bootstrapping with # -flto it won't be needed until after installation anyway. case $target in - *-cygwin* | *-mingw* | *-apple-darwin*) ;; + *-cygwin* | *-mingw* | *-apple-darwin* | *djgpp*) ;; *) if test x"$enable_lto" = x"yes"; then AC_MSG_ERROR([LTO support is not enabled for this target.]) fi @@ -1742,6 +1755,26 @@ 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) + +# Enable --enable-host-shared. +# Checked early to determine whether jit is an 'all' language +AC_ARG_ENABLE(host-shared, +[AS_HELP_STRING([--enable-host-shared], + [build host code as shared libraries])], +[host_shared=$enableval], [host_shared=no]) +AC_SUBST(host_shared) # By default, C and C++ are the only stage 1 languages. stage1_languages=,c, @@ -1758,15 +1791,15 @@ if test -d ${srcdir}/gcc; then if test x"${enable_languages+set}" != xset; then if test x"${LANGUAGES+set}" = xset; then enable_languages="${LANGUAGES}" - echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2 + echo configure.ac: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2 else - enable_languages=all + enable_languages=default fi else if test x"${enable_languages}" = x || test x"${enable_languages}" = xyes; then - echo configure.in: --enable-languages needs at least one language argument 1>&2 + echo configure.ac: --enable-languages needs at least one language argument 1>&2 exit 1 fi fi @@ -1776,7 +1809,7 @@ if test -d ${srcdir}/gcc; then # and make the substitution. case ,${enable_languages}, in *,f95,*) - echo configure.in: warning: 'f95' as language name is deprecated, use 'fortran' instead 1>&2 + echo configure.ac: warning: 'f95' as language name is deprecated, use 'fortran' instead 1>&2 enable_languages=`echo "${enable_languages}" | sed -e 's/f95/fortran/g'` ;; esac @@ -1808,10 +1841,16 @@ if test -d ${srcdir}/gcc; then language= lang_requires= lang_requires_boot_languages= - . ${lang_frag} + # set srcdir during sourcing lang_frag to the gcc dir. + # Sadly overriding srcdir on the . line doesn't work in plain sh as it + # polutes this shell + saved_srcdir=${srcdir} + srcdir=${srcdir}/gcc . ${lang_frag} + srcdir=${saved_srcdir} for other in ${lang_requires} ${lang_requires_boot_languages}; do case ,${enable_languages}, in *,$other,*) ;; + *,default,*) ;; *,all,*) ;; *,$language,*) echo " \`$other' language required by \`$language'; enabling" 1>&2 @@ -1823,6 +1862,7 @@ if test -d ${srcdir}/gcc; then if test "$other" != "c"; then case ,${enable_stage1_languages}, in *,$other,*) ;; + *,default,*) ;; *,all,*) ;; *) case ,${enable_languages}, in @@ -1842,7 +1882,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,*) ;; @@ -1850,12 +1889,18 @@ 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,/,/ ` + # If we're building an offloading compiler, add the LTO front end. + if test x"$enable_as_accelerator_for" != x ; then + case ,${enable_languages}, in + *,lto,*) ;; + *) enable_languages="${enable_languages},lto" ;; + esac + fi + + missing_languages=`echo ",$enable_languages," | sed -e s/,default,/,/ -e s/,all,/,/ -e s/,c,/,/ ` potential_languages=,c, enabled_target_libs= @@ -1876,7 +1921,10 @@ if test -d ${srcdir}/gcc; then subdir_requires= boot_language=no build_by_default=yes - . ${lang_frag} + # set srcdir during sourcing. See above about save & restore + saved_srcdir=${srcdir} + srcdir=${srcdir}/gcc . ${lang_frag} + srcdir=${saved_srcdir} if test x${language} = x; then echo "${lang_frag} doesn't set \$language." 1>&2 exit 1 @@ -1887,30 +1935,36 @@ if test -d ${srcdir}/gcc; then fi add_this_lang=no - case ,${enable_languages}, in - *,${language},*) - # Language was explicitly selected; include it - # unless it is C, which is enabled by default. - if test "$language" != "c"; then + # C is always enabled, so no need to add it again + if test "$language" != "c"; then + case ,${enable_languages}, in + *,${language},*) + # Language was explicitly selected; include it add_this_lang=yes - fi - ;; - *,all,*) - # 'all' was selected, select it if it is a default language - if test "$language" != "c"; then + ;; + *,all,*) + # All languages are enabled + add_this_lang=all + ;; + *,default,*) + # 'default' was selected, select it if it is a default language add_this_lang=${build_by_default} - fi - ;; - esac + ;; + esac + fi # Disable languages that need other directories if these aren't available. for i in $subdir_requires; do test -f "$srcdir/gcc/$i/config-lang.in" && continue - case ,${enable_languages}, in - *,${language},*) + case ${add_this_lang} in + yes) # Specifically requested language; tell them. AC_MSG_ERROR([The gcc/$i directory contains parts of $language but is missing]) ;; + all) + AC_MSG_WARN([The gcc/$i directory contains parts of $language but is missing]) + add_this_lang=unsupported + ;; *) # Silently disable. add_this_lang=unsupported @@ -1919,20 +1973,52 @@ if test -d ${srcdir}/gcc; then done # Disable Ada if no preexisting GNAT is available. - case ,${enable_languages},:${language}:${have_gnat} in - *,${language},*:ada:no) + case ${add_this_lang}:${language}:${have_gnat} in + yes:ada:no) # Specifically requested language; tell them. AC_MSG_ERROR([GNAT is required to build $language]) ;; + all:ada:no) + AC_MSG_WARN([GNAT is required to build $language]) + add_this_lang=unsupported + ;; *:ada:no) # Silently disable. add_this_lang=unsupported ;; esac - # Disable a language that is unsupported by the target. - case " $unsupported_languages " in - *" $language "*) + # Disable jit if -enable-host-shared not specified + case ${add_this_lang}:${language}:${host_shared} in + yes:jit:no) + # PR jit/64780: explicitly specify --enable-host-shared + AC_MSG_ERROR([ +Enabling language "jit" requires --enable-host-shared. + +--enable-host-shared typically slows the rest of the compiler down by +a few %, so you must explicitly enable it. + +If you want to build both the jit and the regular compiler, it is often +best to do this via two separate configure/builds, in separate +directories, to avoid imposing the performance cost of +--enable-host-shared on the regular compiler.]) + ;; + all:jit:no) + AC_MSG_WARN([--enable-host-shared required to build $language]) + add_this_lang=unsupported + ;; + *:jit:no) + # Silently disable. + add_this_lang=unsupported + ;; + esac + + # Disable a language that is unsupported by the target. + case "${add_this_lang}: $unsupported_languages " in + no:*) ;; + unsupported:*) ;; + *:*" $language "*) + AC_MSG_WARN([${language} not supported for this target]) add_this_lang=unsupported ;; esac @@ -1949,7 +2035,7 @@ if test -d ${srcdir}/gcc; then noconfigdirs="$noconfigdirs $lang_dirs" potential_languages="${potential_languages}${language}," ;; - yes) + all|yes) new_enable_languages="${new_enable_languages}${language}," potential_languages="${potential_languages}${language}," missing_languages=`echo "$missing_languages" | sed "s/,$language,/,/"` @@ -2048,31 +2134,49 @@ done AC_ARG_ENABLE(objc-gc, [AS_HELP_STRING([--enable-objc-gc], [enable use of Boehm's garbage collector with the - GNU Objective-C runtime])], -[case ,${enable_languages},:${enable_objc_gc}:${noconfigdirs} in - *,objc,*:*:yes:*target-boehm-gc*) - AC_MSG_ERROR([Boehm's garbage collector was requested yet not supported in this configuration]) - ;; -esac]) - -# Make sure we only build Boehm's garbage collector if required. -case ,${enable_languages},:${enable_objc_gc} in - *,objc,*:yes) - # Keep target-boehm-gc if requested for Objective-C. - ;; - *) - # Otherwise remove target-boehm-gc depending on target-libjava. - if echo " ${noconfigdirs} " | grep "target-libjava" >/dev/null 2>&1; then - noconfigdirs="$noconfigdirs target-boehm-gc" + GNU Objective-C runtime])]) +AC_ARG_WITH([target-bdw-gc], +[AS_HELP_STRING([--with-target-bdw-gc=PATHLIST], + [specify prefix directory for installed bdw-gc package. + Equivalent to --with-target-bdw-gc-include=PATH/include + plus --with-target-bdw-gc-lib=PATH/lib])]) +AC_ARG_WITH([target-bdw-gc-include], +[AS_HELP_STRING([--with-target-bdw-gc-include=PATHLIST], + [specify directories for installed bdw-gc include files])]) +AC_ARG_WITH([target-bdw-gc-lib], +[AS_HELP_STRING([--with-target-bdw-gc-lib=PATHLIST], + [specify directories for installed bdw-gc library])]) + +case ,${enable_languages},:${enable_objc_gc} in *,objc,*:yes|*,objc,*:auto) + AC_MSG_CHECKING([for bdw garbage collector]) + if test "x$with_target_bdw_gc$with_target_bdw_gc_include$with_target_bdw_gc_lib" = x; then + dnl no bdw-gw options, assume default locations + AC_MSG_RESULT([using bdw-gc in default locations]) + else + dnl bdw-gw options, first error checking, complete checking in libobjc + if test "x$with_target_bdw_gc_include" = x && test "x$with_target_bdw_gc_lib" != x; then + AC_MSG_ERROR([found --with-target-bdw-gc-lib but --with-target-bdw-gc-include missing]) + elif test "x$with_target_bdw_gc_include" != x && test "x$with_target_bdw_gc_lib" = x; then + AC_MSG_ERROR([found --with-target-bdw-gc-include but --with-target-bdw-gc-lib missing]) + else + AC_MSG_RESULT([using paths configured with --with-target-bdw-gc options]) fi - ;; + fi esac -# Disable libitm, libsanitizer, libvtv if we're not building C++ +# Disable libitm, libsanitizer, libvtv, liboffloadmic if we're not building C++ case ,${enable_languages}, in - *,c++,*) ;; + *,c++,*) + # Disable libitm, libsanitizer if we're not building libstdc++ + case "${noconfigdirs}" in + *target-libstdc++-v3*) + noconfigdirs="$noconfigdirs target-libitm target-libsanitizer" + ;; + *) ;; + esac + ;; *) - noconfigdirs="$noconfigdirs target-libcilkrts target-libitm target-libsanitizer target-libvtv" + noconfigdirs="$noconfigdirs target-liboffloadmic target-libitm target-libsanitizer target-libvtv" ;; esac @@ -2144,6 +2248,41 @@ 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= +extra_host_zlib_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 + ;; + *" bfd "*) + # When bfd is to be built as a shared library, the same applies to + # zlib. + if test "$enable_shared" = "yes"; then + extra_host_zlib_configure_flags=--enable-host-shared + fi + ;; +esac +AC_SUBST(extra_host_libiberty_configure_flags) +AC_SUBST(extra_host_zlib_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 @@ -2217,28 +2356,36 @@ AC_SUBST(DEBUG_PREFIX_CFLAGS_FOR_TARGET) # gcc) are built with "-O2 -g", so include those options when setting # CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET. if test "x$CFLAGS_FOR_TARGET" = x; then - CFLAGS_FOR_TARGET=$CFLAGS - case " $CFLAGS " in - *" -O2 "*) ;; - *) CFLAGS_FOR_TARGET="-O2 $CFLAGS_FOR_TARGET" ;; - esac - case " $CFLAGS " in - *" -g "* | *" -g3 "*) ;; - *) CFLAGS_FOR_TARGET="-g $CFLAGS_FOR_TARGET" ;; - esac + if test "x${is_cross_compiler}" = xyes; then + CFLAGS_FOR_TARGET="-g -O2" + else + CFLAGS_FOR_TARGET=$CFLAGS + case " $CFLAGS " in + *" -O2 "*) ;; + *) CFLAGS_FOR_TARGET="-O2 $CFLAGS_FOR_TARGET" ;; + esac + case " $CFLAGS " in + *" -g "* | *" -g3 "*) ;; + *) CFLAGS_FOR_TARGET="-g $CFLAGS_FOR_TARGET" ;; + esac + fi fi AC_SUBST(CFLAGS_FOR_TARGET) if test "x$CXXFLAGS_FOR_TARGET" = x; then - CXXFLAGS_FOR_TARGET=$CXXFLAGS - case " $CXXFLAGS " in - *" -O2 "*) ;; - *) CXXFLAGS_FOR_TARGET="-O2 $CXXFLAGS_FOR_TARGET" ;; - esac - case " $CXXFLAGS " in - *" -g "* | *" -g3 "*) ;; - *) CXXFLAGS_FOR_TARGET="-g $CXXFLAGS_FOR_TARGET" ;; - esac + if test "x${is_cross_compiler}" = xyes; then + CXXFLAGS_FOR_TARGET="-g -O2" + else + CXXFLAGS_FOR_TARGET=$CXXFLAGS + case " $CXXFLAGS " in + *" -O2 "*) ;; + *) CXXFLAGS_FOR_TARGET="-O2 $CXXFLAGS_FOR_TARGET" ;; + esac + case " $CXXFLAGS " in + *" -g "* | *" -g3 "*) ;; + *) CXXFLAGS_FOR_TARGET="-g $CXXFLAGS_FOR_TARGET" ;; + esac + fi fi AC_SUBST(CXXFLAGS_FOR_TARGET) @@ -2282,7 +2429,7 @@ fi # have requested that this magic not happen. # # The command line options always override the explicit settings in -# configure.in, and the settings in configure.in override this magic. +# configure.ac, and the settings in configure.ac override this magic. # # If the default for a toolchain is to use GNU as and ld, and you don't # want to do that, then you should use the --without-gnu-as and @@ -2384,6 +2531,9 @@ case "${target}" in nios2-*-elf*) target_makefile_frag="config/mt-nios2-elf" ;; + *-*-linux-android*) + target_makefile_frag="config/mt-android" + ;; *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu) target_makefile_frag="config/mt-gnu" ;; @@ -2416,7 +2566,7 @@ case "${enable_target_optspace}:${target}" in :d30v-*) ospace_frag="config/mt-d30v" ;; - :m32r-* | :d10v-* | :fr30-*) + :m32r-* | :d10v-* | :fr30-* | :i?86*-*-elfiamcu) ospace_frag="config/mt-ospace" ;; no:* | :*) @@ -2533,7 +2683,8 @@ AC_SUBST(BUILD_CONFIG) # Use same top-level configure hooks in libgcc/libstdc++/libvtv. AC_MSG_CHECKING([for --enable-vtable-verify]) AC_ARG_ENABLE(vtable-verify, -[ --enable-vtable-verify Enable vtable verification feature ], +[AS_HELP_STRING([--enable-vtable-verify], + [Enable vtable verification feature])], [case "$enableval" in yes) enable_vtable_verify=yes ;; no) enable_vtable_verify=no ;; @@ -2598,6 +2749,18 @@ esac CONFIGURE_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-configure-/g` INSTALL_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-install-/g` +# gdb and gdbserver depend on gnulib and gdbsupport, but as nothing +# else does, only include them if one of these is built. The Makefile +# provides the ordering, so it's enough here to add to the list. +case " ${configdirs} " in + *\ gdb\ *) + configdirs="${configdirs} gnulib gdbsupport" + ;; + *\ gdbserver\ *) + configdirs="${configdirs} gnulib gdbsupport" + ;; +esac + # Strip out unwanted targets. # While at that, we remove Makefiles if we were started for recursive @@ -2610,7 +2773,9 @@ INSTALL_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-install-/g` # extrasub-{build,host,target} not because there is any reason to split # the substitutions up that way, but only to remain below the limit of # 99 commands in a script, for HP-UX sed. -# Do not nest @if/@endif pairs, because configure will not warn you at all. + +# Do not nest @if/@endif or @unless/@endunless pairs, because +# configure will not warn you at all. case "$enable_bootstrap:$ENABLE_GOLD: $configdirs :,$stage1_languages," in yes:yes:*\ gold\ *:*,c++,*) ;; @@ -2629,8 +2794,10 @@ for module in ${build_configdirs} ; do extrasub_build="$extrasub_build /^@if build-$module\$/d /^@endif build-$module\$/d +/^@unless build-$module\$/,/^@endunless build-$module\$/d /^@if build-$module-$bootstrap_suffix\$/d -/^@endif build-$module-$bootstrap_suffix\$/d" +/^@endif build-$module-$bootstrap_suffix\$/d +/^@unless build-$module-$bootstrap_suffix\$/,/^@endunless build-$module-$bootstrap_suffix\$/d" done extrasub_host= for module in ${configdirs} ; do @@ -2649,8 +2816,10 @@ for module in ${configdirs} ; do extrasub_host="$extrasub_host /^@if $module\$/d /^@endif $module\$/d +/^@unless $module\$/,/^@endunless $module\$/d /^@if $module-$host_bootstrap_suffix\$/d -/^@endif $module-$host_bootstrap_suffix\$/d" +/^@endif $module-$host_bootstrap_suffix\$/d +/^@unless $module-$host_bootstrap_suffix\$/,/^@endunless $module-$host_bootstrap_suffix\$/d" done extrasub_target= for module in ${target_configdirs} ; do @@ -2669,13 +2838,17 @@ for module in ${target_configdirs} ; do extrasub_target="$extrasub_target /^@if target-$module\$/d /^@endif target-$module\$/d +/^@unless target-$module\$/,/^@endunless target-$module\$/d /^@if target-$module-$target_bootstrap_suffix\$/d -/^@endif target-$module-$target_bootstrap_suffix\$/d" +/^@endif target-$module-$target_bootstrap_suffix\$/d +/^@unless target-$module-$target_bootstrap_suffix\$/,/^@endunless target-$module-$target_bootstrap_suffix\$/d" done # Do the final fixup along with target modules. extrasub_target="$extrasub_target -/^@if /,/^@endif /d" +/^@if /,/^@endif /d +/^@unless /d +/^@endunless /d" # Create the serialization dependencies. This uses a temporary file. @@ -2793,7 +2966,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 @@ -2889,8 +3062,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 @@ -2921,7 +3096,7 @@ fi # multilib is not explicitly enabled. case "$target:$have_compiler:$host:$target:$enable_multilib" in x86_64-*linux*:yes:$build:$build:) - # Make sure we have a developement environment that handles 32-bit + # Make sure we have a development environment that handles 32-bit dev64=no echo "int main () { return 0; }" > conftest.c ${CC} -m32 -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c @@ -2932,7 +3107,7 @@ case "$target:$have_compiler:$host:$target:$enable_multilib" in fi rm -f conftest* if test x${dev64} != xyes ; then - AC_MSG_ERROR([I suspect your system does not have 32-bit developement libraries (libc and headers). If you have them, rerun configure with --enable-multilib. If you do not have them, and want to build a 64-bit-only compiler, rerun configure with --disable-multilib.]) + AC_MSG_ERROR([I suspect your system does not have 32-bit development libraries (libc and headers). If you have them, rerun configure with --enable-multilib. If you do not have them, and want to build a 64-bit-only compiler, rerun configure with --disable-multilib.]) fi ;; esac @@ -3112,7 +3287,6 @@ AC_SUBST(CFLAGS_FOR_BUILD) AC_SUBST(CXXFLAGS_FOR_BUILD) AC_SUBST(CXX_FOR_BUILD) AC_SUBST(DLLTOOL_FOR_BUILD) -AC_SUBST(GCJ_FOR_BUILD) AC_SUBST(GFORTRAN_FOR_BUILD) AC_SUBST(GOC_FOR_BUILD) AC_SUBST(LDFLAGS_FOR_BUILD) @@ -3222,7 +3396,6 @@ AC_ARG_WITH([build-time-tools], NCN_STRICT_CHECK_TARGET_TOOLS(CC_FOR_TARGET, cc gcc) NCN_STRICT_CHECK_TARGET_TOOLS(CXX_FOR_TARGET, c++ g++ cxx gxx) NCN_STRICT_CHECK_TARGET_TOOLS(GCC_FOR_TARGET, gcc, ${CC_FOR_TARGET}) -NCN_STRICT_CHECK_TARGET_TOOLS(GCJ_FOR_TARGET, gcj) NCN_STRICT_CHECK_TARGET_TOOLS(GFORTRAN_FOR_TARGET, gfortran) NCN_STRICT_CHECK_TARGET_TOOLS(GOC_FOR_TARGET, gccgo) @@ -3232,6 +3405,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) @@ -3253,8 +3427,6 @@ GCC_TARGET_TOOL(c++ for libstdc++, RAW_CXX_FOR_TARGET, CXX, c++) GCC_TARGET_TOOL(dlltool, DLLTOOL_FOR_TARGET, DLLTOOL, [binutils/dlltool]) GCC_TARGET_TOOL(gcc, GCC_FOR_TARGET, , [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/]) -GCC_TARGET_TOOL(gcj, GCJ_FOR_TARGET, GCJ, - [gcc/gcj -B$$r/$(HOST_SUBDIR)/gcc/], java) GCC_TARGET_TOOL(gfortran, GFORTRAN_FOR_TARGET, GFORTRAN, [gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/], fortran) GCC_TARGET_TOOL(gccgo, GOC_FOR_TARGET, GOC, @@ -3262,6 +3434,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]) @@ -3338,7 +3511,20 @@ AC_ARG_ENABLE(stage1-checking, [choose additional checking for stage1 of the compiler])], [stage1_checking=--enable-checking=${enable_stage1_checking}], [if test "x$enable_checking" = xno || test "x$enable_checking" = x; then - stage1_checking=--enable-checking=yes,types + # For --disable-checking or implicit --enable-checking=release, avoid + # setting --enable-checking=gc in the default stage1 checking for LTO + # bootstraps. See PR62077. + case $BUILD_CONFIG in + *lto*) + stage1_checking=--enable-checking=release,misc,gimple,rtlflag,tree,types;; + *) + stage1_checking=--enable-checking=yes,types;; + esac + if test "x$enable_checking" = x && \ + test -d ${srcdir}/gcc && \ + test x"`cat ${srcdir}/gcc/DEV-PHASE`" = xexperimental; then + stage1_checking=--enable-checking=yes,types,extra + fi else stage1_checking=--enable-checking=$enable_checking,types fi]) @@ -3347,31 +3533,32 @@ AC_SUBST(stage1_checking) # Enable -Werror in bootstrap stage2 and later. AC_ARG_ENABLE(werror, [AS_HELP_STRING([--enable-werror], - [enable -Werror in bootstrap stage2 and later])], [], -[if test -d ${srcdir}/gcc && test x"`cat $srcdir/gcc/DEV-PHASE`" = xexperimental; then - enable_werror=yes -else - enable_werror=no -fi]) + [enable -Werror in bootstrap stage2 and later])], +[ case ${enable_werror} in yes) stage2_werror_flag="--enable-werror-always" ;; *) stage2_werror_flag="" ;; esac -AC_SUBST(stage2_werror_flag) +], +[ +if test -d ${srcdir}/gcc && test x"`cat $srcdir/gcc/DEV-PHASE`" = xexperimental; then + case $BUILD_CONFIG in + bootstrap-debug) + stage2_werror_flag="--enable-werror-always" ;; + "") + stage2_werror_flag="--enable-werror-always" ;; + esac +fi +]) -# Enable --enable-host-shared. -AC_ARG_ENABLE(host-shared, -[AS_HELP_STRING([--enable-host-shared], - [build host code as shared libraries])], -[host_shared=$enableval], [host_shared=no]) -AC_SUBST(host_shared) +AC_SUBST(stage2_werror_flag) # 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/*" ;; + hppa*-*-hpux*) compare_exclusions="gcc/cc*-checksum\$(objext) | */libgcc/lib2funcs* | gcc/ada/*tools/* | gcc/function-tests.o" ;; powerpc*-ibm-aix*) compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/* | *libgomp*\$(objext)" ;; esac AC_SUBST(compare_exclusions)