X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=configure.ac;h=cd0867dd76d7c1b21de783b744ef4eb2a99a13c4;hb=refs%2Fheads%2Fconcurrent-displaced-stepping-rocm-3.5;hp=3ec86c19df7d8d8cb64b557018ea3fc77b822436;hpb=d5451cd45325d12b2cc3d10ffe67f09b0e26b967;p=deliverable%2Fbinutils-gdb.git diff --git a/configure.ac b/configure.ac index 3ec86c19df..cd0867dd76 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, -# 2014, 2015, 2016 Free Software Foundation, Inc. +# 2014, 2015, 2016, 2019 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 @@ -31,9 +31,25 @@ m4_include([lt~obsolete.m4]) m4_include([config/isl.m4]) AC_INIT(move-if-change) -AC_PREREQ(2.64) AC_DISABLE_OPTION_CHECKING +if test x"${enable_gdb}" != x"no" -a x"${enable_src_release_build}" != x"yes"; then + # For this branch, we do not support building GDB in-tree. + # Try to detect whether we are in this situation or not by + # searching for a couple of known files in the source directory. + if test -f gnulib/update-gnulib.sh -a -f gdb/ChangeLog; then + AC_MSG_ERROR([GDB must be configured and built in a directory separate from its sources. + +To do so, create a dedicated directory for your GDB build and invoke +the configure script from that directory: + + $ mkdir build + $ cd build + $ /gdb-VERSION/configure [[etc...]] + $ make]) + fi +fi + progname=$0 # if PWD already has a value, it is probably wrong. if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi @@ -132,7 +148,7 @@ build_tools="build-texinfo build-flex build-bison build-m4 build-fixincludes" # these libraries are used by various programs built for the host environment #f -host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktrace libcpp libdecnumber gmp mpfr mpc isl libelf libiconv" +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 @@ -142,11 +158,6 @@ host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktr # 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 libcc1 gotools" -# libgcj represents the runtime libraries only used by gcj. -libgcj="target-libffi \ - target-zlib \ - target-libjava" - # 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) # Note that libiberty is not a target library. @@ -155,19 +166,17 @@ target_libraries="target-libgcc \ target-libgloss \ target-newlib \ target-libgomp \ - target-libcilkrts \ target-liboffloadmic \ + target-libhsail-rt \ target-libatomic \ target-libitm \ target-libstdc++-v3 \ target-libsanitizer \ target-libvtv \ - target-libmpx \ target-libssp \ target-libquadmath \ target-libgfortran \ - target-boehm-gc \ - ${libgcj} \ + target-libffi \ target-libobjc \ target-libada \ target-libgo" @@ -253,6 +262,12 @@ if test x$with_system_zlib = xyes ; then 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. @@ -337,7 +352,7 @@ case "${ENABLE_GOLD}" in *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \ | *-*-linux* | *-*-gnu* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \ | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* \ - | *-*-solaris2* | *-*-nto* | *-*-nacl* | *-*-fuchsia*) + | *-*-solaris2* | *-*-nto* | *-*-nacl*) case "${target}" in *-*-linux*aout* | *-*-linux*oldld*) ;; @@ -507,41 +522,6 @@ else 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 -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) - # Enable libgomp by default on hosted POSIX systems, and a few others. if test x$enable_libgomp = x ; then case "${target}" in @@ -577,22 +557,6 @@ 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; \ - . ${srcdir}/configure.tgt; \ - test -n "$UNSUPPORTED") - then - AC_MSG_RESULT([no]) - noconfigdirs="$noconfigdirs target-libcilkrts" - else - AC_MSG_RESULT([yes]) - fi - fi -fi - # Disable liboffloadmic on unsupported systems. if test -d ${srcdir}/liboffloadmic; then if test x$enable_liboffloadmic != xno; then @@ -658,24 +622,25 @@ if test -d ${srcdir}/libvtv; then fi -# Enable libmpx on supported systems by request. -if test -d ${srcdir}/libmpx; then - if test x$enable_libmpx = x; then - AC_MSG_CHECKING([for libmpx support]) - if (srcdir=${srcdir}/libmpx; \ - . ${srcdir}/configure.tgt; \ - test "$LIBMPX_SUPPORTED" != "yes") - then - AC_MSG_RESULT([no]) - noconfigdirs="$noconfigdirs target-libmpx" - else - AC_MSG_RESULT([yes]) - 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-*-*) @@ -738,62 +703,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*) ;; @@ -802,97 +712,88 @@ 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 ${libgcj}" + 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 ${libgcj}" + 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* | *-*-aix*) +*-*-darwin* | *-*-cygwin* | *-*-mingw*) unsupported_languages="$unsupported_languages go" ;; esac @@ -908,9 +809,6 @@ if test x$enable_libgo = x; then *-*-cygwin* | *-*-mingw*) noconfigdirs="$noconfigdirs target-libgo" ;; - *-*-aix*) - noconfigdirs="$noconfigdirs target-libgo" - ;; esac fi @@ -1063,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*) @@ -1094,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" @@ -1103,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" @@ -1218,6 +1113,10 @@ case "${target}" in mt-*-*) noconfigdirs="$noconfigdirs sim" ;; + nfp-*-*) + noconfigdirs="$noconfigdirs ld gas gdb gprof sim" + noconfigdirs="$noconfigdirs $target_libraries" + ;; powerpc-*-aix*) # copied from rs6000-*-* entry noconfigdirs="$noconfigdirs gprof" @@ -1276,10 +1175,7 @@ case "${target}" in nvptx*-*-*) noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc" ;; - or1k*-*-*) - noconfigdirs="$noconfigdirs gdb" - ;; - sh-*-* | sh64-*-*) + sh-*-*) case "${target}" in sh*-*-elf) ;; @@ -1295,18 +1191,18 @@ case "${target}" in tic6x-*-*) noconfigdirs="$noconfigdirs sim" ;; - tilegx*-*-*) + tilepro*-*-* | tilegx*-*-*) noconfigdirs="$noconfigdirs sim" ;; - tilepro*-*-*) - noconfigdirs="$noconfigdirs gdb sim" - ;; v810-*-*) noconfigdirs="$noconfigdirs bfd binutils gas gdb ld opcodes target-libgloss" ;; 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 @@ -1359,7 +1255,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} @@ -1373,7 +1268,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)" @@ -1414,11 +1308,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++) @@ -1551,15 +1445,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 @@ -1727,6 +1619,19 @@ AC_ARG_WITH(stage1-libs, [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])], @@ -1739,7 +1644,8 @@ 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) @@ -1817,7 +1723,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* | *djgpp*) ;; + *-apple-darwin[[912]]* | *-cygwin* | *-mingw* | *djgpp*) ;; # On other non-ELF platforms, LTO has yet to be validated. *) enable_lto=no ;; esac @@ -1856,6 +1762,13 @@ AC_ARG_ENABLE(linker-plugin-flags, 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, @@ -1874,7 +1787,7 @@ if test -d ${srcdir}/gcc; then enable_languages="${LANGUAGES}" 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 || @@ -1922,10 +1835,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 @@ -1937,6 +1856,7 @@ if test -d ${srcdir}/gcc; then if test "$other" != "c"; then case ,${enable_stage1_languages}, in *,$other,*) ;; + *,default,*) ;; *,all,*) ;; *) case ,${enable_languages}, in @@ -1974,7 +1894,7 @@ if test -d ${srcdir}/gcc; then esac fi - missing_languages=`echo ",$enable_languages," | sed -e s/,all,/,/ -e s/,c,/,/ ` + missing_languages=`echo ",$enable_languages," | sed -e s/,default,/,/ -e s/,all,/,/ -e s/,c,/,/ ` potential_languages=,c, enabled_target_libs= @@ -1995,7 +1915,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 @@ -2006,30 +1929,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 @@ -2038,20 +1967,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 @@ -2068,7 +2029,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,/,/"` @@ -2167,39 +2128,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 libcilkrts, libitm, libsanitizer, libvtv, liboffloadmic if we're not building C++ +# Disable libitm, libsanitizer, libvtv, liboffloadmic if we're not building C++ case ,${enable_languages}, in *,c++,*) - # Disable libcilkrts, libitm, libsanitizer if we're not building libstdc++ + # Disable libitm, libsanitizer if we're not building libstdc++ case "${noconfigdirs}" in *target-libstdc++-v3*) - noconfigdirs="$noconfigdirs target-libcilkrts target-libitm target-libsanitizer" + noconfigdirs="$noconfigdirs target-libitm target-libsanitizer" ;; *) ;; esac ;; *) - noconfigdirs="$noconfigdirs target-libcilkrts target-liboffloadmic target-libitm target-libsanitizer target-libvtv" + noconfigdirs="$noconfigdirs target-liboffloadmic target-libitm target-libsanitizer target-libvtv" ;; esac @@ -2271,15 +2242,6 @@ for i in ${target_configdirs_all} ; do fi done -# Exclude target-zlib if target-libjava isn't built. -case ${target_configdirs} in -*target-libjava*) - ;; -*) - target_configdirs="`echo ${target_configdirs} | sed -e 's/target-zlib//'`" - ;; -esac - # 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 @@ -2563,6 +2525,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" ;; @@ -2750,11 +2715,6 @@ if echo " ${target_configdirs} " | grep " libvtv " > /dev/null 2>&1 && bootstrap_target_libs=${bootstrap_target_libs}target-libvtv, fi -# If we are building libmpx, bootstrap it. -if echo " ${target_configdirs} " | grep " libmpx " > /dev/null 2>&1; then - bootstrap_target_libs=${bootstrap_target_libs}target-libmpx, -fi - # Determine whether gdb needs tk/tcl or not. # Use 'maybe' since enable_gdbtk might be true even if tk isn't available # and in that case we want gdb to be built without tk. Ugh! @@ -2783,6 +2743,14 @@ esac CONFIGURE_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-configure-/g` INSTALL_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-install-/g` +# gdb depends on gnulib, but as nothing else does, only include it if +# gdb is built. +if echo " ${configdirs} " | grep " gdb " > /dev/null 2>&1 ; then + # The Makefile provides the ordering, so it's enough here to add + # gnulib to the list. + configdirs="${configdirs} gnulib" +fi + # Strip out unwanted targets. # While at that, we remove Makefiles if we were started for recursive @@ -2795,7 +2763,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++,*) ;; @@ -2814,8 +2784,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 @@ -2834,8 +2806,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 @@ -2854,13 +2828,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. @@ -3299,7 +3277,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) @@ -3409,7 +3386,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) @@ -3441,8 +3417,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, @@ -3530,16 +3504,17 @@ AC_ARG_ENABLE(stage1-checking, # For --disable-checking or implicit --enable-checking=release, avoid # setting --enable-checking=gc in the default stage1 checking for LTO # bootstraps. See PR62077. - stage1_checking=--enable-checking=release,misc,gimple,rtlflag,tree,types case $BUILD_CONFIG in *lto*) - 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 - fi;; - *) stage1_checking=--enable-checking=yes,types;; + 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]) @@ -3548,55 +3523,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) - -# 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) - -# PR jit/64780: Require the user to explicitly specify -# --enable-host-shared if the jit is enabled, hinting -# that they might want to do a separate configure/build of -# the jit, to avoid users from slowing down the rest of the -# compiler by enabling the jit. -if test ${host_shared} = "no" ; then - case "${enable_languages}" in - *jit*) - 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.]) - ;; - *) - ;; +], +[ +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 +]) + +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)