mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-01 14:50:52 +08:00
c1fecabe65
The latest versions of Darwin on the Aarch64 platform mandate PIE executables. On x86_64 it remains optional, but produces tool warnings after Darwin20, so we default to PIE executables there too. All (non-PowerPC) 64b Darwin platforms mandate PIC code and therefore force host_shared on (we issue a diagnostic if the user tries to configure them non-shared). However, this also means we cannot test the host_shared setting independently of the host_pie setting so that the logic for setting PICFLAG must be amended for Darwin. For Darwin versions required to have PIE executables, in the event that the user tries to configure these as --disable-host-pie, we issue a warning and override the setting. These versions must also switch host_pie on even if it is not given in the configure line. To cater for this we pass the current value of host_pie, as determined by top-level configure, to the GCC configure. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> ChangeLog: * Makefile.def: Pass the enable-host-pie value to GCC configure. * Makefile.in: Regenerate. * configure: Regenerate. * configure.ac: Adjust the logic for shared and PIE host flags to ensure that PIE is passed for hosts that require it.
720 lines
33 KiB
Makefile
720 lines
33 KiB
Makefile
#! /usr/bin/autogen
|
|
AutoGen definitions Makefile.tpl;
|
|
|
|
// Makefile.in is generated from Makefile.tpl by 'autogen Makefile.def'.
|
|
// This file was originally written by Nathanael Nerode.
|
|
//
|
|
// Copyright 2002-2022 Free Software Foundation
|
|
//
|
|
// 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
|
|
// the Free Software Foundation; either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// This program is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with this program; see the file COPYING3. If not see
|
|
// <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
// "missing" indicates that that module doesn't supply
|
|
// that recursive target in its Makefile.
|
|
|
|
build_modules= { module= libiberty; };
|
|
build_modules= { module= bison; };
|
|
build_modules= { module= flex; };
|
|
build_modules= { module= m4; };
|
|
build_modules= { module= texinfo; };
|
|
build_modules= { module= fixincludes; };
|
|
build_modules= { module= libcpp;
|
|
extra_configure_flags='--disable-nls am_cv_func_iconv=no';};
|
|
|
|
host_modules= { module= bfd; bootstrap=true; };
|
|
host_modules= { module= opcodes; bootstrap=true; };
|
|
host_modules= { module= binutils; bootstrap=true; };
|
|
host_modules= { module= bison; no_check_cross= true; };
|
|
host_modules= { module= cgen; };
|
|
host_modules= { module= dejagnu; };
|
|
host_modules= { module= etc; };
|
|
host_modules= { module= fastjar; no_check_cross= true; };
|
|
host_modules= { module= fixincludes; bootstrap=true;
|
|
missing= TAGS;
|
|
missing= install-dvi; };
|
|
host_modules= { module= flex; no_check_cross= true; };
|
|
host_modules= { module= gas; bootstrap=true; };
|
|
host_modules= { module= gcc; bootstrap=true;
|
|
extra_make_flags="$(EXTRA_GCC_FLAGS)";
|
|
extra_configure_flags='@gcc_host_pie@'; };
|
|
host_modules= { module= gmp; lib_path=.libs; bootstrap=true;
|
|
// Work around in-tree gmp configure bug with missing flex.
|
|
extra_configure_flags='--disable-shared LEX="touch lex.yy.c" @host_libs_picflag@';
|
|
extra_make_flags='AM_CFLAGS="-DNO_ASM"';
|
|
no_install= true;
|
|
// none-*-* disables asm optimizations, bootstrap-testing
|
|
// the compiler more thoroughly.
|
|
host="none-${host_vendor}-${host_os}";
|
|
// gmp's configure will complain if given anything
|
|
// different from host for target.
|
|
target="none-${host_vendor}-${host_os}"; };
|
|
host_modules= { module= mpfr; lib_path=src/.libs; bootstrap=true;
|
|
extra_configure_flags='--disable-shared @extra_mpfr_configure_flags@ @host_libs_picflag@';
|
|
extra_make_flags='AM_CFLAGS="-DNO_ASM"';
|
|
no_install= true; };
|
|
host_modules= { module= mpc; lib_path=src/.libs; bootstrap=true;
|
|
extra_configure_flags='--disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@ @host_libs_picflag@ --disable-maintainer-mode';
|
|
no_install= true; };
|
|
host_modules= { module= isl; lib_path=.libs; bootstrap=true;
|
|
extra_configure_flags='--disable-shared @extra_isl_gmp_configure_flags@ @host_libs_picflag@';
|
|
extra_make_flags='V=1';
|
|
no_install= true; };
|
|
host_modules= { module= gold; bootstrap=true; };
|
|
host_modules= { module= gprof; };
|
|
// intl acts on 'host_shared' directly, and does not support --with-pic.
|
|
host_modules= { module= intl; bootstrap=true; };
|
|
host_modules= { module= tcl;
|
|
missing=mostlyclean; };
|
|
host_modules= { module= itcl; };
|
|
host_modules= { module= ld; bootstrap=true; };
|
|
host_modules= { module= libbacktrace; bootstrap=true; };
|
|
host_modules= { module= libcpp; bootstrap=true; };
|
|
// As with libiconv, don't install any of libcody
|
|
host_modules= { module= libcody; bootstrap=true;
|
|
no_install= true;
|
|
missing= pdf;
|
|
missing= html;
|
|
missing= info;
|
|
missing= dvi;
|
|
missing= install-pdf;
|
|
missing= install-html;
|
|
missing= install-info;
|
|
missing= install-dvi;
|
|
missing=TAGS; };
|
|
host_modules= { module= libdecnumber; bootstrap=true;
|
|
missing=TAGS; };
|
|
host_modules= { module= libgui; };
|
|
host_modules= { module= libiberty; bootstrap=true;
|
|
extra_configure_flags='@extra_host_libiberty_configure_flags@';};
|
|
// Linker plugins may need their own build of libiberty; see
|
|
// gcc/doc/install.texi. We take care that this build of libiberty doesn't get
|
|
// installed. It's a helper library for linker plugins, so we pay attention to
|
|
// @extra_linker_plugin_flags@ and @extra_linker_plugin_configure_flags@.
|
|
host_modules= { module= libiberty-linker-plugin; bootstrap=true;
|
|
module_srcdir=libiberty;
|
|
extra_configure_flags='@extra_host_libiberty_configure_flags@ --disable-install-libiberty @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@';
|
|
extra_make_flags='@extra_linker_plugin_flags@'; };
|
|
// We abuse missing to avoid installing anything for libiconv.
|
|
host_modules= { module= libiconv;
|
|
bootstrap=true;
|
|
extra_configure_flags='--disable-shared @host_libs_picflag@';
|
|
no_install= true;
|
|
missing= pdf;
|
|
missing= html;
|
|
missing= info;
|
|
missing= install-pdf;
|
|
missing= install-html;
|
|
missing= install-info; };
|
|
host_modules= { module= m4; };
|
|
host_modules= { module= readline; };
|
|
host_modules= { module= sid; };
|
|
host_modules= { module= sim; };
|
|
host_modules= { module= texinfo; no_install= true; };
|
|
host_modules= { module= zlib; no_install=true; no_check=true;
|
|
bootstrap=true;
|
|
extra_configure_flags='@extra_host_zlib_configure_flags@ @host_libs_picflag@';};
|
|
host_modules= { module= gnulib; };
|
|
host_modules= { module= gdbsupport; };
|
|
host_modules= { module= gdbserver; };
|
|
host_modules= { module= gdb; };
|
|
host_modules= { module= expect; };
|
|
host_modules= { module= guile; };
|
|
host_modules= { module= tk; };
|
|
host_modules= { module= libtermcap; no_check=true;
|
|
missing=mostlyclean;
|
|
missing=clean;
|
|
missing=distclean;
|
|
missing=maintainer-clean; };
|
|
host_modules= { module= utils; no_check=true; };
|
|
host_modules= { module= c++tools;
|
|
missing=TAGS; };
|
|
host_modules= { module= gnattools; };
|
|
host_modules= { module= lto-plugin; bootstrap=true;
|
|
extra_configure_flags='--enable-shared @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@';
|
|
extra_make_flags='@extra_linker_plugin_flags@'; };
|
|
host_modules= { module= libcc1; extra_configure_flags=--enable-shared; };
|
|
host_modules= { module= gotools; };
|
|
host_modules= { module= libctf; bootstrap=true; };
|
|
host_modules= { module= libsframe; bootstrap=true; };
|
|
|
|
target_modules = { module= libstdc++-v3;
|
|
bootstrap=true;
|
|
lib_path=src/.libs;
|
|
raw_cxx=true; };
|
|
target_modules = { module= libsanitizer;
|
|
bootstrap=true;
|
|
lib_path=.libs;
|
|
raw_cxx=true; };
|
|
target_modules = { module= libvtv;
|
|
bootstrap=true;
|
|
lib_path=.libs;
|
|
raw_cxx=true; };
|
|
target_modules = { module= libssp; lib_path=.libs; };
|
|
target_modules = { module= newlib; };
|
|
target_modules = { module= libgcc; bootstrap=true; no_check=true;
|
|
missing=TAGS;
|
|
missing=install-dvi; };
|
|
target_modules = { module= libbacktrace; bootstrap=true; };
|
|
target_modules = { module= libquadmath; };
|
|
target_modules = { module= libgfortran; };
|
|
target_modules = { module= libobjc;
|
|
missing=TAGS;
|
|
missing=install-dvi; };
|
|
target_modules = { module= libgo; };
|
|
target_modules = { module= libphobos; bootstrap=true;
|
|
lib_path=src/.libs; };
|
|
target_modules = { module= libtermcap; no_check=true;
|
|
missing=mostlyclean;
|
|
missing=clean;
|
|
missing=distclean;
|
|
missing=maintainer-clean; };
|
|
target_modules = { module= winsup; };
|
|
target_modules = { module= libgloss; no_check=true; };
|
|
target_modules = { module= libffi; no_install=true;
|
|
extra_configure_flags='--disable-shared --with-pic'; };
|
|
target_modules = { module= zlib; bootstrap=true; };
|
|
target_modules = { module= rda; };
|
|
target_modules = { module= libada; };
|
|
target_modules = { module= libgm2; lib_path=.libs; };
|
|
target_modules = { module= libgomp; bootstrap= true; lib_path=.libs; };
|
|
target_modules = { module= libitm; lib_path=.libs; };
|
|
target_modules = { module= libatomic; bootstrap=true; lib_path=.libs; };
|
|
|
|
// These are (some of) the make targets to be done in each subdirectory.
|
|
// Not all; these are the ones which don't have special options.
|
|
// "depend" indicates that a target depends on another target uniformly
|
|
// for each subdirectory. There can be several such lines per target.
|
|
recursive_targets = { make_target= info;
|
|
depend=configure; };
|
|
recursive_targets = { make_target= dvi;
|
|
depend=configure; };
|
|
recursive_targets = { make_target= pdf;
|
|
depend=configure; };
|
|
recursive_targets = { make_target= html;
|
|
depend=configure; };
|
|
recursive_targets = { make_target= TAGS;
|
|
depend=configure; };
|
|
recursive_targets = { make_target= install-info;
|
|
depend=configure;
|
|
depend=info; };
|
|
recursive_targets = { make_target= install-dvi;
|
|
depend=configure;
|
|
depend=dvi; };
|
|
recursive_targets = { make_target= install-pdf;
|
|
depend=configure;
|
|
depend=pdf; };
|
|
recursive_targets = { make_target= install-html;
|
|
depend=configure;
|
|
depend=html; };
|
|
recursive_targets = { make_target= installcheck;
|
|
depend=configure; };
|
|
recursive_targets = { make_target= mostlyclean; };
|
|
recursive_targets = { make_target= clean; };
|
|
recursive_targets = { make_target= distclean; };
|
|
recursive_targets = { make_target= maintainer-clean; };
|
|
|
|
// Flags which need to be passed down.
|
|
|
|
// Directories etc.
|
|
flags_to_pass = { flag= DESTDIR ; };
|
|
flags_to_pass = { flag= RPATH_ENVVAR ; };
|
|
flags_to_pass = { flag= TARGET_SUBDIR ; };
|
|
flags_to_pass = { flag= bindir ; };
|
|
flags_to_pass = { flag= datadir ; };
|
|
flags_to_pass = { flag= exec_prefix ; };
|
|
flags_to_pass = { flag= includedir ; };
|
|
flags_to_pass = { flag= datarootdir ; };
|
|
flags_to_pass = { flag= docdir ; };
|
|
flags_to_pass = { flag= infodir ; };
|
|
flags_to_pass = { flag= pdfdir ; };
|
|
flags_to_pass = { flag= htmldir ; };
|
|
flags_to_pass = { flag= libdir ; };
|
|
flags_to_pass = { flag= libexecdir ; };
|
|
flags_to_pass = { flag= lispdir ; };
|
|
flags_to_pass = { flag= localstatedir ; };
|
|
flags_to_pass = { flag= mandir ; };
|
|
flags_to_pass = { flag= oldincludedir ; };
|
|
flags_to_pass = { flag= prefix ; };
|
|
flags_to_pass = { flag= sbindir ; };
|
|
flags_to_pass = { flag= sharedstatedir ; };
|
|
flags_to_pass = { flag= sysconfdir ; };
|
|
flags_to_pass = { flag= tooldir ; };
|
|
flags_to_pass = { flag= build_tooldir ; };
|
|
flags_to_pass = { flag= target_alias ; };
|
|
|
|
// Build tools
|
|
flags_to_pass = { flag= AWK ; };
|
|
flags_to_pass = { flag= BISON ; };
|
|
flags_to_pass = { flag= CC_FOR_BUILD ; };
|
|
flags_to_pass = { flag= CFLAGS_FOR_BUILD ; };
|
|
flags_to_pass = { flag= CXX_FOR_BUILD ; };
|
|
flags_to_pass = { flag= EXPECT ; };
|
|
flags_to_pass = { flag= FLEX ; };
|
|
flags_to_pass = { flag= INSTALL ; };
|
|
flags_to_pass = { flag= INSTALL_DATA ; };
|
|
flags_to_pass = { flag= INSTALL_PROGRAM ; };
|
|
flags_to_pass = { flag= INSTALL_SCRIPT ; };
|
|
flags_to_pass = { flag= LDFLAGS_FOR_BUILD ; };
|
|
flags_to_pass = { flag= LEX ; };
|
|
flags_to_pass = { flag= M4 ; };
|
|
flags_to_pass = { flag= MAKE ; };
|
|
flags_to_pass = { flag= RUNTEST ; };
|
|
flags_to_pass = { flag= RUNTESTFLAGS ; };
|
|
flags_to_pass = { flag= SED ; };
|
|
flags_to_pass = { flag= SHELL ; };
|
|
flags_to_pass = { flag= YACC ; };
|
|
|
|
// Host tools
|
|
flags_to_pass = { flag= ADAFLAGS ; optional=true ; };
|
|
flags_to_pass = { flag= ADA_CFLAGS ; };
|
|
flags_to_pass = { flag= AR_FLAGS ; };
|
|
flags_to_pass = { flag= BOOT_ADAFLAGS ; optional=true ; };
|
|
flags_to_pass = { flag= BOOT_CFLAGS ; };
|
|
flags_to_pass = { flag= BOOT_LDFLAGS ; };
|
|
flags_to_pass = { flag= CFLAGS ; };
|
|
flags_to_pass = { flag= CXXFLAGS ; };
|
|
flags_to_pass = { flag= LDFLAGS ; };
|
|
flags_to_pass = { flag= LIBCFLAGS ; };
|
|
flags_to_pass = { flag= LIBCXXFLAGS ; };
|
|
flags_to_pass = { flag= STAGE1_CHECKING ; };
|
|
flags_to_pass = { flag= STAGE1_LANGUAGES ; };
|
|
flags_to_pass = { flag= GNATBIND ; };
|
|
flags_to_pass = { flag= GNATMAKE ; };
|
|
flags_to_pass = { flag= GDC ; };
|
|
flags_to_pass = { flag= GDCFLAGS ; };
|
|
|
|
// Target tools
|
|
flags_to_pass = { flag= AR_FOR_TARGET ; };
|
|
flags_to_pass = { flag= AS_FOR_TARGET ; };
|
|
flags_to_pass = { flag= CC_FOR_TARGET ; };
|
|
flags_to_pass = { flag= CFLAGS_FOR_TARGET ; };
|
|
flags_to_pass = { flag= CPPFLAGS_FOR_TARGET ; };
|
|
flags_to_pass = { flag= CXXFLAGS_FOR_TARGET ; };
|
|
flags_to_pass = { flag= DLLTOOL_FOR_TARGET ; };
|
|
flags_to_pass = { flag= DSYMUTIL_FOR_TARGET ; };
|
|
flags_to_pass = { flag= FLAGS_FOR_TARGET ; };
|
|
flags_to_pass = { flag= GFORTRAN_FOR_TARGET ; };
|
|
flags_to_pass = { flag= GOC_FOR_TARGET ; };
|
|
flags_to_pass = { flag= GOCFLAGS_FOR_TARGET ; };
|
|
flags_to_pass = { flag= GDC_FOR_TARGET ; };
|
|
flags_to_pass = { flag= GDCFLAGS_FOR_TARGET ; };
|
|
flags_to_pass = { flag= GM2_FOR_TARGET ; };
|
|
flags_to_pass = { flag= GM2FLAGS_FOR_TARGET ; };
|
|
flags_to_pass = { flag= LD_FOR_TARGET ; };
|
|
flags_to_pass = { flag= LIPO_FOR_TARGET ; };
|
|
flags_to_pass = { flag= LDFLAGS_FOR_TARGET ; };
|
|
flags_to_pass = { flag= LIBCFLAGS_FOR_TARGET ; };
|
|
flags_to_pass = { flag= LIBCXXFLAGS_FOR_TARGET ; };
|
|
flags_to_pass = { flag= NM_FOR_TARGET ; };
|
|
flags_to_pass = { flag= OBJDUMP_FOR_TARGET ; };
|
|
flags_to_pass = { flag= OBJCOPY_FOR_TARGET ; };
|
|
flags_to_pass = { flag= RANLIB_FOR_TARGET ; };
|
|
flags_to_pass = { flag= READELF_FOR_TARGET ; };
|
|
flags_to_pass = { flag= STRIP_FOR_TARGET ; };
|
|
flags_to_pass = { flag= WINDRES_FOR_TARGET ; };
|
|
flags_to_pass = { flag= WINDMC_FOR_TARGET ; };
|
|
|
|
// Miscellaneous
|
|
flags_to_pass = { flag= BUILD_CONFIG ; };
|
|
flags_to_pass = { flag= LANGUAGES ; optional=true ; };
|
|
flags_to_pass = { flag= LEAN ; };
|
|
|
|
// Inter-module dependencies
|
|
|
|
// Build modules
|
|
dependencies = { module=all-build-bison; on=all-build-texinfo; };
|
|
dependencies = { module=all-build-flex; on=all-build-texinfo; };
|
|
dependencies = { module=all-build-flex; on=all-build-bison; };
|
|
dependencies = { module=all-build-flex; on=all-build-m4; };
|
|
dependencies = { module=all-build-libiberty; on=all-build-texinfo; };
|
|
dependencies = { module=all-build-m4; on=all-build-texinfo; };
|
|
dependencies = { module=all-build-fixincludes; on=all-build-libiberty; };
|
|
dependencies = { module=all-build-libcpp; on=all-build-libiberty; };
|
|
|
|
// Host modules specific to gcc.
|
|
dependencies = { module=configure-gcc; on=configure-intl; };
|
|
dependencies = { module=configure-gcc; on=all-gmp; };
|
|
dependencies = { module=configure-gcc; on=all-mpfr; };
|
|
dependencies = { module=configure-gcc; on=all-mpc; };
|
|
dependencies = { module=configure-gcc; on=all-isl; };
|
|
dependencies = { module=configure-gcc; on=all-lto-plugin; };
|
|
dependencies = { module=configure-gcc; on=all-binutils; };
|
|
dependencies = { module=configure-gcc; on=all-gas; };
|
|
dependencies = { module=configure-gcc; on=all-ld; };
|
|
dependencies = { module=configure-gcc; on=all-gold; };
|
|
dependencies = { module=configure-gcc; on=all-libiconv; };
|
|
dependencies = { module=all-gcc; on=all-libiberty; hard=true; };
|
|
dependencies = { module=all-gcc; on=all-intl; };
|
|
dependencies = { module=all-gcc; on=all-mpfr; };
|
|
dependencies = { module=all-gcc; on=all-mpc; };
|
|
dependencies = { module=all-gcc; on=all-isl; };
|
|
dependencies = { module=all-gcc; on=all-build-texinfo; };
|
|
dependencies = { module=all-gcc; on=all-build-bison; };
|
|
dependencies = { module=all-gcc; on=all-build-flex; };
|
|
dependencies = { module=all-gcc; on=all-build-libiberty; };
|
|
dependencies = { module=all-gcc; on=all-build-fixincludes; };
|
|
dependencies = { module=all-gcc; on=all-build-libcpp; };
|
|
dependencies = { module=all-gcc; on=all-zlib; };
|
|
dependencies = { module=all-gcc; on=all-libbacktrace; hard=true; };
|
|
dependencies = { module=all-gcc; on=all-libcpp; hard=true; };
|
|
dependencies = { module=all-gcc; on=all-libcody; hard=true; };
|
|
dependencies = { module=all-gcc; on=all-libdecnumber; hard=true; };
|
|
dependencies = { module=all-gcc; on=all-libiberty; };
|
|
dependencies = { module=all-gcc; on=all-fixincludes; };
|
|
dependencies = { module=all-gcc; on=all-lto-plugin; };
|
|
dependencies = { module=all-gcc; on=all-libiconv; };
|
|
dependencies = { module=info-gcc; on=all-build-libiberty; };
|
|
dependencies = { module=dvi-gcc; on=all-build-libiberty; };
|
|
dependencies = { module=pdf-gcc; on=all-build-libiberty; };
|
|
dependencies = { module=html-gcc; on=all-build-libiberty; };
|
|
dependencies = { module=install-gcc ; on=install-fixincludes; };
|
|
dependencies = { module=install-gcc ; on=install-lto-plugin; };
|
|
dependencies = { module=install-strip-gcc ; on=install-strip-fixincludes; };
|
|
dependencies = { module=install-strip-gcc ; on=install-strip-lto-plugin; };
|
|
|
|
dependencies = { module=configure-libcpp; on=configure-libiberty; hard=true; };
|
|
dependencies = { module=configure-libcpp; on=configure-intl; };
|
|
dependencies = { module=configure-libcpp; on=all-libiconv; };
|
|
dependencies = { module=all-libcpp; on=all-libiberty; hard=true; };
|
|
dependencies = { module=all-libcpp; on=all-intl; };
|
|
dependencies = { module=all-libcpp; on=all-libiconv; };
|
|
|
|
dependencies = { module=all-fixincludes; on=all-libiberty; };
|
|
|
|
dependencies = { module=all-gnattools; on=all-target-libada; };
|
|
dependencies = { module=all-gnattools; on=all-target-libstdc++-v3; };
|
|
|
|
// Depending on the specific configuration, the LTO plugin will either use the
|
|
// generic libiberty build or the specific build for linker plugins.
|
|
dependencies = { module=all-lto-plugin; on=all-libiberty; };
|
|
dependencies = { module=all-lto-plugin; on=all-libiberty-linker-plugin; };
|
|
|
|
dependencies = { module=configure-libcc1; on=configure-gcc; };
|
|
dependencies = { module=all-libcc1; on=all-gcc; };
|
|
|
|
// we want version.o from gcc, and implicitly depend on libcody
|
|
dependencies = { module=all-c++tools; on=all-gcc; };
|
|
dependencies = { module=all-gotools; on=all-target-libgo; };
|
|
|
|
dependencies = { module=all-utils; on=all-libiberty; };
|
|
|
|
dependencies = { module=configure-intl; on=all-libiconv; };
|
|
dependencies = { module=configure-mpfr; on=all-gmp; };
|
|
dependencies = { module=configure-mpc; on=all-mpfr; };
|
|
dependencies = { module=configure-isl; on=all-gmp; };
|
|
dependencies = { module=all-intl; on=all-libiconv; };
|
|
|
|
// Host modules specific to gdb.
|
|
dependencies = { module=configure-gdb; on=all-gmp; };
|
|
dependencies = { module=configure-gdb; on=all-mpfr; };
|
|
dependencies = { module=configure-gdb; on=all-intl; };
|
|
dependencies = { module=configure-gdb; on=configure-sim; };
|
|
dependencies = { module=configure-gdb; on=all-bfd; };
|
|
dependencies = { module=configure-gdb; on=all-gnulib; };
|
|
dependencies = { module=configure-gdb; on=all-gdbsupport; };
|
|
// Depend on all-libiconv so that configure checks for iconv
|
|
// functions will work.
|
|
dependencies = { module=configure-gdb; on=all-libiconv; };
|
|
dependencies = { module=all-gdb; on=all-libiberty; };
|
|
dependencies = { module=all-gdb; on=all-libiconv; };
|
|
dependencies = { module=all-gdb; on=all-gnulib; };
|
|
dependencies = { module=all-gdb; on=all-gdbsupport; };
|
|
dependencies = { module=all-gdb; on=all-opcodes; };
|
|
dependencies = { module=all-gdb; on=all-readline; };
|
|
dependencies = { module=all-gdb; on=all-build-bison; };
|
|
dependencies = { module=all-gdb; on=all-sim; };
|
|
dependencies = { module=all-gdb; on=all-libdecnumber; };
|
|
dependencies = { module=all-gdb; on=all-libtermcap; };
|
|
dependencies = { module=all-gdb; on=all-libctf; };
|
|
dependencies = { module=all-gdb; on=all-libbacktrace; };
|
|
|
|
// Host modules specific to gdbserver.
|
|
dependencies = { module=configure-gdbserver; on=all-gnulib; };
|
|
dependencies = { module=all-gdbserver; on=all-gdbsupport; };
|
|
dependencies = { module=all-gdbserver; on=all-gnulib; };
|
|
dependencies = { module=all-gdbserver; on=all-libiberty; };
|
|
|
|
dependencies = { module=configure-libgui; on=configure-tcl; };
|
|
dependencies = { module=configure-libgui; on=configure-tk; };
|
|
dependencies = { module=all-libgui; on=all-tcl; };
|
|
dependencies = { module=all-libgui; on=all-tk; };
|
|
dependencies = { module=all-libgui; on=all-itcl; };
|
|
|
|
dependencies = { module=configure-gdbsupport; on=configure-gnulib; };
|
|
dependencies = { module=configure-gdbsupport; on=configure-intl; };
|
|
dependencies = { module=all-gdbsupport; on=all-gnulib; };
|
|
dependencies = { module=all-gdbsupport; on=all-intl; };
|
|
|
|
// Host modules specific to binutils.
|
|
dependencies = { module=configure-bfd; on=configure-libiberty; hard=true; };
|
|
dependencies = { module=configure-bfd; on=configure-intl; };
|
|
dependencies = { module=all-bfd; on=all-libiberty; };
|
|
dependencies = { module=all-bfd; on=all-intl; };
|
|
dependencies = { module=all-bfd; on=all-zlib; };
|
|
dependencies = { module=configure-opcodes; on=configure-libiberty; hard=true; };
|
|
dependencies = { module=all-opcodes; on=all-libiberty; };
|
|
|
|
// We must build gas before binutils, gprof, ld and gold to avoid race
|
|
// condition in the prev-gcc/as script during bootstrap of combined tree
|
|
// with GCC and binutils. See PR gas/14899 for details.
|
|
dependencies = { module=configure-binutils; on=configure-intl; };
|
|
dependencies = { module=all-binutils; on=all-libiberty; };
|
|
dependencies = { module=all-binutils; on=all-opcodes; };
|
|
dependencies = { module=all-binutils; on=all-bfd; };
|
|
dependencies = { module=all-binutils; on=all-build-flex; };
|
|
dependencies = { module=all-binutils; on=all-build-bison; };
|
|
dependencies = { module=all-binutils; on=all-intl; };
|
|
dependencies = { module=all-binutils; on=all-gas; };
|
|
dependencies = { module=all-binutils; on=all-libctf; };
|
|
dependencies = { module=all-ld; on=all-libctf; };
|
|
dependencies = { module=all-binutils; on=all-libsframe; };
|
|
|
|
// We put install-opcodes before install-binutils because the installed
|
|
// binutils might be on PATH, and they might need the shared opcodes
|
|
// library.
|
|
dependencies = { module=install-binutils; on=install-opcodes; };
|
|
dependencies = { module=install-strip-binutils; on=install-strip-opcodes; };
|
|
|
|
// Likewise for ld, libctf, and bfd.
|
|
dependencies = { module=install-libctf; on=install-bfd; };
|
|
dependencies = { module=install-ld; on=install-bfd; };
|
|
dependencies = { module=install-ld; on=install-libctf; };
|
|
dependencies = { module=install-strip-libctf; on=install-strip-bfd; };
|
|
dependencies = { module=install-strip-ld; on=install-strip-bfd; };
|
|
dependencies = { module=install-strip-ld; on=install-strip-libctf; };
|
|
|
|
// libopcodes depends on libbfd
|
|
dependencies = { module=configure-opcodes; on=configure-bfd; hard=true; };
|
|
dependencies = { module=install-opcodes; on=install-bfd; };
|
|
dependencies = { module=install-strip-opcodes; on=install-strip-bfd; };
|
|
|
|
dependencies = { module=configure-gas; on=configure-intl; };
|
|
dependencies = { module=all-gas; on=all-libiberty; };
|
|
dependencies = { module=all-gas; on=all-opcodes; };
|
|
dependencies = { module=all-gas; on=all-bfd; };
|
|
dependencies = { module=all-gas; on=all-intl; };
|
|
dependencies = { module=configure-gprof; on=configure-intl; };
|
|
dependencies = { module=all-gprof; on=all-libiberty; };
|
|
dependencies = { module=all-gprof; on=all-bfd; };
|
|
dependencies = { module=all-gprof; on=all-opcodes; };
|
|
dependencies = { module=all-gprof; on=all-intl; };
|
|
dependencies = { module=all-gprof; on=all-gas; };
|
|
dependencies = { module=configure-ld; on=configure-intl; };
|
|
dependencies = { module=all-ld; on=all-libiberty; };
|
|
dependencies = { module=all-ld; on=all-bfd; };
|
|
dependencies = { module=all-ld; on=all-opcodes; };
|
|
dependencies = { module=all-ld; on=all-build-bison; };
|
|
dependencies = { module=all-ld; on=all-build-flex; };
|
|
dependencies = { module=all-ld; on=all-intl; };
|
|
dependencies = { module=all-ld; on=all-gas; };
|
|
dependencies = { module=all-ld; on=all-binutils; };
|
|
dependencies = { module=install-ld; on=install-gold; };
|
|
dependencies = { module=install-strip-ld; on=install-strip-gold; };
|
|
dependencies = { module=configure-gold; on=configure-intl; };
|
|
dependencies = { module=all-gold; on=all-libiberty; };
|
|
dependencies = { module=all-gold; on=all-intl; };
|
|
dependencies = { module=all-gold; on=all-bfd; };
|
|
dependencies = { module=all-gold; on=all-build-bison; };
|
|
dependencies = { module=all-gold; on=all-gas; };
|
|
dependencies = { module=check-gold; on=all-binutils; };
|
|
dependencies = { module=check-gold; on=all-gas; };
|
|
|
|
dependencies = { module=configure-opcodes; on=configure-intl; };
|
|
dependencies = { module=all-opcodes; on=all-bfd; };
|
|
dependencies = { module=all-opcodes; on=all-libiberty; };
|
|
dependencies = { module=all-opcodes; on=all-intl; };
|
|
|
|
// Other host modules in the 'src' repository.
|
|
dependencies = { module=all-dejagnu; on=all-tcl; };
|
|
dependencies = { module=all-dejagnu; on=all-expect; };
|
|
dependencies = { module=all-dejagnu; on=all-tk; };
|
|
dependencies = { module=configure-expect; on=configure-tcl; };
|
|
dependencies = { module=configure-expect; on=configure-tk; };
|
|
dependencies = { module=all-expect; on=all-tcl; };
|
|
dependencies = { module=all-expect; on=all-tk; };
|
|
|
|
// We put install-tcl before install-itcl because itcl wants to run a
|
|
// program on installation which uses the Tcl libraries.
|
|
dependencies = { module=configure-itcl; on=configure-tcl; };
|
|
dependencies = { module=configure-itcl; on=configure-tk; };
|
|
dependencies = { module=all-itcl; on=all-tcl; };
|
|
dependencies = { module=all-itcl; on=all-tk; };
|
|
dependencies = { module=install-itcl; on=install-tcl; };
|
|
dependencies = { module=install-strip-itcl; on=install-strip-tcl; };
|
|
|
|
dependencies = { module=configure-tk; on=configure-tcl; };
|
|
dependencies = { module=all-tk; on=all-tcl; };
|
|
|
|
dependencies = { module=all-sid; on=all-libiberty; };
|
|
dependencies = { module=all-sid; on=all-bfd; };
|
|
dependencies = { module=all-sid; on=all-opcodes; };
|
|
dependencies = { module=all-sid; on=all-tcl; };
|
|
dependencies = { module=all-sid; on=all-tk; };
|
|
dependencies = { module=install-sid; on=install-tcl; };
|
|
dependencies = { module=install-strip-sid; on=install-strip-tcl; };
|
|
dependencies = { module=install-sid; on=install-tk; };
|
|
dependencies = { module=install-strip-sid; on=install-strip-tk; };
|
|
|
|
dependencies = { module=configure-sim; on=all-gnulib; };
|
|
dependencies = { module=configure-sim; on=configure-intl; };
|
|
dependencies = { module=all-sim; on=all-intl; };
|
|
dependencies = { module=all-sim; on=all-libiberty; };
|
|
dependencies = { module=all-sim; on=all-bfd; };
|
|
dependencies = { module=all-sim; on=all-opcodes; };
|
|
dependencies = { module=configure-sim; on=all-readline; };
|
|
|
|
// Other host modules.
|
|
dependencies = { module=all-fastjar; on=all-zlib; };
|
|
dependencies = { module=all-fastjar; on=all-build-texinfo; };
|
|
dependencies = { module=all-fastjar; on=all-libiberty; };
|
|
dependencies = { module=all-libctf; on=all-libiberty; hard=true; };
|
|
dependencies = { module=all-libctf; on=all-bfd; };
|
|
dependencies = { module=all-libctf; on=all-zlib; };
|
|
// So that checking for ELF support in BFD from libctf configure is possible.
|
|
dependencies = { module=configure-libctf; on=all-bfd; };
|
|
dependencies = { module=configure-libctf; on=all-intl; };
|
|
dependencies = { module=configure-libctf; on=all-zlib; };
|
|
dependencies = { module=configure-libctf; on=all-libiconv; };
|
|
dependencies = { module=check-libctf; on=all-ld; };
|
|
|
|
// The Makefiles in gdb and gdbserver pull in a file that configure
|
|
// generates in the gnulib directory, so distclean gnulib only after
|
|
// gdb and gdbserver.
|
|
dependencies = { module=distclean-gnulib; on=distclean-gdb; };
|
|
dependencies = { module=distclean-gnulib; on=distclean-gdbserver; };
|
|
|
|
// Warning, these are not well tested.
|
|
dependencies = { module=all-bison; on=all-intl; };
|
|
dependencies = { module=all-bison; on=all-build-texinfo; };
|
|
dependencies = { module=all-flex; on=all-build-bison; };
|
|
dependencies = { module=all-flex; on=all-intl; };
|
|
dependencies = { module=all-flex; on=all-m4; };
|
|
dependencies = { module=all-flex; on=all-build-texinfo; };
|
|
dependencies = { module=all-m4; on=all-intl; };
|
|
dependencies = { module=all-m4; on=all-build-texinfo; };
|
|
|
|
// Target modules. These can also have dependencies on the language
|
|
// environment (e.g. on libstdc++). By default target modules depend
|
|
// on libgcc and newlib/libgloss.
|
|
lang_env_dependencies = { module=libitm; cxx=true; };
|
|
lang_env_dependencies = { module=libffi; cxx=true; };
|
|
lang_env_dependencies = { module=newlib; no_c=true; };
|
|
lang_env_dependencies = { module=libgloss; no_c=true; };
|
|
lang_env_dependencies = { module=libgcc; no_gcc=true; no_c=true; };
|
|
// libiberty does not depend on newlib or libgloss because it must be
|
|
// built newlib on some targets (e.g. Cygwin). It still needs
|
|
// a dependency on libgcc for native targets to configure.
|
|
lang_env_dependencies = { module=libiberty; no_c=true; };
|
|
|
|
dependencies = { module=configure-target-fastjar; on=configure-target-zlib; };
|
|
dependencies = { module=all-target-fastjar; on=all-target-zlib; };
|
|
dependencies = { module=configure-target-libgo; on=configure-target-libffi; };
|
|
dependencies = { module=configure-target-libgo; on=all-target-libstdc++-v3; };
|
|
dependencies = { module=all-target-libgo; on=all-target-libbacktrace; };
|
|
dependencies = { module=all-target-libgo; on=all-target-libffi; };
|
|
dependencies = { module=all-target-libgo; on=all-target-libatomic; };
|
|
dependencies = { module=configure-target-libgm2; on=all-target-libstdc++-v3; };
|
|
dependencies = { module=all-target-libgm2; on=all-target-libatomic; };
|
|
dependencies = { module=configure-target-libphobos; on=configure-target-libbacktrace; };
|
|
dependencies = { module=configure-target-libphobos; on=configure-target-zlib; };
|
|
dependencies = { module=all-target-libphobos; on=all-target-libbacktrace; };
|
|
dependencies = { module=all-target-libphobos; on=all-target-zlib; };
|
|
dependencies = { module=all-target-libphobos; on=all-target-libatomic; };
|
|
dependencies = { module=configure-target-libstdc++-v3; on=configure-target-libgomp; };
|
|
dependencies = { module=configure-target-libsanitizer; on=all-target-libstdc++-v3; };
|
|
dependencies = { module=configure-target-libvtv; on=all-target-libstdc++-v3; };
|
|
// parallel_list.o and parallel_settings.o depend on omp.h, which is
|
|
// generated by the libgomp configure. Unfortunately, due to the use of
|
|
// recursive make, we can't be that specific.
|
|
dependencies = { module=all-target-libstdc++-v3; on=configure-target-libgomp; };
|
|
|
|
dependencies = { module=install-target-libgo; on=install-target-libatomic; };
|
|
dependencies = { module=install-target-libgfortran; on=install-target-libquadmath; };
|
|
dependencies = { module=install-target-libgfortran; on=install-target-libgcc; };
|
|
dependencies = { module=install-target-libphobos; on=install-target-libatomic; };
|
|
dependencies = { module=install-target-libsanitizer; on=install-target-libstdc++-v3; };
|
|
dependencies = { module=install-target-libsanitizer; on=install-target-libgcc; };
|
|
dependencies = { module=install-target-libvtv; on=install-target-libstdc++-v3; };
|
|
dependencies = { module=install-target-libvtv; on=install-target-libgcc; };
|
|
dependencies = { module=install-target-libitm; on=install-target-libgcc; };
|
|
dependencies = { module=install-target-libobjc; on=install-target-libgcc; };
|
|
dependencies = { module=install-target-libstdc++-v3; on=install-target-libgcc; };
|
|
|
|
// Target modules in the 'src' repository.
|
|
lang_env_dependencies = { module=libtermcap; };
|
|
lang_env_dependencies = { module=rda; };
|
|
lang_env_dependencies = { module=winsup; };
|
|
|
|
dependencies = { module=all-target-libgloss; on=all-target-newlib; };
|
|
dependencies = { module=all-target-winsup; on=all-target-libtermcap; };
|
|
dependencies = { module=configure-target-newlib; on=all-binutils; };
|
|
dependencies = { module=configure-target-newlib; on=all-ld; };
|
|
dependencies = { module=configure-target-libgfortran; on=all-target-libquadmath; };
|
|
dependencies = { module=configure-target-libgfortran; on=all-target-libbacktrace; };
|
|
dependencies = { module=configure-target-libgo; on=all-target-libbacktrace; };
|
|
|
|
languages = { language=c; gcc-check-target=check-gcc; };
|
|
languages = { language=c++; gcc-check-target=check-c++;
|
|
lib-check-target=check-target-libstdc++-v3;
|
|
lib-check-target=check-target-libitm-c++;
|
|
lib-check-target=check-target-libgomp-c++; };
|
|
languages = { language=fortran; gcc-check-target=check-fortran;
|
|
lib-check-target=check-target-libquadmath;
|
|
lib-check-target=check-target-libgfortran;
|
|
lib-check-target=check-target-libgomp-fortran; };
|
|
languages = { language=ada; gcc-check-target=check-ada;
|
|
lib-check-target=check-target-libada; };
|
|
languages = { language=objc; gcc-check-target=check-objc;
|
|
lib-check-target=check-target-libobjc; };
|
|
languages = { language=obj-c++; gcc-check-target=check-obj-c++; };
|
|
languages = { language=go; gcc-check-target=check-go;
|
|
lib-check-target=check-target-libgo;
|
|
lib-check-target=check-gotools; };
|
|
languages = { language=m2; gcc-check-target=check-m2;
|
|
lib-check-target=check-target-libgm2; };
|
|
languages = { language=d; gcc-check-target=check-d;
|
|
lib-check-target=check-target-libphobos; };
|
|
languages = { language=jit; gcc-check-target=check-jit; };
|
|
languages = { language=rust; gcc-check-target=check-rust; };
|
|
|
|
// Toplevel bootstrap
|
|
bootstrap_stage = { id=1 ; };
|
|
bootstrap_stage = {
|
|
id=2 ; prev=1 ;
|
|
bootstrap_target=bootstrap2 ; };
|
|
bootstrap_stage = {
|
|
id=3 ; prev=2 ; lean=1 ;
|
|
compare_target=compare ;
|
|
bootstrap_target=bootstrap ;
|
|
cleanstrap_target=cleanstrap ; };
|
|
bootstrap_stage = {
|
|
id=4 ; prev=3 ; lean=2 ;
|
|
compare_target=compare3 ;
|
|
bootstrap_target=bootstrap4 ; };
|
|
bootstrap_stage = {
|
|
id=profile ; prev=1 ; };
|
|
bootstrap_stage = {
|
|
id=train; prev=profile ; } ;
|
|
bootstrap_stage = {
|
|
id=feedback ; prev=train;
|
|
bootstrap_target=profiledbootstrap ; };
|
|
bootstrap_stage = {
|
|
id=autoprofile ; prev=1 ;
|
|
autoprofile="$$s/gcc/config/i386/$(AUTO_PROFILE)" ; };
|
|
bootstrap_stage = {
|
|
id=autofeedback ; prev=autoprofile ;
|
|
bootstrap_target=autoprofiledbootstrap ;
|
|
profile_data="PERF_DATA=perf.data" ; };
|