X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=configure.ac;h=797a624621e459f090028260fd22e664acfc7136;hb=e7954ef5e5ed90fb7d28c013518f4c2e6bcd20a1;hp=4bd869a63a9bc1557eb3960333e8581cccd239db;hpb=01027315f54048dbaf03ac37455c2528c72a6d9b;p=binutils-gdb.git diff --git a/configure.ac b/configure.ac index 4bd869a63a9..797a624621e 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, 2019 Free Software Foundation, Inc. +# 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,7 +23,7 @@ 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(config/gcc-plugin.m4) m4_include([libtool.m4]) m4_include([ltoptions.m4]) m4_include([ltsugar.m4]) @@ -140,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 libcc1 gotools" +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) @@ -728,9 +728,6 @@ case "${target}" in arm-wince-pe) noconfigdirs="$noconfigdirs target-libffi" ;; - arm*-*-symbianelf*) - noconfigdirs="$noconfigdirs target-libffi" - ;; cris-*-* | crisv32-*-*) case "${target}" in *-*-linux*) @@ -782,6 +779,22 @@ case "${target}" in ;; 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 @@ -1101,6 +1114,9 @@ case "${target}" in 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" @@ -1262,7 +1278,7 @@ else WINDMC_FOR_BUILD="\$(WINDMC)" fi -AC_PROG_CC +AC_PROG_CC_C99 AC_PROG_CXX # We must set the default linker to the linker used by gcc for the correct @@ -1356,6 +1372,65 @@ if test "$enable_bootstrap:$GXX" = "yes:yes"; then CXX="$CXX -std=gnu++98" fi +AC_ARG_ENABLE([pgo-build], +[AS_HELP_STRING([--enable-pgo-build[[=lto]]], + [enable the PGO build])], +[enable_pgo_build=$enableval], +[enable_pgo_build=no]) + +# Issue errors and warnings for invalid/strange PGO build combinations. +case "$have_compiler:$host:$target:$enable_pgo_build" in + *:*:*:no) ;; + + # Allow the PGO build only if we aren't building a compiler and + # we are in a native configuration. + no:$build:$build:yes | no:$build:$build:lto) ;; + + # Disallow the PGO bootstrap if we are building a compiler. + yes:*:*:yes | yes:*:*:lto) + AC_MSG_ERROR([cannot perform the PGO bootstrap when building a compiler]) ;; + + *) + AC_MSG_ERROR([invalid option for --enable-pgo-build]) + ;; +esac + +if test "$enable_pgo_build" != "no"; then + AC_MSG_CHECKING([whether the compiler supports -fprofile-generate]) + old_CFLAGS="$CFLAGS" + PGO_BUILD_GEN_CFLAGS="-fprofile-generate" + CFLAGS="$CFLAGS $PGO_BUILD_CFLAGS" + AC_COMPILE_IFELSE([AC_LANG_SOURCE([int foo;])],, + [PGO_BUILD_GEN_CFLAGS=]) + CFLAGS="$old_CFLAGS" + if test -n "$PGO_BUILD_GEN_CFLAGS"; then + AC_MSG_RESULT([yes]) + PGO_BUILD_USE_CFLAGS="-fprofile-use" + else + AC_MSG_RESULT([no]) + AC_MSG_ERROR([cannot perform the PGO build without -fprofile-generate]) + fi + + if test "$enable_pgo_build" = "lto"; then + AC_MSG_CHECKING([whether the compiler supports -flto=jobserver -ffat-lto-objects]) + old_CFLAGS="$CFLAGS" + PGO_BUILD_LTO_CFLAGS="-flto=jobserver -ffat-lto-objects" + CFLAGS="$CFLAGS $PGO_BUILD_LTO_CFLAGS" + AC_COMPILE_IFELSE([AC_LANG_SOURCE([int foo;])],, + [PGO_BUILD_LTO_CFLAGS=]) + CFLAGS="$old_CFLAGS" + if test -n "$PGO_BUILD_LTO_CFLAGS"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + AC_MSG_WARN([LTO is disabled for the PGO build]) + fi + fi +fi +AC_SUBST(PGO_BUILD_GEN_CFLAGS) +AC_SUBST(PGO_BUILD_USE_CFLAGS) +AC_SUBST(PGO_BUILD_LTO_CFLAGS) + # Used for setting $lt_cv_objdir _LT_CHECK_OBJDIR @@ -1364,9 +1439,6 @@ 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, @@ -2730,13 +2802,20 @@ 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 and gdbsupport, but as nothing else does, only -# include them 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 to - # the list. - configdirs="${configdirs} gnulib gdbsupport" -fi +# 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" + ;; + *\ sim\ *) + configdirs="${configdirs} gnulib" + ;; +esac # Strip out unwanted targets. @@ -2827,6 +2906,12 @@ extrasub_target="$extrasub_target /^@unless /d /^@endunless /d" +if test "$enable_pgo_build" != "no"; then + extrasub_build="$extrasub_build +/^@if pgo-build\$/d +/^@endif pgo-build\$/d" +fi + # Create the serialization dependencies. This uses a temporary file. AC_ARG_ENABLE([serial-configure], @@ -3357,6 +3442,24 @@ AC_SUBST(CXX) AC_SUBST(CFLAGS) AC_SUBST(CXXFLAGS) +GCC_PLUGIN_OPTION(PLUGIN_OPTION) +AR_PLUGIN_OPTION= +RANLIB_PLUGIN_OPTION= +if test -n "$PLUGIN_OPTION"; then + if $AR --help 2>&1 | grep -q "\--plugin"; then + AR_PLUGIN_OPTION="$PLUGIN_OPTION" + fi + if $RANLIB --help 2>&1 | grep -q "\--plugin"; then + RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION" + fi +else + if test "$enable_pgo_build" != "no"; then + AC_MSG_ERROR([AR with --plugin and rc is required for LTO build]) + fi +fi +AC_SUBST(AR_PLUGIN_OPTION) +AC_SUBST(RANLIB_PLUGIN_OPTION) + # Target tools. AC_ARG_WITH([build-time-tools], [AS_HELP_STRING([--with-build-time-tools=PATH],