commit:     a54d0b321b0b54288999261be06fe8edbcb87d0a
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Jun 12 12:06:15 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Jun 12 12:06:46 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a54d0b32

toolchain.eclass: BDEPEND on D for bootstrapping D

To build GCC 12+ w/ D, we need a D compiler. For now, depend
on GCC with D enabled. And give a hint to the PM that an older
GCC is likely to do the job to break the cycle, as those don't
need D to build their D support. Just in newer versions.

Closes: https://bugs.gentoo.org/840182
Signed-off-by: Sam James <sam <AT> gentoo.org>

 eclass/toolchain.eclass | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index 9ae9e6e58a14..15487fc6e65d 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -328,6 +328,13 @@ if tc_has_feature valgrind; then
        BDEPEND+=" valgrind? ( dev-util/valgrind )"
 fi
 
+if tc_version_is_at_least 12.0 ; then
+       # D in 12+ is self-hosting and needs D to bootstrap.
+       # TODO: package some binary we can use, like for Ada
+       # bug #840182
+       BDEPEND+=" d? ( || ( sys-devel/gcc[d] <sys-devel/gcc-12[d] ) )"
+fi
+
 PDEPEND=">=sys-devel/gcc-config-2.3"
 
 #---->> S + SRC_URI essentials <<----

Reply via email to