* fix libcc1 dependencies in toplevel Makefile @ 2017-06-13 12:58 Olivier Hainque 2017-06-14 11:39 ` Nathan Sidwell 2017-06-22 12:13 ` Alexandre Oliva 0 siblings, 2 replies; 16+ messages in thread From: Olivier Hainque @ 2017-06-13 12:58 UTC (permalink / raw) To: GCC Patches; +Cc: Nicolas Roche [-- Attachment #1: Type: text/plain, Size: 2050 bytes --] Hello, During highly parallel builds on fast hosts, we have experienced sporadic bootstrap failures on libquadmath like In file included from ../../../src/libquadmath/printf/printf_fp.c:39:0: ../../../src/libquadmath/printf/quadmath-printf.h:24:20: fatal error: .../build/./gcc/include-fixed/limits.h: No such file or directory #include <limits.h> A pretty clear sign of a race condition caused by some inaccuracy in the dependency statements. Investigation led us to suspect this piece in the toplevel Makefile.in: all-libcc1: maybe-all-gcc which differs from all the other dependencies on maybe-all-gcc in that it's unconditional whereas the other ones are conditioned on @if gcc-no-bootstrap. (Thanks to Nico Roche, cc'ed for the worked involved in finding this out) Our understanding is that it's incorrect to have dependencies on maybe-all-gcc in the bootstrap case; that this should be a dependency on stage_current instead. This patch is a proposal to address this by first removing the following statement in Makefile.def: dependencies = { module=all-libcc1; on=all-gcc; }; (which emits the dependency unconditionally), then refining the expansion of "all" targets in Makefile.tpl so they include a possible dep conditioned by gcc-no-bootstrap, on demand for "host_module"s that ask for it by way of a new "depgcc" parameter. We have been using this in-house for months now. The sporadic failures have disappeared since then and we haven't observed any related fallout so far. Bootstrapped and regression tested on x86_64-linux. OK to commit ? Thanks in advance for your feedback, With Kind Regards, Olivier 2017-06-13 Olivier Hainque <hainque@adacore.com> * Makefile.def (host_modules): Set depgcc to true for libcc1, meaning need of a dep on stage_current if gcc-bootstrap and on maybe-all-gcc otherwise. (dependencies) Remove unconditional dependency on all-gcc. * Makefile.tpl ("all" targets): Handle depgcc. * Makefile.in: Regenerate [-- Attachment #2: libcc1-deps.diff --] [-- Type: application/octet-stream, Size: 17138 bytes --] diff --git a/Makefile.def b/Makefile.def index abfa9ef..0bc3ccf 100644 --- a/Makefile.def +++ b/Makefile.def @@ -126,7 +126,7 @@ 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= libcc1; extra_configure_flags=--enable-shared; depgcc=true; }; host_modules= { module= gotools; }; target_modules = { module= libstdc++-v3; @@ -373,7 +373,6 @@ 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; }; dependencies = { module=all-gotools; on=all-target-libgo; }; diff --git a/Makefile.in b/Makefile.in index b824e0a..5007f9d 100644 --- a/Makefile.in +++ b/Makefile.in @@ -2808,6 +2808,7 @@ maybe-all-build-libiberty: @if gcc-bootstrap all-build-libiberty: stage_current @endif gcc-bootstrap + @if build-libiberty TARGET-build-libiberty=all maybe-all-build-libiberty: all-build-libiberty @@ -2865,6 +2866,7 @@ maybe-all-build-bison: @if gcc-bootstrap all-build-bison: stage_current @endif gcc-bootstrap + @if build-bison TARGET-build-bison=all maybe-all-build-bison: all-build-bison @@ -2922,6 +2924,7 @@ maybe-all-build-flex: @if gcc-bootstrap all-build-flex: stage_current @endif gcc-bootstrap + @if build-flex TARGET-build-flex=all maybe-all-build-flex: all-build-flex @@ -2979,6 +2982,7 @@ maybe-all-build-m4: @if gcc-bootstrap all-build-m4: stage_current @endif gcc-bootstrap + @if build-m4 TARGET-build-m4=all maybe-all-build-m4: all-build-m4 @@ -3036,6 +3040,7 @@ maybe-all-build-texinfo: @if gcc-bootstrap all-build-texinfo: stage_current @endif gcc-bootstrap + @if build-texinfo TARGET-build-texinfo=all maybe-all-build-texinfo: all-build-texinfo @@ -3093,6 +3098,7 @@ maybe-all-build-fixincludes: @if gcc-bootstrap all-build-fixincludes: stage_current @endif gcc-bootstrap + @if build-fixincludes TARGET-build-fixincludes=all maybe-all-build-fixincludes: all-build-fixincludes @@ -3150,6 +3156,7 @@ maybe-all-build-libcpp: @if gcc-bootstrap all-build-libcpp: stage_current @endif gcc-bootstrap + @if build-libcpp TARGET-build-libcpp=all maybe-all-build-libcpp: all-build-libcpp @@ -3475,6 +3482,7 @@ maybe-all-bfd: @if gcc-bootstrap all-bfd: stage_current @endif gcc-bootstrap + @if bfd TARGET-bfd=all maybe-all-bfd: all-bfd @@ -4505,6 +4513,7 @@ maybe-all-opcodes: @if gcc-bootstrap all-opcodes: stage_current @endif gcc-bootstrap + @if opcodes TARGET-opcodes=all maybe-all-opcodes: all-opcodes @@ -5535,6 +5544,7 @@ maybe-all-binutils: @if gcc-bootstrap all-binutils: stage_current @endif gcc-bootstrap + @if binutils TARGET-binutils=all maybe-all-binutils: all-binutils @@ -6301,6 +6311,7 @@ maybe-all-bison: @if gcc-bootstrap all-bison: stage_current @endif gcc-bootstrap + @if bison TARGET-bison=all maybe-all-bison: all-bison @@ -6745,6 +6756,7 @@ maybe-all-cgen: @if gcc-bootstrap all-cgen: stage_current @endif gcc-bootstrap + @if cgen TARGET-cgen=all maybe-all-cgen: all-cgen @@ -7186,6 +7198,7 @@ maybe-all-dejagnu: @if gcc-bootstrap all-dejagnu: stage_current @endif gcc-bootstrap + @if dejagnu TARGET-dejagnu=all maybe-all-dejagnu: all-dejagnu @@ -7627,6 +7640,7 @@ maybe-all-etc: @if gcc-bootstrap all-etc: stage_current @endif gcc-bootstrap + @if etc TARGET-etc=all maybe-all-etc: all-etc @@ -8068,6 +8082,7 @@ maybe-all-fastjar: @if gcc-bootstrap all-fastjar: stage_current @endif gcc-bootstrap + @if fastjar TARGET-fastjar=all maybe-all-fastjar: all-fastjar @@ -8776,6 +8791,7 @@ maybe-all-fixincludes: @if gcc-bootstrap all-fixincludes: stage_current @endif gcc-bootstrap + @if fixincludes TARGET-fixincludes=all maybe-all-fixincludes: all-fixincludes @@ -9527,6 +9543,7 @@ maybe-all-flex: @if gcc-bootstrap all-flex: stage_current @endif gcc-bootstrap + @if flex TARGET-flex=all maybe-all-flex: all-flex @@ -10235,6 +10252,7 @@ maybe-all-gas: @if gcc-bootstrap all-gas: stage_current @endif gcc-bootstrap + @if gas TARGET-gas=all maybe-all-gas: all-gas @@ -11265,6 +11283,7 @@ maybe-all-gcc: @if gcc-bootstrap all-gcc: stage_current @endif gcc-bootstrap + @if gcc TARGET-gcc=all maybe-all-gcc: all-gcc @@ -12303,6 +12322,7 @@ maybe-all-gmp: @if gcc-bootstrap all-gmp: stage_current @endif gcc-bootstrap + @if gmp TARGET-gmp=all maybe-all-gmp: all-gmp @@ -13329,6 +13349,7 @@ maybe-all-mpfr: @if gcc-bootstrap all-mpfr: stage_current @endif gcc-bootstrap + @if mpfr TARGET-mpfr=all maybe-all-mpfr: all-mpfr @@ -14355,6 +14376,7 @@ maybe-all-mpc: @if gcc-bootstrap all-mpc: stage_current @endif gcc-bootstrap + @if mpc TARGET-mpc=all maybe-all-mpc: all-mpc @@ -15381,6 +15403,7 @@ maybe-all-isl: @if gcc-bootstrap all-isl: stage_current @endif gcc-bootstrap + @if isl TARGET-isl=all maybe-all-isl: all-isl @@ -16407,6 +16430,7 @@ maybe-all-libelf: @if gcc-bootstrap all-libelf: stage_current @endif gcc-bootstrap + @if libelf TARGET-libelf=all maybe-all-libelf: all-libelf @@ -17425,6 +17449,7 @@ maybe-all-gold: @if gcc-bootstrap all-gold: stage_current @endif gcc-bootstrap + @if gold TARGET-gold=all maybe-all-gold: all-gold @@ -18191,6 +18216,7 @@ maybe-all-gprof: @if gcc-bootstrap all-gprof: stage_current @endif gcc-bootstrap + @if gprof TARGET-gprof=all maybe-all-gprof: all-gprof @@ -18896,6 +18922,7 @@ maybe-all-intl: @if gcc-bootstrap all-intl: stage_current @endif gcc-bootstrap + @if intl TARGET-intl=all maybe-all-intl: all-intl @@ -19662,6 +19689,7 @@ maybe-all-tcl: @if gcc-bootstrap all-tcl: stage_current @endif gcc-bootstrap + @if tcl TARGET-tcl=all maybe-all-tcl: all-tcl @@ -20088,6 +20116,7 @@ maybe-all-itcl: @if gcc-bootstrap all-itcl: stage_current @endif gcc-bootstrap + @if itcl TARGET-itcl=all maybe-all-itcl: all-itcl @@ -20793,6 +20822,7 @@ maybe-all-ld: @if gcc-bootstrap all-ld: stage_current @endif gcc-bootstrap + @if ld TARGET-ld=all maybe-all-ld: all-ld @@ -21823,6 +21853,7 @@ maybe-all-libbacktrace: @if gcc-bootstrap all-libbacktrace: stage_current @endif gcc-bootstrap + @if libbacktrace TARGET-libbacktrace=all maybe-all-libbacktrace: all-libbacktrace @@ -22853,6 +22884,7 @@ maybe-all-libcpp: @if gcc-bootstrap all-libcpp: stage_current @endif gcc-bootstrap + @if libcpp TARGET-libcpp=all maybe-all-libcpp: all-libcpp @@ -23883,6 +23915,7 @@ maybe-all-libdecnumber: @if gcc-bootstrap all-libdecnumber: stage_current @endif gcc-bootstrap + @if libdecnumber TARGET-libdecnumber=all maybe-all-libdecnumber: all-libdecnumber @@ -24649,6 +24682,7 @@ maybe-all-libgui: @if gcc-bootstrap all-libgui: stage_current @endif gcc-bootstrap + @if libgui TARGET-libgui=all maybe-all-libgui: all-libgui @@ -25362,6 +25396,7 @@ maybe-all-libiberty: @if gcc-bootstrap all-libiberty: stage_current @endif gcc-bootstrap + @if libiberty TARGET-libiberty=all maybe-all-libiberty: all-libiberty @@ -26400,6 +26435,7 @@ maybe-all-libiberty-linker-plugin: @if gcc-bootstrap all-libiberty-linker-plugin: stage_current @endif gcc-bootstrap + @if libiberty-linker-plugin TARGET-libiberty-linker-plugin=all maybe-all-libiberty-linker-plugin: all-libiberty-linker-plugin @@ -27438,6 +27474,7 @@ maybe-all-libiconv: @if gcc-bootstrap all-libiconv: stage_current @endif gcc-bootstrap + @if libiconv TARGET-libiconv=all maybe-all-libiconv: all-libiconv @@ -28099,6 +28136,7 @@ maybe-all-m4: @if gcc-bootstrap all-m4: stage_current @endif gcc-bootstrap + @if m4 TARGET-m4=all maybe-all-m4: all-m4 @@ -28540,6 +28578,7 @@ maybe-all-readline: @if gcc-bootstrap all-readline: stage_current @endif gcc-bootstrap + @if readline TARGET-readline=all maybe-all-readline: all-readline @@ -28981,6 +29020,7 @@ maybe-all-sid: @if gcc-bootstrap all-sid: stage_current @endif gcc-bootstrap + @if sid TARGET-sid=all maybe-all-sid: all-sid @@ -29422,6 +29462,7 @@ maybe-all-sim: @if gcc-bootstrap all-sim: stage_current @endif gcc-bootstrap + @if sim TARGET-sim=all maybe-all-sim: all-sim @@ -29863,6 +29904,7 @@ maybe-all-texinfo: @if gcc-bootstrap all-texinfo: stage_current @endif gcc-bootstrap + @if texinfo TARGET-texinfo=all maybe-all-texinfo: all-texinfo @@ -30564,6 +30606,7 @@ maybe-all-zlib: @if gcc-bootstrap all-zlib: stage_current @endif gcc-bootstrap + @if zlib TARGET-zlib=all maybe-all-zlib: all-zlib @@ -31312,6 +31355,7 @@ maybe-all-gdb: @if gcc-bootstrap all-gdb: stage_current @endif gcc-bootstrap + @if gdb TARGET-gdb=all maybe-all-gdb: all-gdb @@ -31753,6 +31797,7 @@ maybe-all-expect: @if gcc-bootstrap all-expect: stage_current @endif gcc-bootstrap + @if expect TARGET-expect=all maybe-all-expect: all-expect @@ -32194,6 +32239,7 @@ maybe-all-guile: @if gcc-bootstrap all-guile: stage_current @endif gcc-bootstrap + @if guile TARGET-guile=all maybe-all-guile: all-guile @@ -32635,6 +32681,7 @@ maybe-all-tk: @if gcc-bootstrap all-tk: stage_current @endif gcc-bootstrap + @if tk TARGET-tk=all maybe-all-tk: all-tk @@ -33076,6 +33123,7 @@ maybe-all-libtermcap: @if gcc-bootstrap all-libtermcap: stage_current @endif gcc-bootstrap + @if libtermcap TARGET-libtermcap=all maybe-all-libtermcap: all-libtermcap @@ -33451,6 +33499,7 @@ maybe-all-utils: @if gcc-bootstrap all-utils: stage_current @endif gcc-bootstrap + @if utils TARGET-utils=all maybe-all-utils: all-utils @@ -33886,6 +33935,7 @@ maybe-all-gnattools: @if gcc-bootstrap all-gnattools: stage_current @endif gcc-bootstrap + @if gnattools TARGET-gnattools=all maybe-all-gnattools: all-gnattools @@ -34599,6 +34649,7 @@ maybe-all-lto-plugin: @if gcc-bootstrap all-lto-plugin: stage_current @endif gcc-bootstrap + @if lto-plugin TARGET-lto-plugin=all maybe-all-lto-plugin: all-lto-plugin @@ -35365,6 +35416,11 @@ maybe-all-libcc1: @if gcc-bootstrap all-libcc1: stage_current @endif gcc-bootstrap + +@if gcc-no-bootstrap +all-libcc1: maybe-all-gcc +@endif gcc-no-bootstrap + @if libcc1 TARGET-libcc1=all maybe-all-libcc1: all-libcc1 @@ -35806,6 +35862,7 @@ maybe-all-gotools: @if gcc-bootstrap all-gotools: stage_current @endif gcc-bootstrap + @if gotools TARGET-gotools=all maybe-all-gotools: all-gotools @@ -36628,6 +36685,7 @@ maybe-all-target-libstdc++-v3: @if gcc-bootstrap all-target-libstdc++-v3: stage_current @endif gcc-bootstrap + @if target-libstdc++-v3 TARGET-target-libstdc++-v3=all maybe-all-target-libstdc++-v3: all-target-libstdc++-v3 @@ -37784,6 +37842,7 @@ maybe-all-target-libsanitizer: @if gcc-bootstrap all-target-libsanitizer: stage_current @endif gcc-bootstrap + @if target-libsanitizer TARGET-target-libsanitizer=all maybe-all-target-libsanitizer: all-target-libsanitizer @@ -38940,6 +38999,7 @@ maybe-all-target-libmpx: @if gcc-bootstrap all-target-libmpx: stage_current @endif gcc-bootstrap + @if target-libmpx TARGET-target-libmpx=all maybe-all-target-libmpx: all-target-libmpx @@ -40096,6 +40156,7 @@ maybe-all-target-libvtv: @if gcc-bootstrap all-target-libvtv: stage_current @endif gcc-bootstrap + @if target-libvtv TARGET-target-libvtv=all maybe-all-target-libvtv: all-target-libvtv @@ -40892,6 +40953,7 @@ maybe-all-target-libcilkrts: @if gcc-bootstrap all-target-libcilkrts: stage_current @endif gcc-bootstrap + @if target-libcilkrts TARGET-target-libcilkrts=all maybe-all-target-libcilkrts: all-target-libcilkrts @@ -41350,6 +41412,7 @@ maybe-all-target-liboffloadmic: @if gcc-bootstrap all-target-liboffloadmic: stage_current @endif gcc-bootstrap + @if target-liboffloadmic TARGET-target-liboffloadmic=all maybe-all-target-liboffloadmic: all-target-liboffloadmic @@ -41808,6 +41871,7 @@ maybe-all-target-libssp: @if gcc-bootstrap all-target-libssp: stage_current @endif gcc-bootstrap + @if target-libssp TARGET-target-libssp=all maybe-all-target-libssp: all-target-libssp @@ -42266,6 +42330,7 @@ maybe-all-target-newlib: @if gcc-bootstrap all-target-newlib: stage_current @endif gcc-bootstrap + @if target-newlib TARGET-target-newlib=all maybe-all-target-newlib: all-target-newlib @@ -43084,6 +43149,7 @@ maybe-all-target-libgcc: @if gcc-bootstrap all-target-libgcc: stage_current @endif gcc-bootstrap + @if target-libgcc TARGET-target-libgcc=all maybe-all-target-libgcc: all-target-libgcc @@ -43875,6 +43941,7 @@ maybe-all-target-libbacktrace: @if gcc-bootstrap all-target-libbacktrace: stage_current @endif gcc-bootstrap + @if target-libbacktrace TARGET-target-libbacktrace=all maybe-all-target-libbacktrace: all-target-libbacktrace @@ -44333,6 +44400,7 @@ maybe-all-target-libquadmath: @if gcc-bootstrap all-target-libquadmath: stage_current @endif gcc-bootstrap + @if target-libquadmath TARGET-target-libquadmath=all maybe-all-target-libquadmath: all-target-libquadmath @@ -44791,6 +44859,7 @@ maybe-all-target-libgfortran: @if gcc-bootstrap all-target-libgfortran: stage_current @endif gcc-bootstrap + @if target-libgfortran TARGET-target-libgfortran=all maybe-all-target-libgfortran: all-target-libgfortran @@ -45249,6 +45318,7 @@ maybe-all-target-libobjc: @if gcc-bootstrap all-target-libobjc: stage_current @endif gcc-bootstrap + @if target-libobjc TARGET-target-libobjc=all maybe-all-target-libobjc: all-target-libobjc @@ -45707,6 +45777,7 @@ maybe-all-target-libgo: @if gcc-bootstrap all-target-libgo: stage_current @endif gcc-bootstrap + @if target-libgo TARGET-target-libgo=all maybe-all-target-libgo: all-target-libgo @@ -46165,6 +46236,7 @@ maybe-all-target-libhsail-rt: @if gcc-bootstrap all-target-libhsail-rt: stage_current @endif gcc-bootstrap + @if target-libhsail-rt TARGET-target-libhsail-rt=all maybe-all-target-libhsail-rt: all-target-libhsail-rt @@ -46623,6 +46695,7 @@ maybe-all-target-libtermcap: @if gcc-bootstrap all-target-libtermcap: stage_current @endif gcc-bootstrap + @if target-libtermcap TARGET-target-libtermcap=all maybe-all-target-libtermcap: all-target-libtermcap @@ -47016,6 +47089,7 @@ maybe-all-target-winsup: @if gcc-bootstrap all-target-winsup: stage_current @endif gcc-bootstrap + @if target-winsup TARGET-target-winsup=all maybe-all-target-winsup: all-target-winsup @@ -47474,6 +47548,7 @@ maybe-all-target-libgloss: @if gcc-bootstrap all-target-libgloss: stage_current @endif gcc-bootstrap + @if target-libgloss TARGET-target-libgloss=all maybe-all-target-libgloss: all-target-libgloss @@ -47927,6 +48002,7 @@ maybe-all-target-libffi: @if gcc-bootstrap all-target-libffi: stage_current @endif gcc-bootstrap + @if target-libffi TARGET-target-libffi=all maybe-all-target-libffi: all-target-libffi @@ -48375,6 +48451,7 @@ maybe-all-target-zlib: @if gcc-bootstrap all-target-zlib: stage_current @endif gcc-bootstrap + @if target-zlib TARGET-target-zlib=all maybe-all-target-zlib: all-target-zlib @@ -48833,6 +48910,7 @@ maybe-all-target-rda: @if gcc-bootstrap all-target-rda: stage_current @endif gcc-bootstrap + @if target-rda TARGET-target-rda=all maybe-all-target-rda: all-target-rda @@ -49291,6 +49369,7 @@ maybe-all-target-libada: @if gcc-bootstrap all-target-libada: stage_current @endif gcc-bootstrap + @if target-libada TARGET-target-libada=all maybe-all-target-libada: all-target-libada @@ -50109,6 +50188,7 @@ maybe-all-target-libgomp: @if gcc-bootstrap all-target-libgomp: stage_current @endif gcc-bootstrap + @if target-libgomp TARGET-target-libgomp=all maybe-all-target-libgomp: all-target-libgomp @@ -50905,6 +50985,7 @@ maybe-all-target-libitm: @if gcc-bootstrap all-target-libitm: stage_current @endif gcc-bootstrap + @if target-libitm TARGET-target-libitm=all maybe-all-target-libitm: all-target-libitm @@ -51363,6 +51444,7 @@ maybe-all-target-libatomic: @if gcc-bootstrap all-target-libatomic: stage_current @endif gcc-bootstrap + @if target-libatomic TARGET-target-libatomic=all maybe-all-target-libatomic: all-target-libatomic @@ -55262,7 +55344,6 @@ all-stagefeedback-lto-plugin: maybe-all-stagefeedback-libiberty-linker-plugin all-stageautoprofile-lto-plugin: maybe-all-stageautoprofile-libiberty-linker-plugin all-stageautofeedback-lto-plugin: maybe-all-stageautofeedback-libiberty-linker-plugin configure-libcc1: maybe-configure-gcc -all-libcc1: maybe-all-gcc all-gotools: maybe-all-target-libgo all-utils: maybe-all-libiberty configure-intl: maybe-all-libiconv diff --git a/Makefile.tpl b/Makefile.tpl index d0fa070..8ea0d69 100644 --- a/Makefile.tpl +++ b/Makefile.tpl @@ -1115,6 +1115,11 @@ maybe-all-[+prefix+][+module+]: @if gcc-bootstrap all-[+prefix+][+module+]: stage_current @endif gcc-bootstrap +[+ IF depgcc +] +@if gcc-no-bootstrap +all-[+prefix+][+module+]: maybe-all-gcc +@endif gcc-no-bootstrap +[+ ENDIF depgcc +] @if [+prefix+][+module+] TARGET-[+prefix+][+module+]=[+ IF all_target +][+all_target+][+ ELSE +]all[+ ENDIF all_target +] ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: fix libcc1 dependencies in toplevel Makefile 2017-06-13 12:58 fix libcc1 dependencies in toplevel Makefile Olivier Hainque @ 2017-06-14 11:39 ` Nathan Sidwell 2017-06-14 21:11 ` Olivier Hainque 2017-06-22 12:13 ` Alexandre Oliva 1 sibling, 1 reply; 16+ messages in thread From: Nathan Sidwell @ 2017-06-14 11:39 UTC (permalink / raw) To: gcc-patches Olivier, > During highly parallel builds on fast hosts, we have experienced > sporadic bootstrap failures on libquadmath like I have encountered such a bootstrap problem too. I guessed dependency race condition, but -j21 was a simpler fix :) I'm happy to try the patch. nathan -- Nathan Sidwell ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: fix libcc1 dependencies in toplevel Makefile 2017-06-14 11:39 ` Nathan Sidwell @ 2017-06-14 21:11 ` Olivier Hainque 2017-06-15 12:03 ` Nathan Sidwell 0 siblings, 1 reply; 16+ messages in thread From: Olivier Hainque @ 2017-06-14 21:11 UTC (permalink / raw) To: Nathan Sidwell; +Cc: Olivier Hainque, gcc-patches > On Jun 14, 2017, at 13:39 , Nathan Sidwell <nathan@acm.org> wrote: > > Olivier, >> During highly parallel builds on fast hosts, we have experienced >> sporadic bootstrap failures on libquadmath like > > I have encountered such a bootstrap problem too. I guessed dependency race condition, but -j21 was a simpler fix :) I see :) > I'm happy to try the patch. That would bring useful extra datapoints, Thanks! The patch might be more complex than it needs to be. The logic is very simple: I wasn't sure whether I could add @if gcc-no-bootstrap all-[+prefix+][+module+]: maybe-all-gcc @endif gcc-no-bootstrap to all "all" targets after the dependency to stage_current @if gcc-bootstrap (in Makefile.tpl). The "depgcc" boolean is simply a mechanism to do that only for cases where we were adding a extra explicit dependency to maybe-all-gcc before, that is, only for libcc1. Olivier ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: fix libcc1 dependencies in toplevel Makefile 2017-06-14 21:11 ` Olivier Hainque @ 2017-06-15 12:03 ` Nathan Sidwell 2017-06-15 12:29 ` Olivier Hainque 0 siblings, 1 reply; 16+ messages in thread From: Nathan Sidwell @ 2017-06-15 12:03 UTC (permalink / raw) To: Olivier Hainque; +Cc: gcc-patches On 06/14/2017 01:24 PM, Olivier Hainque wrote: >> I'm happy to try the patch. > > That would bring useful extra datapoints, Thanks! I now seem unable to trigger the race with an unpatched source. Sorry -- Nathan Sidwell ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: fix libcc1 dependencies in toplevel Makefile 2017-06-15 12:03 ` Nathan Sidwell @ 2017-06-15 12:29 ` Olivier Hainque 0 siblings, 0 replies; 16+ messages in thread From: Olivier Hainque @ 2017-06-15 12:29 UTC (permalink / raw) To: Nathan Sidwell; +Cc: gcc-patches > On 15 Jun 2017, at 14:03, Nathan Sidwell <nathan@acm.org> wrote: > > On 06/14/2017 01:24 PM, Olivier Hainque wrote: > >>> I'm happy to try the patch. >> That would bring useful extra datapoints, Thanks! > > I now seem unable to trigger the race with an unpatched source. Sorry No pb. Thanks for trying. We were seeing the failures only in pretty specific circumstances (particular machine & load conditions etc) The patch remains worth considering IMO. At least, it would be interesting to get feedback from a build-system maintainer on the correctness of the current dependencies. Our understanding is that it is incorrect to have libcc1 depend on maybe-all-gcc in a bootstrapping setup because it can trigger rebuilds of gcc/ components in parallel with ongoing processing of target components (with pre-requisites on stage_current only). ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: fix libcc1 dependencies in toplevel Makefile 2017-06-13 12:58 fix libcc1 dependencies in toplevel Makefile Olivier Hainque 2017-06-14 11:39 ` Nathan Sidwell @ 2017-06-22 12:13 ` Alexandre Oliva 2017-06-26 7:41 ` Olivier Hainque 1 sibling, 1 reply; 16+ messages in thread From: Alexandre Oliva @ 2017-06-22 12:13 UTC (permalink / raw) To: Olivier Hainque; +Cc: GCC Patches, Nicolas Roche On Jun 13, 2017, Olivier Hainque <hainque@adacore.com> wrote: > 2017-06-13 Olivier Hainque <hainque@adacore.com> > * Makefile.def (host_modules): Set depgcc to true for libcc1, > meaning need of a dep on stage_current if gcc-bootstrap and on > maybe-all-gcc otherwise. > (dependencies) Remove unconditional dependency on all-gcc. > * Makefile.tpl ("all" targets): Handle depgcc. > * Makefile.in: Regenerate This looks reasonable to me. libcc1 is weird. It's not a target library, it doesn't use the current stage tools for building. It might as well not have any deps on the current stage's gcc, if it weren't for the fact that it includes headers from the current stage's gcc and links with current stage's host libraries, and even its configure reads from files created in current stage's gcc configuration. So, it needs to be built after gcc and its host deps are built, and it needs to be configured after gcc is configured. However, it is not part of the bootstrap, and we avoid building it more than once even in a bootstrap build. That's what makes it special and tricky. Your patch takes care of the build dependencies of libcc1, which should avoid some scenarios that might lead to concurrency between staged and non-staged builds. However, I don't see that it ensures libcc1 will be built after GCC in bootstrap scenarios; it might do so under 'make bootstrap', but probably not under 'make all-libcc1'. I think we may need some additional bootstrap-only explicit dependency for that to work properly. Furthermore, the patch does not take care of the configure dependencies of libcc1, so I think there might still be room for trouble, depending on what make targets are concurrently requested. I'm not entirely sure this is true, though. I'd like to understand better what the concurrency problem is with the current build machinery, before we proceed with this change. If you manage to trigger the problem again, could you try to further analyze build logs to check for e.g. concurrent activation of all-gcc in both the top-level Makefile and the recursed-into-for-stage1 Makefile, or somesuch? Something else worth considering is what the make targets specified in the command line were. All this said, I do agree that explicit deps on maybe-all-gcc are a likely source of trouble; AFAICT all other host modules that are to be built after gcc depend on some target lib too. Perhaps that brings some dep that libcc1 should have too... -- Alexandre Oliva, freedom fighter http://FSFLA.org/~lxoliva/ You must be the change you wish to see in the world. -- Gandhi Be Free! -- http://FSFLA.org/ FSF Latin America board member Free Software Evangelist|Red Hat Brasil GNU Toolchain Engineer ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: fix libcc1 dependencies in toplevel Makefile 2017-06-22 12:13 ` Alexandre Oliva @ 2017-06-26 7:41 ` Olivier Hainque 2017-06-27 16:32 ` Olivier Hainque 2017-06-27 19:53 ` Alexandre Oliva 0 siblings, 2 replies; 16+ messages in thread From: Olivier Hainque @ 2017-06-26 7:41 UTC (permalink / raw) To: Alexandre Oliva; +Cc: Olivier Hainque, GCC Patches, Nicolas Roche Hello Alex, Thanks for the review and for the extensive comments on this, much appreciated :) > On Jun 22, 2017, at 14:12 , Alexandre Oliva <aoliva@redhat.com> wrote: > > On Jun 13, 2017, Olivier Hainque <hainque@adacore.com> wrote: > >> 2017-06-13 Olivier Hainque <hainque@adacore.com> > >> * Makefile.def (host_modules): Set depgcc to true for libcc1, >> meaning need of a dep on stage_current if gcc-bootstrap and on >> maybe-all-gcc otherwise. >> (dependencies) Remove unconditional dependency on all-gcc. > >> * Makefile.tpl ("all" targets): Handle depgcc. >> * Makefile.in: Regenerate > > This looks reasonable to me. libcc1 is weird. It's not a target > library, it doesn't use the current stage tools for building. It might > as well not have any deps on the current stage's gcc, if it weren't for > the fact that it includes headers from the current stage's gcc and links > with current stage's host libraries, and even its configure reads from > files created in current stage's gcc configuration. > > So, it needs to be built after gcc and its host deps are built, and it > needs to be configured after gcc is configured. However, it is not part > of the bootstrap, and we avoid building it more than once even in a > bootstrap build. That's what makes it special and tricky. OK, thanks for summarizing the areas of intricacy. > Your patch takes care of the build dependencies of libcc1, which should > avoid some scenarios that might lead to concurrency between staged and > non-staged builds. However, I don't see that it ensures libcc1 will be > built after GCC in bootstrap scenarios; it might do so under 'make > bootstrap', but probably not under 'make all-libcc1'. I think we may > need some additional bootstrap-only explicit dependency for that to work > properly. I don't quite understand this: we're using the same prerequisite as target libraries, e.g. all-target-libstdc++-v3 or all-target-libbacktrace, and I don't see other deps for these either. I don't see why the sequencing constraints for libcc1 should be tighter than those for the target libraries. I certainly don't grasp all the ramifications of the particularities you outlined above, though. > Furthermore, the patch does not take care of the configure dependencies > of libcc1, so I think there might still be room for trouble, depending > on what make targets are concurrently requested. I'm not entirely sure > this is true, though. To my knowledge, we have never observed a problem in this area, assuming our understanding of the problems we saw was correct :) > I'd like to understand better what the concurrency problem is with the > current build machinery, before we proceed with this change. If you > manage to trigger the problem again, could you try to further analyze > build logs to check for e.g. concurrent activation of all-gcc in both > the top-level Makefile and the recursed-into-for-stage1 Makefile, or > somesuch? Something else worth considering is what the make targets > specified in the command line were. The problems were showing pretty rarely, only on certain hosts, in certain load conditions. We should still have the logs around and I'll look into this. They are regular logs, without -d. I can almost for sure fetch the exact "make" command line involved. We had performed some analysis of what was happening, to our understanding. I'll dig this out as well. > All this said, I do agree that explicit deps on maybe-all-gcc are a > likely source of trouble; OK > AFAICT all other host modules that are to be > built after gcc depend on some target lib too. Perhaps that brings some > dep that libcc1 should have too... This relates to the comments above. I guess I don't understand what libcc1 might need that target libs wouldn't need. Olivier ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: fix libcc1 dependencies in toplevel Makefile 2017-06-26 7:41 ` Olivier Hainque @ 2017-06-27 16:32 ` Olivier Hainque 2017-06-27 19:53 ` Alexandre Oliva 1 sibling, 0 replies; 16+ messages in thread From: Olivier Hainque @ 2017-06-27 16:32 UTC (permalink / raw) To: Alexandre Oliva; +Cc: Olivier Hainque, GCC Patches, Nicolas Roche Hi Alex, > On Jun 26, 2017, at 09:16 , Olivier Hainque <hainque@adacore.com> wrote: > >> I'd like to understand better what the concurrency problem is with the >> current build machinery, before we proceed with this change. If you >> manage to trigger the problem again, could you try to further analyze >> build logs to check for e.g. concurrent activation of all-gcc in both >> the top-level Makefile and the recursed-into-for-stage1 Makefile, or >> somesuch? Something else worth considering is what the make targets >> specified in the command line were. > > The problems were showing pretty rarely, only on certain hosts, in > certain load conditions. We should still have the logs around and I'll > look into this. They are regular logs, without -d. I can almost for sure > fetch the exact "make" command line involved. This was: make -j 32 BOOT_LDFLAGS=-Wl,--stack=0x2000000 CC=gcc 'ADAFLAGS=-W -Wall -gnatpg -gnata -gnatws -gnatU -gnatyN' CXXFLAGS=-O2 BOOT_CFLAGS=-O2 CFLAGS=-O2 'LN_S=cp -p' 'BOOT_ADAFLAGS=-gnatpgn -gnatU' 'STAGE1_CFLAGS=-O2 -O0 -g' bootstrap From the logs of discussions we tracked, the understanding of the dependency issue was that we *had* (before the patch), possibilities to have stage_current and maybe-all-gcc targets built concurrently, via > configure-target-libquadmath: stage_current > all-target-libquadmath: configure-target-libquadmath > maybe-all-target-libquadmath: all-target-libquadmath > all-target: maybe-all-target-libquadmath on the one hand, > all-libcc1: maybe-all-gcc > maybe-all-libcc1: all-libcc1 > all-host: maybe-all-libcc1 on the other hand. Does that make sense ? Thanks for your feedback! (Note that I'll be away from tomorrow to Monday) Olivier ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: fix libcc1 dependencies in toplevel Makefile 2017-06-26 7:41 ` Olivier Hainque 2017-06-27 16:32 ` Olivier Hainque @ 2017-06-27 19:53 ` Alexandre Oliva 2017-07-03 21:05 ` Olivier Hainque 2018-06-03 19:13 ` Alexandre Oliva 1 sibling, 2 replies; 16+ messages in thread From: Alexandre Oliva @ 2017-06-27 19:53 UTC (permalink / raw) To: Olivier Hainque; +Cc: GCC Patches, Nicolas Roche On Jun 26, 2017, Olivier Hainque <hainque@adacore.com> wrote: > On Jun 22, 2017, at 14:12 , Alexandre Oliva <aoliva@redhat.com> wrote: >> Your patch takes care of the build dependencies of libcc1, which should >> avoid some scenarios that might lead to concurrency between staged and >> non-staged builds. However, I don't see that it ensures libcc1 will be >> built after GCC in bootstrap scenarios; it might do so under 'make >> bootstrap', but probably not under 'make all-libcc1'. I think we may >> need some additional bootstrap-only explicit dependency for that to work >> properly. > I don't quite understand this: we're using the same prerequisite as target > libraries, e.g. all-target-libstdc++-v3 or all-target-libbacktrace Not quite. Target libraries have deps on e.g. target-libgcc, look below the following comments in Makefile.in: # Dependencies for target modules on other target modules are # described by lang_env_dependencies; the defaults apply to anything # not mentioned there. plus, maybe-configure*-target-libgcc depend on maybe-all*-gcc (see above those comments). The precise deps vary per bootstrap level, or non-bootstrap. But after the proposed patch there are no such deps for libcc1 in the bootstrap case, so we might very well attempt to build libcc1 in parallel with gcc. We shouldn't do that. But then, it all works out because we only build all-host after bootstrap is complete; all-stage* doesn't depend on libcc1 at all. > and I don't see other deps for these either. > I don't see why the sequencing constraints for libcc1 should be tighter > than those for the target libraries. It was not about making them tighter, just about making them present. Right now, in the bootstrap case, they're entirely implicit, by the fact that we complete bootstrap first, then proceed to build all-host all-target. This deserves at least a comment somewhere, perhaps next to libcc1 in Makefile.def, or next to depgcc. Something to the effect that depgcc brings in a necessary dependency that is implicit in the bootstrap case by the fact that we firt bootstrap, then proceed to build all-host all-target. Perhaps instead of depgcc=true, we should have a new flag in dependencies that indicates the dep should be non-bootstrap only. Or maybe the code that implements dependencies could figure it out on its own, when it sees a dep between a non-bootstrap module and a bootstrap one, and generate the deps within @if gcc-no-bootstrap/@endif. I think this would get us the behavior we want in both bootstrap and non-bootstrap cases, including the libcc1 configure dep that, as it is, might cause GCC to be configured in parallel given the right (or rather wrong) conditions. On Jun 27, 2017, Olivier Hainque <hainque@adacore.com> wrote: >> On Jun 26, 2017, at 09:16 , Olivier Hainque <hainque@adacore.com> wrote: > make -j 32 BOOT_LDFLAGS=-Wl,--stack=0x2000000 CC=gcc 'ADAFLAGS=-W > -Wall -gnatpg -gnata -gnatws -gnatU -gnatyN' CXXFLAGS=-O2 > BOOT_CFLAGS=-O2 CFLAGS=-O2 'LN_S=cp -p' 'BOOT_ADAFLAGS=-gnatpgn > -gnatU' 'STAGE1_CFLAGS=-O2 -O0 -g' bootstrap Thanks. Given that 'bootstrap' is the only requested make target, we can be assured that something iffy took place. What I can't figure out is how we even tried to build libcc1 during bootstrap, under that configuration, because the current Makefile would only do that with all-host, after bootstrap is complete. > From the logs of discussions we tracked, the understanding > of the dependency issue was that we *had* (before the patch), > possibilities to have stage_current and maybe-all-gcc targets > built concurrently, via >> configure-target-libquadmath: stage_current >> all-target-libquadmath: configure-target-libquadmath >> maybe-all-target-libquadmath: all-target-libquadmath >> all-target: maybe-all-target-libquadmath > on the one hand, >> all-libcc1: maybe-all-gcc >> maybe-all-libcc1: all-libcc1 >> all-host: maybe-all-libcc1 > on the other hand. > Does that make sense ? Yeah. Running all-gcc While unstage does its directory-moving dance can't be good. We can't have them both. So, would you like to give the automatic figuring out of non-bootstrap-on-bootstrap deps in dependencies, and guard them between @if gcc-no-bootstrap and @endif (then both configure- and all- libcc1 deps would be adjusted this way)? (I'm not saying it should be trivial to do or anything like that; I'm not all that familiar with it and I'd have to figure it out myself if I were to do it, but I think that would be better than adding yet another means of introducing dependencies, while leaving another risky dep in place) Thanks, -- Alexandre Oliva, freedom fighter http://FSFLA.org/~lxoliva/ You must be the change you wish to see in the world. -- Gandhi Be Free! -- http://FSFLA.org/ FSF Latin America board member Free Software Evangelist|Red Hat Brasil GNU Toolchain Engineer ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: fix libcc1 dependencies in toplevel Makefile 2017-06-27 19:53 ` Alexandre Oliva @ 2017-07-03 21:05 ` Olivier Hainque 2018-06-03 19:13 ` Alexandre Oliva 1 sibling, 0 replies; 16+ messages in thread From: Olivier Hainque @ 2017-07-03 21:05 UTC (permalink / raw) To: Alexandre Oliva; +Cc: GCC Patches, Nicolas Roche Hi Alex, (Back from a few days away) > On 27 Jun 2017, at 21:50, Alexandre Oliva <aoliva@redhat.com> wrote: > >> I don't quite understand this: we're using the same prerequisite as target >> libraries, e.g. all-target-libstdc++-v3 or all-target-libbacktrace > > Not quite. Target libraries have deps on e.g. target-libgcc, look below > the following comments in Makefile.in: > > # Dependencies for target modules on other target modules are > # described by lang_env_dependencies; the defaults apply to anything > # not mentioned there. > > plus, maybe-configure*-target-libgcc depend on maybe-all*-gcc (see above > those comments). The precise deps vary per bootstrap level, or > non-bootstrap. > > But after the proposed patch there are no such deps for libcc1 in the > bootstrap case, so we might very well attempt to build libcc1 in > parallel with gcc. We shouldn't do that. > > But then, it all works out because we only build all-host after > bootstrap is complete; all-stage* doesn't depend on libcc1 at all. I think I see. [...] > So, would you like to give the automatic figuring out of > non-bootstrap-on-bootstrap deps in dependencies, and guard them between > @if gcc-no-bootstrap and @endif (then both configure- and all- libcc1 > deps would be adjusted this way)? (I'm not saying it should be trivial > to do or anything like that; I'm not all that familiar with it and I'd > have to figure it out myself if I were to do it, but I think that would > be better than adding yet another means of introducing dependencies, > while leaving another risky dep in place) I'm willing to study this more and see what can be done to improve things further. There are still a few details I don't quite grasp so it'll just take a bit of time. Thanks a lot for the additional set of extensive comments! With Kind Regards, Olivier ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: fix libcc1 dependencies in toplevel Makefile 2017-06-27 19:53 ` Alexandre Oliva 2017-07-03 21:05 ` Olivier Hainque @ 2018-06-03 19:13 ` Alexandre Oliva 2018-06-12 2:50 ` Alexandre Oliva 1 sibling, 1 reply; 16+ messages in thread From: Alexandre Oliva @ 2018-06-03 19:13 UTC (permalink / raw) To: Olivier Hainque; +Cc: GCC Patches, Nicolas Roche On Jun 27, 2017, Alexandre Oliva <aoliva@redhat.com> wrote: > On Jun 26, 2017, Olivier Hainque <hainque@adacore.com> wrote: >> On Jun 22, 2017, at 14:12 , Alexandre Oliva <aoliva@redhat.com> wrote: >>> Your patch takes care of the build dependencies of libcc1, which should >>> avoid some scenarios that might lead to concurrency between staged and >>> non-staged builds. However, I don't see that it ensures libcc1 will be >>> built after GCC in bootstrap scenarios; it might do so under 'make >>> bootstrap', but probably not under 'make all-libcc1'. I think we may >>> need some additional bootstrap-only explicit dependency for that to work >>> properly. > On Jun 27, 2017, Olivier Hainque <hainque@adacore.com> wrote: >>> On Jun 26, 2017, at 09:16 , Olivier Hainque <hainque@adacore.com> wrote: >> make -j 32 BOOT_LDFLAGS=-Wl,--stack=0x2000000 CC=gcc 'ADAFLAGS=-W >> -Wall -gnatpg -gnata -gnatws -gnatU -gnatyN' CXXFLAGS=-O2 >> BOOT_CFLAGS=-O2 CFLAGS=-O2 'LN_S=cp -p' 'BOOT_ADAFLAGS=-gnatpgn >> -gnatU' 'STAGE1_CFLAGS=-O2 -O0 -g' bootstrap > Thanks. Given that 'bootstrap' is the only requested make target, we > can be assured that something iffy took place. What I can't figure out > is how we even tried to build libcc1 during bootstrap, under that > configuration, because the current Makefile would only do that with > all-host, after bootstrap is complete. I have extensively studied the dependencies, and I still don't see how all-libcc1, that is only activated as a target during the post-bootstrap all-host build, might have been activated concurrently with staging/unstaging. By the time we get to all-host, we've sequentially completed bootstrap, compare, and unstage. The only possibilities I see of something going wrong as described is a parallel build that has bootstrap and postbootstrap targets in the command line, or some patch that changes the dependencies so that such targets are considered in parallel. I could definitely use the build logs from back then, if still available, to try to make sense of the problem. > Yeah. Running all-gcc While unstage does its directory-moving dance > can't be good. We can't have them both. But then, again, I don't see anything that would ever attempt to build these in parallel. We do have other non-bootstrap targets that depend on bootstrap targets, and that would presumably trigger the same problem, if there is one indeed. > So, would you like to give the automatic figuring out of > non-bootstrap-on-bootstrap deps in dependencies, and guard them between > @if gcc-no-bootstrap and @endif (then both configure- and all- libcc1 > deps would be adjusted this way)? The patch below introduces this, but... without understanding how the problem comes about, it's hard to tell whether it would actually fix anything. Really, I don't really think it would fix anything: if there is something that activates all-libcc1 (or any other non-bootstrap target) in parallel with bootstrap, we will likely get parallel build errors, with or without the patch. The patch might make such failures more visible, which might be a good thing, but I'm not sure it's worth the trouble: it will annoy maintainers of other tools who use uberbaum trees, because if they don't --disable-bootstrap at configure time, their tools (e.g. gdb) will build all of GCC stage1 before starting the GDB build. It is a bit fragile, too. For example, it could be improved (and perhaps actually reduce the likelihood of triggering parallel builds of postbootstrap and bootstrap targets) by first detecting all postbootstrap targets, and then mapping *all* of their dependencies on non-postbootstrap targets to stage_last. As it is, there is a possibility of direct dependencies of postbootstrap on prebootstrap targets, which makes room for the prebootstrap targets to be activated in parallel with (rather than just as part of) the bootstrap build. It wouldn't be hard to do that, and I'd get to it if I thought it would actually improve something, which would require a better understanding of the observed failures. As it is, I'm posting this just for the record, because I don't think it's really of any use :-( The sad news is that there really isn't any way (AFAICT) to catch situations that are known to get us in trouble, namely, when parallel builds are started with both bootstrap and postbootstrap targets. I think we'd need all of the bootstrap logic to be encoded in a single-level Makefile (i.e., not recursive makes) to avoid problems with such builds, and that in turn would require postbootstrap targets to depend on the last stage. That would require a lot of Makefile reworking, for very little benefit. Introduce postbootstrap Makefile targets This patch turns dependencies of non-bootstrap targets on bootstrap targets for bootstrap builds into dependencies on stage_last. for ChangeLog * Makefile.tpl (dep-kind): Return postbootstrap in some cases. (make-postboot-dep, postboot-targets): New. (dependencies): Do not output postbootstrap dependencies at first. Output them changed to depend on stage_last within gcc-bootstrap, and the original deps within gcc-no-bootstrap. * Makefile.in: Rebuilt. --- Makefile.in | 189 ++++++++++++++++++---------------------------------------- Makefile.tpl | 52 +++++++++++++--- 2 files changed, 101 insertions(+), 140 deletions(-) diff --git a/Makefile.in b/Makefile.in index 2bf83b722651..2ac62ca7ca45 100644 --- a/Makefile.in +++ b/Makefile.in @@ -56867,7 +56867,6 @@ all-build-m4: maybe-all-build-texinfo all-build-fixincludes: maybe-all-build-libiberty all-build-libcpp: maybe-all-build-libiberty configure-gcc: maybe-configure-intl - configure-stage1-gcc: maybe-configure-stage1-intl configure-stage2-gcc: maybe-configure-stage2-intl configure-stage3-gcc: maybe-configure-stage3-intl @@ -56878,7 +56877,6 @@ configure-stagefeedback-gcc: maybe-configure-stagefeedback-intl configure-stageautoprofile-gcc: maybe-configure-stageautoprofile-intl configure-stageautofeedback-gcc: maybe-configure-stageautofeedback-intl configure-gcc: maybe-all-gmp - configure-stage1-gcc: maybe-all-stage1-gmp configure-stage2-gcc: maybe-all-stage2-gmp configure-stage3-gcc: maybe-all-stage3-gmp @@ -56889,7 +56887,6 @@ configure-stagefeedback-gcc: maybe-all-stagefeedback-gmp configure-stageautoprofile-gcc: maybe-all-stageautoprofile-gmp configure-stageautofeedback-gcc: maybe-all-stageautofeedback-gmp configure-gcc: maybe-all-mpfr - configure-stage1-gcc: maybe-all-stage1-mpfr configure-stage2-gcc: maybe-all-stage2-mpfr configure-stage3-gcc: maybe-all-stage3-mpfr @@ -56900,7 +56897,6 @@ configure-stagefeedback-gcc: maybe-all-stagefeedback-mpfr configure-stageautoprofile-gcc: maybe-all-stageautoprofile-mpfr configure-stageautofeedback-gcc: maybe-all-stageautofeedback-mpfr configure-gcc: maybe-all-mpc - configure-stage1-gcc: maybe-all-stage1-mpc configure-stage2-gcc: maybe-all-stage2-mpc configure-stage3-gcc: maybe-all-stage3-mpc @@ -56911,7 +56907,6 @@ configure-stagefeedback-gcc: maybe-all-stagefeedback-mpc configure-stageautoprofile-gcc: maybe-all-stageautoprofile-mpc configure-stageautofeedback-gcc: maybe-all-stageautofeedback-mpc configure-gcc: maybe-all-isl - configure-stage1-gcc: maybe-all-stage1-isl configure-stage2-gcc: maybe-all-stage2-isl configure-stage3-gcc: maybe-all-stage3-isl @@ -56922,7 +56917,6 @@ configure-stagefeedback-gcc: maybe-all-stagefeedback-isl configure-stageautoprofile-gcc: maybe-all-stageautoprofile-isl configure-stageautofeedback-gcc: maybe-all-stageautofeedback-isl configure-gcc: maybe-all-lto-plugin - configure-stage1-gcc: maybe-all-stage1-lto-plugin configure-stage2-gcc: maybe-all-stage2-lto-plugin configure-stage3-gcc: maybe-all-stage3-lto-plugin @@ -56933,7 +56927,6 @@ configure-stagefeedback-gcc: maybe-all-stagefeedback-lto-plugin configure-stageautoprofile-gcc: maybe-all-stageautoprofile-lto-plugin configure-stageautofeedback-gcc: maybe-all-stageautofeedback-lto-plugin configure-gcc: maybe-all-binutils - configure-stage1-gcc: maybe-all-stage1-binutils configure-stage2-gcc: maybe-all-stage2-binutils configure-stage3-gcc: maybe-all-stage3-binutils @@ -56944,7 +56937,6 @@ configure-stagefeedback-gcc: maybe-all-stagefeedback-binutils configure-stageautoprofile-gcc: maybe-all-stageautoprofile-binutils configure-stageautofeedback-gcc: maybe-all-stageautofeedback-binutils configure-gcc: maybe-all-gas - configure-stage1-gcc: maybe-all-stage1-gas configure-stage2-gcc: maybe-all-stage2-gas configure-stage3-gcc: maybe-all-stage3-gas @@ -56955,7 +56947,6 @@ configure-stagefeedback-gcc: maybe-all-stagefeedback-gas configure-stageautoprofile-gcc: maybe-all-stageautoprofile-gas configure-stageautofeedback-gcc: maybe-all-stageautofeedback-gas configure-gcc: maybe-all-ld - configure-stage1-gcc: maybe-all-stage1-ld configure-stage2-gcc: maybe-all-stage2-ld configure-stage3-gcc: maybe-all-stage3-ld @@ -56966,7 +56957,6 @@ configure-stagefeedback-gcc: maybe-all-stagefeedback-ld configure-stageautoprofile-gcc: maybe-all-stageautoprofile-ld configure-stageautofeedback-gcc: maybe-all-stageautofeedback-ld configure-gcc: maybe-all-gold - configure-stage1-gcc: maybe-all-stage1-gold configure-stage2-gcc: maybe-all-stage2-gold configure-stage3-gcc: maybe-all-stage3-gold @@ -56977,7 +56967,6 @@ configure-stagefeedback-gcc: maybe-all-stagefeedback-gold configure-stageautoprofile-gcc: maybe-all-stageautoprofile-gold configure-stageautofeedback-gcc: maybe-all-stageautofeedback-gold configure-gcc: maybe-all-libelf - configure-stage1-gcc: maybe-all-stage1-libelf configure-stage2-gcc: maybe-all-stage2-libelf configure-stage3-gcc: maybe-all-stage3-libelf @@ -56988,7 +56977,6 @@ configure-stagefeedback-gcc: maybe-all-stagefeedback-libelf configure-stageautoprofile-gcc: maybe-all-stageautoprofile-libelf configure-stageautofeedback-gcc: maybe-all-stageautofeedback-libelf configure-gcc: maybe-all-libiconv - configure-stage1-gcc: maybe-all-stage1-libiconv configure-stage2-gcc: maybe-all-stage2-libiconv configure-stage3-gcc: maybe-all-stage3-libiconv @@ -56999,7 +56987,6 @@ configure-stagefeedback-gcc: maybe-all-stagefeedback-libiconv configure-stageautoprofile-gcc: maybe-all-stageautoprofile-libiconv configure-stageautofeedback-gcc: maybe-all-stageautofeedback-libiconv all-gcc: all-libiberty - all-stage1-gcc: all-stage1-libiberty all-stage2-gcc: all-stage2-libiberty all-stage3-gcc: all-stage3-libiberty @@ -57010,7 +56997,6 @@ all-stagefeedback-gcc: all-stagefeedback-libiberty all-stageautoprofile-gcc: all-stageautoprofile-libiberty all-stageautofeedback-gcc: all-stageautofeedback-libiberty all-gcc: maybe-all-intl - all-stage1-gcc: maybe-all-stage1-intl all-stage2-gcc: maybe-all-stage2-intl all-stage3-gcc: maybe-all-stage3-intl @@ -57021,7 +57007,6 @@ all-stagefeedback-gcc: maybe-all-stagefeedback-intl all-stageautoprofile-gcc: maybe-all-stageautoprofile-intl all-stageautofeedback-gcc: maybe-all-stageautofeedback-intl all-gcc: maybe-all-mpfr - all-stage1-gcc: maybe-all-stage1-mpfr all-stage2-gcc: maybe-all-stage2-mpfr all-stage3-gcc: maybe-all-stage3-mpfr @@ -57032,7 +57017,6 @@ all-stagefeedback-gcc: maybe-all-stagefeedback-mpfr all-stageautoprofile-gcc: maybe-all-stageautoprofile-mpfr all-stageautofeedback-gcc: maybe-all-stageautofeedback-mpfr all-gcc: maybe-all-mpc - all-stage1-gcc: maybe-all-stage1-mpc all-stage2-gcc: maybe-all-stage2-mpc all-stage3-gcc: maybe-all-stage3-mpc @@ -57043,7 +57027,6 @@ all-stagefeedback-gcc: maybe-all-stagefeedback-mpc all-stageautoprofile-gcc: maybe-all-stageautoprofile-mpc all-stageautofeedback-gcc: maybe-all-stageautofeedback-mpc all-gcc: maybe-all-isl - all-stage1-gcc: maybe-all-stage1-isl all-stage2-gcc: maybe-all-stage2-isl all-stage3-gcc: maybe-all-stage3-isl @@ -57054,7 +57037,6 @@ all-stagefeedback-gcc: maybe-all-stagefeedback-isl all-stageautoprofile-gcc: maybe-all-stageautoprofile-isl all-stageautofeedback-gcc: maybe-all-stageautofeedback-isl all-gcc: maybe-all-build-texinfo - all-stage1-gcc: maybe-all-build-texinfo all-stage2-gcc: maybe-all-build-texinfo all-stage3-gcc: maybe-all-build-texinfo @@ -57065,7 +57047,6 @@ all-stagefeedback-gcc: maybe-all-build-texinfo all-stageautoprofile-gcc: maybe-all-build-texinfo all-stageautofeedback-gcc: maybe-all-build-texinfo all-gcc: maybe-all-build-bison - all-stage1-gcc: maybe-all-build-bison all-stage2-gcc: maybe-all-build-bison all-stage3-gcc: maybe-all-build-bison @@ -57076,7 +57057,6 @@ all-stagefeedback-gcc: maybe-all-build-bison all-stageautoprofile-gcc: maybe-all-build-bison all-stageautofeedback-gcc: maybe-all-build-bison all-gcc: maybe-all-build-flex - all-stage1-gcc: maybe-all-build-flex all-stage2-gcc: maybe-all-build-flex all-stage3-gcc: maybe-all-build-flex @@ -57087,7 +57067,6 @@ all-stagefeedback-gcc: maybe-all-build-flex all-stageautoprofile-gcc: maybe-all-build-flex all-stageautofeedback-gcc: maybe-all-build-flex all-gcc: maybe-all-build-libiberty - all-stage1-gcc: maybe-all-build-libiberty all-stage2-gcc: maybe-all-build-libiberty all-stage3-gcc: maybe-all-build-libiberty @@ -57098,7 +57077,6 @@ all-stagefeedback-gcc: maybe-all-build-libiberty all-stageautoprofile-gcc: maybe-all-build-libiberty all-stageautofeedback-gcc: maybe-all-build-libiberty all-gcc: maybe-all-build-fixincludes - all-stage1-gcc: maybe-all-build-fixincludes all-stage2-gcc: maybe-all-build-fixincludes all-stage3-gcc: maybe-all-build-fixincludes @@ -57109,7 +57087,6 @@ all-stagefeedback-gcc: maybe-all-build-fixincludes all-stageautoprofile-gcc: maybe-all-build-fixincludes all-stageautofeedback-gcc: maybe-all-build-fixincludes all-gcc: maybe-all-build-libcpp - all-stage1-gcc: maybe-all-build-libcpp all-stage2-gcc: maybe-all-build-libcpp all-stage3-gcc: maybe-all-build-libcpp @@ -57120,7 +57097,6 @@ all-stagefeedback-gcc: maybe-all-build-libcpp all-stageautoprofile-gcc: maybe-all-build-libcpp all-stageautofeedback-gcc: maybe-all-build-libcpp all-gcc: maybe-all-zlib - all-stage1-gcc: maybe-all-stage1-zlib all-stage2-gcc: maybe-all-stage2-zlib all-stage3-gcc: maybe-all-stage3-zlib @@ -57131,7 +57107,6 @@ all-stagefeedback-gcc: maybe-all-stagefeedback-zlib all-stageautoprofile-gcc: maybe-all-stageautoprofile-zlib all-stageautofeedback-gcc: maybe-all-stageautofeedback-zlib all-gcc: all-libbacktrace - all-stage1-gcc: all-stage1-libbacktrace all-stage2-gcc: all-stage2-libbacktrace all-stage3-gcc: all-stage3-libbacktrace @@ -57142,7 +57117,6 @@ all-stagefeedback-gcc: all-stagefeedback-libbacktrace all-stageautoprofile-gcc: all-stageautoprofile-libbacktrace all-stageautofeedback-gcc: all-stageautofeedback-libbacktrace all-gcc: all-libcpp - all-stage1-gcc: all-stage1-libcpp all-stage2-gcc: all-stage2-libcpp all-stage3-gcc: all-stage3-libcpp @@ -57153,7 +57127,6 @@ all-stagefeedback-gcc: all-stagefeedback-libcpp all-stageautoprofile-gcc: all-stageautoprofile-libcpp all-stageautofeedback-gcc: all-stageautofeedback-libcpp all-gcc: all-libdecnumber - all-stage1-gcc: all-stage1-libdecnumber all-stage2-gcc: all-stage2-libdecnumber all-stage3-gcc: all-stage3-libdecnumber @@ -57164,7 +57137,6 @@ all-stagefeedback-gcc: all-stagefeedback-libdecnumber all-stageautoprofile-gcc: all-stageautoprofile-libdecnumber all-stageautofeedback-gcc: all-stageautofeedback-libdecnumber all-gcc: maybe-all-libiberty - all-stage1-gcc: maybe-all-stage1-libiberty all-stage2-gcc: maybe-all-stage2-libiberty all-stage3-gcc: maybe-all-stage3-libiberty @@ -57175,7 +57147,6 @@ all-stagefeedback-gcc: maybe-all-stagefeedback-libiberty all-stageautoprofile-gcc: maybe-all-stageautoprofile-libiberty all-stageautofeedback-gcc: maybe-all-stageautofeedback-libiberty all-gcc: maybe-all-fixincludes - all-stage1-gcc: maybe-all-stage1-fixincludes all-stage2-gcc: maybe-all-stage2-fixincludes all-stage3-gcc: maybe-all-stage3-fixincludes @@ -57186,7 +57157,6 @@ all-stagefeedback-gcc: maybe-all-stagefeedback-fixincludes all-stageautoprofile-gcc: maybe-all-stageautoprofile-fixincludes all-stageautofeedback-gcc: maybe-all-stageautofeedback-fixincludes all-gcc: maybe-all-lto-plugin - all-stage1-gcc: maybe-all-stage1-lto-plugin all-stage2-gcc: maybe-all-stage2-lto-plugin all-stage3-gcc: maybe-all-stage3-lto-plugin @@ -57197,7 +57167,6 @@ all-stagefeedback-gcc: maybe-all-stagefeedback-lto-plugin all-stageautoprofile-gcc: maybe-all-stageautoprofile-lto-plugin all-stageautofeedback-gcc: maybe-all-stageautofeedback-lto-plugin all-gcc: maybe-all-libiconv - all-stage1-gcc: maybe-all-stage1-libiconv all-stage2-gcc: maybe-all-stage2-libiconv all-stage3-gcc: maybe-all-stage3-libiconv @@ -57208,7 +57177,6 @@ all-stagefeedback-gcc: maybe-all-stagefeedback-libiconv all-stageautoprofile-gcc: maybe-all-stageautoprofile-libiconv all-stageautofeedback-gcc: maybe-all-stageautofeedback-libiconv info-gcc: maybe-all-build-libiberty - info-stage1-gcc: maybe-all-build-libiberty info-stage2-gcc: maybe-all-build-libiberty info-stage3-gcc: maybe-all-build-libiberty @@ -57219,7 +57187,6 @@ info-stagefeedback-gcc: maybe-all-build-libiberty info-stageautoprofile-gcc: maybe-all-build-libiberty info-stageautofeedback-gcc: maybe-all-build-libiberty dvi-gcc: maybe-all-build-libiberty - dvi-stage1-gcc: maybe-all-build-libiberty dvi-stage2-gcc: maybe-all-build-libiberty dvi-stage3-gcc: maybe-all-build-libiberty @@ -57230,7 +57197,6 @@ dvi-stagefeedback-gcc: maybe-all-build-libiberty dvi-stageautoprofile-gcc: maybe-all-build-libiberty dvi-stageautofeedback-gcc: maybe-all-build-libiberty pdf-gcc: maybe-all-build-libiberty - pdf-stage1-gcc: maybe-all-build-libiberty pdf-stage2-gcc: maybe-all-build-libiberty pdf-stage3-gcc: maybe-all-build-libiberty @@ -57241,7 +57207,6 @@ pdf-stagefeedback-gcc: maybe-all-build-libiberty pdf-stageautoprofile-gcc: maybe-all-build-libiberty pdf-stageautofeedback-gcc: maybe-all-build-libiberty html-gcc: maybe-all-build-libiberty - html-stage1-gcc: maybe-all-build-libiberty html-stage2-gcc: maybe-all-build-libiberty html-stage3-gcc: maybe-all-build-libiberty @@ -57256,7 +57221,6 @@ install-gcc: maybe-install-lto-plugin install-strip-gcc: maybe-install-strip-fixincludes install-strip-gcc: maybe-install-strip-lto-plugin configure-libcpp: configure-libiberty - configure-stage1-libcpp: configure-stage1-libiberty configure-stage2-libcpp: configure-stage2-libiberty configure-stage3-libcpp: configure-stage3-libiberty @@ -57267,7 +57231,6 @@ configure-stagefeedback-libcpp: configure-stagefeedback-libiberty configure-stageautoprofile-libcpp: configure-stageautoprofile-libiberty configure-stageautofeedback-libcpp: configure-stageautofeedback-libiberty configure-libcpp: maybe-configure-intl - configure-stage1-libcpp: maybe-configure-stage1-intl configure-stage2-libcpp: maybe-configure-stage2-intl configure-stage3-libcpp: maybe-configure-stage3-intl @@ -57278,7 +57241,6 @@ configure-stagefeedback-libcpp: maybe-configure-stagefeedback-intl configure-stageautoprofile-libcpp: maybe-configure-stageautoprofile-intl configure-stageautofeedback-libcpp: maybe-configure-stageautofeedback-intl configure-libcpp: maybe-all-libiconv - configure-stage1-libcpp: maybe-all-stage1-libiconv configure-stage2-libcpp: maybe-all-stage2-libiconv configure-stage3-libcpp: maybe-all-stage3-libiconv @@ -57289,7 +57251,6 @@ configure-stagefeedback-libcpp: maybe-all-stagefeedback-libiconv configure-stageautoprofile-libcpp: maybe-all-stageautoprofile-libiconv configure-stageautofeedback-libcpp: maybe-all-stageautofeedback-libiconv all-libcpp: all-libiberty - all-stage1-libcpp: all-stage1-libiberty all-stage2-libcpp: all-stage2-libiberty all-stage3-libcpp: all-stage3-libiberty @@ -57300,7 +57261,6 @@ all-stagefeedback-libcpp: all-stagefeedback-libiberty all-stageautoprofile-libcpp: all-stageautoprofile-libiberty all-stageautofeedback-libcpp: all-stageautofeedback-libiberty all-libcpp: maybe-all-intl - all-stage1-libcpp: maybe-all-stage1-intl all-stage2-libcpp: maybe-all-stage2-intl all-stage3-libcpp: maybe-all-stage3-intl @@ -57311,7 +57271,6 @@ all-stagefeedback-libcpp: maybe-all-stagefeedback-intl all-stageautoprofile-libcpp: maybe-all-stageautoprofile-intl all-stageautofeedback-libcpp: maybe-all-stageautofeedback-intl all-libcpp: maybe-all-libiconv - all-stage1-libcpp: maybe-all-stage1-libiconv all-stage2-libcpp: maybe-all-stage2-libiconv all-stage3-libcpp: maybe-all-stage3-libiconv @@ -57322,7 +57281,6 @@ all-stagefeedback-libcpp: maybe-all-stagefeedback-libiconv all-stageautoprofile-libcpp: maybe-all-stageautoprofile-libiconv all-stageautofeedback-libcpp: maybe-all-stageautofeedback-libiconv all-fixincludes: maybe-all-libiberty - all-stage1-fixincludes: maybe-all-stage1-libiberty all-stage2-fixincludes: maybe-all-stage2-libiberty all-stage3-fixincludes: maybe-all-stage3-libiberty @@ -57333,9 +57291,7 @@ all-stagefeedback-fixincludes: maybe-all-stagefeedback-libiberty all-stageautoprofile-fixincludes: maybe-all-stageautoprofile-libiberty all-stageautofeedback-fixincludes: maybe-all-stageautofeedback-libiberty all-gnattools: maybe-all-target-libada -all-gnattools: maybe-all-target-libstdc++-v3 all-lto-plugin: maybe-all-libiberty - all-stage1-lto-plugin: maybe-all-stage1-libiberty all-stage2-lto-plugin: maybe-all-stage2-libiberty all-stage3-lto-plugin: maybe-all-stage3-libiberty @@ -57346,7 +57302,6 @@ all-stagefeedback-lto-plugin: maybe-all-stagefeedback-libiberty all-stageautoprofile-lto-plugin: maybe-all-stageautoprofile-libiberty all-stageautofeedback-lto-plugin: maybe-all-stageautofeedback-libiberty all-lto-plugin: maybe-all-libiberty-linker-plugin - all-stage1-lto-plugin: maybe-all-stage1-libiberty-linker-plugin all-stage2-lto-plugin: maybe-all-stage2-libiberty-linker-plugin all-stage3-lto-plugin: maybe-all-stage3-libiberty-linker-plugin @@ -57356,12 +57311,8 @@ all-stagetrain-lto-plugin: maybe-all-stagetrain-libiberty-linker-plugin all-stagefeedback-lto-plugin: maybe-all-stagefeedback-libiberty-linker-plugin all-stageautoprofile-lto-plugin: maybe-all-stageautoprofile-libiberty-linker-plugin all-stageautofeedback-lto-plugin: maybe-all-stageautofeedback-libiberty-linker-plugin -configure-libcc1: maybe-configure-gcc -all-libcc1: maybe-all-gcc all-gotools: maybe-all-target-libgo -all-utils: maybe-all-libiberty configure-intl: maybe-all-libiconv - configure-stage1-intl: maybe-all-stage1-libiconv configure-stage2-intl: maybe-all-stage2-libiconv configure-stage3-intl: maybe-all-stage3-libiconv @@ -57372,7 +57323,6 @@ configure-stagefeedback-intl: maybe-all-stagefeedback-libiconv configure-stageautoprofile-intl: maybe-all-stageautoprofile-libiconv configure-stageautofeedback-intl: maybe-all-stageautofeedback-libiconv configure-mpfr: maybe-all-gmp - configure-stage1-mpfr: maybe-all-stage1-gmp configure-stage2-mpfr: maybe-all-stage2-gmp configure-stage3-mpfr: maybe-all-stage3-gmp @@ -57383,7 +57333,6 @@ configure-stagefeedback-mpfr: maybe-all-stagefeedback-gmp configure-stageautoprofile-mpfr: maybe-all-stageautoprofile-gmp configure-stageautofeedback-mpfr: maybe-all-stageautofeedback-gmp configure-mpc: maybe-all-mpfr - configure-stage1-mpc: maybe-all-stage1-mpfr configure-stage2-mpc: maybe-all-stage2-mpfr configure-stage3-mpc: maybe-all-stage3-mpfr @@ -57394,7 +57343,6 @@ configure-stagefeedback-mpc: maybe-all-stagefeedback-mpfr configure-stageautoprofile-mpc: maybe-all-stageautoprofile-mpfr configure-stageautofeedback-mpc: maybe-all-stageautofeedback-mpfr configure-isl: maybe-all-gmp - configure-stage1-isl: maybe-all-stage1-gmp configure-stage2-isl: maybe-all-stage2-gmp configure-stage3-isl: maybe-all-stage3-gmp @@ -57405,7 +57353,6 @@ configure-stagefeedback-isl: maybe-all-stagefeedback-gmp configure-stageautoprofile-isl: maybe-all-stageautoprofile-gmp configure-stageautofeedback-isl: maybe-all-stageautofeedback-gmp all-intl: maybe-all-libiconv - all-stage1-intl: maybe-all-stage1-libiconv all-stage2-intl: maybe-all-stage2-libiconv all-stage3-intl: maybe-all-stage3-libiconv @@ -57415,17 +57362,10 @@ all-stagetrain-intl: maybe-all-stagetrain-libiconv all-stagefeedback-intl: maybe-all-stagefeedback-libiconv all-stageautoprofile-intl: maybe-all-stageautoprofile-libiconv all-stageautofeedback-intl: maybe-all-stageautofeedback-libiconv -configure-gdb: maybe-all-intl configure-gdb: maybe-configure-sim -configure-gdb: maybe-all-bfd -configure-gdb: maybe-all-libiconv -all-gdb: maybe-all-libiberty -all-gdb: maybe-all-libiconv -all-gdb: maybe-all-opcodes all-gdb: maybe-all-readline all-gdb: maybe-all-build-bison all-gdb: maybe-all-sim -all-gdb: maybe-all-libdecnumber all-gdb: maybe-all-libtermcap configure-libgui: maybe-configure-tcl configure-libgui: maybe-configure-tk @@ -57433,7 +57373,6 @@ all-libgui: maybe-all-tcl all-libgui: maybe-all-tk all-libgui: maybe-all-itcl configure-bfd: configure-libiberty - configure-stage1-bfd: configure-stage1-libiberty configure-stage2-bfd: configure-stage2-libiberty configure-stage3-bfd: configure-stage3-libiberty @@ -57444,7 +57383,6 @@ configure-stagefeedback-bfd: configure-stagefeedback-libiberty configure-stageautoprofile-bfd: configure-stageautoprofile-libiberty configure-stageautofeedback-bfd: configure-stageautofeedback-libiberty configure-bfd: maybe-configure-intl - configure-stage1-bfd: maybe-configure-stage1-intl configure-stage2-bfd: maybe-configure-stage2-intl configure-stage3-bfd: maybe-configure-stage3-intl @@ -57455,7 +57393,6 @@ configure-stagefeedback-bfd: maybe-configure-stagefeedback-intl configure-stageautoprofile-bfd: maybe-configure-stageautoprofile-intl configure-stageautofeedback-bfd: maybe-configure-stageautofeedback-intl all-bfd: maybe-all-libiberty - all-stage1-bfd: maybe-all-stage1-libiberty all-stage2-bfd: maybe-all-stage2-libiberty all-stage3-bfd: maybe-all-stage3-libiberty @@ -57466,7 +57403,6 @@ all-stagefeedback-bfd: maybe-all-stagefeedback-libiberty all-stageautoprofile-bfd: maybe-all-stageautoprofile-libiberty all-stageautofeedback-bfd: maybe-all-stageautofeedback-libiberty all-bfd: maybe-all-intl - all-stage1-bfd: maybe-all-stage1-intl all-stage2-bfd: maybe-all-stage2-intl all-stage3-bfd: maybe-all-stage3-intl @@ -57477,7 +57413,6 @@ all-stagefeedback-bfd: maybe-all-stagefeedback-intl all-stageautoprofile-bfd: maybe-all-stageautoprofile-intl all-stageautofeedback-bfd: maybe-all-stageautofeedback-intl all-bfd: maybe-all-zlib - all-stage1-bfd: maybe-all-stage1-zlib all-stage2-bfd: maybe-all-stage2-zlib all-stage3-bfd: maybe-all-stage3-zlib @@ -57488,7 +57423,6 @@ all-stagefeedback-bfd: maybe-all-stagefeedback-zlib all-stageautoprofile-bfd: maybe-all-stageautoprofile-zlib all-stageautofeedback-bfd: maybe-all-stageautofeedback-zlib configure-opcodes: configure-libiberty - configure-stage1-opcodes: configure-stage1-libiberty configure-stage2-opcodes: configure-stage2-libiberty configure-stage3-opcodes: configure-stage3-libiberty @@ -57499,7 +57433,6 @@ configure-stagefeedback-opcodes: configure-stagefeedback-libiberty configure-stageautoprofile-opcodes: configure-stageautoprofile-libiberty configure-stageautofeedback-opcodes: configure-stageautofeedback-libiberty all-opcodes: maybe-all-libiberty - all-stage1-opcodes: maybe-all-stage1-libiberty all-stage2-opcodes: maybe-all-stage2-libiberty all-stage3-opcodes: maybe-all-stage3-libiberty @@ -57510,7 +57443,6 @@ all-stagefeedback-opcodes: maybe-all-stagefeedback-libiberty all-stageautoprofile-opcodes: maybe-all-stageautoprofile-libiberty all-stageautofeedback-opcodes: maybe-all-stageautofeedback-libiberty configure-binutils: maybe-configure-intl - configure-stage1-binutils: maybe-configure-stage1-intl configure-stage2-binutils: maybe-configure-stage2-intl configure-stage3-binutils: maybe-configure-stage3-intl @@ -57521,7 +57453,6 @@ configure-stagefeedback-binutils: maybe-configure-stagefeedback-intl configure-stageautoprofile-binutils: maybe-configure-stageautoprofile-intl configure-stageautofeedback-binutils: maybe-configure-stageautofeedback-intl all-binutils: maybe-all-libiberty - all-stage1-binutils: maybe-all-stage1-libiberty all-stage2-binutils: maybe-all-stage2-libiberty all-stage3-binutils: maybe-all-stage3-libiberty @@ -57532,7 +57463,6 @@ all-stagefeedback-binutils: maybe-all-stagefeedback-libiberty all-stageautoprofile-binutils: maybe-all-stageautoprofile-libiberty all-stageautofeedback-binutils: maybe-all-stageautofeedback-libiberty all-binutils: maybe-all-opcodes - all-stage1-binutils: maybe-all-stage1-opcodes all-stage2-binutils: maybe-all-stage2-opcodes all-stage3-binutils: maybe-all-stage3-opcodes @@ -57543,7 +57473,6 @@ all-stagefeedback-binutils: maybe-all-stagefeedback-opcodes all-stageautoprofile-binutils: maybe-all-stageautoprofile-opcodes all-stageautofeedback-binutils: maybe-all-stageautofeedback-opcodes all-binutils: maybe-all-bfd - all-stage1-binutils: maybe-all-stage1-bfd all-stage2-binutils: maybe-all-stage2-bfd all-stage3-binutils: maybe-all-stage3-bfd @@ -57554,7 +57483,6 @@ all-stagefeedback-binutils: maybe-all-stagefeedback-bfd all-stageautoprofile-binutils: maybe-all-stageautoprofile-bfd all-stageautofeedback-binutils: maybe-all-stageautofeedback-bfd all-binutils: maybe-all-build-flex - all-stage1-binutils: maybe-all-build-flex all-stage2-binutils: maybe-all-build-flex all-stage3-binutils: maybe-all-build-flex @@ -57565,7 +57493,6 @@ all-stagefeedback-binutils: maybe-all-build-flex all-stageautoprofile-binutils: maybe-all-build-flex all-stageautofeedback-binutils: maybe-all-build-flex all-binutils: maybe-all-build-bison - all-stage1-binutils: maybe-all-build-bison all-stage2-binutils: maybe-all-build-bison all-stage3-binutils: maybe-all-build-bison @@ -57576,7 +57503,6 @@ all-stagefeedback-binutils: maybe-all-build-bison all-stageautoprofile-binutils: maybe-all-build-bison all-stageautofeedback-binutils: maybe-all-build-bison all-binutils: maybe-all-intl - all-stage1-binutils: maybe-all-stage1-intl all-stage2-binutils: maybe-all-stage2-intl all-stage3-binutils: maybe-all-stage3-intl @@ -57587,7 +57513,6 @@ all-stagefeedback-binutils: maybe-all-stagefeedback-intl all-stageautoprofile-binutils: maybe-all-stageautoprofile-intl all-stageautofeedback-binutils: maybe-all-stageautofeedback-intl all-binutils: maybe-all-gas - all-stage1-binutils: maybe-all-stage1-gas all-stage2-binutils: maybe-all-stage2-gas all-stage3-binutils: maybe-all-stage3-gas @@ -57602,7 +57527,6 @@ install-strip-binutils: maybe-install-strip-opcodes install-opcodes: maybe-install-bfd install-strip-opcodes: maybe-install-strip-bfd configure-gas: maybe-configure-intl - configure-stage1-gas: maybe-configure-stage1-intl configure-stage2-gas: maybe-configure-stage2-intl configure-stage3-gas: maybe-configure-stage3-intl @@ -57613,7 +57537,6 @@ configure-stagefeedback-gas: maybe-configure-stagefeedback-intl configure-stageautoprofile-gas: maybe-configure-stageautoprofile-intl configure-stageautofeedback-gas: maybe-configure-stageautofeedback-intl all-gas: maybe-all-libiberty - all-stage1-gas: maybe-all-stage1-libiberty all-stage2-gas: maybe-all-stage2-libiberty all-stage3-gas: maybe-all-stage3-libiberty @@ -57624,7 +57547,6 @@ all-stagefeedback-gas: maybe-all-stagefeedback-libiberty all-stageautoprofile-gas: maybe-all-stageautoprofile-libiberty all-stageautofeedback-gas: maybe-all-stageautofeedback-libiberty all-gas: maybe-all-opcodes - all-stage1-gas: maybe-all-stage1-opcodes all-stage2-gas: maybe-all-stage2-opcodes all-stage3-gas: maybe-all-stage3-opcodes @@ -57635,7 +57557,6 @@ all-stagefeedback-gas: maybe-all-stagefeedback-opcodes all-stageautoprofile-gas: maybe-all-stageautoprofile-opcodes all-stageautofeedback-gas: maybe-all-stageautofeedback-opcodes all-gas: maybe-all-bfd - all-stage1-gas: maybe-all-stage1-bfd all-stage2-gas: maybe-all-stage2-bfd all-stage3-gas: maybe-all-stage3-bfd @@ -57646,7 +57567,6 @@ all-stagefeedback-gas: maybe-all-stagefeedback-bfd all-stageautoprofile-gas: maybe-all-stageautoprofile-bfd all-stageautofeedback-gas: maybe-all-stageautofeedback-bfd all-gas: maybe-all-intl - all-stage1-gas: maybe-all-stage1-intl all-stage2-gas: maybe-all-stage2-intl all-stage3-gas: maybe-all-stage3-intl @@ -57656,14 +57576,7 @@ all-stagetrain-gas: maybe-all-stagetrain-intl all-stagefeedback-gas: maybe-all-stagefeedback-intl all-stageautoprofile-gas: maybe-all-stageautoprofile-intl all-stageautofeedback-gas: maybe-all-stageautofeedback-intl -configure-gprof: maybe-configure-intl -all-gprof: maybe-all-libiberty -all-gprof: maybe-all-bfd -all-gprof: maybe-all-opcodes -all-gprof: maybe-all-intl -all-gprof: maybe-all-gas configure-ld: maybe-configure-intl - configure-stage1-ld: maybe-configure-stage1-intl configure-stage2-ld: maybe-configure-stage2-intl configure-stage3-ld: maybe-configure-stage3-intl @@ -57674,7 +57587,6 @@ configure-stagefeedback-ld: maybe-configure-stagefeedback-intl configure-stageautoprofile-ld: maybe-configure-stageautoprofile-intl configure-stageautofeedback-ld: maybe-configure-stageautofeedback-intl all-ld: maybe-all-libiberty - all-stage1-ld: maybe-all-stage1-libiberty all-stage2-ld: maybe-all-stage2-libiberty all-stage3-ld: maybe-all-stage3-libiberty @@ -57685,7 +57597,6 @@ all-stagefeedback-ld: maybe-all-stagefeedback-libiberty all-stageautoprofile-ld: maybe-all-stageautoprofile-libiberty all-stageautofeedback-ld: maybe-all-stageautofeedback-libiberty all-ld: maybe-all-bfd - all-stage1-ld: maybe-all-stage1-bfd all-stage2-ld: maybe-all-stage2-bfd all-stage3-ld: maybe-all-stage3-bfd @@ -57696,7 +57607,6 @@ all-stagefeedback-ld: maybe-all-stagefeedback-bfd all-stageautoprofile-ld: maybe-all-stageautoprofile-bfd all-stageautofeedback-ld: maybe-all-stageautofeedback-bfd all-ld: maybe-all-opcodes - all-stage1-ld: maybe-all-stage1-opcodes all-stage2-ld: maybe-all-stage2-opcodes all-stage3-ld: maybe-all-stage3-opcodes @@ -57707,7 +57617,6 @@ all-stagefeedback-ld: maybe-all-stagefeedback-opcodes all-stageautoprofile-ld: maybe-all-stageautoprofile-opcodes all-stageautofeedback-ld: maybe-all-stageautofeedback-opcodes all-ld: maybe-all-build-bison - all-stage1-ld: maybe-all-build-bison all-stage2-ld: maybe-all-build-bison all-stage3-ld: maybe-all-build-bison @@ -57718,7 +57627,6 @@ all-stagefeedback-ld: maybe-all-build-bison all-stageautoprofile-ld: maybe-all-build-bison all-stageautofeedback-ld: maybe-all-build-bison all-ld: maybe-all-build-flex - all-stage1-ld: maybe-all-build-flex all-stage2-ld: maybe-all-build-flex all-stage3-ld: maybe-all-build-flex @@ -57729,7 +57637,6 @@ all-stagefeedback-ld: maybe-all-build-flex all-stageautoprofile-ld: maybe-all-build-flex all-stageautofeedback-ld: maybe-all-build-flex all-ld: maybe-all-intl - all-stage1-ld: maybe-all-stage1-intl all-stage2-ld: maybe-all-stage2-intl all-stage3-ld: maybe-all-stage3-intl @@ -57740,7 +57647,6 @@ all-stagefeedback-ld: maybe-all-stagefeedback-intl all-stageautoprofile-ld: maybe-all-stageautoprofile-intl all-stageautofeedback-ld: maybe-all-stageautofeedback-intl all-ld: maybe-all-gas - all-stage1-ld: maybe-all-stage1-gas all-stage2-ld: maybe-all-stage2-gas all-stage3-ld: maybe-all-stage3-gas @@ -57751,7 +57657,6 @@ all-stagefeedback-ld: maybe-all-stagefeedback-gas all-stageautoprofile-ld: maybe-all-stageautoprofile-gas all-stageautofeedback-ld: maybe-all-stageautofeedback-gas all-ld: maybe-all-binutils - all-stage1-ld: maybe-all-stage1-binutils all-stage2-ld: maybe-all-stage2-binutils all-stage3-ld: maybe-all-stage3-binutils @@ -57764,7 +57669,6 @@ all-stageautofeedback-ld: maybe-all-stageautofeedback-binutils install-ld: maybe-install-gold install-strip-ld: maybe-install-strip-gold configure-gold: maybe-configure-intl - configure-stage1-gold: maybe-configure-stage1-intl configure-stage2-gold: maybe-configure-stage2-intl configure-stage3-gold: maybe-configure-stage3-intl @@ -57775,7 +57679,6 @@ configure-stagefeedback-gold: maybe-configure-stagefeedback-intl configure-stageautoprofile-gold: maybe-configure-stageautoprofile-intl configure-stageautofeedback-gold: maybe-configure-stageautofeedback-intl all-gold: maybe-all-libiberty - all-stage1-gold: maybe-all-stage1-libiberty all-stage2-gold: maybe-all-stage2-libiberty all-stage3-gold: maybe-all-stage3-libiberty @@ -57786,7 +57689,6 @@ all-stagefeedback-gold: maybe-all-stagefeedback-libiberty all-stageautoprofile-gold: maybe-all-stageautoprofile-libiberty all-stageautofeedback-gold: maybe-all-stageautofeedback-libiberty all-gold: maybe-all-intl - all-stage1-gold: maybe-all-stage1-intl all-stage2-gold: maybe-all-stage2-intl all-stage3-gold: maybe-all-stage3-intl @@ -57797,7 +57699,6 @@ all-stagefeedback-gold: maybe-all-stagefeedback-intl all-stageautoprofile-gold: maybe-all-stageautoprofile-intl all-stageautofeedback-gold: maybe-all-stageautofeedback-intl all-gold: maybe-all-bfd - all-stage1-gold: maybe-all-stage1-bfd all-stage2-gold: maybe-all-stage2-bfd all-stage3-gold: maybe-all-stage3-bfd @@ -57808,7 +57709,6 @@ all-stagefeedback-gold: maybe-all-stagefeedback-bfd all-stageautoprofile-gold: maybe-all-stageautoprofile-bfd all-stageautofeedback-gold: maybe-all-stageautofeedback-bfd all-gold: maybe-all-build-bison - all-stage1-gold: maybe-all-build-bison all-stage2-gold: maybe-all-build-bison all-stage3-gold: maybe-all-build-bison @@ -57819,7 +57719,6 @@ all-stagefeedback-gold: maybe-all-build-bison all-stageautoprofile-gold: maybe-all-build-bison all-stageautofeedback-gold: maybe-all-build-bison all-gold: maybe-all-gas - all-stage1-gold: maybe-all-stage1-gas all-stage2-gold: maybe-all-stage2-gas all-stage3-gold: maybe-all-stage3-gas @@ -57830,7 +57729,6 @@ all-stagefeedback-gold: maybe-all-stagefeedback-gas all-stageautoprofile-gold: maybe-all-stageautoprofile-gas all-stageautofeedback-gold: maybe-all-stageautofeedback-gas check-gold: maybe-all-binutils - check-stage1-gold: maybe-all-stage1-binutils check-stage2-gold: maybe-all-stage2-binutils check-stage3-gold: maybe-all-stage3-binutils @@ -57841,7 +57739,6 @@ check-stagefeedback-gold: maybe-all-stagefeedback-binutils check-stageautoprofile-gold: maybe-all-stageautoprofile-binutils check-stageautofeedback-gold: maybe-all-stageautofeedback-binutils check-gold: maybe-all-gas - check-stage1-gold: maybe-all-stage1-gas check-stage2-gold: maybe-all-stage2-gas check-stage3-gold: maybe-all-stage3-gas @@ -57852,7 +57749,6 @@ check-stagefeedback-gold: maybe-all-stagefeedback-gas check-stageautoprofile-gold: maybe-all-stageautoprofile-gas check-stageautofeedback-gold: maybe-all-stageautofeedback-gas configure-opcodes: maybe-configure-intl - configure-stage1-opcodes: maybe-configure-stage1-intl configure-stage2-opcodes: maybe-configure-stage2-intl configure-stage3-opcodes: maybe-configure-stage3-intl @@ -57863,7 +57759,6 @@ configure-stagefeedback-opcodes: maybe-configure-stagefeedback-intl configure-stageautoprofile-opcodes: maybe-configure-stageautoprofile-intl configure-stageautofeedback-opcodes: maybe-configure-stageautofeedback-intl all-opcodes: maybe-all-bfd - all-stage1-opcodes: maybe-all-stage1-bfd all-stage2-opcodes: maybe-all-stage2-bfd all-stage3-opcodes: maybe-all-stage3-bfd @@ -57874,7 +57769,6 @@ all-stagefeedback-opcodes: maybe-all-stagefeedback-bfd all-stageautoprofile-opcodes: maybe-all-stageautoprofile-bfd all-stageautofeedback-opcodes: maybe-all-stageautofeedback-bfd all-opcodes: maybe-all-libiberty - all-stage1-opcodes: maybe-all-stage1-libiberty all-stage2-opcodes: maybe-all-stage2-libiberty all-stage3-opcodes: maybe-all-stage3-libiberty @@ -57885,7 +57779,6 @@ all-stagefeedback-opcodes: maybe-all-stagefeedback-libiberty all-stageautoprofile-opcodes: maybe-all-stageautoprofile-libiberty all-stageautofeedback-opcodes: maybe-all-stageautofeedback-libiberty all-opcodes: maybe-all-intl - all-stage1-opcodes: maybe-all-stage1-intl all-stage2-opcodes: maybe-all-stage2-intl all-stage3-opcodes: maybe-all-stage3-intl @@ -57910,42 +57803,27 @@ install-itcl: maybe-install-tcl install-strip-itcl: maybe-install-strip-tcl configure-tk: maybe-configure-tcl all-tk: maybe-all-tcl -all-sid: maybe-all-libiberty -all-sid: maybe-all-bfd -all-sid: maybe-all-opcodes all-sid: maybe-all-tcl all-sid: maybe-all-tk install-sid: maybe-install-tcl install-strip-sid: maybe-install-strip-tcl install-sid: maybe-install-tk install-strip-sid: maybe-install-strip-tk -configure-sim: maybe-configure-intl -all-sim: maybe-all-intl -all-sim: maybe-all-libiberty -all-sim: maybe-all-bfd -all-sim: maybe-all-opcodes all-sim: maybe-all-readline all-sim: maybe-configure-gdb -all-fastjar: maybe-all-zlib all-fastjar: maybe-all-build-texinfo -all-fastjar: maybe-all-libiberty -all-bison: maybe-all-intl all-bison: maybe-all-build-texinfo all-flex: maybe-all-build-bison -all-flex: maybe-all-intl all-flex: maybe-all-m4 all-flex: maybe-all-build-texinfo -all-m4: maybe-all-intl all-m4: maybe-all-build-texinfo configure-target-fastjar: maybe-configure-target-zlib all-target-fastjar: maybe-all-target-zlib configure-target-libgo: maybe-configure-target-libffi -configure-target-libgo: maybe-all-target-libstdc++-v3 all-target-libgo: maybe-all-target-libbacktrace all-target-libgo: maybe-all-target-libffi all-target-libgo: maybe-all-target-libatomic configure-target-libstdc++-v3: maybe-configure-target-libgomp - configure-stage1-target-libstdc++-v3: maybe-configure-stage1-target-libgomp configure-stage2-target-libstdc++-v3: maybe-configure-stage2-target-libgomp configure-stage3-target-libstdc++-v3: maybe-configure-stage3-target-libgomp @@ -57955,9 +57833,7 @@ configure-stagetrain-target-libstdc++-v3: maybe-configure-stagetrain-target-libg configure-stagefeedback-target-libstdc++-v3: maybe-configure-stagefeedback-target-libgomp configure-stageautoprofile-target-libstdc++-v3: maybe-configure-stageautoprofile-target-libgomp configure-stageautofeedback-target-libstdc++-v3: maybe-configure-stageautofeedback-target-libgomp -configure-target-liboffloadmic: maybe-configure-target-libgomp configure-target-libsanitizer: maybe-all-target-libstdc++-v3 - configure-stage1-target-libsanitizer: maybe-all-stage1-target-libstdc++-v3 configure-stage2-target-libsanitizer: maybe-all-stage2-target-libstdc++-v3 configure-stage3-target-libsanitizer: maybe-all-stage3-target-libstdc++-v3 @@ -57968,7 +57844,6 @@ configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libs configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libstdc++-v3 configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libstdc++-v3 configure-target-libvtv: maybe-all-target-libstdc++-v3 - configure-stage1-target-libvtv: maybe-all-stage1-target-libstdc++-v3 configure-stage2-target-libvtv: maybe-all-stage2-target-libstdc++-v3 configure-stage3-target-libvtv: maybe-all-stage3-target-libstdc++-v3 @@ -57979,7 +57854,6 @@ configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libstdc++- configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libstdc++-v3 configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libstdc++-v3 all-target-libstdc++-v3: maybe-configure-target-libgomp - all-stage1-target-libstdc++-v3: maybe-configure-stage1-target-libgomp all-stage2-target-libstdc++-v3: maybe-configure-stage2-target-libgomp all-stage3-target-libstdc++-v3: maybe-configure-stage3-target-libgomp @@ -57989,7 +57863,6 @@ all-stagetrain-target-libstdc++-v3: maybe-configure-stagetrain-target-libgomp all-stagefeedback-target-libstdc++-v3: maybe-configure-stagefeedback-target-libgomp all-stageautoprofile-target-libstdc++-v3: maybe-configure-stageautoprofile-target-libgomp all-stageautofeedback-target-libstdc++-v3: maybe-configure-stageautofeedback-target-libgomp -all-target-liboffloadmic: maybe-all-target-libgomp install-target-libgo: maybe-install-target-libatomic install-target-libgfortran: maybe-install-target-libquadmath install-target-libgfortran: maybe-install-target-libgcc @@ -58004,12 +57877,70 @@ install-target-libobjc: maybe-install-target-libgcc install-target-libstdc++-v3: maybe-install-target-libgcc all-target-libgloss: maybe-all-target-newlib all-target-winsup: maybe-all-target-libtermcap -configure-target-newlib: maybe-all-binutils -configure-target-newlib: maybe-all-ld configure-target-libgfortran: maybe-all-target-libquadmath configure-target-libgfortran: maybe-all-target-libbacktrace +@if gcc-bootstrap +all-gnattools: stage_last +configure-libcc1: stage_last +all-libcc1: stage_last +all-utils: stage_last +configure-gdb: stage_last +all-gdb: stage_last +configure-gprof: stage_last +all-gprof: stage_last +all-sid: stage_last +configure-sim: stage_last +all-sim: stage_last +all-fastjar: stage_last +all-bison: stage_last +all-flex: stage_last +all-m4: stage_last +configure-target-libgo: stage_last +configure-target-liboffloadmic: stage_last +all-target-liboffloadmic: stage_last +configure-target-newlib: stage_last +@endif gcc-bootstrap + +@if gcc-no-bootstrap +all-gnattools: maybe-all-target-libstdc++-v3 +configure-libcc1: maybe-configure-gcc +all-libcc1: maybe-all-gcc +all-utils: maybe-all-libiberty +configure-gdb: maybe-all-intl +configure-gdb: maybe-all-bfd +configure-gdb: maybe-all-libiconv +all-gdb: maybe-all-libiberty +all-gdb: maybe-all-libiconv +all-gdb: maybe-all-opcodes +all-gdb: maybe-all-libdecnumber +configure-gprof: maybe-configure-intl +all-gprof: maybe-all-libiberty +all-gprof: maybe-all-bfd +all-gprof: maybe-all-opcodes +all-gprof: maybe-all-intl +all-gprof: maybe-all-gas +all-sid: maybe-all-libiberty +all-sid: maybe-all-bfd +all-sid: maybe-all-opcodes +configure-sim: maybe-configure-intl +all-sim: maybe-all-intl +all-sim: maybe-all-libiberty +all-sim: maybe-all-bfd +all-sim: maybe-all-opcodes +all-fastjar: maybe-all-zlib +all-fastjar: maybe-all-libiberty +all-bison: maybe-all-intl +all-flex: maybe-all-intl +all-m4: maybe-all-intl +configure-target-libgo: maybe-all-target-libstdc++-v3 +configure-target-liboffloadmic: maybe-configure-target-libgomp +all-target-liboffloadmic: maybe-all-target-libgomp +configure-target-newlib: maybe-all-binutils +configure-target-newlib: maybe-all-ld +@endif gcc-no-bootstrap + # Dependencies for target modules on other target modules are # described by lang_env_dependencies; the defaults apply to anything # not mentioned there. diff --git a/Makefile.tpl b/Makefile.tpl index abd2bc2fb897..476a0586808a 100644 --- a/Makefile.tpl +++ b/Makefile.tpl @@ -1824,12 +1824,15 @@ configure-target-[+module+]: maybe-all-gcc[+ (define dep-maybe (lambda () (if (exist? "hard") "" "maybe-"))) - ;; dep-kind returns "normal" if the dependency is on an "install" target, - ;; or if either module is not bootstrapped. It returns "bootstrap" for - ;; configure or build dependencies between bootstrapped modules; it returns - ;; "prebootstrap" for configure or build dependencies of bootstrapped - ;; modules on a build module (e.g. all-gcc on all-build-bison). All this - ;; is only necessary for host modules. + ;; dep-kind returns "normal" if the dependency is on an "install" + ;; target, if neither module is bootstrapped, or if the dependence + ;; module is not bootstrapped; otherwise, if the dependent module + ;; is not bootstrapped but the dependence is, it returns + ;; "postbootstrap". . It returns "bootstrap" for configure or + ;; build dependencies between bootstrapped modules; it returns + ;; "prebootstrap" for configure or build dependencies of + ;; bootstrapped modules on a build module (e.g. all-gcc on + ;; all-build-bison). All this is only necessary for host modules. (define dep-kind (lambda () (if (and (hash-ref boot-modules (dep-module "module")) (=* (dep-module "on") "build-")) @@ -1838,11 +1841,24 @@ configure-target-[+module+]: maybe-all-gcc[+ (if (or (= (dep-subtarget "on") "install-") (not (hash-ref boot-modules (dep-module "module"))) (not (hash-ref boot-modules (dep-module "on")))) - "normal" + + (if (and (not (= (dep-subtarget "on") "install-")) + (not (hash-ref boot-modules (dep-module "module"))) + (hash-ref boot-modules (dep-module "on"))) + "postbootstrap" + "normal") + "bootstrap")))) + (define make-postboot-dep (lambda (target dep) + (if (not (= (hash-ref postboot-targets target) dep)) + (let () + (hash-create-handle! postboot-targets target dep) + (string-append target ": " dep "\n"))))) + ;; We now build the hash table that is used by dep-kind. (define boot-modules (make-hash-table 113)) + (define postboot-targets (make-hash-table 113)) +] [+ FOR host_modules +][+ @@ -1859,19 +1875,33 @@ configure-target-[+module+]: maybe-all-gcc[+ # to check for bootstrap/prebootstrap dependencies. To resolve # prebootstrap dependencies, prebootstrap modules are gathered in # a hash table. -[+ FOR dependencies +][+ (make-dep "" "") +] -[+ CASE (dep-kind) +] +[+ FOR dependencies +][+ CASE (dep-kind) +] [+ == "prebootstrap" - +][+ FOR bootstrap_stage +] + +][+ (make-dep "" "") +][+ FOR bootstrap_stage +] [+ (make-dep (dep-stage) "") +][+ ENDFOR bootstrap_stage +] [+ == "bootstrap" - +][+ FOR bootstrap_stage +] + +][+ (make-dep "" "") +][+ FOR bootstrap_stage +] [+ (make-dep (dep-stage) (dep-stage)) +][+ ENDFOR bootstrap_stage +] +[+ == "normal" + +][+ (make-dep "" "") +] [+ ESAC +][+ ENDFOR dependencies +] +@if gcc-bootstrap +[+ FOR dependencies +][+ CASE (dep-kind) +] +[+ == "postbootstrap" + +][+ (make-postboot-dep (get "module") "stage_last") +][+ ESAC +][+ +ENDFOR dependencies +]@endif gcc-bootstrap + +@if gcc-no-bootstrap +[+ FOR dependencies +][+ CASE (dep-kind) +] +[+ == "postbootstrap" + +][+ (make-dep "" "") +] +[+ ESAC +][+ +ENDFOR dependencies +]@endif gcc-no-bootstrap + # Dependencies for target modules on other target modules are # described by lang_env_dependencies; the defaults apply to anything # not mentioned there. -- Alexandre Oliva, freedom fighter https://FSFLA.org/blogs/lxo Be the change, be Free! FSF Latin America board member GNU Toolchain Engineer Free Software Evangelist ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: fix libcc1 dependencies in toplevel Makefile 2018-06-03 19:13 ` Alexandre Oliva @ 2018-06-12 2:50 ` Alexandre Oliva 2018-06-12 8:57 ` Olivier Hainque ` (2 more replies) 0 siblings, 3 replies; 16+ messages in thread From: Alexandre Oliva @ 2018-06-12 2:50 UTC (permalink / raw) To: Olivier Hainque; +Cc: GCC Patches, Nicolas Roche On Jun 3, 2018, Alexandre Oliva <oliva@gnu.org> wrote: > On Jun 27, 2017, Alexandre Oliva <aoliva@redhat.com> wrote: >> configuration, because the current Makefile would only do that with >> all-host, after bootstrap is complete. > I have extensively studied the dependencies, and I still don't see how > all-libcc1, that is only activated as a target during the post-bootstrap > all-host build, might have been activated concurrently with > staging/unstaging. By the time we get to all-host, we've sequentially > completed bootstrap, compare, and unstage. > The only possibilities I see of something going wrong as described is a > parallel build that has bootstrap and postbootstrap targets in the > command line, or some patch that changes the dependencies so that such > targets are considered in parallel. > I could definitely use the build logs from back then, if still > available, to try to make sense of the problem. I was missing one possibility: that the problem occurred during the post-bootstrap all-host all-target build. As far as I can tell from Nicolas' analysis, this was indeed the case. I still don't see how any staging or unstaging might have taken place, but I can now see that we do reenter the gcc dir before building all-libcc1. If that reentering rebuilds anything, particularly headers, that may be enough to explain the reported symptoms. Now, I do vaguely recall build output within the gcc subdir that possibly recreated the gcc/include subtree, which might explain the observed errors. The good news is that the patch I posted the other day actually addresses this problem: the dep on stage_last is not enough to trigger a rebuild of gcc, so a post-bootstrap all-host all-target build will not reenter the bootstrapped dirs, but that dep does trigger an initial build of gcc if one has not gone through bootstrapping yet. So I see two possible ways to go from now: 1. address the previously-mentioned fragility in the patch I posted, to catch all cases of postbootstrap targets and their deps on non-postbootstrap targets. 2. revamp the bootstrap/non-bootstrap dependencies, using GNU make conditionals rather than configure-time enable/disable-bootstrap, so that we can have a different set of dependencies while running the bootstrap proper, having non-stage dependencies activated by default when any of the all-* targets are named in the command line, and also when building post-bootstrap all-host all-target. This might seem to bring the problem back, but rather by having the full dependency set, we'd avoid the race not by refraining from reentering dirs, but rather by having them entered or reentered according to the full dependencies, without mixing stage and non-stage dependencies. I'm not yet sure this is actually doable, but it seems to me that if it is, it would be more robust than what we have now. -- Alexandre Oliva, freedom fighter https://FSFLA.org/blogs/lxo Be the change, be Free! FSF Latin America board member GNU Toolchain Engineer Free Software Evangelist ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: fix libcc1 dependencies in toplevel Makefile 2018-06-12 2:50 ` Alexandre Oliva @ 2018-06-12 8:57 ` Olivier Hainque 2018-06-12 15:31 ` Jeff Law 2018-06-26 5:39 ` Alexandre Oliva 2 siblings, 0 replies; 16+ messages in thread From: Olivier Hainque @ 2018-06-12 8:57 UTC (permalink / raw) To: Alexandre Oliva; +Cc: Olivier Hainque, GCC Patches, Nicolas Roche Hi Alex, Thanks for your feedback and help looking into this. > On 12 Jun 2018, at 04:50, Alexandre Oliva <oliva@gnu.org> wrote: > > I was missing one possibility: that the problem occurred during the > post-bootstrap all-host all-target build. As far as I can tell from > Nicolas' analysis, this was indeed the case. Yes, indeed. I intended to convey this in the opening message of this thread by referring to concurrency between libcc1 and libquadmath. That was admittedly too implicit :) > I still don't see how any > staging or unstaging might have taken place, but I can now see that we > do reenter the gcc dir before building all-libcc1. If that reentering > rebuilds anything, particularly headers, that may be enough to explain > the reported symptoms. Right. > Now, I do vaguely recall build output within the gcc subdir that > possibly recreated the gcc/include subtree, which might explain the > observed errors. That's consistent at least, as the problem we had was the compilation of a libquadmath source not finding limits.h. > The good news is that the patch I posted the other day actually > addresses this problem: the dep on stage_last is not enough to trigger a > rebuild of gcc, so a post-bootstrap all-host all-target build will not > reenter the bootstrapped dirs, Nice :-) > but that dep does trigger an initial > build of gcc if one has not gone through bootstrapping yet. > > So I see two possible ways to go from now: > > 1. address the previously-mentioned fragility in the patch I posted, to > catch all cases of postbootstrap targets and their deps on > non-postbootstrap targets. > > 2. revamp the bootstrap/non-bootstrap dependencies, using GNU make > conditionals rather than configure-time enable/disable-bootstrap, so > that we can have a different set of dependencies while running the > bootstrap proper, having non-stage dependencies activated by default > when any of the all-* targets are named in the command line, and also > when building post-bootstrap all-host all-target. This might seem to > bring the problem back, but rather by having the full dependency set, > we'd avoid the race not by refraining from reentering dirs, but rather > by having them entered or reentered according to the full dependencies, > without mixing stage and non-stage dependencies. I'm not yet sure this > is actually doable, but it seems to me that if it is, it would be more > robust than what we have now. I'm really not familiar enough with the dependencies organization to provide informed input here. Maybe a reasonable effort on 1 would be good enough in practice and we can get to 2 only as a second step if we still observe failures. Or start with a reasonable effort on 2 to evaluate feasibility and get a rough guesstimate of the effort it would take to get there, then reassess. For sure, I'm happy to try any patch in our development (!production) builds and see where this leads. Thanks again for your help on this! With Kind Regards, Olivier ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: fix libcc1 dependencies in toplevel Makefile 2018-06-12 2:50 ` Alexandre Oliva 2018-06-12 8:57 ` Olivier Hainque @ 2018-06-12 15:31 ` Jeff Law 2018-06-26 5:39 ` Alexandre Oliva 2 siblings, 0 replies; 16+ messages in thread From: Jeff Law @ 2018-06-12 15:31 UTC (permalink / raw) To: Alexandre Oliva, Olivier Hainque; +Cc: GCC Patches, Nicolas Roche On 06/11/2018 08:50 PM, Alexandre Oliva wrote: > So I see two possible ways to go from now: > > 1. address the previously-mentioned fragility in the patch I posted, to > catch all cases of postbootstrap targets and their deps on > non-postbootstrap targets. > > > 2. revamp the bootstrap/non-bootstrap dependencies, using GNU make > conditionals rather than configure-time enable/disable-bootstrap, so > that we can have a different set of dependencies while running the > bootstrap proper, having non-stage dependencies activated by default > when any of the all-* targets are named in the command line, and also > when building post-bootstrap all-host all-target. This might seem to > bring the problem back, but rather by having the full dependency set, > we'd avoid the race not by refraining from reentering dirs, but rather > by having them entered or reentered according to the full dependencies, > without mixing stage and non-stage dependencies. I'm not yet sure this > is actually doable, but it seems to me that if it is, it would be more > robust than what we have now. Your call. I've wanted the build system revamped for 20+ years, but it's nontrivial and the most serious problems were addressed as we continued to pull the runtime bits out of gcc/ Jeff ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: fix libcc1 dependencies in toplevel Makefile 2018-06-12 2:50 ` Alexandre Oliva 2018-06-12 8:57 ` Olivier Hainque 2018-06-12 15:31 ` Jeff Law @ 2018-06-26 5:39 ` Alexandre Oliva 2018-06-27 19:53 ` Olivier Hainque 2 siblings, 1 reply; 16+ messages in thread From: Alexandre Oliva @ 2018-06-26 5:39 UTC (permalink / raw) To: Olivier Hainque; +Cc: GCC Patches, Nicolas Roche, binutils, gdb-patches, newlib On Jun 11, 2018, Alexandre Oliva <oliva@gnu.org> wrote: > On Jun 3, 2018, Alexandre Oliva <oliva@gnu.org> wrote: >> On Jun 27, 2017, Alexandre Oliva <aoliva@redhat.com> wrote: > 1. address the previously-mentioned fragility in the patch I posted, to > catch all cases of postbootstrap targets and their deps on > non-postbootstrap targets. This turned out to just require some thinking to convince myself it wouldn't come up. There was a major problem in the earlier patch, however: @if/@endif gcc-no-bootstrap wasn't quite what we needed to enclose the preexisting deps, because that works for cases in which gcc is built but not bootstrapped, but not cases in which gcc is not built. I had to introduce @unless/@endunless to express the desired semantics. Here's the patch I'll install if nobody objects in the next few days. Tested on x86_64-linux-gnu with a gcc bootstrap tree, a gcc non-bootstrap tree, and a binutils+gdb tree. In the patch below, I've omitted hunks with only whitespace changes to Makefile.in, so that people can more easily identify how rules are changing. Introduce @unless/@endunless and postbootstrap Makefile targets From: Alexandre Oliva <oliva@adacore.com> This patch turns dependencies of non-bootstrap targets on bootstrap targets for bootstrap builds into dependencies on stage_last. This arrangement gets stage1-bubble to run from stage_last if we haven't started a bootstrap yet, and to use the current stage otherwise. This was already the case of target libs, just not of non-bootstrapped host modules. In order to retain preexisting dependencies in non-bootstrap builds, or in gcc-less builds, this introduces support for @unless/@endunless pairs in Makefile.in. There is a remaining possibility of problem if activating, in a tree configured for bootstrap, a parallel build of two or more modules, at least one bootstrapped and one not. In this case, make might decide to build stage_current and stage_last in parallel, the latter will start a submake to build stage1 while the initial make, having satisfied stage_current, proceeds to build the bootstrapped module in non-bootstrapped configurations. The two builds will overlap and will likely conflict. This situation does NOT arise in normal settings, however: a post-bootstrap build of all-host all-target will indeed activate such targets concurrently, but only after building all bootstrapped modules successfully, and it will have both stage_last and stage_current targets already satisfied, so the potential race between builds will not arise. Another remaining problem, that is slightly expanded with this patch, is that of an interrupted build in a tree configured for bootstrap, continued with a non-bootstrapped target. Target modules that were not bootstrapped would already fail to complete the current stage when activated explicitly in the command line for a retry; host modules, however, would attempt to build their bootstrapped dependencies, which is what led to the problem of concurrent builds addressed with this patch. An interrupted or failed build might still recover correctly, if the non-bootstrapped target is activated in both builds, because then make will remove stage_last when its build command is interrupted, so that it will attempt to recreate it with stage1-bubble in the second try. A bootstrap build, however, will not be attempting to build stage_last, so the file will remain and the retry won't go through stage1-bubble. We have lived with that for target modules, so we can probably live with that for host modules too. Another undesirable consequence of this change is that non-boostrapped host modules, in a tree configured for bootstrap, when activated as make all-<module>, will build all of stage1 instead of only the module's usual dependencies. This is intentional and necessary to fix the parallel-build problem. If it's not desirable, disabling the unnecessary bootstrap configuration will suffice to restore the original set of dependencies. for ChangeLog * configure.ac: Introduce support for @unless/@endunless. * Makefile.tpl (dep-kind): Rewrite with cond; return postbootstrap in some cases. (make-postboot-dep, postboot-targets): New. (dependencies): Do not output postbootstrap dependencies at first. Output non-target ones changed for configure to depend on stage_last @if gcc-bootstrap, and the original deps @unless gcc-bootstrap. * configure.in, Makefile.in: Rebuilt. --- Makefile.in | 181 +++++++++++++++++----------------------------------------- Makefile.tpl | 78 +++++++++++++++++-------- configure | 20 +++++- configure.ac | 20 +++++- 4 files changed, 134 insertions(+), 165 deletions(-) diff --git a/Makefile.in b/Makefile.in index 32a92a6bcd17..e0dfad337a6c 100644 --- a/Makefile.in +++ b/Makefile.in @@ -56060,9 +56018,7 @@ all-stagefeedback-fixincludes: maybe-all-stagefeedback-libiberty all-stageautoprofile-fixincludes: maybe-all-stageautoprofile-libiberty all-stageautofeedback-fixincludes: maybe-all-stageautofeedback-libiberty all-gnattools: maybe-all-target-libada -all-gnattools: maybe-all-target-libstdc++-v3 all-lto-plugin: maybe-all-libiberty - all-stage1-lto-plugin: maybe-all-stage1-libiberty all-stage2-lto-plugin: maybe-all-stage2-libiberty all-stage3-lto-plugin: maybe-all-stage3-libiberty @@ -56083,12 +56038,8 @@ all-stagetrain-lto-plugin: maybe-all-stagetrain-libiberty-linker-plugin all-stagefeedback-lto-plugin: maybe-all-stagefeedback-libiberty-linker-plugin all-stageautoprofile-lto-plugin: maybe-all-stageautoprofile-libiberty-linker-plugin all-stageautofeedback-lto-plugin: maybe-all-stageautofeedback-libiberty-linker-plugin -configure-libcc1: maybe-configure-gcc -all-libcc1: maybe-all-gcc all-gotools: maybe-all-target-libgo -all-utils: maybe-all-libiberty configure-intl: maybe-all-libiconv - configure-stage1-intl: maybe-all-stage1-libiconv configure-stage2-intl: maybe-all-stage2-libiconv configure-stage3-intl: maybe-all-stage3-libiconv @@ -56142,17 +56089,10 @@ all-stagetrain-intl: maybe-all-stagetrain-libiconv all-stagefeedback-intl: maybe-all-stagefeedback-libiconv all-stageautoprofile-intl: maybe-all-stageautoprofile-libiconv all-stageautofeedback-intl: maybe-all-stageautofeedback-libiconv -configure-gdb: maybe-all-intl configure-gdb: maybe-configure-sim -configure-gdb: maybe-all-bfd -configure-gdb: maybe-all-libiconv -all-gdb: maybe-all-libiberty -all-gdb: maybe-all-libiconv -all-gdb: maybe-all-opcodes all-gdb: maybe-all-readline all-gdb: maybe-all-build-bison all-gdb: maybe-all-sim -all-gdb: maybe-all-libdecnumber all-gdb: maybe-all-libtermcap configure-libgui: maybe-configure-tcl configure-libgui: maybe-configure-tk @@ -56383,14 +56303,7 @@ all-stagetrain-gas: maybe-all-stagetrain-intl all-stagefeedback-gas: maybe-all-stagefeedback-intl all-stageautoprofile-gas: maybe-all-stageautoprofile-intl all-stageautofeedback-gas: maybe-all-stageautofeedback-intl -configure-gprof: maybe-configure-intl -all-gprof: maybe-all-libiberty -all-gprof: maybe-all-bfd -all-gprof: maybe-all-opcodes -all-gprof: maybe-all-intl -all-gprof: maybe-all-gas configure-ld: maybe-configure-intl - configure-stage1-ld: maybe-configure-stage1-intl configure-stage2-ld: maybe-configure-stage2-intl configure-stage3-ld: maybe-configure-stage3-intl @@ -56637,42 +56530,27 @@ install-itcl: maybe-install-tcl install-strip-itcl: maybe-install-strip-tcl configure-tk: maybe-configure-tcl all-tk: maybe-all-tcl -all-sid: maybe-all-libiberty -all-sid: maybe-all-bfd -all-sid: maybe-all-opcodes all-sid: maybe-all-tcl all-sid: maybe-all-tk install-sid: maybe-install-tcl install-strip-sid: maybe-install-strip-tcl install-sid: maybe-install-tk install-strip-sid: maybe-install-strip-tk -configure-sim: maybe-configure-intl -all-sim: maybe-all-intl -all-sim: maybe-all-libiberty -all-sim: maybe-all-bfd -all-sim: maybe-all-opcodes all-sim: maybe-all-readline all-sim: maybe-configure-gdb -all-fastjar: maybe-all-zlib all-fastjar: maybe-all-build-texinfo -all-fastjar: maybe-all-libiberty -all-bison: maybe-all-intl all-bison: maybe-all-build-texinfo all-flex: maybe-all-build-bison -all-flex: maybe-all-intl all-flex: maybe-all-m4 all-flex: maybe-all-build-texinfo -all-m4: maybe-all-intl all-m4: maybe-all-build-texinfo configure-target-fastjar: maybe-configure-target-zlib all-target-fastjar: maybe-all-target-zlib configure-target-libgo: maybe-configure-target-libffi -configure-target-libgo: maybe-all-target-libstdc++-v3 all-target-libgo: maybe-all-target-libbacktrace all-target-libgo: maybe-all-target-libffi all-target-libgo: maybe-all-target-libatomic configure-target-libstdc++-v3: maybe-configure-target-libgomp - configure-stage1-target-libstdc++-v3: maybe-configure-stage1-target-libgomp configure-stage2-target-libstdc++-v3: maybe-configure-stage2-target-libgomp configure-stage3-target-libstdc++-v3: maybe-configure-stage3-target-libgomp @@ -56682,9 +56560,7 @@ configure-stagetrain-target-libstdc++-v3: maybe-configure-stagetrain-target-libg configure-stagefeedback-target-libstdc++-v3: maybe-configure-stagefeedback-target-libgomp configure-stageautoprofile-target-libstdc++-v3: maybe-configure-stageautoprofile-target-libgomp configure-stageautofeedback-target-libstdc++-v3: maybe-configure-stageautofeedback-target-libgomp -configure-target-liboffloadmic: maybe-configure-target-libgomp configure-target-libsanitizer: maybe-all-target-libstdc++-v3 - configure-stage1-target-libsanitizer: maybe-all-stage1-target-libstdc++-v3 configure-stage2-target-libsanitizer: maybe-all-stage2-target-libstdc++-v3 configure-stage3-target-libsanitizer: maybe-all-stage3-target-libstdc++-v3 @@ -56716,7 +56590,6 @@ all-stagetrain-target-libstdc++-v3: maybe-configure-stagetrain-target-libgomp all-stagefeedback-target-libstdc++-v3: maybe-configure-stagefeedback-target-libgomp all-stageautoprofile-target-libstdc++-v3: maybe-configure-stageautoprofile-target-libgomp all-stageautofeedback-target-libstdc++-v3: maybe-configure-stageautofeedback-target-libgomp -all-target-liboffloadmic: maybe-all-target-libgomp install-target-libgo: maybe-install-target-libatomic install-target-libgfortran: maybe-install-target-libquadmath install-target-libgfortran: maybe-install-target-libgcc @@ -56731,12 +56604,62 @@ install-target-libobjc: maybe-install-target-libgcc install-target-libstdc++-v3: maybe-install-target-libgcc all-target-libgloss: maybe-all-target-newlib all-target-winsup: maybe-all-target-libtermcap -configure-target-newlib: maybe-all-binutils -configure-target-newlib: maybe-all-ld configure-target-libgfortran: maybe-all-target-libquadmath configure-target-libgfortran: maybe-all-target-libbacktrace +@if gcc-bootstrap +configure-gnattools: stage_last +configure-libcc1: stage_last +configure-utils: stage_last +configure-gdb: stage_last +configure-gprof: stage_last +configure-sid: stage_last +configure-sim: stage_last +configure-fastjar: stage_last +configure-bison: stage_last +configure-flex: stage_last +configure-m4: stage_last +@endif gcc-bootstrap + +@unless gcc-bootstrap +all-gnattools: maybe-all-target-libstdc++-v3 +configure-libcc1: maybe-configure-gcc +all-libcc1: maybe-all-gcc +all-utils: maybe-all-libiberty +configure-gdb: maybe-all-intl +configure-gdb: maybe-all-bfd +configure-gdb: maybe-all-libiconv +all-gdb: maybe-all-libiberty +all-gdb: maybe-all-libiconv +all-gdb: maybe-all-opcodes +all-gdb: maybe-all-libdecnumber +configure-gprof: maybe-configure-intl +all-gprof: maybe-all-libiberty +all-gprof: maybe-all-bfd +all-gprof: maybe-all-opcodes +all-gprof: maybe-all-intl +all-gprof: maybe-all-gas +all-sid: maybe-all-libiberty +all-sid: maybe-all-bfd +all-sid: maybe-all-opcodes +configure-sim: maybe-configure-intl +all-sim: maybe-all-intl +all-sim: maybe-all-libiberty +all-sim: maybe-all-bfd +all-sim: maybe-all-opcodes +all-fastjar: maybe-all-zlib +all-fastjar: maybe-all-libiberty +all-bison: maybe-all-intl +all-flex: maybe-all-intl +all-m4: maybe-all-intl +configure-target-libgo: maybe-all-target-libstdc++-v3 +configure-target-liboffloadmic: maybe-configure-target-libgomp +all-target-liboffloadmic: maybe-all-target-libgomp +configure-target-newlib: maybe-all-binutils +configure-target-newlib: maybe-all-ld +@endunless gcc-bootstrap + # Dependencies for target modules on other target modules are # described by lang_env_dependencies; the defaults apply to anything # not mentioned there. diff --git a/Makefile.tpl b/Makefile.tpl index b6077c9f125c..447d324595fe 100644 --- a/Makefile.tpl +++ b/Makefile.tpl @@ -1828,25 +1828,46 @@ configure-target-[+module+]: maybe-all-gcc[+ (define dep-maybe (lambda () (if (exist? "hard") "" "maybe-"))) - ;; dep-kind returns "normal" if the dependency is on an "install" target, - ;; or if either module is not bootstrapped. It returns "bootstrap" for - ;; configure or build dependencies between bootstrapped modules; it returns - ;; "prebootstrap" for configure or build dependencies of bootstrapped - ;; modules on a build module (e.g. all-gcc on all-build-bison). All this - ;; is only necessary for host modules. + ;; dep-kind returns returns "prebootstrap" for configure or build + ;; dependencies of bootstrapped modules on a build module + ;; (e.g. all-gcc on all-build-bison); "normal" if the dependency is + ;; on an "install" target, or if the dependence module is not + ;; bootstrapped; otherwise, it returns "bootstrap" or + ;; "postbootstrap" depending on whether the dependent module is + ;; bootstrapped. All this is only necessary for host and target + ;; modules. It might seem like, in order to avoid build races, we + ;; might need more elaborate detection between prebootstrap and + ;; postbootstrap modules, but there are no host prebootstrap + ;; modules. If there were any non-bootstrap host modules that + ;; bootstrap modules depended on, we'd get unsatisfied per-stage + ;; dependencies on them, which would be immediately noticed. (define dep-kind (lambda () - (if (and (hash-ref boot-modules (dep-module "module")) - (=* (dep-module "on") "build-")) - "prebootstrap" + (cond + ((and (hash-ref boot-modules (dep-module "module")) + (=* (dep-module "on") "build-")) + "prebootstrap") - (if (or (= (dep-subtarget "on") "install-") - (not (hash-ref boot-modules (dep-module "module"))) - (not (hash-ref boot-modules (dep-module "on")))) - "normal" - "bootstrap")))) + ((or (= (dep-subtarget "on") "install-") + (not (hash-ref boot-modules (dep-module "on")))) + "normal") + + ((hash-ref boot-modules (dep-module "module")) + "bootstrap") + + (1 "postbootstrap")))) + + (define make-postboot-dep (lambda () + (let ((target (dep-module "module")) (dep "stage_last")) + (unless (= (hash-ref postboot-targets target) dep) + (hash-create-handle! postboot-targets target dep) + ;; All non-bootstrap modules' configure target already + ;; depend on dep. + (unless (=* target "target-") + (string-append "configure-" target ": " dep "\n")))))) ;; We now build the hash table that is used by dep-kind. (define boot-modules (make-hash-table 113)) + (define postboot-targets (make-hash-table 113)) +] [+ FOR host_modules +][+ @@ -1863,18 +1884,23 @@ configure-target-[+module+]: maybe-all-gcc[+ # to check for bootstrap/prebootstrap dependencies. To resolve # prebootstrap dependencies, prebootstrap modules are gathered in # a hash table. -[+ FOR dependencies +][+ (make-dep "" "") +] -[+ CASE (dep-kind) +] -[+ == "prebootstrap" - +][+ FOR bootstrap_stage +] -[+ (make-dep (dep-stage) "") +][+ - ENDFOR bootstrap_stage +] -[+ == "bootstrap" - +][+ FOR bootstrap_stage +] -[+ (make-dep (dep-stage) (dep-stage)) +][+ - ENDFOR bootstrap_stage +] -[+ ESAC +][+ -ENDFOR dependencies +] +[+ FOR dependencies +][+ CASE (dep-kind) +] +[+ == "prebootstrap" +][+ (make-dep "" "") +][+ FOR bootstrap_stage +] +[+ (make-dep (dep-stage) "") +][+ ENDFOR bootstrap_stage +] +[+ == "bootstrap" +][+ (make-dep "" "") +][+ FOR bootstrap_stage +] +[+ (make-dep (dep-stage) (dep-stage)) +][+ ENDFOR bootstrap_stage +] +[+ == "normal" +][+ (make-dep "" "") +] +[+ ESAC +][+ ENDFOR dependencies +] + +@if gcc-bootstrap +[+ FOR dependencies +][+ CASE (dep-kind) +] +[+ == "postbootstrap" +][+ (make-postboot-dep) +][+ ESAC +][+ +ENDFOR dependencies +]@endif gcc-bootstrap + +@unless gcc-bootstrap +[+ FOR dependencies +][+ CASE (dep-kind) +] +[+ == "postbootstrap" +][+ (make-dep "" "") +] +[+ ESAC +][+ ENDFOR dependencies +]@endunless gcc-bootstrap # Dependencies for target modules on other target modules are # described by lang_env_dependencies; the defaults apply to anything diff --git a/configure b/configure index fe8e0f63410c..dd9fbe4d3229 100755 --- a/configure +++ b/configure @@ -7130,7 +7130,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++,*) ;; @@ -7149,8 +7151,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 @@ -7169,8 +7173,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 @@ -7189,13 +7195,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. diff --git a/configure.ac b/configure.ac index 28155a0e5938..a0b0917dd556 100644 --- a/configure.ac +++ b/configure.ac @@ -2719,7 +2719,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++,*) ;; @@ -2738,8 +2740,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 @@ -2758,8 +2762,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 @@ -2778,13 +2784,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. -- Alexandre Oliva, freedom fighter https://FSFLA.org/blogs/lxo Be the change, be Free! FSF Latin America board member GNU Toolchain Engineer Free Software Evangelist ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: fix libcc1 dependencies in toplevel Makefile 2018-06-26 5:39 ` Alexandre Oliva @ 2018-06-27 19:53 ` Olivier Hainque 0 siblings, 0 replies; 16+ messages in thread From: Olivier Hainque @ 2018-06-27 19:53 UTC (permalink / raw) To: Alexandre Oliva Cc: Olivier Hainque, GCC Patches, Nicolas Roche, binutils, gdb-patches, newlib > On 26 Jun 2018, at 07:38, Alexandre Oliva <oliva@gnu.org> wrote: > > Here's the patch I'll install if nobody objects in the next few days. > Tested on x86_64-linux-gnu with a gcc bootstrap tree, a gcc > non-bootstrap tree, and a binutils+gdb tree. Thanks a lot for this Alex! ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2018-06-27 19:53 UTC | newest] Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-06-13 12:58 fix libcc1 dependencies in toplevel Makefile Olivier Hainque 2017-06-14 11:39 ` Nathan Sidwell 2017-06-14 21:11 ` Olivier Hainque 2017-06-15 12:03 ` Nathan Sidwell 2017-06-15 12:29 ` Olivier Hainque 2017-06-22 12:13 ` Alexandre Oliva 2017-06-26 7:41 ` Olivier Hainque 2017-06-27 16:32 ` Olivier Hainque 2017-06-27 19:53 ` Alexandre Oliva 2017-07-03 21:05 ` Olivier Hainque 2018-06-03 19:13 ` Alexandre Oliva 2018-06-12 2:50 ` Alexandre Oliva 2018-06-12 8:57 ` Olivier Hainque 2018-06-12 15:31 ` Jeff Law 2018-06-26 5:39 ` Alexandre Oliva 2018-06-27 19:53 ` Olivier Hainque
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).