diff --git a/Makefile.in b/Makefile.in index edb0c8a9a42..db4fa6c6260 100644 --- a/Makefile.in +++ b/Makefile.in @@ -68677,6 +68677,39 @@ configure-flex: stage_last configure-m4: stage_last @endif gcc-bootstrap +@if gcc-bootstrap +@unless target-zlib-bootstrap +configure-target-fastjar: maybe-configure-target-zlib +@endunless target-zlib-bootstrap +@unless target-zlib-bootstrap +all-target-fastjar: maybe-all-target-zlib +@endunless target-zlib-bootstrap +@unless target-libstdc++-v3-bootstrap +configure-target-libgo: maybe-all-target-libstdc++-v3 +@endunless target-libstdc++-v3-bootstrap +@unless target-libbacktrace-bootstrap +all-target-libgo: maybe-all-target-libbacktrace +@endunless target-libbacktrace-bootstrap +@unless target-libatomic-bootstrap +all-target-libgo: maybe-all-target-libatomic +@endunless target-libatomic-bootstrap +@unless target-libstdc++-v3-bootstrap +configure-target-libgm2: maybe-all-target-libstdc++-v3 +@endunless target-libstdc++-v3-bootstrap +@unless target-libatomic-bootstrap +all-target-libgm2: maybe-all-target-libatomic +@endunless target-libatomic-bootstrap +@unless target-libstdc++-v3-bootstrap +configure-target-libgrust: maybe-all-target-libstdc++-v3 +@endunless target-libstdc++-v3-bootstrap +@unless target-libbacktrace-bootstrap +configure-target-libgfortran: maybe-all-target-libbacktrace +@endunless target-libbacktrace-bootstrap +@unless target-libbacktrace-bootstrap +configure-target-libgo: maybe-all-target-libbacktrace +@endunless target-libbacktrace-bootstrap +@endif gcc-bootstrap + @unless gcc-bootstrap all-gnattools: maybe-all-target-libstdc++-v3 configure-libcc1: maybe-configure-gcc diff --git a/Makefile.tpl b/Makefile.tpl index 0d5f0a1b9b0..1d5813cd569 100644 --- a/Makefile.tpl +++ b/Makefile.tpl @@ -2013,6 +2013,25 @@ configure-target-[+module+]: maybe-all-gcc[+ (unless (=* target "target-") (string-append "configure-" target ": " dep "\n")))))) + ;; Dependencies in between target modules if the dependencies + ;; are bootstrap target modules and the target modules which + ;; depend on them are emitted inside of @unless gcc-bootstrap. + ;; Unfortunately, some target modules like libatomic or libbacktrace + ;; have bootstrap flag set, but whether they are actually built + ;; during bootstrap or after bootstrap depends on e.g. enabled languages; + ;; if d is enabled, libphobos is built as target module and depends + ;; on libatomic and libbacktrace, which are therefore also built as + ;; bootstrap modules. If d is not enabled but go is, libatomic and + ;; libbacktrace are just dependencies of libgo which is not a bootstrap + ;; target module, but we need dependencies on libatomic and libbacktrace + ;; in that case even when gcc-bootstrap. This lambda emits those. + (define make-postboot-target-dep (lambda () + (let ((target (dep-module "module")) (on (dep-module "on"))) + (when (=* on "target-") + (when (=* target "target-") + (string-append "@unless " on "-bootstrap\n" (make-dep "" "") + "\n@endunless " on "-bootstrap\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)) @@ -2045,6 +2064,11 @@ configure-target-[+module+]: maybe-all-gcc[+ [+ == "postbootstrap" +][+ (make-postboot-dep) +][+ ESAC +][+ ENDFOR dependencies +]@endif gcc-bootstrap +@if gcc-bootstrap +[+ FOR dependencies +][+ CASE (dep-kind) +] +[+ == "postbootstrap" +][+ (make-postboot-target-dep) +][+ ESAC +][+ +ENDFOR dependencies +]@endif gcc-bootstrap + @unless gcc-bootstrap [+ FOR dependencies +][+ CASE (dep-kind) +] [+ == "postbootstrap" +][+ (make-dep "" "") +]